rem: if ( operation ) devise_operation = devise_par_no ( operation -> devise );
context: gboolean categ_column_expanded  (GtkTreeView * treeview, GtkTreeIter * iter, GtkTreePath * tree_path, 				 gpointer user_data ) {    GtkTreeIter child_iter;    gchar *name;    gint no_categ, no_sous_categ;    gtk_tree_model_iter_children(GTK_TREE_MODEL(categ_tree_model), 				 &child_iter, iter);    gtk_tree_model_get ( GTK_TREE_MODEL(categ_tree_model), &child_iter,			 CATEGORY_TREE_TEXT_COLUMN, &name, 			 -1 );    if (!name)    {	gboolean first = TRUE;	gint account;	gtk_tree_model_get ( GTK_TREE_MODEL(categ_tree_model), iter,			     CATEGORY_TREE_NO_CATEG_COLUMN, &no_categ,			     CATEGORY_TREE_NO_SUB_CATEG_COLUMN, &no_sous_categ,			     -1 );	for ( account = 0; account < nb_comptes; account ++ )	{	    GSList *pointeur_ope;	    p_tab_nom_de_compte_variable = p_tab_nom_de_compte + GPOINTER_TO_INT ( account );	    	    pointeur_ope = LISTE_OPERATIONS;	    	    while ( pointeur_ope )	    {		struct struct_devise *devise_operation;		struct structure_operation *operation;				operation = pointeur_ope -> data;				if ( operation )		    devise_operation = devise_par_no ( operation -> devise );				if ( operation &&		     operation -> categorie == no_categ &&		     operation -> sous_categorie == no_sous_categ &&		     !operation -> relation_no_operation &&		     !operation -> operation_ventilee )		{		    gchar *montant, * label, * notes = NULL; /* free */		    if ( operation -> notes )		    {			if ( strlen ( operation -> notes ) > 30 )			{			    gchar * tmp = (operation -> notes) + 30;			    tmp = strchr ( tmp, ' ' );			    if ( !tmp )			    {				/* We do not risk splitting the string				   in the middle of a UTF-8 accent				   ... the end is probably near btw. */				notes = operation -> notes;			    }			    else 			    {				gchar * trunc = g_strndup ( operation -> notes, 							    ( tmp - operation -> notes ) );				notes = g_strconcat ( trunc, " ...", NULL );				free ( trunc );			    }			}			else 			{			    notes = operation -> notes;			}		    }		    else		    {			struct struct_tiers * tiers = tiers_par_no ( operation -> tiers );			if ( tiers )			{			    notes = tiers -> nom_tiers;			}		    }		    label = g_strdup_printf ( _("%02d/%02d/%04d"),					      operation -> jour,					      operation -> mois,					      operation -> annee ); 		    if ( notes )		    {			label = g_strconcat ( label, " : ", notes, NULL );		    }		    if ( operation -> no_operation_ventilee_associee )		    {			label = g_strconcat ( label, " (", _("breakdown"), ")", NULL );		    }		    montant = g_strdup_printf ( "%4.2f %s", operation -> montant,						devise_code ( devise_par_no ( operation -> devise ) ) );		    if ( !first )		    {			gtk_tree_store_append( GTK_TREE_STORE(categ_tree_model), 					      &child_iter, iter);		    }		    else		    {			first = FALSE;		    }		    gtk_tree_store_set (GTK_TREE_STORE(categ_tree_model), &child_iter, 					CATEGORY_TREE_POINTER_COLUMN, operation,					CATEGORY_TREE_TEXT_COLUMN, label,					CATEGORY_TREE_ACCOUNT_COLUMN, NOM_DU_COMPTE,					CATEGORY_TREE_BALANCE_COLUMN, montant,					CATEGORY_TREE_NO_CATEG_COLUMN, -1,					CATEGORY_TREE_NO_SUB_CATEG_COLUMN, -1,					CATEGORY_TREE_XALIGN_COLUMN, 1.0,					-1);		}				pointeur_ope = pointeur_ope -> next;	    }	}    }    return FALSE;}