rem: liste_struct_banques_tmp = NULL;
context: GtkWidget *onglet_banques ( void ){  GtkWidget *vbox_pref, *separateur, *label;  GtkWidget *scrolled_window, *vbox, *vbox2, *hvbox;  GtkWidget *bouton, *hbox, *paddingbox, *table;  GtkSizeGroup * size_group;  GtkTextBuffer *buffer;   GSList *liste_tmp;  gchar *bank_cols_titles [2] = {_("Bank"),				 _("Contact name") };  vbox_pref = new_vbox_with_title_and_icon ( _("Banks"),					     "banks.png" );  /* Create bank list */  paddingbox = new_paddingbox_with_title ( vbox_pref, FALSE,					   _("Known banks") );  scrolled_window = gtk_scrolled_window_new ( NULL, NULL );  gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),				   GTK_POLICY_NEVER,				   GTK_POLICY_AUTOMATIC);  clist_banques_parametres = gtk_clist_new_with_titles ( 2,							 bank_cols_titles);  gtk_widget_set_usize ( clist_banques_parametres,			 FALSE, 100 );  gtk_clist_set_column_auto_resize ( GTK_CLIST ( clist_banques_parametres ) ,				      0, TRUE );  gtk_clist_set_column_auto_resize ( GTK_CLIST ( clist_banques_parametres ) ,				      1, TRUE );  gtk_signal_connect_object  ( GTK_OBJECT ( fenetre_preferences ),			       "apply",			       GTK_SIGNAL_FUNC ( gtk_clist_unselect_all ),			       GTK_OBJECT ( clist_banques_parametres ));  gtk_container_add ( GTK_CONTAINER ( scrolled_window ),		      clist_banques_parametres );  hbox = gtk_hbox_new ( FALSE, 10 );  gtk_box_pack_start ( GTK_BOX ( paddingbox ), hbox,		       FALSE, FALSE, 0);  gtk_box_pack_start ( GTK_BOX ( hbox ), scrolled_window,		       TRUE, TRUE, 0);  /* Do not activate unless an account is opened */  if ( !nb_comptes )    gtk_widget_set_sensitive ( vbox_pref, FALSE );  else    {      /* Work an a copy of original liste_struct_devises */      liste_struct_banques_tmp = NULL;      liste_tmp = liste_struct_banques;      while ( liste_tmp )	{	  struct struct_banque *banque;	  struct struct_banque *copie_banque;	  banque = liste_tmp -> data;	  copie_banque = malloc ( sizeof ( struct struct_banque ));	  copie_banque -> no_banque = banque -> no_banque;	  copie_banque -> nom_banque = g_strdup ( banque -> nom_banque );	  copie_banque -> code_banque = g_strdup ( banque -> code_banque );	  copie_banque -> adr_banque = g_strdup ( banque -> adr_banque );	  copie_banque -> tel_banque = g_strdup ( banque -> tel_banque );	  copie_banque -> email_banque = g_strdup ( banque -> email_banque );	  copie_banque -> web_banque = g_strdup ( banque -> web_banque );	  copie_banque -> nom_correspondant = g_strdup ( banque -> nom_correspondant );	  copie_banque -> fax_correspondant = g_strdup ( banque -> fax_correspondant );	  copie_banque -> tel_correspondant = g_strdup ( banque -> tel_correspondant );	  copie_banque -> email_correspondant = g_strdup ( banque -> email_correspondant );	  copie_banque -> remarque_banque = g_strdup ( banque -> remarque_banque );	  liste_struct_banques_tmp = g_slist_append ( liste_struct_banques_tmp,						      copie_banque );	  liste_tmp = liste_tmp -> next;	}      no_derniere_banque_tmp = no_derniere_banque;      nb_banques_tmp = nb_banques;      /* remplissage de la liste avec les banques temporaires */      liste_tmp = liste_struct_banques_tmp;      while ( liste_tmp )	{	  struct struct_banque *banque;	  gchar *ligne[2];	  gint ligne_insert;	  banque = liste_tmp -> data;	  ligne[0] = banque -> nom_banque;	  ligne[1] = banque -> nom_correspondant;	  ligne_insert = gtk_clist_append ( GTK_CLIST ( clist_banques_parametres ),					    ligne );	  /* on associe  la ligne la struct de la banque */	  gtk_clist_set_row_data ( GTK_CLIST ( clist_banques_parametres ),				   ligne_insert,				   banque );	  liste_tmp = liste_tmp -> next;	}    }  /* Handle Add & Remove buttons */  vbox = gtk_vbox_new ( FALSE, 5 );  gtk_box_pack_start ( GTK_BOX ( hbox ), vbox,		       FALSE, FALSE, 0 );  /* Add button */  bouton = gtk_button_new_from_stock (GTK_STOCK_ADD);  gtk_signal_connect ( GTK_OBJECT ( bouton ), "clicked",		       GTK_SIGNAL_FUNC  ( ajout_banque ),		       clist_banques_parametres );  gtk_box_pack_start ( GTK_BOX ( vbox ), bouton,		       FALSE, FALSE, 5 );  /* Remove button */  bouton_supprimer_banque = gtk_button_new_from_stock (GTK_STOCK_REMOVE);  gtk_widget_set_sensitive ( bouton_supprimer_banque, FALSE );  gtk_signal_connect ( GTK_OBJECT ( bouton_supprimer_banque ), "clicked",		       GTK_SIGNAL_FUNC  ( supprime_banque ),		       clist_banques_parametres );  gtk_box_pack_start ( GTK_BOX ( vbox ), bouton_supprimer_banque,		       FALSE, FALSE, 5 );  /* Add a scroll because bank details are huge */  scrolled_window = gtk_scrolled_window_new ( FALSE, FALSE );  gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),				   GTK_POLICY_NEVER,				   GTK_POLICY_AUTOMATIC );  gtk_box_pack_start ( GTK_BOX ( vbox_pref ), scrolled_window,		       TRUE, TRUE, 5 );  vbox2 = gtk_vbox_new ( FALSE, 0 );  gtk_scrolled_window_add_with_viewport ( GTK_SCROLLED_WINDOW ( scrolled_window ),					  vbox2 );  gtk_scrolled_window_set_shadow_type ( GTK_SCROLLED_WINDOW ( scrolled_window ),					GTK_SHADOW_NONE );  gtk_viewport_set_shadow_type ( GTK_VIEWPORT ( GTK_BIN ( scrolled_window ) -> child ),                                 GTK_SHADOW_NONE );  gtk_widget_set_sensitive ( vbox2, FALSE );  /* Bank details */  paddingbox = new_paddingbox_with_title ( vbox2, FALSE,					   _("Bank details") );  gtk_box_set_child_packing (GTK_BOX(vbox_pref), paddingbox, 			     FALSE, FALSE, 5, GTK_PACK_START);  /* Active only if a bank is selected */  gtk_signal_connect ( GTK_OBJECT ( clist_banques_parametres ),		       "select-row",		       GTK_SIGNAL_FUNC ( selection_ligne_banque ),		       vbox2 );  gtk_signal_connect ( GTK_OBJECT ( clist_banques_parametres ),		       "unselect-row",		       GTK_SIGNAL_FUNC ( deselection_ligne_banque ),		       vbox2 );  /* Create a table to align things nicely */  table = gtk_table_new ( 2, 2, FALSE );  gtk_table_set_col_spacings ( GTK_TABLE ( table ), 5 );  gtk_table_set_row_spacings ( GTK_TABLE ( table ), 5 );  gtk_box_pack_start ( GTK_BOX ( paddingbox ), table,		       TRUE, TRUE, 5 );  size_group = gtk_size_group_new ( GTK_SIZE_GROUP_HORIZONTAL );  /* Bank name item */  label = gtk_label_new ( COLON(_("Name")) );  gtk_misc_set_alignment (GTK_MISC (label), 0, 1);  gtk_label_set_justify ( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );  gtk_table_attach ( GTK_TABLE ( table ),		     label, 0, 1, 0, 1,		     GTK_SHRINK | GTK_FILL, 0,		     0, 0 );  nom_banque = gtk_entry_new ();  gtk_size_group_add_widget ( size_group, nom_banque );  gtk_table_attach ( GTK_TABLE ( table ),		     nom_banque, 1, 2, 0, 1,		     GTK_EXPAND | GTK_FILL, 0,		     0, 0 );  /* Bank Sort code item */  label = gtk_label_new ( COLON(_("Sort code")) );  gtk_misc_set_alignment (GTK_MISC (label), 0, 1);  gtk_label_set_justify ( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );  gtk_table_attach ( GTK_TABLE ( table ),		     label, 0, 1, 1, 2,		     GTK_SHRINK | GTK_FILL, 0,		     0, 0 );  code_banque = gtk_entry_new ();  gtk_size_group_add_widget ( size_group, code_banque );  gtk_table_attach ( GTK_TABLE ( table ),		     code_banque, 1, 2, 1, 2,		     GTK_EXPAND | GTK_FILL, 0,		     0, 0 );  /* Bank address */  label = gtk_label_new ( COLON(_("Address")) );  gtk_misc_set_alignment (GTK_MISC (label), 0, 1);  gtk_label_set_justify ( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );  gtk_table_attach ( GTK_TABLE ( table ),		     label, 0, 1, 2, 3,		     GTK_SHRINK | GTK_FILL, 0,		     0, 0 );  adr_banque = gtk_entry_new ();  scrolled_window = gtk_scrolled_window_new ( FALSE, FALSE );  gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),				   GTK_POLICY_NEVER,				   GTK_POLICY_AUTOMATIC );  adr_banque = gtk_text_new ( FALSE, FALSE );  gtk_widget_set_usize ( adr_banque, FALSE, 50 );  gtk_editable_set_editable ( GTK_EDITABLE ( adr_banque ), TRUE );  /* Create the text view */  adr_banque = gtk_text_view_new ();  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (adr_banque));/*   gtk_text_buffer_set_text (buffer, "Hello, this is some text", -1); */  gtk_scrolled_window_set_shadow_type ( GTK_SCROLLED_WINDOW(scrolled_window), 					GTK_SHADOW_IN );  gtk_text_view_set_indent (GTK_TEXT_VIEW(adr_banque), 3);  gtk_text_view_set_wrap_mode ( GTK_TEXT_VIEW(adr_banque), GTK_WRAP_WORD );  gtk_container_add ( GTK_CONTAINER ( scrolled_window ), adr_banque );  gtk_size_group_add_widget ( size_group, adr_banque );  gtk_table_attach ( GTK_TABLE ( table ),		     scrolled_window, 1, 2, 2, 3,		     GTK_EXPAND | GTK_FILL, 0,		     0, 0 );  /* E-mail */  label = gtk_label_new ( COLON(_("E-Mail")) );  gtk_misc_set_alignment (GTK_MISC (label), 0, 1);  gtk_label_set_justify ( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );  gtk_table_attach ( GTK_TABLE ( table ),		     label, 0, 1, 3, 4,		     GTK_SHRINK | GTK_FILL, 0,		     0, 0 );  email_banque = gtk_entry_new ();  gtk_size_group_add_widget ( size_group, email_banque );  gtk_table_attach ( GTK_TABLE ( table ),		     email_banque, 1, 2, 3, 4,		     GTK_EXPAND | GTK_FILL, 0,		     0, 0 );  /* Phone number */  label = gtk_label_new ( COLON(_("Phone")) );  gtk_misc_set_alignment (GTK_MISC (label), 0, 1);  gtk_label_set_justify ( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );  gtk_table_attach ( GTK_TABLE ( table ),		     label, 0, 1, 4, 5,		     GTK_SHRINK | GTK_FILL, 0,		     0, 0 );  tel_banque = gtk_entry_new ();  gtk_size_group_add_widget ( size_group, tel_banque );  gtk_table_attach ( GTK_TABLE ( table ),		     tel_banque, 1, 2, 4, 5,		     GTK_EXPAND | GTK_FILL, 0,		     0, 0 );  /* Website */  label = gtk_label_new ( COLON(_("Website")) );  gtk_misc_set_alignment (GTK_MISC (label), 0, 1);  gtk_label_set_justify ( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );  gtk_table_attach ( GTK_TABLE ( table ),		     label, 0, 1, 5, 6,		     GTK_SHRINK | GTK_FILL, 0,		     0, 0 );  web_banque = gtk_entry_new ();  gtk_size_group_add_widget ( size_group, web_banque );  gtk_table_attach ( GTK_TABLE ( table ),		     web_banque, 1, 2, 5, 6,		     GTK_EXPAND | GTK_FILL, 0,		     0, 0 );  /* Contact */  paddingbox = new_paddingbox_with_title ( vbox2, FALSE, _("Contact") );  table = gtk_table_new ( 2, 2, FALSE );  gtk_table_set_col_spacings ( GTK_TABLE ( table ), 5 );  gtk_table_set_row_spacings ( GTK_TABLE ( table ), 5 );  gtk_box_pack_start ( GTK_BOX ( paddingbox ), table,		       TRUE, TRUE, 5 );  /* Name */  label = gtk_label_new ( COLON(_("Name")) );  gtk_misc_set_alignment (GTK_MISC (label), 0, 1);  gtk_label_set_justify ( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );  gtk_table_attach ( GTK_TABLE ( table ),		     label, 0, 1, 0, 1,		     GTK_SHRINK | GTK_FILL, 0,		     0, 0 );  nom_correspondant = gtk_entry_new ();  gtk_size_group_add_widget ( size_group, nom_correspondant );  gtk_table_attach ( GTK_TABLE ( table ),		     nom_correspondant, 1, 2, 0, 1,		     GTK_EXPAND | GTK_FILL, 0,		     0, 0 );  /* Phone number */  label = gtk_label_new ( COLON(_("Phone number")) );  gtk_misc_set_alignment (GTK_MISC (label), 0, 1);  gtk_label_set_justify ( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );  gtk_table_attach ( GTK_TABLE ( table ),		     label, 0, 1, 1, 2,		     GTK_SHRINK | GTK_FILL, 0,		     0, 0 );  tel_correspondant = gtk_entry_new ();  gtk_size_group_add_widget ( size_group, tel_correspondant );  gtk_table_attach ( GTK_TABLE ( table ),		     tel_correspondant, 1, 2, 1, 2,		     GTK_EXPAND | GTK_FILL, 0,		     0, 0 );  /* E-Mail */  label = gtk_label_new ( COLON(_("E-Mail")) );  gtk_misc_set_alignment (GTK_MISC (label), 0, 1);  gtk_label_set_justify ( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );  gtk_table_attach ( GTK_TABLE ( table ),		     label, 0, 1, 2, 3,		     GTK_SHRINK | GTK_FILL, 0,		     0, 0 );  email_correspondant = gtk_entry_new ();  gtk_size_group_add_widget ( size_group, email_correspondant );  gtk_table_attach ( GTK_TABLE ( table ),		     email_correspondant, 1, 2, 2, 3,		     GTK_EXPAND | GTK_FILL, 0,		     0, 0 );  /* Fax */  label = gtk_label_new ( COLON(_("Fax")) );  gtk_misc_set_alignment (GTK_MISC (label), 0, 1);  gtk_label_set_justify ( GTK_LABEL(label), GTK_JUSTIFY_RIGHT );  gtk_table_attach ( GTK_TABLE ( table ),		     label, 0, 1, 3, 4,		     GTK_SHRINK | GTK_FILL, 0,		     0, 0 );  fax_correspondant = gtk_entry_new ();  gtk_size_group_add_widget ( size_group, fax_correspondant );  gtk_table_attach ( GTK_TABLE ( table ),		     fax_correspondant, 1, 2, 3, 4,		     GTK_EXPAND | GTK_FILL, 0,		     0, 0 );  /* Notes */  paddingbox = new_paddingbox_with_title ( vbox2, FALSE, _("Notes") );  scrolled_window = gtk_scrolled_window_new ( FALSE,					      FALSE );  gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW ( scrolled_window ),				   GTK_POLICY_NEVER,				   GTK_POLICY_AUTOMATIC );  gtk_box_pack_start ( GTK_BOX ( paddingbox ), scrolled_window,		       TRUE, TRUE, 5 );  remarque_banque = gtk_text_view_new ();  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (remarque_banque));/*   gtk_text_buffer_set_text (buffer, "Remarques sur ma banque a moi", -1); */  gtk_scrolled_window_set_shadow_type ( GTK_SCROLLED_WINDOW(scrolled_window), 					GTK_SHADOW_IN );  gtk_text_view_set_indent ( GTK_TEXT_VIEW(remarque_banque), 3 );  gtk_text_view_set_wrap_mode ( GTK_TEXT_VIEW(remarque_banque), GTK_WRAP_WORD );/*   remarque_banque = gtk_text_new ( FALSE, FALSE ); */  gtk_widget_set_usize ( remarque_banque, FALSE, 100 );  gtk_editable_set_editable ( GTK_EDITABLE ( remarque_banque ), TRUE );  gtk_container_add ( GTK_CONTAINER ( scrolled_window ), remarque_banque );  return ( vbox_pref );}