[PATCH] nah...



Ops, i have forgotten to attach the patch (lukily 
because i was about to send a broken and slow patch :-)

I am also sending a patch to add g_tree_clear_nodes,
that frees all nodes without deleting the tree.

Thanks
Maurizio Monge

Attachment: patch_glib_foreach_range
Description: Binary data

/*
* compile with
* gcc gtreetest.c -o gtreetest `pkg-config glib-2.0 --cflags --libs`
*/
#include <glib.h>
#include <stdio.h>

gboolean print_key(gpointer key, gpointer value, gpointer data)
{
    printf("%s", key);
    return FALSE;
}

int main(int argc, char *argv[])
{
  FILE *file;
  gchar buf[1024];
  GTree *tree;

  if (argc < 2)
  {
      g_warning ("Usage: %s filename\n", argv[0]);
      return 1;
  }

  file = fopen (argv[1], "r");
  if (!file)
  {
      g_warning ("Cannot open %s\n", argv[1]);
      return 1;
  }

  tree = g_tree_new( (GCompareFunc)g_ascii_strcasecmp );
  while (fgets (buf, 1024, file))
      g_tree_insert( tree, g_strdup(buf), NULL);
  fclose (file);

  while (1)
  {
      gchar buf2[1024];

      printf("Enter one string to search from: \n");
      fgets (buf, 1024, stdin);
      printf("Enter another string to search to: \n");
      fgets (buf2, 1024, stdin);

      g_tree_foreach_range(tree, buf, buf2, print_key, NULL);
  }

  return 0;
}

Attachment: patch_glib_clear_nodes
Description: Binary data



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]