rem: gtk_ctree_insert_node ( GTK_CTREE ( arbre_categ ), ligne, NULL, text, 5, NULL, NULL, NULL, NULL, FALSE, FALSE );
add: if ( etat.affiche_nb_ecritures_listes && nb_ecritures_par_categ[0] ) text[0] = g_strconcat ( _("Aucune sous-catgorie ("), itoa ( nb_ecritures_par_categ[0] ), ")", NULL ); else text[0] = _("Aucune sous-catgorie");  text[1] = NULL; text[2] = g_strdup_printf ( "%4.2f %s", tab_montant_categ[0], devise_compte -> code_devise ); text[3] = NULL;  ligne_sous_categ = gtk_ctree_insert_node ( GTK_CTREE ( arbre_categ ), ligne, NULL, text, 10, NULL, NULL, NULL, NULL, FALSE, FALSE );    ligne_sous_categ = gtk_ctree_insert_node ( GTK_CTREE ( arbre_categ ), ligne_sous_categ, NULL, text, 5, NULL, NULL, NULL, NULL, FALSE, FALSE );    gtk_ctree_node_set_row_data ( GTK_CTREE ( arbre_categ ), ligne_sous_categ, GINT_TO_POINTER (-1));
context: void remplit_arbre_categ ( void ){  gchar *text[4];  GSList *liste_categ_tmp;  struct struct_devise *devise_compte;  gint place_categ;  gint i;  /* freeze le ctree */  gtk_clist_freeze ( GTK_CLIST ( arbre_categ ));  /*   efface l'ancien arbre */  gtk_clist_clear ( GTK_CLIST ( arbre_categ ));  /*   le devise est choisie dans les paramtres */  p_tab_nom_de_compte_variable = p_tab_nom_de_compte;  devise_compte = g_slist_find_custom ( liste_struct_devises,					GINT_TO_POINTER ( no_devise_totaux_tiers ),					( GCompareFunc ) recherche_devise_par_no) -> data;  /* calcule les montants des catg et sous categ */  calcule_total_montant_categ ();  /* remplit l'arbre */  liste_categ_tmp = liste_struct_categories;  place_categ = 0;  while ( liste_categ_tmp )    {      struct struct_categ *categ;      GtkCTreeNode *ligne;      GSList *liste_sous_categ_tmp;      GtkCTreeNode *ligne_sous_categ;      gint place_sous_categ;      categ = liste_categ_tmp -> data;      if ( etat.affiche_nb_ecritures_listes	   &&	   nb_ecritures_par_categ[place_categ+1] )	text[0] = g_strconcat ( categ -> nom_categ,				" (",				itoa ( nb_ecritures_par_categ[place_categ+1] ),				")",				NULL );      else	text[0] = categ -> nom_categ ;      if ( tab_montant_categ[place_categ+1] )	text[1] = g_strdup_printf ( "%4.2f %s",				    tab_montant_categ[place_categ+1],				    devise_compte -> code_devise );      else	text[1] = NULL;      text[2] = NULL;      text[3] = NULL;      ligne = gtk_ctree_insert_node ( GTK_CTREE ( arbre_categ ),				      NULL,				      NULL,				      text,				      10,				      pixmap_ouvre,				      masque_ouvre,				      pixmap_ferme,				      masque_ferme,				      FALSE,				      FALSE );       /* on associe  cette categ  l'adr de sa struct */      gtk_ctree_node_set_row_data ( GTK_CTREE ( arbre_categ ),				    ligne,				    categ );      /*       pour chaque categ, on met ses sous-categ */      liste_sous_categ_tmp = categ -> liste_sous_categ;      place_sous_categ = 0;      while ( liste_sous_categ_tmp )	{	  struct struct_sous_categ *sous_categ;	  sous_categ = liste_sous_categ_tmp -> data;	  if ( tab_montant_sous_categ[place_categ]	       &&	       tab_montant_sous_categ[place_categ][place_sous_categ+1]	       &&	       etat.affiche_nb_ecritures_listes	       &&	       nb_ecritures_par_sous_categ[place_categ][place_sous_categ+1] )	    text[0] = g_strconcat ( sous_categ -> nom_sous_categ,				    " (",				    itoa ( nb_ecritures_par_sous_categ[place_categ][place_sous_categ+1] ),				    ")",				    NULL );	  else	    text[0] = sous_categ -> nom_sous_categ ;	  text[1] = NULL;	  if ( tab_montant_sous_categ[place_categ]	       &&	       tab_montant_sous_categ[place_categ][place_sous_categ+1] )	    text[2] = g_strdup_printf ( "%4.2f %s",					tab_montant_sous_categ[place_categ][place_sous_categ+1],					devise_compte -> code_devise );	  else	    text[2] = NULL;	  text[3] = NULL;	  ligne_sous_categ = gtk_ctree_insert_node ( GTK_CTREE ( arbre_categ ),						     ligne,						     NULL,						     text,						     10,						     NULL,						     NULL,						     NULL,						     NULL,						     FALSE,						     FALSE );	  /* on associe cette sous_categ  l'adr de sa struct */	  gtk_ctree_node_set_row_data ( GTK_CTREE ( arbre_categ ),					ligne_sous_categ,					sous_categ );	  /* pour chacun des sous categ, on met un fils bidon pour pouvoir l'ouvrir */	  gtk_ctree_insert_node ( GTK_CTREE ( arbre_categ ),				  ligne_sous_categ,				  NULL,				  text,				  5,				  NULL,				  NULL,				  NULL,				  NULL,				  FALSE,				  FALSE );	  place_sous_categ++;	  liste_sous_categ_tmp = liste_sous_categ_tmp -> next;	}      /*       on a fini de saisir les sous catgories, s'il y avait des ops sans sous catg, on les mets ici */      if ( tab_montant_sous_categ[place_categ]	   &&	   nb_ecritures_par_sous_categ[place_categ][0])	{	  if ( etat.affiche_nb_ecritures_listes )	    text[0] = g_strconcat ( _("Aucune sous-catgorie ("),				    itoa ( nb_ecritures_par_sous_categ[place_categ][0] ),				    ")",				    NULL );	  else	    text[0] = _("Aucune sous-catgorie");	  text[1] = NULL;	  if ( tab_montant_sous_categ[place_categ][0] )	    text[2] = g_strdup_printf ( "%4.2f %s",					tab_montant_sous_categ[place_categ][0],					devise_compte -> code_devise );	  else	    text[2] = NULL;	  text[3] = NULL;	  ligne_sous_categ = gtk_ctree_insert_node ( GTK_CTREE ( arbre_categ ),						     ligne,						     NULL,						     text,						     10,						     NULL,						     NULL,						     NULL,						     NULL,						     FALSE,						     FALSE );	  /* pour chacun des sous categ, on met un fils bidon pour pouvoir l'ouvrir */	  gtk_ctree_insert_node ( GTK_CTREE ( arbre_categ ),				  ligne_sous_categ,				  NULL,				  text,				  5,				  NULL,				  NULL,				  NULL,				  NULL,				  FALSE,				  FALSE );	}      place_categ++;      liste_categ_tmp = liste_categ_tmp -> next;    }  /*   on a fini de mettre les catgories, on met ici les ops sans catg */  if ( tab_montant_categ[0] )    {      GtkCTreeNode *ligne;      if ( etat.affiche_nb_ecritures_listes	   &&	   nb_ecritures_par_categ[0] )	text[0] = g_strconcat ( _("Aucune catgorie ("),				itoa ( nb_ecritures_par_categ[0] ),				")",				NULL );      else	text[0] = _("Aucune catgorie");      text[1] = g_strdup_printf ( "%4.2f %s",				  tab_montant_categ[0],				  devise_compte -> code_devise );      text[2] = NULL;      text[3] = NULL;      ligne = gtk_ctree_insert_node ( GTK_CTREE ( arbre_categ ),				      NULL,				      NULL,				      text,				      10,				      pixmap_ouvre,				      masque_ouvre,				      pixmap_ferme,				      masque_ferme,				      FALSE,				      FALSE );	  /* on met un fils bidon pour pouvoir l'ouvrir */      gtk_ctree_insert_node ( GTK_CTREE ( arbre_categ ),			      ligne,			      NULL,			      text,			      5,			      NULL,			      NULL,			      NULL,			      NULL,			      FALSE,			      FALSE );    }  /*   on efface les variables */  free ( tab_montant_categ );  free ( nb_ecritures_par_categ );  for ( i=0 ; i<nb_enregistrements_categories ; i++ )    free ( tab_montant_sous_categ[i] );  free ( tab_montant_sous_categ );  for ( i=0 ; i<nb_enregistrements_categories ; i++ )    free ( nb_ecritures_par_sous_categ[i] );  free ( nb_ecritures_par_sous_categ );  gtk_ctree_sort_recursive ( GTK_CTREE ( arbre_categ ),			     NULL );  /* defreeze le ctree */  gtk_clist_thaw ( GTK_CLIST ( arbre_categ ));  enleve_selection_ligne_categ ();  modif_categ = 0;}