rem: combofix -> liste_completion = g_slist_sort ( combofix -> liste_completion, (GCompareFunc) classe_alphabetique );  if ( classement_auto ) gtk_combofix_sort ( GTK_COMBOFIX ( combofix ));
context: GtkWidget *gtk_combofix_new_complex ( GSList *liste,				      gint force_text,				      gint affiche_liste,				      gint classement_auto ){  GSList *pointeur;  gchar *derniere_categ;  GSList *nouvelle_liste;  GtkComboFix *combofix = GTK_COMBOFIX ( gtk_type_new ( gtk_combofix_get_type () ) );  /* recopie la liste originale */  nouvelle_liste = NULL;  pointeur = liste;  while ( pointeur )    {      GSList *sous_pointeur;      GSList *sous_liste;      sous_pointeur = pointeur -> data;      sous_liste = NULL;      while ( sous_pointeur )	{	  sous_liste = g_slist_append ( sous_liste,					    g_strdup ( sous_pointeur -> data ) );	  sous_pointeur = sous_pointeur -> next;	}      nouvelle_liste = g_slist_append (nouvelle_liste,				       sous_liste );      pointeur = pointeur -> next;    }  /* remplit les champs de la combofix */  combofix -> force_text = force_text;  combofix -> liste = nouvelle_liste;  combofix -> affiche_liste = affiche_liste;  combofix -> complex = 1;  combofix -> auto_sort = classement_auto;  if ( affiche_liste )    gtk_arrow_set ( GTK_ARROW ( GTK_BIN ( combofix -> arrow ) -> child ),		    GTK_ARROW_DOWN,		    GTK_SHADOW_ETCHED_OUT);  else    gtk_arrow_set ( GTK_ARROW ( GTK_BIN ( combofix -> arrow ) -> child ),		    GTK_ARROW_UP,		    GTK_SHADOW_ETCHED_OUT);  /* cration de la liste des compltions : systme de catgories - sous catgories */  /* toutes catgorie est mise dans la liste */  /*   les sous-catg sont mises sous la forme catg : sous-catg */  /* protge de l'erreur si on met une sous categ en 1er */  derniere_categ = "";  combofix -> liste_completion = NULL;  pointeur = liste;  while ( pointeur )    {      gchar *string;      GSList *sous_pointeur;      sous_pointeur = pointeur -> data;      while ( sous_pointeur )	{	  string = sous_pointeur -> data;	  if ( string[0] == '\t' )	    string = g_strconcat ( derniere_categ,				   " : ",				   string + 1,				   NULL );	  else	    derniere_categ = string;	  combofix -> liste_completion = g_slist_append ( combofix -> liste_completion,							  string );	  sous_pointeur = sous_pointeur -> next;	}      pointeur = pointeur -> next;    }   /*   classe la liste de completion */  combofix -> liste_completion = g_slist_sort ( combofix -> liste_completion,						(GCompareFunc) classe_alphabetique );  if ( classement_auto )    gtk_combofix_sort ( GTK_COMBOFIX ( combofix ));  return ( GTK_WIDGET ( combofix ) );}