rem: if ( !nom_fichier_comptes || origine == -2 ) { GtkWidget *dialog; GtkWidget *label; GtkWidget *fenetre_nom; gint resultat; struct stat test_fichier;  dialog = gnome_dialog_new ( _("Name the accounts file"), GNOME_STOCK_BUTTON_OK, GNOME_STOCK_BUTTON_CANCEL, NULL ); gtk_window_set_transient_for ( GTK_WINDOW ( dialog ), GTK_WINDOW ( window )); gnome_dialog_set_default ( GNOME_DIALOG ( dialog ), 0 ); gtk_signal_connect ( GTK_OBJECT ( dialog ), "destroy", GTK_SIGNAL_FUNC ( gtk_signal_emit_stop_by_name ), "destroy" );  label = gtk_label_new ( COLON(_("Enter a name for the account file")) ); gtk_box_pack_start ( GTK_BOX ( GNOME_DIALOG ( dialog ) -> vbox ), label, FALSE, FALSE, 0 ); gtk_widget_show ( label );  fenetre_nom = gnome_file_entry_new ( "nom_fichier", "nom_fichier" ); gnome_file_entry_set_modal ( GNOME_FILE_ENTRY ( fenetre_nom ), TRUE ); gnome_file_entry_set_default_path ( GNOME_FILE_ENTRY ( fenetre_nom ), dernier_chemin_de_travail ); gtk_widget_set_usize ( gnome_file_entry_gnome_entry ( GNOME_FILE_ENTRY ( fenetre_nom )), 300, FALSE ); gtk_entry_set_text ( GTK_ENTRY ( gnome_file_entry_gtk_entry ( GNOME_FILE_ENTRY ( fenetre_nom ))), g_strconcat ( dernier_chemin_de_travail, ".gsb", NULL )); gtk_entry_set_position ( GTK_ENTRY ( gnome_file_entry_gtk_entry ( GNOME_FILE_ENTRY ( fenetre_nom ))), strlen (dernier_chemin_de_travail )); gtk_box_pack_start ( GTK_BOX ( GNOME_DIALOG ( dialog ) -> vbox ), fenetre_nom, FALSE, FALSE, 0 ); gtk_widget_show ( fenetre_nom );  resultat = gnome_dialog_run ( GNOME_DIALOG ( dialog ));  switch ( resultat )
add: if ( !nom_fichier_comptes || origine == -2 ) { GtkWidget *dialog; GtkWidget *label; GtkWidget *fenetre_nom; gint resultat; struct stat test_fichier;  dialog = gnome_dialog_new ( _("Name the accounts file"), GNOME_STOCK_BUTTON_OK, GNOME_STOCK_BUTTON_CANCEL, NULL ); gtk_window_set_transient_for ( GTK_WINDOW ( dialog ), GTK_WINDOW ( window )); gnome_dialog_set_default ( GNOME_DIALOG ( dialog ), 0 ); gtk_signal_connect ( GTK_OBJECT ( dialog ), "destroy", GTK_SIGNAL_FUNC ( gtk_signal_emit_stop_by_name ), "destroy" );  label = gtk_label_new ( COLON(_("Enter a name for the account file")) ); gtk_box_pack_start ( GTK_BOX ( GNOME_DIALOG ( dialog ) -> vbox ), label, FALSE, FALSE, 0 ); gtk_widget_show ( label );  fenetre_nom = gnome_file_entry_new ( "nom_fichier", "nom_fichier" ); gnome_file_entry_set_modal ( GNOME_FILE_ENTRY ( fenetre_nom ), TRUE ); gnome_file_entry_set_default_path ( GNOME_FILE_ENTRY ( fenetre_nom ), dernier_chemin_de_travail ); gnome_dialog_editable_enters ( GNOME_DIALOG ( dialog ), GTK_EDITABLE ( gnome_file_entry_gtk_entry ( GNOME_FILE_ENTRY ( fenetre_nom )))); gtk_widget_set_usize ( gnome_file_entry_gnome_entry ( GNOME_FILE_ENTRY ( fenetre_nom )), 300, FALSE ); gtk_entry_set_text ( GTK_ENTRY ( gnome_file_entry_gtk_entry ( GNOME_FILE_ENTRY ( fenetre_nom ))), g_strconcat ( dernier_chemin_de_travail, ".gsb", NULL )); gtk_entry_set_position ( GTK_ENTRY ( gnome_file_entry_gtk_entry ( GNOME_FILE_ENTRY ( fenetre_nom ))), strlen (dernier_chemin_de_travail )); gtk_box_pack_start ( GTK_BOX ( GNOME_DIALOG ( dialog ) -> vbox ), fenetre_nom, FALSE, FALSE, 0 ); gtk_widget_show ( fenetre_nom );  resultat = gnome_dialog_run ( GNOME_DIALOG ( dialog ));  switch ( resultat )
context: gboolean enregistrement_fichier ( gint origine ){  GtkWidget * dialog;  gint etat_force, result;  if ( !etat.modification_fichier && origine != -2 )    return ( TRUE );  if ( origine == -1 )    {      gchar * hint;      hint = g_strdup_printf (_("Save changes to document '%s' before closing?"),			      (nom_fichier_comptes ? g_path_get_basename(nom_fichier_comptes) : _("unnamed")));      dialog = gtk_message_dialog_new ( GTK_WINDOW (window), 					GTK_DIALOG_DESTROY_WITH_PARENT,					GTK_MESSAGE_WARNING, 					GTK_BUTTONS_NONE,					"" );      gtk_dialog_add_buttons ( GTK_DIALOG(dialog),			       _("Close without saving"), GTK_RESPONSE_NO,			       GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,			       GTK_STOCK_SAVE, GTK_RESPONSE_OK,			       NULL );      gtk_label_set_markup ( GTK_LABEL ( GTK_MESSAGE_DIALOG(dialog)->label ), 			     make_hint ( hint, _("If you close without saving, all of your changes will be discarded.")) );      gtk_window_set_modal ( GTK_WINDOW ( dialog ), TRUE );      switch ( gtk_dialog_run (GTK_DIALOG (dialog)) )	{	case GTK_RESPONSE_OK :	  gtk_widget_destroy ( dialog );	  break;	case GTK_RESPONSE_NO :	  gtk_widget_destroy ( dialog );	  return ( TRUE );	      	default :	  gtk_widget_destroy ( dialog );	  return ( FALSE );	}    }  /* si le fichier de comptes n'a pas de nom, on le demande ici */  if ( !nom_fichier_comptes || origine == -2 )    {      GtkWidget *dialog;      GtkWidget *label;      GtkWidget *fenetre_nom;      gint resultat;      struct stat test_fichier;      dialog = gnome_dialog_new ( _("Name the accounts file"),				  GNOME_STOCK_BUTTON_OK,				  GNOME_STOCK_BUTTON_CANCEL,				  NULL );      gtk_window_set_transient_for ( GTK_WINDOW ( dialog ),				     GTK_WINDOW ( window ));      gnome_dialog_set_default ( GNOME_DIALOG ( dialog ),				 0 );      gtk_signal_connect ( GTK_OBJECT ( dialog ),			   "destroy",			   GTK_SIGNAL_FUNC ( gtk_signal_emit_stop_by_name ),			   "destroy" );      label = gtk_label_new ( COLON(_("Enter a name for the account file")) );      gtk_box_pack_start ( GTK_BOX ( GNOME_DIALOG ( dialog ) -> vbox ),			   label,			   FALSE,			   FALSE,			   0 );      gtk_widget_show ( label );      fenetre_nom = gnome_file_entry_new ( "nom_fichier",					   "nom_fichier" );      gnome_file_entry_set_modal ( GNOME_FILE_ENTRY ( fenetre_nom ),				   TRUE );      gnome_file_entry_set_default_path ( GNOME_FILE_ENTRY ( fenetre_nom ),					  dernier_chemin_de_travail );      gtk_widget_set_usize ( gnome_file_entry_gnome_entry ( GNOME_FILE_ENTRY ( fenetre_nom )),			     300,			     FALSE );      gtk_entry_set_text ( GTK_ENTRY ( gnome_file_entry_gtk_entry ( GNOME_FILE_ENTRY ( fenetre_nom ))),			   g_strconcat ( dernier_chemin_de_travail,					 ".gsb",					 NULL ));      gtk_entry_set_position ( GTK_ENTRY ( gnome_file_entry_gtk_entry ( GNOME_FILE_ENTRY ( fenetre_nom ))),			       strlen (dernier_chemin_de_travail ));      gtk_box_pack_start ( GTK_BOX ( GNOME_DIALOG ( dialog ) -> vbox ),			   fenetre_nom,			   FALSE,			   FALSE,			   0 );      gtk_widget_show ( fenetre_nom );      resultat = gnome_dialog_run ( GNOME_DIALOG ( dialog ));      switch ( resultat )	{	case 0 :	  ancien_nom_fichier_comptes = nom_fichier_comptes;	  nom_fichier_comptes = g_strdup ( g_strstrip ( (gchar *) gtk_entry_get_text ( GTK_ENTRY ( gnome_file_entry_gtk_entry ( GNOME_FILE_ENTRY ( fenetre_nom ))))));	  gnome_dialog_close ( GNOME_DIALOG ( dialog ));	  /* vrification que c'est possible */	  if ( !strlen ( nom_fichier_comptes ))	    {	      nom_fichier_comptes = ancien_nom_fichier_comptes;	      return(FALSE);	    }	  if ( stat ( nom_fichier_comptes,		      &test_fichier ) != -1 )	    {	      if ( S_ISREG ( test_fichier.st_mode ) )		{		  GtkWidget *etes_vous_sur;		  GtkWidget *label;		  if ( ! question_yes_no_hint (_("File already exists"),					       g_strdup_printf (_("Do you want to overwrite file \"%s\"?"), nom_fichier_comptes) ) )		    {		      nom_fichier_comptes = ancien_nom_fichier_comptes;		      return(FALSE);		    }		}	      else		{		  dialogue_error ( g_strdup_printf ( _("Invalid filename: \"%s\"!"),						     nom_fichier_comptes ));		  nom_fichier_comptes = ancien_nom_fichier_comptes;		  return(FALSE);		}	    }	  break;	default :	  gnome_dialog_close ( GNOME_DIALOG ( dialog ));	  return ( FALSE );	}    }  /*   on a maintenant un nom de fichier, on peut sauvegarder */  if ( etat.sauvegarde_auto || origine != -1 )    {      /*       si on fait un enregistrer sous, on peut forcer l'enregistrement */      etat_force = etat.force_enregistrement;      if ( origine == -2 && !etat.force_enregistrement )	etat.force_enregistrement = 1;    }  if ( nom_fichier_backup && strlen(nom_fichier_backup) )    if ( !enregistrement_backup() )      return ( FALSE );  if ( patience_en_cours )    update_attente ( _("Save file") );  else    mise_en_route_attente ( _("Save file") );  result = enregistre_fichier ( 0 );  annulation_attente();  if ( etat.sauvegarde_auto || origine != -1 )    {      etat.force_enregistrement = etat_force;    }  modification_fichier ( FALSE );  affiche_titre_fenetre ();  fichier_marque_ouvert ( TRUE );  ajoute_nouveau_fichier_liste_ouverture ( nom_fichier_comptes );  return ( result );}