add: if ( compte_courant_onglet ) compte_courant_onglet--;
context: void supprimer_compte ( void ){  GtkWidget *dialog;  GtkWidget *label;  GtkWidget *liste_comptes;  gint resultat;  short actualise = 0, i;  GSList *pointeur_liste;  gint compte_modifie;  gchar *nom_compte_supprime;  gint page_en_cours;  dialog = gnome_dialog_new ( _("Slection d'un compte"),			      GNOME_STOCK_BUTTON_OK,			      GNOME_STOCK_BUTTON_CANCEL,			      NULL );  gtk_window_set_transient_for ( GTK_WINDOW ( dialog ),				 GTK_WINDOW ( window ));  gtk_signal_connect ( GTK_OBJECT ( dialog),		       "destroy_event",		       GTK_SIGNAL_FUNC ( blocage_boites_dialogues ),		       NULL );  gtk_signal_connect ( GTK_OBJECT ( dialog ),		       "destroy_event",		       GTK_SIGNAL_FUNC ( blocage_boites_dialogues ),		       GINT_TO_POINTER ( 1 ) );  p_tab_nom_de_compte_variable = p_tab_nom_de_compte;  label = gtk_label_new ( _("Choisir le compte  supprimer :\n\n\n( Attention, il s'agit d'un suppression dfinitive !\n Pour clturer un compte, il faut\naller dans le dtail du compte concern. )") );  gtk_box_pack_start ( GTK_BOX ( GNOME_DIALOG ( dialog ) -> vbox ),		       label,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( label );  liste_comptes = gtk_option_menu_new ();  gtk_option_menu_set_menu ( GTK_OPTION_MENU ( liste_comptes ),			     creation_option_menu_comptes () );  gtk_option_menu_set_history ( GTK_OPTION_MENU ( liste_comptes ),				compte_courant_onglet );  gtk_box_pack_start ( GTK_BOX ( GNOME_DIALOG ( dialog ) -> vbox ),		       liste_comptes,		       FALSE,		       FALSE,		       5 );  gtk_widget_show ( liste_comptes );  resultat = gnome_dialog_run ( GNOME_DIALOG ( dialog ));  /* le compte  supprimer est maintenant choisi */  if ( resultat )    {      gnome_dialog_close ( GNOME_DIALOG ( dialog ));      return;    }  compte_modifie = GPOINTER_TO_INT ( gtk_object_get_data ( GTK_OBJECT ( GTK_OPTION_MENU ( liste_comptes ) -> menu_item ),							   "no_compte" ) );  gnome_dialog_close  ( GNOME_DIALOG ( dialog ));/* on commence ici la suppression du compte */ /* si qu'un compte, on fermer le fichier */  if ( nb_comptes == 1 )    {      etat.modification_fichier = 0;      fermer_fichier ();      return;    }    /* supprime l'onglet du compte */  gtk_notebook_remove_page ( GTK_NOTEBOOK ( notebook_listes_operations ),			     compte_modifie + 1 );  /*       suppression des chances */  while ( ( pointeur_liste = g_slist_find_custom ( gsliste_echeances,						   GINT_TO_POINTER ( compte_modifie ),						   (GCompareFunc) cherche_compte_dans_echeances ) ) )    {      if ( echeance_selectionnnee == ECHEANCE_COURANTE )	ECHEANCE_COURANTE = -1;      gsliste_echeances = g_slist_remove ( gsliste_echeances, 					   ECHEANCE_COURANTE );      nb_echeances--;    }  /* supprime le compte de la liste de l'ordre des comptes */  ordre_comptes = g_slist_remove ( ordre_comptes,				   GINT_TO_POINTER ( compte_modifie ));  /* modifie les numros des comptes suprieurs au compte supprim dans l'ordre des comptes */  pointeur_liste = ordre_comptes;  do    {      if ( GPOINTER_TO_INT ( pointeur_liste -> data ) > compte_modifie )	pointeur_liste -> data--;    }  while ( ( pointeur_liste = pointeur_liste -> next ) );  if ( compte_courant == compte_modifie )    {      actualise = 1;      compte_courant = 0;    }  else    if ( compte_courant > compte_modifie )      {	compte_courant--;	actualise = 0;      }  p_tab_nom_de_compte_variable = p_tab_nom_de_compte + compte_modifie;  p_tab_nom_de_compte_courant = p_tab_nom_de_compte + compte_courant;  nb_comptes--;  g_slist_free ( LISTE_OPERATIONS );  nom_compte_supprime = g_strdup ( NOM_DU_COMPTE );/* on dcale en mmoire les comptes situs aprs */  for ( i = compte_modifie ; i < nb_comptes ; i++ )    {      NO_COMPTE = NO_COMPTE -1;      *p_tab_nom_de_compte_variable = *(p_tab_nom_de_compte_variable + 1);      p_tab_nom_de_compte_variable++;    }  /* recherche les chances pour les comptes plas aprs le compe supprim */  /* pour leur diminuer leur numro de compte de 1 */  pointeur_liste = gsliste_echeances;  while ( pointeur_liste )    {      if ( ECHEANCE_COURANTE -> compte > compte_modifie )	ECHEANCE_COURANTE -> compte--;      if ( ECHEANCE_COURANTE -> compte_virement > compte_modifie )	ECHEANCE_COURANTE -> compte_virement--;      pointeur_liste = pointeur_liste -> next;    }  /*   fait le tour des ops de tous les comptes, */  /*     pour les ops des comptes >  celui supprim, on descend le no de compte */  /*     pour les virements vers le compte supprim, met relation_no_compte  -1 */  p_tab_nom_de_compte_variable = p_tab_nom_de_compte;  for ( i=0 ; i < nb_comptes ; i++ )    {      GSList *pointeur_tmp;      pointeur_tmp = LISTE_OPERATIONS;      while ( pointeur_tmp )	{	  struct structure_operation *operation;	  operation = pointeur_tmp -> data;	  if ( operation -> no_compte > compte_modifie )	    operation -> no_compte--;	  if ( operation -> relation_no_operation )	    {	      if ( operation -> relation_no_compte == compte_modifie )		{		  operation -> relation_no_compte = -1;		  MISE_A_JOUR = 1;		}	      else		if ( operation -> relation_no_compte > compte_modifie )		  operation -> relation_no_compte--;	    }	  pointeur_tmp = pointeur_tmp -> next;	}      p_tab_nom_de_compte_variable++;    }  /* retire le bouton du compte dans la liste des comptes */  /*   pour cela, on efface vbox_liste_comptes et on le recre */  reaffiche_liste_comptes();  reaffiche_liste_comptes_onglet ();  /* on recre les combofix des tiers et des catgories */  mise_a_jour_tiers();  mise_a_jour_categ();  mise_a_jour_imputation();/* on met  jour l'option menu du formulaire des chances */  gtk_option_menu_set_menu ( GTK_OPTION_MENU ( widget_formulaire_echeancier[5] ),			     creation_option_menu_comptes () );  /* raffiche la liste si necessaire */  page_en_cours = gtk_notebook_get_current_page ( GTK_NOTEBOOK ( notebook_general ));  changement_compte ( GINT_TO_POINTER ( compte_courant ));  gtk_notebook_set_page ( GTK_NOTEBOOK ( notebook_general ),			  page_en_cours );        remplissage_liste_echeance ();  update_liste_echeances_manuelles_accueil();  update_liste_comptes_accueil ();  mise_a_jour_soldes_minimaux ();  mise_a_jour_fin_comptes_passifs();  remplissage_liste_comptes_etats ();  selectionne_liste_comptes_etat_courant ();  modification_fichier( TRUE ); }