rem: if ( !echeance -> periodicite || ( echeance -> date_limite && g_date_compare ( echeance -> date, echeance -> date_limite ) > 0  ))
add: if ( frame_etat_echeances_finies && ( !echeance -> periodicite || ( echeance -> date_limite && g_date_compare ( echeance -> date, echeance -> date_limite ) > 0  )) )
context: void incrementation_echeance ( struct operation_echeance *echeance ){    GDate *date_suivante;    /* périodicité 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	/* périodicité mensuelle */	if ( echeance -> periodicite == 2 )	    g_date_add_months ( echeance -> date,				1 );	else	    /* périodicité annuelle */	    if ( echeance -> periodicite == 3 )		g_date_add_years ( echeance -> date,				   1 );	    else		/* périodicité 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'incrémentation sur la copie de la date pour avoir la date suivante */    /* permet de voir si c'était la dernière incrémentation */    date_suivante = g_date_new_dmy ( echeance -> date -> day,				     echeance -> date -> month,				     echeance -> date -> year );     /* périodicité 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	/* périodicité mensuelle */	if ( echeance -> periodicite == 2 )	    g_date_add_months ( date_suivante,				1 );	else	    /* périodicité annuelle */	    if ( echeance -> periodicite == 3 )		g_date_add_years ( date_suivante,				   1 );	    else		/* périodicité 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'échéance est finie, on la vire, sinon on met à jour les var jour, mois et année */    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_code_by_no ( echeance -> devise ),							 NOM_DU_COMPTE ));	    else		label = gtk_label_new ( g_strdup_printf (PRESPACIFY(_("%4.2f %s debit on %s")),							 -echeance ->montant,							 devise_code_by_no ( echeance -> devise ),							 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_code_by_no ( echeance -> devise ),							 NOM_DU_COMPTE ));	    else		label = gtk_label_new ( g_strdup_printf (PRESPACIFY(_("%4.2f %s debit on %s")),							 -echeance ->montant,							 devise_code_by_no ( echeance -> devise ),							 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 ); */	}	liste_struct_echeances = g_slist_remove ( liste_struct_echeances, 						  echeance );	free ( echeance );	nb_echeances--;	if ( ( echeance_selectionnnee = echeance ))	    echeance_selectionnnee = gtk_clist_get_row_data ( GTK_CLIST ( tree_view_liste_echeances ),							      gtk_clist_find_row_from_data ( GTK_CLIST ( tree_view_liste_echeances ),											     echeance ) + 1);    }    else    {	echeance -> jour = echeance -> date -> day;	echeance -> mois = echeance -> date -> month;	echeance -> annee = echeance -> date -> year;    }    g_date_free ( date_suivante );}