[yelp] Handle NULL better in page sorting functions



commit 0f58a0fa27743fc09726b8ae20447c69b637ea82
Author: Shaun McCance <shaunm gnome org>
Date:   Fri Apr 30 11:30:31 2010 -0500

    Handle NULL better in page sorting functions

 libyelp/yelp-settings.c |    4 +++-
 src/yelp-window.c       |   18 +++++++++++++++---
 2 files changed, 18 insertions(+), 4 deletions(-)
---
diff --git a/libyelp/yelp-settings.c b/libyelp/yelp-settings.c
index 087e6a6..7f2139f 100644
--- a/libyelp/yelp-settings.c
+++ b/libyelp/yelp-settings.c
@@ -959,7 +959,9 @@ yelp_settings_cmp_icons (const gchar *icon1,
         else if (eq2)
             return 1;
     }
-    if (icon2 == NULL)
+    if (icon1 == icon2 == NULL)
+        return 0;
+    else if (icon2 == NULL)
         return -1;
     else if (icon1 == NULL)
         return 1;
diff --git a/src/yelp-window.c b/src/yelp-window.c
index a8e4eff..e9a6b84 100644
--- a/src/yelp-window.c
+++ b/src/yelp-window.c
@@ -648,8 +648,15 @@ entry_compare (YelpMenuEntry *a, YelpMenuEntry *b)
     gint ret = yelp_settings_cmp_icons (a->icon, b->icon);
     if (ret != 0)
         return ret;
-    else
-        return g_utf8_collate (a->title, b->title);
+
+    if (a->title && b->title)
+        ret = g_utf8_collate (a->title, b->title);
+    else if (b->title == NULL)
+        return -1;
+    else if (a->title == NULL)
+        return 1;
+
+    return 0;
 }
 
 static void
@@ -786,7 +793,12 @@ entry_completion_sort (GtkTreeModel *model,
 
     gtk_tree_model_get (model, iter1, COL_TITLE, &key1, -1);
     gtk_tree_model_get (model, iter2, COL_TITLE, &key2, -1);
-    ret = g_utf8_collate (key1, key2);
+    if (key1 && key2)
+        ret = g_utf8_collate (key1, key2);
+    else if (key2 == NULL)
+        return -1;
+    else if (key1 == NULL)
+        return 1;
     g_free (key1);
     g_free (key2);
 



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