diff options
author | Jonathan Blandford <jrb@redhat.com> | 2002-01-08 23:48:30 +0000 |
---|---|---|
committer | Jonathan Blandford <jrb@src.gnome.org> | 2002-01-08 23:48:30 +0000 |
commit | 9f35f366612f82ba48796e0e208eb5e78138a68c (patch) | |
tree | 21c2aab2ea5f0d8f82f55756142839e0dc1c4d30 /gtk/gtktreedatalist.c | |
parent | 5c71539c263da8502414577eb7ab51c70dece8b2 (diff) | |
download | gtk+-9f35f366612f82ba48796e0e208eb5e78138a68c.tar.gz |
wow! Am I a moron or what 0 < 1 is not equivalent to strcmp ("a", "b")
Tue Jan 8 18:39:23 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtktreedatalist.c (gtk_tree_data_list_compare_func): wow!
Am I a moron or what 0 < 1 is not equivalent to strcmp ("a", "b")
Diffstat (limited to 'gtk/gtktreedatalist.c')
-rw-r--r-- | gtk/gtktreedatalist.c | 64 |
1 files changed, 55 insertions, 9 deletions
diff --git a/gtk/gtktreedatalist.c b/gtk/gtktreedatalist.c index ca11a4ecd0..403da218a6 100644 --- a/gtk/gtktreedatalist.c +++ b/gtk/gtktreedatalist.c @@ -280,32 +280,78 @@ gtk_tree_data_list_compare_func (GtkTreeModel *model, switch (G_TYPE_FUNDAMENTAL (type)) { case G_TYPE_BOOLEAN: - retval = (g_value_get_int (&a_value) < g_value_get_int (&b_value)); + if (g_value_get_int (&a_value) < g_value_get_int (&b_value)) + retval = -1; + else if (g_value_get_int (&a_value) == g_value_get_int (&b_value)) + retval = 0; + else + retval = 1; break; case G_TYPE_CHAR: - retval = (g_value_get_char (&a_value) < g_value_get_char (&b_value)); + if (g_value_get_char (&a_value) < g_value_get_char (&b_value)) + retval = -1; + else if (g_value_get_char (&a_value) == g_value_get_char (&b_value)) + retval = 0; + else + retval = 1; break; case G_TYPE_UCHAR: - retval = (g_value_get_uchar (&a_value) < g_value_get_uchar (&b_value)); + if (g_value_get_uchar (&a_value) < g_value_get_uchar (&b_value)) + retval = -1; + else if (g_value_get_uchar (&a_value) == g_value_get_uchar (&b_value)) + retval = 0; + else + retval = 1; break; case G_TYPE_INT: - retval = (g_value_get_int (&a_value) < g_value_get_int (&b_value)); + if (g_value_get_int (&a_value) < g_value_get_int (&b_value)) + retval = -1; + else if (g_value_get_int (&a_value) == g_value_get_int (&b_value)) + retval = 0; + else + retval = 1; break; case G_TYPE_UINT: - retval = (g_value_get_uint (&a_value) < g_value_get_uint (&b_value)); + if (g_value_get_uint (&a_value) < g_value_get_uint (&b_value)) + retval = -1; + else if (g_value_get_uint (&a_value) == g_value_get_uint (&b_value)) + retval = 0; + else + retval = 1; break; case G_TYPE_ENUM: /* this is somewhat bogus. */ - retval = (g_value_get_int (&a_value) < g_value_get_int (&b_value)); + if (g_value_get_int (&a_value) < g_value_get_int (&b_value)) + retval = -1; + else if (g_value_get_int (&a_value) == g_value_get_int (&b_value)) + retval = 0; + else + retval = 1; break; case G_TYPE_FLAGS: - retval = (g_value_get_uint (&a_value) < g_value_get_uint (&b_value)); + /* this is even more bogus. */ + if (g_value_get_uint (&a_value) < g_value_get_uint (&b_value)) + retval = -1; + else if (g_value_get_uint (&a_value) == g_value_get_uint (&b_value)) + retval = 0; + else + retval = 1; break; case G_TYPE_FLOAT: - retval = (g_value_get_float (&a_value) < g_value_get_float (&b_value)); + if (g_value_get_float (&a_value) < g_value_get_float (&b_value)) + retval = -1; + else if (g_value_get_float (&a_value) == g_value_get_float (&b_value)) + retval = 0; + else + retval = 1; break; case G_TYPE_DOUBLE: - retval = (g_value_get_double (&a_value) < g_value_get_double (&b_value)); + if (g_value_get_double (&a_value) < g_value_get_double (&b_value)) + retval = -1; + else if (g_value_get_double (&a_value) == g_value_get_double (&b_value)) + retval = 0; + else + retval = 1; break; case G_TYPE_STRING: stra = g_value_get_string (&a_value); |