rem: if ( etat.r_affiches || operation -> pointe != 2 ) {    gchar date [11]; gchar date_bancaire [11]; GSList *liste_tmp;   devise_operation = g_slist_find_custom ( liste_struct_devises, GINT_TO_POINTER ( operation -> devise ), ( GCompareFunc ) recherche_devise_par_no ) -> data;     for ( i = 0 ; i < 7 ; i++ ) { ligne1 [i] = NULL; ligne2 [i] = NULL; ligne3 [i] = NULL; ligne4 [i] = NULL; }    g_date_strftime (  date, 11, "%d/%m/%Y", operation -> date); ligne1 [1] = date;    if ( operation -> tiers ) { liste_tmp = g_slist_find_custom ( liste_struct_tiers, GINT_TO_POINTER ( operation -> tiers ), ( GCompareFunc ) recherche_tiers_par_no );  ligne1 [2] = (( struct struct_tiers * )( liste_tmp -> data )) -> nom_tiers; }    if ( operation -> pointe == 1 ) ligne1 [3] = "P"; else if ( operation -> pointe == 2 ) ligne1 [3] = "R";     if ( operation -> montant < 0 ) { ligne1 [4] = g_strdup_printf ( "%4.2f", -operation -> montant ); if ( devise_operation -> no_devise != DEVISE ) ligne1 [4] = g_strconcat ( ligne1 [4], "(", devise_operation -> code_devise, ")", NULL ); } else { ligne1 [5] = g_strdup_printf ( "%4.2f", operation -> montant ); if ( devise_operation -> no_devise != DEVISE ) ligne1 [5] = g_strconcat ( ligne1 [5], "(", devise_operation -> code_devise, ")", NULL ); }      if ( operation -> type_ope && TYPES_OPES ) { liste_tmp = g_slist_find_custom ( TYPES_OPES, GINT_TO_POINTER ( operation -> type_ope ), (GCompareFunc) recherche_type_ope_par_no );    if ( liste_tmp ) { struct struct_type_ope *type;  type = liste_tmp -> data;   if ( nb_lignes_ope != 1 ) ligne2 [4] = type -> nom_type;    if ( operation -> contenu_type ) { if ( type -> numerotation_auto ) ligne1[0] = operation -> contenu_type; else if ( nb_lignes_ope != 1 ) ligne3[4] = g_strconcat ( "(", operation -> contenu_type, ")", NULL ); } } }     if ( nb_lignes_ope != 1 ) {    if ( operation -> date_bancaire && etat.affiche_date_bancaire ) { g_date_strftime (  date_bancaire, 11, "%d/%m/%Y", operation -> date_bancaire); ligne2 [1] = date_bancaire; }    liste_tmp = g_slist_find_custom ( liste_struct_categories, GINT_TO_POINTER ( operation -> categorie ), ( GCompareFunc ) recherche_categorie_par_no );  if ( liste_tmp ) { GSList *liste_tmp_2;  liste_tmp_2 = g_slist_find_custom ( (( struct struct_categ * )( liste_tmp -> data )) -> liste_sous_categ, GINT_TO_POINTER ( operation -> sous_categorie ), ( GCompareFunc ) recherche_sous_categorie_par_no ); if ( liste_tmp_2 ) ligne2 [2] = g_strconcat ( (( struct struct_categ * )( liste_tmp -> data )) -> nom_categ, " : ", (( struct struct_sous_categ * )( liste_tmp_2 -> data )) -> nom_sous_categ, NULL ); else ligne2 [2] = (( struct struct_categ * )( liste_tmp -> data )) -> nom_categ;  }    if ( operation -> relation_no_operation ) { gpointer **save_ptab;  if ( operation -> relation_no_compte == -1 ) { if ( operation -> montant < 0 ) ligne2 [2] = _("Virement vers un compte supprim"); else ligne2 [2] = _("Virement d'un compte supprim"); } else { save_ptab = p_tab_nom_de_compte_variable; p_tab_nom_de_compte_variable = p_tab_nom_de_compte + operation -> relation_no_compte;  if ( operation -> montant < 0 ) ligne2 [2] = g_strconcat ( _("Virement vers "), NOM_DU_COMPTE, NULL ); else ligne2 [2] = g_strconcat ( _("Virement de "), NOM_DU_COMPTE, NULL );  p_tab_nom_de_compte_variable = save_ptab; } }     if ( operation -> operation_ventilee ) ligne2 [2] = _("Opration ventile");     if ( nb_lignes_ope == 4 ) {    if ( operation -> no_exercice ) { struct struct_exercice *exercice;  exercice = g_slist_find_custom ( liste_struct_exercices, GINT_TO_POINTER ( operation -> no_exercice ), (GCompareFunc) recherche_exercice_par_no ) -> data;  ligne3 [1] = exercice -> nom_exercice; }    liste_tmp = g_slist_find_custom ( liste_struct_imputation, GINT_TO_POINTER ( operation -> imputation ), ( GCompareFunc ) recherche_imputation_par_no );  if ( liste_tmp ) { GSList *liste_tmp_2;  liste_tmp_2 = g_slist_find_custom ( (( struct struct_categ * )( liste_tmp -> data )) -> liste_sous_categ, GINT_TO_POINTER ( operation -> sous_imputation ), ( GCompareFunc ) recherche_sous_imputation_par_no ); if ( liste_tmp_2 ) ligne3 [2] = g_strconcat ( (( struct struct_categ * )( liste_tmp -> data )) -> nom_categ, " : ", (( struct struct_sous_categ * )( liste_tmp_2 -> data )) -> nom_sous_categ, NULL ); else ligne3 [2] = (( struct struct_categ * )( liste_tmp -> data )) -> nom_categ; }    if ( operation -> no_piece_comptable ) ligne4 [4] = operation -> no_piece_comptable;    ligne4 [2] = operation -> notes; } else   ligne3 [2] = operation -> notes; }      ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ), ligne1 );   gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS), ligne, operation); if ( nb_lignes_ope != 1 ) { ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ), ligne2); gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS), ligne, operation);  ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ), ligne3); gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS), ligne, operation);  if ( nb_lignes_ope == 4 ) { ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ), ligne4 ); gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS), ligne, operation); } }  } } liste_operations_tmp = liste_operations_tmp -> next; }       for ( i = 0 ; i < 7 ; i++ ) ligne1 [i] = NULL;     ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ), ligne1 );    gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS), ligne, GINT_TO_POINTER ( -1 ));  if ( nb_lignes_ope != 1 ) { ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ), ligne1); gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS), ligne, GINT_TO_POINTER ( -1 )); ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ), ligne1); gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS), ligne, GINT_TO_POINTER ( -1 ));  if ( nb_lignes_ope == 4 ) { ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ), ligne1); gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS), ligne, GINT_TO_POINTER ( -1 )); } }      gtk_clist_sort ( GTK_CLIST ( CLIST_OPERATIONS ));     couleur_en_cours = 0;    solde_pointe = solde_courant;  for ( ligne = 0 ; ligne < GTK_CLIST (CLIST_OPERATIONS) -> rows ; ligne++ ) { struct structure_operation *operation;    if ( patience_en_cours ) while ( g_main_iteration ( FALSE ) );  operation = gtk_clist_get_row_data ( GTK_CLIST (CLIST_OPERATIONS), ligne );  devise_operation = NULL;  if ( operation != GINT_TO_POINTER ( -1 ) ) { gdouble montant;
context: void remplissage_liste_operations ( gint compte ){  GSList *liste_operations_tmp;  gdouble solde_courant;  gdouble solde_pointe;  gint couleur_en_cours;  gchar *ligne1 [7];  gchar *ligne2 [7];  gchar *ligne3 [7];  gchar *ligne4 [7];  gint i;  gint ligne;  struct struct_devise *devise_compte;  struct struct_devise *devise_operation;  p_tab_nom_de_compte_variable = p_tab_nom_de_compte + compte;/* freeze la clist */  gtk_clist_freeze ( GTK_CLIST ( CLIST_OPERATIONS ));  /* efface la clist */  gtk_clist_clear ( GTK_CLIST ( CLIST_OPERATIONS ));  /* met les titres des colonnes appropris aux nb de lignes affichs */  if ( nb_lignes_ope == 1 )    {      gtk_clist_set_column_title ( GTK_CLIST ( CLIST_OPERATIONS ),				   1,				   _("Date") );      gtk_clist_set_column_title ( GTK_CLIST ( CLIST_OPERATIONS ),				   2,				   _("Tiers") );      gtk_clist_set_column_title ( GTK_CLIST ( CLIST_OPERATIONS ),				   3,				   _("R") );    }  else    {      if ( nb_lignes_ope == 3 )	{	  gtk_clist_set_column_title ( GTK_CLIST ( CLIST_OPERATIONS ),				       1,				       _("Dates") );	  gtk_clist_set_column_title ( GTK_CLIST ( CLIST_OPERATIONS ),				       2,				       _("Tiers, Catgories, Notes") );	  gtk_clist_set_column_title ( GTK_CLIST ( CLIST_OPERATIONS ),				       4,				       _("Dbit, Type, N virement") );	}      else	{	  gtk_clist_set_column_title ( GTK_CLIST ( CLIST_OPERATIONS ),				       1,				       _("Dates / Exercice") );	  gtk_clist_set_column_title ( GTK_CLIST ( CLIST_OPERATIONS ),				       2,				       _("Tiers, Catgories, I.B., Notes") );	  gtk_clist_set_column_title ( GTK_CLIST ( CLIST_OPERATIONS ),				       4,				       _("Dbit, Type, N virement, PC") );	}    }  /* rcupre l'adr de la devise du compte */  devise_compte = g_slist_find_custom ( liste_struct_devises,					GINT_TO_POINTER ( DEVISE ),					( GCompareFunc ) recherche_devise_par_no) -> data;  /*   si les oprations R ne sont pas affiches, on fait une premire fois le tour des ops */  /* en modifiant juste les solde par les ops releves */  solde_courant = SOLDE_INIT;  if ( !etat.r_affiches )    {      liste_operations_tmp = LISTE_OPERATIONS;      while ( liste_operations_tmp )	{	  struct structure_operation *operation;	  operation = liste_operations_tmp -> data;	  /* si c'est une op de ventilation, on la saute */	  if ( !operation -> no_operation_ventilee_associee )	    {	      /* calcul du solde courant */	      if ( operation -> pointe == 2 )		{		  gdouble montant;		  if ( operation -> devise == DEVISE )		    montant = operation -> montant;		  else		    {		      /* ce n'est pas la devise du compte, si le compte passe  l'euro et que la devise est l'euro, utilise la conversion du compte, */		      /* si c'est une devise qui passe  l'euro et que la devise du compte est l'euro, utilise la conversion du compte */		      /* sinon utilise la conversion stocke dans l'op */		      devise_operation = g_slist_find_custom ( liste_struct_devises,							       GINT_TO_POINTER ( operation -> devise ),							       ( GCompareFunc ) recherche_devise_par_no ) -> data;		      if ( devise_compte -> passage_euro			   &&			   !strcmp ( devise_operation -> nom_devise, _("Euro") ) )			montant = operation -> montant * devise_compte -> change;		      else			if ( devise_operation -> passage_euro			     &&			     !strcmp ( devise_compte -> nom_devise, _("Euro") ))			  montant = operation -> montant / devise_operation -> change;			else			  if ( operation -> une_devise_compte_egale_x_devise_ope )			    montant = operation -> montant / operation -> taux_change - operation -> frais_change;			  else			    montant = operation -> montant * operation -> taux_change - operation -> frais_change;		      montant = ( rint (montant * 100 )) / 100;		    }		  solde_courant = solde_courant + montant;		}	    }	  liste_operations_tmp = liste_operations_tmp -> next;	}    }  /* on commence la boucle : fait le tour de toutes les oprations et les affiche dans la clist */  liste_operations_tmp = LISTE_OPERATIONS;  while ( liste_operations_tmp )    {      struct structure_operation *operation;      /* rafraichit la fenetre d'attente */      if ( patience_en_cours )	while ( g_main_iteration ( FALSE ) );      operation = liste_operations_tmp -> data;      /* si c'est une op de ventilation, on la saute */      if ( !operation -> no_operation_ventilee_associee )	{ 	  /* si l'opration est releve et qu'on ne dsire pas les afficher, on passe la suite  */	  if ( etat.r_affiches || operation -> pointe != 2 )	    {	      /* on affiche l'opration */	      /* cration des lignes */	      gchar date [11];	      gchar date_bancaire [11];	      GSList *liste_tmp;	      devise_operation = g_slist_find_custom ( liste_struct_devises,						       GINT_TO_POINTER ( operation -> devise ),						       ( GCompareFunc ) recherche_devise_par_no ) -> data;	      /* on met  NULL tout les pointeurs */	      for ( i = 0 ; i < 7 ; i++ )		{		  ligne1 [i] = NULL;		  ligne2 [i] = NULL;		  ligne3 [i] = NULL;		  ligne4 [i] = NULL;		}	      /* mise en forme de la date */	      g_date_strftime (  date,				 11,				 "%d/%m/%Y",				 operation -> date);	      ligne1 [1] = date;	      /* mise en forme du tiers */	      if ( operation -> tiers )		{		  liste_tmp = g_slist_find_custom ( liste_struct_tiers,						    GINT_TO_POINTER ( operation -> tiers ),						    ( GCompareFunc ) recherche_tiers_par_no );		  ligne1 [2] = (( struct struct_tiers * )( liste_tmp -> data )) -> nom_tiers;		}	      /* 	  mise en forme de point, relev */	      if ( operation -> pointe == 1 )		ligne1 [3] = "P";	      else		if ( operation -> pointe == 2 )		  ligne1 [3] = "R";	      /* mise en forme du dbit / crdit */	      if ( operation -> montant < 0 )		{		  ligne1 [4] = g_strdup_printf ( "%4.2f", -operation -> montant );		  if ( devise_operation -> no_devise != DEVISE )		    ligne1 [4] = g_strconcat ( ligne1 [4],					       "(",					       devise_operation -> code_devise,					       ")",					       NULL );		}	      else		{		  ligne1 [5] = g_strdup_printf ( "%4.2f", operation -> montant );		  if ( devise_operation -> no_devise != DEVISE )		    ligne1 [5] = g_strconcat ( ligne1 [5],					       "(",					       devise_operation -> code_devise,					       ")",					       NULL );		}	      /* 	  mise en forme du type */	      if ( operation -> type_ope && TYPES_OPES )		{		  liste_tmp = g_slist_find_custom ( TYPES_OPES,						    GINT_TO_POINTER ( operation -> type_ope ),						    (GCompareFunc) recherche_type_ope_par_no );		  /* on affiche le type que s'il existe */		  if ( liste_tmp )		    {		      struct struct_type_ope *type;		  		      type = liste_tmp -> data;		      if ( nb_lignes_ope != 1 )			ligne2 [4] = type -> nom_type;		      /* si c'est un chque, on le met devant  gauche */		      if ( operation -> contenu_type )			{			  if ( type -> numerotation_auto )			    ligne1[0] = operation -> contenu_type;			  else			    if ( nb_lignes_ope != 1 )			      ligne3[4] = g_strconcat ( "(",							operation -> contenu_type,							")",							NULL );			}		    }		}	      /* 	   ce niveau, on ne continue que si on veut afficher 3 lignes */	      if ( nb_lignes_ope != 1 )		{		  /* mise en forme de la date de valeur */		  if ( operation -> date_bancaire		       &&		       etat.affiche_date_bancaire )		    {		      g_date_strftime (  date_bancaire,					 11,					 "%d/%m/%Y",					 operation -> date_bancaire);		      ligne2 [1] = date_bancaire;		    }		  /* mise en forme des catgories */		  liste_tmp = g_slist_find_custom ( liste_struct_categories,						    GINT_TO_POINTER ( operation -> categorie ),						    ( GCompareFunc ) recherche_categorie_par_no );		  if ( liste_tmp )		    {		      GSList *liste_tmp_2;		      liste_tmp_2 = g_slist_find_custom ( (( struct struct_categ * )( liste_tmp -> data )) -> liste_sous_categ,							  GINT_TO_POINTER ( operation -> sous_categorie ),							  ( GCompareFunc ) recherche_sous_categorie_par_no );		      if ( liste_tmp_2 )			ligne2 [2] = g_strconcat ( (( struct struct_categ * )( liste_tmp -> data )) -> nom_categ,						   " : ",						   (( struct struct_sous_categ * )( liste_tmp_2 -> data )) -> nom_sous_categ,						   NULL );		      else			ligne2 [2] = (( struct struct_categ * )( liste_tmp -> data )) -> nom_categ;		    }		  /* si l'opration est lie, marque le virement */		  if ( operation -> relation_no_operation )		    {		      gpointer **save_ptab;		      if ( operation -> relation_no_compte == -1 )			{			  if ( operation -> montant < 0 )			    ligne2 [2] = _("Virement vers un compte supprim");			  else			    ligne2 [2] = _("Virement d'un compte supprim");			}		      else			{			  save_ptab = p_tab_nom_de_compte_variable;			  p_tab_nom_de_compte_variable = p_tab_nom_de_compte + operation -> relation_no_compte;			  if ( operation -> montant < 0 )			    ligne2 [2] = g_strconcat ( _("Virement vers "),						       NOM_DU_COMPTE,						       NULL );			  else			    ligne2 [2] = g_strconcat ( _("Virement de "),						       NOM_DU_COMPTE,						       NULL );			  p_tab_nom_de_compte_variable = save_ptab;			}		    }		  /* si l'opration est ventile */		  if ( operation -> operation_ventilee )		    ligne2 [2] = _("Opration ventile");		  /*  si on affiche 4 lignes, on met l'exercice, l'ib et la pice comptable en plus */		  if ( nb_lignes_ope == 4 )		    {		      /* met l'exercice */		      if ( operation -> no_exercice )			{			  struct struct_exercice *exercice;			  exercice = g_slist_find_custom ( liste_struct_exercices,							   GINT_TO_POINTER ( operation -> no_exercice ),							   (GCompareFunc) recherche_exercice_par_no ) -> data;			  ligne3 [1] = exercice -> nom_exercice;			}		      /* met l'imputation */		      liste_tmp = g_slist_find_custom ( liste_struct_imputation,							GINT_TO_POINTER ( operation -> imputation ),							( GCompareFunc ) recherche_imputation_par_no );		      if ( liste_tmp )			{			  GSList *liste_tmp_2;			  liste_tmp_2 = g_slist_find_custom ( (( struct struct_categ * )( liste_tmp -> data )) -> liste_sous_categ,							      GINT_TO_POINTER ( operation -> sous_imputation ),							      ( GCompareFunc ) recherche_sous_imputation_par_no );			  if ( liste_tmp_2 )			    ligne3 [2] = g_strconcat ( (( struct struct_categ * )( liste_tmp -> data )) -> nom_categ,						       " : ",						       (( struct struct_sous_categ * )( liste_tmp_2 -> data )) -> nom_sous_categ,						       NULL );			  else			    ligne3 [2] = (( struct struct_categ * )( liste_tmp -> data )) -> nom_categ;			}		      /* met la piece comptable */		      if ( operation -> no_piece_comptable )			ligne4 [4] = operation -> no_piece_comptable;		      /* met les notes */		      ligne4 [2] = operation -> notes;		    }		  else		    /* mise en forme des notes */	      		    ligne3 [2] = operation -> notes;		}	      /* 	  on va maintenant afficher la ou les lignes */	  	      ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ),					 ligne1 );	      /* on associe  cette ligne l'adr de la struct de l'op */	      gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS),				       ligne,				       operation);	      if ( nb_lignes_ope != 1 )		{		  ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ),					     ligne2);		  gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS),					   ligne,					   operation);		  ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ),					     ligne3);		  gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS),					   ligne,					   operation);		  if ( nb_lignes_ope == 4 )		    {		      ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ),						 ligne4 );		      gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS),					       ligne,					       operation);		    }		}	    }	}      liste_operations_tmp = liste_operations_tmp -> next;    }  /* affiche la ligne blanche du bas */  /* on met  NULL tout les pointeurs */  for ( i = 0 ; i < 7 ; i++ )    ligne1 [i] = NULL;  /* 	  on va maintenant afficher la ou les lignes */  ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ),			     ligne1 );  /* on associe  cette ligne  -1 */  gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS),			   ligne,			   GINT_TO_POINTER ( -1 ));  if ( nb_lignes_ope != 1 )    {      ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ),				 ligne1);      gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS),			       ligne,			       GINT_TO_POINTER ( -1 ));      ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ),				 ligne1);      gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS),			       ligne,			       GINT_TO_POINTER ( -1 ));      if ( nb_lignes_ope == 4 )	{	  ligne = gtk_clist_append ( GTK_CLIST ( CLIST_OPERATIONS ),				     ligne1);	  gtk_clist_set_row_data ( GTK_CLIST (CLIST_OPERATIONS),				   ligne,				   GINT_TO_POINTER ( -1 ));	}    }  /* classe la liste selon le classement en cours */  gtk_clist_sort ( GTK_CLIST ( CLIST_OPERATIONS ));  /* calcul du solde de chaque ligne et on met les couleurs alternes du fond et le solde en rouge si necessaire */  couleur_en_cours = 0;  /* il y aura maintenant une diffrence entre les soldes points et courant */  solde_pointe = solde_courant;  for ( ligne = 0 ; ligne < GTK_CLIST (CLIST_OPERATIONS) -> rows ; ligne++ )    {      struct structure_operation *operation;      /* rafraichit la fenetre d'attente */      if ( patience_en_cours )	while ( g_main_iteration ( FALSE ) );      operation = gtk_clist_get_row_data ( GTK_CLIST (CLIST_OPERATIONS),					   ligne );      devise_operation = NULL;      if ( operation != GINT_TO_POINTER ( -1 ) )	{	  gdouble montant;	  if ( operation -> devise == DEVISE )	    montant = operation -> montant;	  else	    {	      /* ce n'est pas la devise du compte, si le compte passe  l'euro et que la devise est l'euro, utilise la conversion du compte, */	      /* sinon utilise la conversion stocke dans l'op */	      devise_operation = g_slist_find_custom ( liste_struct_devises,						       GINT_TO_POINTER ( operation -> devise ),						       ( GCompareFunc ) recherche_devise_par_no ) -> data;	      if ( devise_compte -> passage_euro		   &&		   !strcmp ( devise_operation -> nom_devise, _("Euro") ) )		montant = operation -> montant * devise_compte -> change;	      else		if ( devise_operation -> passage_euro		     &&		     !strcmp ( devise_compte -> nom_devise, _("Euro") ))		  montant = operation -> montant / devise_operation -> change;		else		  if ( operation -> une_devise_compte_egale_x_devise_ope )		    montant = operation -> montant / operation -> taux_change - operation -> frais_change;		  else		    montant = operation -> montant * operation -> taux_change - operation -> frais_change;	      montant = ( rint (montant * 100 )) / 100;	    }	  solde_courant = solde_courant + montant;	  if ( operation -> pointe )	    solde_pointe = solde_pointe + montant;	  gtk_clist_set_text ( GTK_CLIST ( CLIST_OPERATIONS ),			       ligne,			       6,			       g_strdup_printf ( "%4.2f",						 solde_courant ));	  if ( nb_lignes_ope != 1 && devise_operation )	    gtk_clist_set_text ( GTK_CLIST ( CLIST_OPERATIONS ),				 ligne + 1,				 4,				 g_strdup_printf ( "(%4.2f %s)",						   montant,						   devise_compte -> code_devise ));	}      gtk_clist_set_row_style ( GTK_CLIST ( CLIST_OPERATIONS ),				ligne,				style_couleur [ couleur_en_cours ] );      if ( solde_courant < 0 )	gtk_clist_set_cell_style ( GTK_CLIST ( CLIST_OPERATIONS ),				   ligne,				   6,				   style_rouge_couleur [ couleur_en_cours ] );      if ( nb_lignes_ope != 1 )	{	  gtk_clist_set_row_style ( GTK_CLIST ( CLIST_OPERATIONS ),				    ++ligne,				    style_couleur [ couleur_en_cours ] );	  gtk_clist_set_row_style ( GTK_CLIST ( CLIST_OPERATIONS ),				    ++ligne,				    style_couleur [ couleur_en_cours ] );	  if ( nb_lignes_ope == 4 )	    gtk_clist_set_row_style ( GTK_CLIST ( CLIST_OPERATIONS ),				      ++ligne,				      style_couleur [ couleur_en_cours ] );	}      couleur_en_cours = ( couleur_en_cours + 1 ) % 2;    }  /* on enregistre le solde final */  SOLDE_COURANT = solde_courant;  SOLDE_POINTE = solde_pointe;  /* on met les soldes en bas */  gtk_label_set_text ( GTK_LABEL ( solde_label_pointe ),		       g_strdup_printf ( _(" Solde point : %4.2f %s"),					 SOLDE_POINTE,					 ((struct struct_devise *)(g_slist_find_custom ( liste_struct_devises,											 GINT_TO_POINTER ( DEVISE ),											 (GCompareFunc) recherche_devise_par_no )-> data )) -> code_devise) );  gtk_label_set_text ( GTK_LABEL ( solde_label ),		       g_strdup_printf ( _(" Solde courant : %4.2f %s"),					 SOLDE_COURANT,					 ((struct struct_devise *)(g_slist_find_custom ( liste_struct_devises,											 GINT_TO_POINTER ( DEVISE ),											 (GCompareFunc) recherche_devise_par_no )-> data )) -> code_devise) );  selectionne_ligne ( compte );  gtk_clist_thaw ( GTK_CLIST ( CLIST_OPERATIONS ));}