rem: account_number = gsb_transaction_data_get_account_number (transaction_number);
add: if ( transaction_number != -1 ) account_number = gsb_transaction_data_get_account_number (transaction_number); else account_number = gsb_account_get_current_account ();
context: gboolean gsb_transactions_list_set_current_transaction ( gint transaction_number,							 gint mother_transaction_number ){    GtkTreeIter *iter;    gint i;    GdkColor *couleur;    GtkTreeModel *model;    gint current_transaction_number;    gint account_number;     if ( DEBUG )	printf ( "gsb_transactions_list_set_current_transaction %d\n",		 transaction_number);   if ( !gsb_transactions_list_get_tree_view()	 ||	 !transaction_number )	return FALSE;   account_number = gsb_transaction_data_get_account_number (transaction_number);    current_transaction_number =  gsb_account_get_current_transaction_number (account_number);    /*     si gsb_account_get_finished_selection_transaction ()=0, c'est qu'il n'y a encore aucune sélection sur la liste */    /*     donc transaction_number = current_transaction = -1, mais on ne se barre pas */    /*     sinon si on est déjà dessus, on se barre */    if ( transaction_number == current_transaction_number )	return FALSE;    model = GTK_TREE_MODEL (gsb_transactions_list_get_store());    /*   vire l'ancienne sélection : consiste à remettre la couleur d'origine du background */    iter = gsb_transactions_list_get_iter_from_transaction (current_transaction_number);    if ( iter )    {	/* 	iter est maintenant positionné sur la 1ère ligne de l'opé à désélectionner */	for ( i=0 ; i<gsb_account_get_nb_rows ( account_number ) ; i++ )	{	    gtk_tree_model_get ( GTK_TREE_MODEL ( model ),				 iter,				 TRANSACTION_COL_NB_SAVE_BACKGROUND, &couleur,				 -1 );	    gtk_list_store_set ( GTK_LIST_STORE ( model ),				 iter,				 TRANSACTION_COL_NB_BACKGROUND,couleur,				 -1 );	    gtk_list_store_set ( GTK_LIST_STORE ( model ),				 iter,				 TRANSACTION_COL_NB_SAVE_BACKGROUND, NULL,				 -1 );	    /* if it's a breakdown of transaction, it's only 1 line */	    if ( current_transaction_number != -1		 &&		 gsb_transaction_data_get_mother_transaction_number (current_transaction_number))		i = gsb_account_get_nb_rows (account_number);	    gtk_tree_model_iter_next ( GTK_TREE_MODEL ( model ),				       iter );	}    }    gsb_account_set_current_transaction_number ( account_number,						 transaction_number);    iter = gsb_transactions_list_get_iter_from_transaction (transaction_number);    if ( iter )    {	/* 	iter est maintenant positionne sur la 1ère ligne de l'ope à sélectionner */	for ( i=0 ; i<gsb_account_get_nb_rows ( account_number ) ; i++ )	{	    gtk_tree_model_get ( GTK_TREE_MODEL ( model ),				 iter,				 TRANSACTION_COL_NB_BACKGROUND, &couleur,				 -1 );	    gtk_list_store_set ( GTK_LIST_STORE ( model ),				 iter,				 TRANSACTION_COL_NB_BACKGROUND, &couleur_selection,				 -1 );	    gtk_list_store_set ( GTK_LIST_STORE ( model ),				 iter,				 TRANSACTION_COL_NB_SAVE_BACKGROUND, couleur,				 -1 );	    /* if it's a breakdown of transaction, it's only 1 line */	    if ( transaction_number != -1		 &&		 gsb_transaction_data_get_mother_transaction_number (transaction_number))		i = gsb_account_get_nb_rows (account_number);	    gtk_tree_model_iter_next ( GTK_TREE_MODEL ( model ),				       iter );	}    }    return FALSE;}