Commit a3a46919 authored by Matthias Clasen's avatar Matthias Clasen Committed by Matthias Clasen

Break some long lines.

2006-01-08  Matthias Clasen  <mclasen@redhat.com>

	* glib/gtree.c: Break some long lines.

	* tests/tree-test.c: Add more tests.
parent 0f3dfbfc
2006-01-08 Matthias Clasen <mclasen@redhat.com>
* glib/gtree.c: Break some long lines.
* tests/tree-test.c: Add more tests.
* glib/gslice.c: Include config.h first, pointed out
by Bogdan Nicula.
......
2006-01-08 Matthias Clasen <mclasen@redhat.com>
* glib/gtree.c: Break some long lines.
* tests/tree-test.c: Add more tests.
* glib/gslice.c: Include config.h first, pointed out
by Bogdan Nicula.
......
2006-01-08 Matthias Clasen <mclasen@redhat.com>
* glib/gtree.c: Break some long lines.
* tests/tree-test.c: Add more tests.
* glib/gslice.c: Include config.h first, pointed out
by Bogdan Nicula.
......
......@@ -317,7 +317,8 @@ g_tree_replace (GTree *tree,
* make sure that any dynamically allocated values are freed yourself.
* If the key does not exist in the #GTree, the function does nothing.
*
* Returns: %TRUE if the key was found (prior to 2.8, this function returned nothing)
* Returns: %TRUE if the key was found (prior to 2.8, this function returned
* nothing)
**/
gboolean
g_tree_remove (GTree *tree,
......@@ -342,7 +343,8 @@ g_tree_remove (GTree *tree,
*
* If the key does not exist in the #GTree, the function does nothing.
*
* Returns: %TRUE if the key was found (prior to 2.8, this function returned nothing)
* Returns: %TRUE if the key was found (prior to 2.8, this function returned
* nothing)
**/
gboolean
g_tree_steal (GTree *tree,
......@@ -507,11 +509,12 @@ g_tree_traverse (GTree *tree,
*
* Searches a #GTree using @search_func.
*
* The @search_func is called with a pointer to the key of a key/value pair in the tree,
* and the passed in @user_data. If @search_func returns 0 for a key/value pair, then
* g_tree_search_func() will return the value of that pair. If @search_func returns -1,
* searching will proceed among the key/value pairs that have a smaller key; if @search_func
* returns 1, searching will proceed among the key/value pairs that have a larger key.
* The @search_func is called with a pointer to the key of a key/value pair in
* the tree, and the passed in @user_data. If @search_func returns 0 for a
* key/value pair, then g_tree_search_func() will return the value of that
* pair. If @search_func returns -1, searching will proceed among the
* key/value pairs that have a smaller key; if @search_func returns 1,
* searching will proceed among the key/value pairs that have a larger key.
*
* Return value: the value corresponding to the found key, or %NULL if the key
* was not found.
......
......@@ -31,31 +31,6 @@
#include <string.h>
#include "glib.h"
int array[10000];
gboolean failed = FALSE;
#define TEST(m,cond) G_STMT_START { failed = !(cond); \
if (failed) \
{ if (!m) \
g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
else \
g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
} \
else \
g_print ("."); fflush (stdout); \
} G_STMT_END
#define C2P(c) ((gpointer) ((long) (c)))
#define P2C(p) ((gchar) ((long) (p)))
#define GLIB_TEST_STRING "el dorado "
#define GLIB_TEST_STRING_5 "el do"
typedef struct {
guint age;
gchar name[40];
} GlibTestInfo;
static gint
my_compare (gconstpointer a,
......@@ -67,6 +42,28 @@ my_compare (gconstpointer a,
return *cha - *chb;
}
static gint
my_search (gconstpointer a,
gconstpointer b)
{
return my_compare (b, a);
}
static gpointer destroyed_key = NULL;
static gpointer destroyed_value = NULL;
static void
my_key_destroy (gpointer key)
{
destroyed_key = key;
}
static void
my_value_destroy (gpointer value)
{
destroyed_value = value;
}
static gint
my_traverse (gpointer key,
gpointer value,
......@@ -77,43 +74,60 @@ my_traverse (gpointer key,
return FALSE;
}
char chars[] =
"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";
char chars2[] =
"0123456789"
"abcdefghijklmnopqrstuvwxyz";
static gint
check_order (gpointer key,
gpointer value,
gpointer data)
{
char **p = data;
char *ch = key;
g_assert (**p == *ch);
(*p)++;
return FALSE;
}
int
main (int argc,
char *argv[])
{
gint i, j;
gint i;
GTree *tree;
gboolean removed;
char chars[62];
char c;
char c, d;
char *p;
tree = g_tree_new (my_compare);
i = 0;
for (j = 0; j < 10; j++, i++)
{
chars[i] = '0' + j;
g_tree_insert (tree, &chars[i], &chars[i]);
}
for (j = 0; j < 26; j++, i++)
{
chars[i] = 'A' + j;
g_tree_insert (tree, &chars[i], &chars[i]);
}
for (j = 0; j < 26; j++, i++)
{
chars[i] = 'a' + j;
g_tree_insert (tree, &chars[i], &chars[i]);
}
for (i = 0; chars[i]; i++)
g_tree_insert (tree, &chars[i], &chars[i]);
g_tree_foreach (tree, my_traverse, NULL);
g_assert (g_tree_nnodes (tree) == (10 + 26 + 26));
g_assert (g_tree_nnodes (tree) == strlen (chars));
g_assert (g_tree_height (tree) == 6);
p = chars;
g_tree_foreach (tree, check_order, &p);
for (i = 0; i < 10; i++)
{
removed = g_tree_remove (tree, &chars[i]);
g_assert (removed);
}
for (i = 0; i < 26; i++)
{
removed = g_tree_remove (tree, &chars[i + 10]);
g_assert (removed);
}
c = '\0';
removed = g_tree_remove (tree, &c);
......@@ -121,6 +135,112 @@ main (int argc,
g_tree_foreach (tree, my_traverse, NULL);
g_assert (g_tree_nnodes (tree) == strlen (chars2));
g_assert (g_tree_height (tree) == 6);
p = chars2;
g_tree_foreach (tree, check_order, &p);
for (i = 25; i >= 0; i--)
g_tree_insert (tree, &chars[i + 10], &chars[i + 10]);
p = chars;
g_tree_foreach (tree, check_order, &p);
c = '0';
p = g_tree_lookup (tree, &c);
g_assert (p && *p == c);
c = 'A';
p = g_tree_lookup (tree, &c);
g_assert (p && *p == c);
c = 'a';
p = g_tree_lookup (tree, &c);
g_assert (p && *p == c);
c = 'z';
p = g_tree_lookup (tree, &c);
g_assert (p && *p == c);
c = '!';
p = g_tree_lookup (tree, &c);
g_assert (p == NULL);
c = '=';
p = g_tree_lookup (tree, &c);
g_assert (p == NULL);
c = '|';
p = g_tree_lookup (tree, &c);
g_assert (p == NULL);
c = '0';
p = g_tree_search (tree, my_search, &c);
g_assert (p && *p == c);
c = 'A';
p = g_tree_search (tree, my_search, &c);
g_assert (p && *p == c);
c = 'a';
p = g_tree_search (tree, my_search, &c);
g_assert (p &&*p == c);
c = 'z';
p = g_tree_search (tree, my_search, &c);
g_assert (p && *p == c);
c = '!';
p = g_tree_search (tree, my_search, &c);
g_assert (p == NULL);
c = '=';
p = g_tree_search (tree, my_search, &c);
g_assert (p == NULL);
c = '|';
p = g_tree_search (tree, my_search, &c);
g_assert (p == NULL);
g_tree_destroy (tree);
tree = g_tree_new_full (my_compare, NULL,
my_key_destroy,
my_value_destroy);
for (i = 0; chars[i]; i++)
g_tree_insert (tree, &chars[i], &chars[i]);
c = '0';
g_tree_insert (tree, &c, &c);
g_assert (destroyed_key == &c);
g_assert (destroyed_value == &chars[0]);
destroyed_key = NULL;
destroyed_value = NULL;
d = '1';
g_tree_replace (tree, &d, &d);
g_assert (destroyed_key == &chars[1]);
g_assert (destroyed_value == &chars[1]);
destroyed_key = NULL;
destroyed_value = NULL;
c = '2';
removed = g_tree_remove (tree, &c);
g_assert (removed);
g_assert (destroyed_key == &chars[2]);
g_assert (destroyed_value == &chars[2]);
destroyed_key = NULL;
destroyed_value = NULL;
c = '3';
removed = g_tree_steal (tree, &c);
g_assert (removed);
g_assert (destroyed_key == NULL);
g_assert (destroyed_value == NULL);
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment