rem: break;
context: gboolean fermer_fichier ( void ){    gint result;    if ( DEBUG)	printf ( "fermer_fichier\n" );    if ( !gsb_data_account_get_accounts_amount () )	return ( TRUE );    /*     on propose d'enregistrer */    result = question_fermer_sans_enregistrer();    switch ( result )    {	case GTK_RESPONSE_OK:	    /* 	    on a choisi d'enregistrer, si va pas, on s'en va */	    if ( !enregistrement_fichier (-1) )		return ( FALSE );	case GTK_RESPONSE_NO :	    /* 	    l'enregistrement s'est bien passé ou on a choisi de ne pas enregistrer */	    /*     on enregistre la config */	     gsb_file_config_save_config();	    /* si le fichier n'était pas déjà ouvert, met à 0 l'ouverture */	    if ( !etat.fichier_deja_ouvert		 &&		 gsb_data_account_get_accounts_amount ()		 &&		 nom_fichier_comptes )		gsb_file_util_modify_lock ( FALSE );	    /* libère les opérations de tous les comptes */	    g_slist_free ( gsb_data_transaction_get_transactions_list ());	    g_slist_free ( gsb_data_account_get_list_accounts () );	    /* libère les échéances */	    g_slist_free ( gsb_data_scheduled_get_scheduled_list () );	    g_slist_free ( scheduled_transactions_to_take );	    g_slist_free ( scheduled_transactions_taken );	    gtk_signal_disconnect_by_func ( GTK_OBJECT ( notebook_general ),					    GTK_SIGNAL_FUNC ( gsb_gui_on_notebook_switch_page ),					    NULL );	    gtk_widget_destroy ( main_vbox );	    init_variables ();	    affiche_titre_fenetre();	    menus_sensitifs ( FALSE );	    return ( TRUE );	    break;	default :	    return FALSE;    }}