rem: operation -> annee_bancaire = strtod (tableau_char[2],
add: operation -> annee_bancaire = my_strtod (tableau_char[2],
context: void recuperation_donnees_generales_formulaire ( struct structure_operation *operation ){  gchar *pointeur_char;  GSList *pointeur_liste;  gchar **tableau_char;  struct struct_devise *devise;  p_tab_nom_de_compte_variable = p_tab_nom_de_compte_courant;  /* traitement de la date */  pointeur_char = g_strstrip ( (gchar *) gtk_entry_get_text ( GTK_ENTRY (widget_formulaire_operations[1])));  tableau_char = g_strsplit ( pointeur_char,			      "/",			      3 );  operation -> jour = strtod ( tableau_char[0],			       NULL );  operation -> mois = strtod ( tableau_char[1],			       NULL );  operation -> annee = strtod (tableau_char[2],			       NULL );  operation->date = g_date_new_dmy ( operation->jour,				     operation->mois,				     operation->annee);  /* traitement de la date de valeur */  if ( etat.affiche_date_bancaire       &&       gtk_widget_get_style ( widget_formulaire_operations[7] ) == style_entree_formulaire[0] )    {      pointeur_char = g_strstrip ( (gchar *) gtk_entry_get_text ( GTK_ENTRY (widget_formulaire_operations[7])));      tableau_char = g_strsplit ( pointeur_char,				  "/",				  3 );      operation -> jour_bancaire = strtod ( tableau_char[0],					    NULL );      operation -> mois_bancaire = strtod ( tableau_char[1],					    NULL );      operation -> annee_bancaire = strtod (tableau_char[2],					    NULL );      operation->date_bancaire = g_date_new_dmy ( operation->jour_bancaire,						  operation->mois_bancaire,						  operation->annee_bancaire);    }  else    {      operation -> jour_bancaire = 0;      operation -> mois_bancaire = 0;      operation -> annee_bancaire = 0;      operation->date_bancaire = NULL;    }  /* rcupration du tiers, s'il n'existe pas, on le cre */  if ( gtk_widget_get_style ( GTK_COMBOFIX ( widget_formulaire_operations[2] ) -> entry ) == style_entree_formulaire[0] )    {      pointeur_char = g_strstrip ( gtk_combofix_get_text ( GTK_COMBOFIX ( widget_formulaire_operations[2] )));      if ( ( pointeur_liste = g_slist_find_custom ( liste_struct_tiers,						    pointeur_char,						    ( GCompareFunc ) recherche_tiers_par_nom )) )	operation -> tiers = (( struct struct_tiers * )( pointeur_liste -> data )) -> no_tiers;      else	operation -> tiers = (( struct struct_tiers * )( ajoute_nouveau_tiers ( pointeur_char ))) -> no_tiers;    }  else    operation -> tiers = 0;  /* rcupration du montant */  if ( gtk_widget_get_style ( widget_formulaire_operations[3] ) == style_entree_formulaire[0] )    operation -> montant = -g_strtod ( g_strstrip ( (gchar *) gtk_entry_get_text ( GTK_ENTRY ( widget_formulaire_operations[3] ))),				       NULL );  else    operation -> montant = g_strtod ( g_strstrip ( (gchar *) gtk_entry_get_text ( GTK_ENTRY ( widget_formulaire_operations[4] ))),				      NULL );  /* rcupration de la devise */   devise = gtk_object_get_data ( GTK_OBJECT ( GTK_OPTION_MENU ( widget_formulaire_operations[5] ) -> menu_item ),				 "adr_devise" );  /* rcupration de la devise */   devise = gtk_object_get_data ( GTK_OBJECT ( GTK_OPTION_MENU ( widget_formulaire_operations[5] ) -> menu_item ),				 "adr_devise" );  /* si c'est la devise du compte ou */  /* si c'est un compte qui doit passer  l'euro ( la transfo se fait au niveau de l'affichage de la liste ) */  /* ou si c'est un compte en euro et l'op est dans une devise qui doit passer  l'euro -> pas de change  demander */  p_tab_nom_de_compte_variable = p_tab_nom_de_compte_courant;  if ( !devise_compte       ||       devise_compte -> no_devise != DEVISE )    devise_compte = g_slist_find_custom ( liste_struct_devises,					  GINT_TO_POINTER ( DEVISE ),					  ( GCompareFunc ) recherche_devise_par_no ) -> data;  operation -> devise = devise -> no_devise;  if ( !( operation -> no_operation	  ||	  devise -> no_devise == DEVISE	  ||	  ( devise_compte -> passage_euro && !strcmp ( devise -> nom_devise, _("Euro") ))	  ||	  ( !strcmp ( devise_compte -> nom_devise, _("Euro") ) && devise -> passage_euro )))    {      /* c'est une devise trangre, on demande le taux de change et les frais de change */      demande_taux_de_change ( devise_compte,			       devise,			       1,			       (gdouble ) 0,			       (gdouble ) 0 );      operation -> taux_change = taux_de_change[0];      operation -> frais_change = taux_de_change[1];      if ( operation -> taux_change < 0 )	{	  operation -> taux_change = -operation -> taux_change;	  operation -> une_devise_compte_egale_x_devise_ope = 1;	}    }  /* rcupration du type d'opration */  if ( GTK_WIDGET_VISIBLE ( widget_formulaire_operations[9] ))    {      operation -> type_ope = GPOINTER_TO_INT ( gtk_object_get_data ( GTK_OBJECT ( GTK_OPTION_MENU ( widget_formulaire_operations[9] ) -> menu_item ),								      "no_type" ));      if ( GTK_WIDGET_VISIBLE ( widget_formulaire_operations[10] )	   &&	   gtk_widget_get_style ( widget_formulaire_operations[10] ) == style_entree_formulaire[0] )	{	  struct struct_type_ope *type;	  type = gtk_object_get_data ( GTK_OBJECT ( GTK_OPTION_MENU ( widget_formulaire_operations[9] ) -> menu_item ),				       "adr_type" );	  operation -> contenu_type = g_strdup ( g_strstrip ( (gchar *) gtk_entry_get_text ( GTK_ENTRY ( widget_formulaire_operations[10] ))));	  if ( type -> numerotation_auto )	    type -> no_en_cours = ( atoi ( operation -> contenu_type ));	}      else	operation -> contenu_type = NULL;    }  else    {      operation -> type_ope = 0;      operation -> contenu_type = NULL;    }  /* rcupration du no d'exercice */  /* si l'exo est  -1, c'est que c'est sur non affich */  /* soit c'est une modif d'op et on touche pas  l'exo */  /* soit c'est une nouvelle op et on met l'exo  0 */  if ( GPOINTER_TO_INT ( gtk_object_get_data ( GTK_OBJECT ( GTK_OPTION_MENU ( widget_formulaire_operations[11] ) -> menu_item ),					       "no_exercice" )) == -1 )    {      if ( !operation -> no_operation )	operation -> no_exercice = 0;    }  else    operation -> no_exercice = GPOINTER_TO_INT ( gtk_object_get_data ( GTK_OBJECT ( GTK_OPTION_MENU ( widget_formulaire_operations[11] ) -> menu_item ),								       "no_exercice" ));  /* rcupration de l'imputation budgtaire */  /* si c'est une op ventile, on ne rcupre pas l'ib */  if ( gtk_widget_get_style ( GTK_COMBOFIX ( widget_formulaire_operations[12] ) -> entry ) == style_entree_formulaire[0]       &&       !GTK_WIDGET_VISIBLE ( widget_formulaire_operations[15] ))    {      struct struct_imputation *imputation;            pointeur_char = gtk_combofix_get_text ( GTK_COMBOFIX ( widget_formulaire_operations[12] ));      tableau_char = g_strsplit ( pointeur_char,				  ":",				  2 );            tableau_char[0] = g_strstrip ( tableau_char[0] );      if ( tableau_char[1] )	tableau_char[1] = g_strstrip ( tableau_char[1] );      pointeur_liste = g_slist_find_custom ( liste_struct_imputation,					     tableau_char[0],					     ( GCompareFunc ) recherche_imputation_par_nom );      if ( pointeur_liste )	imputation = pointeur_liste -> data;      else	{	  imputation = ajoute_nouvelle_imputation ( tableau_char[0] );	  if ( operation -> montant < 0 )	    imputation -> type_imputation = 1;	  else	    imputation -> type_imputation = 0;	}      operation -> imputation = imputation -> no_imputation;	        if ( tableau_char[1] && strlen (tableau_char[1]) )	{	  struct struct_sous_imputation *sous_imputation;		  	  pointeur_liste = g_slist_find_custom ( imputation -> liste_sous_imputation,						 tableau_char[1],						 ( GCompareFunc ) recherche_sous_imputation_par_nom );	      	  if ( pointeur_liste )	    sous_imputation = pointeur_liste -> data;	  else	    sous_imputation = ajoute_nouvelle_sous_imputation ( tableau_char[1],								imputation );		  	  operation -> sous_imputation = sous_imputation -> no_sous_imputation;	}      else	operation -> sous_imputation = 0;      g_strfreev ( tableau_char );    }  else    {      operation -> imputation = 0;      operation -> sous_imputation = 0;    }  /* rcupration du no de pice comptable */  if ( gtk_widget_get_style ( widget_formulaire_operations[14] ) == style_entree_formulaire[0] )    operation -> no_piece_comptable = g_strdup ( g_strstrip ( (gchar *) gtk_entry_get_text ( GTK_ENTRY ( widget_formulaire_operations[14] ))));  else    operation -> no_piece_comptable = NULL;  /* rcupration des notes */  if ( gtk_widget_get_style ( widget_formulaire_operations[16] ) == style_entree_formulaire[0] )    operation -> notes = g_strdup ( g_strstrip ( (gchar *) gtk_entry_get_text ( GTK_ENTRY ( widget_formulaire_operations[16] ))));  else    operation -> notes = NULL;  /* rcupration de l'info banque/guichet */  if ( gtk_widget_get_style ( widget_formulaire_operations[17] ) == style_entree_formulaire[0] )    operation -> info_banque_guichet = g_strdup ( g_strstrip ( (gchar *) gtk_entry_get_text ( GTK_ENTRY ( widget_formulaire_operations[17] ))));  else    operation -> info_banque_guichet = NULL;}