//Completion sans GUI

#include <gtk/gtk.h>
#include <string.h>

// montre un élement résultat de la recherche
void afficher(gchar *c)
{
  g_print("%s\n", c);
}

int main (int argc, char *argv[])
{
  GCompletion *cmp;
  GList *items, *trouve;
  gchar *prefix;

  gtk_init(&argc, &argv);

  // Crée un objet Completion
  cmp = g_completion_new (NULL);

  // Remplit la liste
  items = NULL;
  items = g_list_append (items, "bb");
  items = g_list_append (items, "bertie");
  items = g_list_append (items, "bertier");
  items = g_list_append (items, "botanique");
  items = g_list_append (items, "joe");
  items = g_list_append (items, "john");
  items = g_list_append (items, "johnny");

  // Associe la liste à l' objet Completion
  g_completion_add_items (cmp, items);

  // Remplit une nouvelle liste en complétant "be". Cette étape devrait
  // survenir quand l' utilisateur saisit quelque chose.
  trouve = g_completion_complete (cmp, "be", &prefix);
  //g_print("%s -> %s\n", prefix, (gchar*)trouve->data);

  // Dresse le contenu de la liste complétée avec la fonction afficher,
  // qui devrait servir à remplir une liste au niveau du curseur.
  g_list_foreach (trouve, (void*)afficher, (gchar*)trouve->data);

  // libère l' espace alloué
  g_completion_free (cmp);

  return 0;
}

/* Le programme affiche sur le sortie standard:
  bertie
  bertier
*/