add: if ( !nouveau_tiers ) { dialogue_error_hint ( _("Grisbi is unable to find this third party.  Be sure entered name is valid and that this third party exists."), g_strdup_printf ( _("Third party %s not found."), gtk_combofix_get_text ( GTK_COMBOFIX ( combofix ) ) ) ); goto retour_dialogue; }
context: void supprimer_tiers ( GtkWidget *bouton,		       gpointer null ){    struct struct_tiers *tiers;    GtkCTreeNode *node;    GSList *pointeur_ope;    gint i;    gint ope_trouvee;    node = GTK_CTREE_NODE ( ( GTK_CLIST ( arbre_tiers ) -> selection ) -> data );    tiers = gtk_ctree_node_get_row_data ( GTK_CTREE ( arbre_tiers ),					  node );    /* on fait le tour de tous les comptes pour vérifier s'il reste une opé à ce tiers */    p_tab_nom_de_compte_variable = p_tab_nom_de_compte;    ope_trouvee = 0;    for ( i = 0 ; i < nb_comptes ; i++ )    {	pointeur_ope = LISTE_OPERATIONS;	while ( pointeur_ope )	{	    struct structure_operation *operation;	    operation = pointeur_ope -> data;	    if ( operation -> tiers == tiers -> no_tiers )	    {		/* une opération associée à ce tiers a été trouvée  = > on sort de la recherche */		pointeur_ope = NULL;		i = nb_comptes;		ope_trouvee = 1;	    }	    else		pointeur_ope = pointeur_ope -> next;	}	p_tab_nom_de_compte_variable++;    }    /* fait le tour des échéances pour vérifier s'il reste une opé à ce tiers */    if ( !ope_trouvee )    {	pointeur_ope = liste_struct_echeances;	while ( pointeur_ope )	{	    struct operation_echeance *echeance;	    echeance = pointeur_ope -> data;	    if ( echeance -> tiers == tiers -> no_tiers )	    {		pointeur_ope = NULL;		ope_trouvee = 1;	    }	    else		pointeur_ope = pointeur_ope -> next;	}    }    if ( ope_trouvee )    {	GtkWidget *dialog, *hbox, *bouton_tiers_generique, *combofix, *bouton_transfert;	GSList *liste_combofix, *pointeur;	gint i, resultat, nouveau_no;	struct struct_tiers *nouveau_tiers;	dialog = dialogue_special_no_run ( GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL,					   make_hint ( g_strdup_printf (_("Third party '%s' still contains transactions."), tiers -> nom_tiers ),						       _("If you want to remove this third party but want to keep transactions, you can transfer them to another third party.  Otherwise, transactions can be simply deleted along with this third party.") ));	/*       mise en place du choix tranfert vers un autre tiers */	hbox = gtk_hbox_new ( FALSE,			      5 );	gtk_box_pack_start ( GTK_BOX ( GTK_DIALOG ( dialog ) -> vbox ),			     hbox,			     FALSE,			     FALSE,			     0 );	bouton_transfert = gtk_radio_button_new_with_label ( NULL,							     POSTSPACIFY(_("Transfer the transactions to"))  );	gtk_box_pack_start ( GTK_BOX ( hbox ),			     bouton_transfert,			     FALSE,			     FALSE,			     0 );	pointeur = liste_struct_tiers;	liste_combofix = NULL;	while ( pointeur )	{	    if ( ((struct struct_tiers * )( pointeur -> data )) -> no_tiers != tiers -> no_tiers )		liste_combofix = g_slist_append ( liste_combofix,						  ((struct struct_tiers * )( pointeur -> data )) -> nom_tiers );	    pointeur = pointeur -> next;	}	combofix = gtk_combofix_new ( liste_combofix,				      TRUE,				      TRUE,				      TRUE,				      50 );	gtk_box_pack_start ( GTK_BOX ( hbox ),			     combofix,			     FALSE,			     FALSE,			     0 );	/*       mise en place du choix supprimer le tiers */	hbox = gtk_hbox_new ( FALSE,			      5 );	gtk_box_pack_start ( GTK_BOX ( GTK_DIALOG ( dialog ) -> vbox ),			     hbox,			     FALSE,			     FALSE,			     0 );	bouton_tiers_generique = gtk_radio_button_new_with_label ( gtk_radio_button_group ( GTK_RADIO_BUTTON ( bouton_transfert )),								   PRESPACIFY(_("Just delete this third party.")) );	gtk_box_pack_start ( GTK_BOX ( hbox ),			     bouton_tiers_generique,			     FALSE,			     FALSE,			     0 );	gtk_widget_show_all ( dialog );retour_dialogue:	resultat = gtk_dialog_run ( GTK_DIALOG ( dialog ) );	if ( resultat != GTK_RESPONSE_OK )	  {	    gtk_widget_destroy ( GTK_WIDGET ( dialog ) );	    return;	  }	if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( bouton_transfert )) )	{	    if ( !strlen (gtk_combofix_get_text ( GTK_COMBOFIX ( combofix ))))	    {		dialogue_warning_hint ( _("It is compulsory to specify a destination third party to move transactions but no third party was entered."),					_("Please enter a third party!"));		goto retour_dialogue;	    }	    /* recherche du nouveau numéro de tiers */	    nouveau_tiers = tiers_par_nom ( gtk_combofix_get_text ( GTK_COMBOFIX ( combofix )),					    0 );	    nouveau_no = nouveau_tiers -> no_tiers;	}	else	    nouveau_no = 0;	/* on fait le tour des opés pour mettre le nouveau numéro de tiers */	p_tab_nom_de_compte_variable = p_tab_nom_de_compte;	for ( i = 0 ; i < nb_comptes ; i++ )	{	    pointeur_ope = LISTE_OPERATIONS;	    while ( pointeur_ope )	    {		struct structure_operation *operation;		operation = pointeur_ope -> data;		if ( operation -> tiers == tiers -> no_tiers )		    operation -> tiers = nouveau_no;		pointeur_ope = pointeur_ope -> next;	    }	    p_tab_nom_de_compte_variable++;	}	/* fait le tour des échéances pour mettre le nouveau numéro de tiers */	pointeur_ope = liste_struct_echeances;	while ( pointeur_ope )	{	    struct operation_echeance *echeance;	    echeance = pointeur_ope -> data;	    if ( echeance -> tiers == tiers -> no_tiers )		echeance -> tiers = nouveau_no;	    pointeur_ope = pointeur_ope -> next;	}	demande_mise_a_jour_tous_comptes ();	remplissage_liste_echeance();	gtk_widget_destroy ( GTK_WIDGET ( dialog ) );    }    /* supprime dans la liste des tiers  */    liste_struct_tiers = g_slist_remove ( liste_struct_tiers,					  tiers );    nb_enregistrements_tiers--;    if ( mise_a_jour_combofix_tiers_necessaire )	mise_a_jour_combofix_tiers ();    remplit_arbre_tiers ();/*     gtk_text_set_editable ( GTK_TEXT ( text_box ), *//* 			    FALSE ); */    modification_fichier(TRUE);}