rem: */
context: void dupliquer_etat ( void ){  struct struct_etat *etat;  GSList *liste_tmp;  etat = calloc ( 1,		  sizeof ( struct struct_etat ));  /* on recopie les donnes de l'tat courant */  memcpy ( etat,	   etat_courant,	   sizeof ( struct struct_etat ));  /* il reste juste  faire une copie des listes et des chaines pour terminer */  etat -> no_etat = ++no_dernier_etat;  etat -> nom_etat = g_strdup ( etat_courant -> nom_etat );  etat -> no_exercices = g_slist_copy ( etat_courant -> no_exercices );  if ( etat_courant -> date_perso_debut )    etat -> date_perso_debut = g_date_new_dmy ( g_date_day ( etat_courant -> date_perso_debut ),						g_date_month ( etat_courant -> date_perso_debut ),						g_date_year ( etat_courant -> date_perso_debut ));						  if ( etat_courant -> date_perso_fin )    etat -> date_perso_fin = g_date_new_dmy ( g_date_day ( etat_courant -> date_perso_fin ),						g_date_month ( etat_courant -> date_perso_fin ),						g_date_year ( etat_courant -> date_perso_fin ));						  etat -> type_classement = g_list_copy ( etat_courant -> type_classement );  etat -> no_comptes = g_slist_copy ( etat_courant -> no_comptes );  etat -> no_comptes_virements = g_slist_copy ( etat_courant -> no_comptes_virements );  etat -> no_categ = g_slist_copy ( etat_courant -> no_categ );  etat -> no_ib = g_slist_copy ( etat_courant -> no_ib );  etat -> no_tiers = g_slist_copy ( etat_courant -> no_tiers );  /* on fait une copie de la liste des textes */  if ( etat -> liste_struct_comparaison_textes )    {      etat -> liste_struct_comparaison_textes = NULL;      liste_tmp = etat_courant -> liste_struct_comparaison_textes;      while ( liste_tmp )	{	  struct struct_comparaison_textes_etat *ancien_comp_textes;	  struct struct_comparaison_textes_etat *comp_textes;	  ancien_comp_textes = liste_tmp -> data;	  comp_textes = calloc ( 1,				   sizeof ( struct struct_comparaison_textes_etat ));	  memcpy ( comp_textes,		   ancien_comp_textes,		   sizeof ( struct struct_comparaison_textes_etat ));	  comp_textes -> texte = g_strdup ( comp_textes -> texte );	  etat -> liste_struct_comparaison_textes = g_slist_append ( etat -> liste_struct_comparaison_textes,								     comp_textes );	  liste_tmp = liste_tmp -> next;	}    }  /* on fait une copie de la liste des montants */  if ( etat -> liste_struct_comparaison_montants )    {      etat -> liste_struct_comparaison_montants = NULL;      liste_tmp = etat_courant -> liste_struct_comparaison_montants;      while ( liste_tmp )	{	  struct struct_comparaison_montants_etat *ancien_comp_montants;	  struct struct_comparaison_montants_etat *comp_montants;	  ancien_comp_montants = liste_tmp -> data;	  comp_montants = calloc ( 1,				   sizeof ( struct struct_comparaison_montants_etat ));	  memcpy ( comp_montants,		   ancien_comp_montants,		   sizeof ( struct struct_comparaison_montants_etat ));	  etat -> liste_struct_comparaison_montants = g_slist_append ( etat -> liste_struct_comparaison_montants,								       comp_montants );	  liste_tmp = liste_tmp -> next;	}    }  /* on l'ajoute  la liste */  liste_struct_etats = g_slist_append ( liste_struct_etats,					etat );  /* on raffiche la liste des tats */  etat_courant = etat;  remplissage_liste_etats ();  gtk_widget_set_sensitive ( bouton_personnaliser_etat,			     TRUE );/* FIXME: ractiver ca le jour ou on sort l'impression	mais de toutes faons, ca sera merg   gtk_widget_set_sensitive ( bouton_imprimer_etat,			     TRUE );*/  gtk_widget_set_sensitive ( bouton_exporter_etat,			     TRUE );  gtk_widget_set_sensitive ( bouton_dupliquer_etat,			     TRUE );  gtk_widget_set_sensitive ( bouton_effacer_etat,			     TRUE );  gtk_label_set_text ( GTK_LABEL ( label_etat_courant ),		       etat_courant -> nom_etat );  gtk_widget_set_sensitive ( bouton_effacer_etat,			     TRUE );  personnalisation_etat ();  modification_fichier ( TRUE );}