rem: if ( echeance -> intervalle_periodicite_personnalisee == 1 ) g_date_add_months ( date_suivante, echeance -> periodicite_personnalisee ); else g_date_add_years ( date_suivante, echeance -> periodicite_personnalisee );     if ( !echeance -> periodicite || ( echeance -> date_limite && g_date_compare ( echeance -> date, echeance -> date_limite ) > 0  )) { GtkWidget *label;  if ( GTK_BIN ( frame_etat_echeances_finies ) -> child )
add: if ( echeance -> periodicite == 3 ) g_date_add_years ( date_suivante, 1 ); else  if ( !echeance -> intervalle_periodicite_personnalisee ) {  g_date_add_months ( echeance -> date, 0 ); g_date_add_days ( date_suivante, echeance -> periodicite_personnalisee ); } else if ( echeance -> intervalle_periodicite_personnalisee == 1 ) g_date_add_months ( date_suivante, echeance -> periodicite_personnalisee ); else g_date_add_years ( date_suivante, echeance -> periodicite_personnalisee );     if ( !echeance -> periodicite || ( echeance -> date_limite && g_date_compare ( echeance -> date, echeance -> date_limite ) > 0  )) { GtkWidget *label;  if ( GTK_BIN ( frame_etat_echeances_finies ) -> child )
context: void incrementation_echeance ( struct operation_echeance *echeance ){  GDate *date_suivante;  /* priodicit hebdomadaire */  if ( echeance -> periodicite == 1 )    {      g_date_add_days ( echeance -> date,			7 );      /* magouille car il semble y avoir un bug dans g_date_add_days qui ne fait pas l'addition si on ne met pas la ligne suivante */      g_date_add_months ( echeance -> date,			  0 );    }  else    /* priodicit mensuelle */    if ( echeance -> periodicite == 2 )      g_date_add_months ( echeance -> date,			  1 );    else      /* priodicit annuelle */      if ( echeance -> periodicite == 3 )	g_date_add_years ( echeance -> date,			   1 );      else	/* priodicit perso */	if ( !echeance -> intervalle_periodicite_personnalisee )	  {	    g_date_add_days ( echeance -> date,			      echeance -> periodicite_personnalisee );	    /* magouille car il semble y avoir un bug dans g_date_add_days qui ne fait pas l'addition si on ne met pas la ligne suivante */	    g_date_add_months ( echeance -> date,				0 );	  }	else	  if ( echeance -> intervalle_periodicite_personnalisee == 1 )	    g_date_add_months ( echeance -> date,				echeance -> periodicite_personnalisee );	  else	    g_date_add_years ( echeance -> date,			       echeance -> periodicite_personnalisee );  /* on recommence l'incrmentation sur la copie de la date pour avoir la date suivante */  /* permet de voir si c'tait la dernire incrmentation */  date_suivante = g_date_new_dmy ( echeance -> date -> day,				   echeance -> date -> month,				   echeance -> date -> year ); 				     /* priodicit hebdomadaire */  if ( echeance -> periodicite == 1 )    {      g_date_add_days ( date_suivante,			7 );      /* magouille car il semble y avoir un bug dans g_date_add_days qui ne fait pas l'addition si on ne met pas la ligne suivante */      g_date_add_months ( echeance -> date,			  0 );    }  else    /* priodicit mensuelle */    if ( echeance -> periodicite == 2 )      g_date_add_months ( date_suivante,			  1 );    else      /* priodicit annuelle */      if ( echeance -> periodicite == 3 )	g_date_add_years ( date_suivante,			   1 );      else	/* priodicit perso */	if ( !echeance -> intervalle_periodicite_personnalisee )	  {	    /* magouille car il semble y avoir un bug dans g_date_add_days qui ne fait pas l'addition si on ne met pas la ligne suivante */	    g_date_add_months ( echeance -> date,				0 );	    g_date_add_days ( date_suivante,			      echeance -> periodicite_personnalisee );	  }	else	  if ( echeance -> intervalle_periodicite_personnalisee == 1 )	    g_date_add_months ( date_suivante,				echeance -> periodicite_personnalisee );	  else	    g_date_add_years ( date_suivante,			       echeance -> periodicite_personnalisee );    /* si l'chance est finie, on la vire, sinon on met  jour les var jour, mois et anne */  if ( !echeance -> periodicite        ||       (	echeance -> date_limite	&&	g_date_compare ( echeance -> date,			 echeance -> date_limite ) > 0  ))    {      GtkWidget *label;      if ( GTK_BIN ( frame_etat_echeances_finies ) -> child )	{	  p_tab_nom_de_compte_variable = p_tab_nom_de_compte + echeance ->compte;	  if ( echeance -> montant >= 0 )	    label = gtk_label_new ( g_strdup_printf (PRESPACIFY(_("%4.2f %s credit on %s")),						     echeance ->montant,						     devise_name ((struct struct_devise *)(g_slist_find_custom ( liste_struct_devises,												     GINT_TO_POINTER ( echeance -> devise ),												     (GCompareFunc) recherche_devise_par_no )->data)),						     NOM_DU_COMPTE ));	  else	    label = gtk_label_new ( g_strdup_printf (PRESPACIFY(_("%4.2f %s debit on %s")),						     -echeance ->montant,						     devise_name ((struct struct_devise *)(g_slist_find_custom ( liste_struct_devises,												     GINT_TO_POINTER ( echeance -> devise ),												     (GCompareFunc) recherche_devise_par_no )->data)),						     NOM_DU_COMPTE ));	  gtk_misc_set_alignment ( GTK_MISC ( label ),				   0,				   0.5);	  gtk_box_pack_start ( GTK_BOX ( GTK_BIN ( frame_etat_echeances_finies ) -> child ),			       label,			       FALSE,			       TRUE,			       5 );	  gtk_widget_show (  label );	}      else	{	  GtkWidget *vbox;	  vbox = gtk_vbox_new ( FALSE,				5 );	  gtk_container_add ( GTK_CONTAINER ( frame_etat_echeances_finies ),			      vbox );	  gtk_widget_show ( vbox );	  label = gtk_label_new ("");	  gtk_box_pack_start ( GTK_BOX ( vbox ),			       label,			       FALSE,			       FALSE,			       0 );	  gtk_widget_show ( label );	  p_tab_nom_de_compte_variable = p_tab_nom_de_compte + echeance ->compte;	  if ( echeance -> montant >= 0 )	    label = gtk_label_new ( g_strdup_printf (PRESPACIFY(_("%4.2f %s credit on %s")),						     echeance ->montant,						     devise_name ((struct struct_devise *)(g_slist_find_custom ( liste_struct_devises,												     GINT_TO_POINTER ( echeance -> devise ),												     (GCompareFunc) recherche_devise_par_no )->data)),						     NOM_DU_COMPTE ));	  else	    label = gtk_label_new ( g_strdup_printf (PRESPACIFY(_("%4.2f %s debit on %s")),						     -echeance ->montant,						     devise_name ((struct struct_devise *)(g_slist_find_custom ( liste_struct_devises,												     GINT_TO_POINTER ( echeance -> devise ),												     (GCompareFunc) recherche_devise_par_no )->data)),						     NOM_DU_COMPTE ));	  gtk_misc_set_alignment ( GTK_MISC ( label ),				   0,				   0.5);	  gtk_box_pack_start ( GTK_BOX ( vbox ),			       label,			       FALSE,			       TRUE,			       5 );	  gtk_widget_show (  label );	  gtk_widget_show ( frame_etat_echeances_finies );/*  gtk_widget_show ( separateur_ech_finies_soldes_mini ); */	}      gsliste_echeances = g_slist_remove ( gsliste_echeances, 					   echeance );      free ( echeance );      nb_echeances--;      if ( ( echeance_selectionnnee = echeance ))	echeance_selectionnnee = gtk_clist_get_row_data ( GTK_CLIST ( liste_echeances ),							  gtk_clist_find_row_from_data ( GTK_CLIST ( liste_echeances ),											 echeance ) + 1);    }  else    {      echeance -> jour = echeance -> date -> day;      echeance -> mois = echeance -> date -> month;      echeance -> annee = echeance -> date -> year;    }  mise_a_jour_calendrier ();  g_date_free ( date_suivante );}