add: if ( !devise_compte || devise_compte -> no_devise != gsb_account_get_currency (gsb_transaction_data_get_account_number (transaction_number))) devise_compte = devise_par_no (gsb_account_get_currency (gsb_transaction_data_get_account_number (transaction_number)));
context: gchar *gsb_transactions_list_grep_cell_content ( gint transaction_number,						 gint cell_content_number ){    gchar *temp;    gdouble amount;    /* if it's a breakdown and we want to see the party,     * we show the category */    if ( gsb_transaction_data_get_mother_transaction_number (transaction_number)	 &&	 cell_content_number == TRANSACTION_LIST_PARTY )	cell_content_number = TRANSACTION_LIST_CATEGORY;    switch ( cell_content_number )    {	/* mise en forme de la date */	case TRANSACTION_LIST_DATE:	    return gsb_format_gdate(gsb_transaction_data_get_date (transaction_number));	    break;	    /* mise en forme de la date de valeur */	case TRANSACTION_LIST_VALUE_DATE:	    return gsb_format_gdate(gsb_transaction_data_get_value_date (transaction_number));	    break;	    /* mise en forme du tiers */	case TRANSACTION_LIST_PARTY:	    return ( tiers_name_by_no ( gsb_transaction_data_get_party_number ( transaction_number), TRUE ));	    break;	    /* mise en forme de l'ib */	case TRANSACTION_LIST_BUDGET:	    temp = nom_imputation_par_no ( gsb_transaction_data_get_budgetary_number ( transaction_number),					   gsb_transaction_data_get_sub_budgetary_number ( transaction_number));	    break;	    /* mise en forme du débit */	case TRANSACTION_LIST_DEBIT:	    if ( gsb_transaction_data_get_amount ( transaction_number)< -0.001 ) 		/* -0.001 is to handle float approximations */	    {		temp = g_strdup_printf ( "%4.2f", -gsb_transaction_data_get_amount ( transaction_number));		/* si la devise en cours est différente de celle de l'opé, on la retrouve */		if ( !devise_operation		     ||		     devise_operation -> no_devise != gsb_transaction_data_get_currency_number ( transaction_number))		    devise_operation = devise_par_no ( gsb_transaction_data_get_currency_number ( transaction_number));		if ( devise_operation		     &&		     devise_operation -> no_devise != gsb_account_get_currency (gsb_transaction_data_get_account_number (transaction_number)) )		    temp = g_strconcat ( temp,					 "(",					 devise_code ( devise_operation ),					 ")",					 NULL );		return ( temp );	    }	    else		return ( NULL );	    break;	    /* mise en forme du crédit */	case TRANSACTION_LIST_CREDIT:	    if ( gsb_transaction_data_get_amount ( transaction_number)>= 0 )	    {		temp = g_strdup_printf ( "%4.2f", gsb_transaction_data_get_amount ( transaction_number));		/* si la devise en cours est différente de celle de l'opé, on la retrouve */		if ( !devise_operation		     ||		     devise_operation -> no_devise != gsb_transaction_data_get_currency_number ( transaction_number))		    devise_operation = devise_par_no ( gsb_transaction_data_get_currency_number ( transaction_number));		if ( devise_operation		     &&		     devise_operation -> no_devise != gsb_account_get_currency (gsb_transaction_data_get_account_number (transaction_number)) )		    temp = g_strconcat ( temp,					 "(",					 devise_code ( devise_operation ),					 ")",					 NULL );		return ( temp );	    }	    else		return ( NULL );	    break;	case TRANSACTION_LIST_BALANCE:	    return NULL;	    break;	    /* mise en forme du amount dans la devise du compte */	case TRANSACTION_LIST_AMOUNT:	    if ( gsb_transaction_data_get_currency_number ( transaction_number)!= gsb_account_get_currency (gsb_transaction_data_get_account_number (transaction_number)) )	    {		/* on doit calculer et afficher le amount de l'ope */		amount = gsb_transaction_data_get_adjusted_amount ( transaction_number);		return ( g_strdup_printf ( "(%4.2f %s)",					   amount,					   devise_code ( devise_compte ) ));	    }	    else		return ( NULL );	    break;	    /* mise en forme du moyen de paiement */	case TRANSACTION_LIST_TYPE:	    return ( type_ope_name_by_no ( gsb_transaction_data_get_method_of_payment_number ( transaction_number),					   gsb_transaction_data_get_account_number (transaction_number)));	    break;	    /* mise en forme du no de rapprochement */	case TRANSACTION_LIST_RECONCILE_NB:	    return ( rapprochement_name_by_no ( gsb_transaction_data_get_reconcile_number ( transaction_number)));	    break;	    /* mise en place de l'exo */	case TRANSACTION_LIST_EXERCICE:	    return ( exercice_name_by_no (  gsb_transaction_data_get_financial_year_number ( transaction_number)));	    break;	    /* mise en place des catégories */	case TRANSACTION_LIST_CATEGORY:	    return ( gsb_transactions_get_category_real_name ( transaction_number ));	    break;	    /* mise en forme R/P */	case TRANSACTION_LIST_MARK:	    if ( gsb_transaction_data_get_marked_transaction ( transaction_number)== 1 )		return ( _("P") );	    else	    {		if ( gsb_transaction_data_get_marked_transaction ( transaction_number)== 2 )		    return ( _("T") );		else		{		    if ( gsb_transaction_data_get_marked_transaction ( transaction_number)== 3 )			return ( _("R"));		    else			return ( NULL );		}	    }	    break;	    /* mise en place de la pièce comptable */	case TRANSACTION_LIST_VOUCHER:	    return ( gsb_transaction_data_get_voucher ( transaction_number));	    break;	    /* mise en forme des notes */	case TRANSACTION_LIST_NOTES:	    return ( gsb_transaction_data_get_notes ( transaction_number));	    break;	    /* mise en place de l'info banque/guichet */	case TRANSACTION_LIST_BANK:	    return ( gsb_transaction_data_get_bank_references ( transaction_number));	    break;	    /* mise en place du no d'opé */	case TRANSACTION_LIST_NO:	    return ( utils_str_itoa ( transaction_number ));	    break;	    /* mise en place du no de chèque/virement */	case TRANSACTION_LIST_CHQ:	    if ( gsb_transaction_data_get_method_of_payment_content ( transaction_number))		return ( g_strconcat ( "(",				       gsb_transaction_data_get_method_of_payment_content ( transaction_number),				       ")",				       NULL ));	    else		return ( NULL );	    break;    }    return ( NULL );}