diff options
author | Marco Pesenti Gritti <marco@gnome.org> | 2003-08-22 19:02:10 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2003-08-22 19:02:10 +0800 |
commit | 3e3d3961a8db405b5717cd0c02d67aa8abb8842b (patch) | |
tree | 0ba2fc9002d9227b7d33417a489addc9f6875dd5 /src/bookmarks/ephy-topic-action.c | |
parent | 17ebc02eeb18c2084823ef8555705087588719f3 (diff) | |
download | gsoc2013-epiphany-3e3d3961a8db405b5717cd0c02d67aa8abb8842b.tar gsoc2013-epiphany-3e3d3961a8db405b5717cd0c02d67aa8abb8842b.tar.gz gsoc2013-epiphany-3e3d3961a8db405b5717cd0c02d67aa8abb8842b.tar.bz2 gsoc2013-epiphany-3e3d3961a8db405b5717cd0c02d67aa8abb8842b.tar.lz gsoc2013-epiphany-3e3d3961a8db405b5717cd0c02d67aa8abb8842b.tar.xz gsoc2013-epiphany-3e3d3961a8db405b5717cd0c02d67aa8abb8842b.tar.zst gsoc2013-epiphany-3e3d3961a8db405b5717cd0c02d67aa8abb8842b.zip |
Make it NULL safe
2003-08-22 Marco Pesenti Gritti <marco@gnome.org>
* lib/widgets/ephy-node-view.c: (compare_string_values),
(ephy_node_view_sort_func):
* src/bookmarks/ephy-bookmarks-menu.c: (sort_topics),
(sort_bookmarks):
* src/bookmarks/ephy-topic-action.c: (sort_bookmarks),
(sort_topics):
Make it NULL safe
* src/ephy-toolbars-model.c: (impl_get_item_id):
When creating bookmark, if the title is unknown, use untitled.
Diffstat (limited to 'src/bookmarks/ephy-topic-action.c')
-rw-r--r-- | src/bookmarks/ephy-topic-action.c | 65 |
1 files changed, 44 insertions, 21 deletions
diff --git a/src/bookmarks/ephy-topic-action.c b/src/bookmarks/ephy-topic-action.c index b594bf6aa..7fa6ab705 100644 --- a/src/bookmarks/ephy-topic-action.c +++ b/src/bookmarks/ephy-topic-action.c @@ -174,17 +174,30 @@ sort_bookmarks (gconstpointer a, gconstpointer b) { EphyNode *node_a = (EphyNode *)a; EphyNode *node_b = (EphyNode *)b; - char *str_a = NULL; - char *str_b = NULL; + const char *title1, *title2; int retval; - str_a = g_utf8_casefold (ephy_node_get_property_string (node_a, EPHY_NODE_BMK_PROP_TITLE), - -1); - str_b = g_utf8_casefold (ephy_node_get_property_string (node_b, EPHY_NODE_BMK_PROP_TITLE), - -1); - retval = g_utf8_collate (str_a, str_b); - g_free (str_a); - g_free (str_b); + title1 = ephy_node_get_property_string (node_a, EPHY_NODE_BMK_PROP_TITLE); + title2 = ephy_node_get_property_string (node_b, EPHY_NODE_BMK_PROP_TITLE); + + if (title1 == NULL) + { + retval = -1; + } + else if (title2 == NULL) + { + retval = 1; + } + else + { + char *str_a, *str_b; + + str_a = g_utf8_casefold (title1, -1); + str_b = g_utf8_casefold (title2, -1); + retval = g_utf8_collate (str_a, str_b); + g_free (str_a); + g_free (str_b); + } return retval; } @@ -290,20 +303,30 @@ sort_topics (gconstpointer a, gconstpointer b) { EphyNode *node_a = (EphyNode *)a; EphyNode *node_b = (EphyNode *)b; - EphyNodePriority priority_a, priority_b; - char *str_a = NULL; - char *str_b = NULL; + const char *title1, *title2; int retval; - priority_a = ephy_node_get_property_int (node_a, EPHY_NODE_KEYWORD_PROP_PRIORITY); - priority_b = ephy_node_get_property_int (node_b, EPHY_NODE_KEYWORD_PROP_PRIORITY); - str_a = g_utf8_casefold (ephy_node_get_property_string (node_a, EPHY_NODE_KEYWORD_PROP_NAME), - -1); - str_b = g_utf8_casefold (ephy_node_get_property_string (node_b, EPHY_NODE_KEYWORD_PROP_NAME), - -1); - retval = g_utf8_collate (str_a, str_b); - g_free (str_a); - g_free (str_b); + title1 = ephy_node_get_property_string (node_a, EPHY_NODE_KEYWORD_PROP_NAME); + title2 = ephy_node_get_property_string (node_b, EPHY_NODE_KEYWORD_PROP_NAME); + + if (title1 == NULL) + { + retval = -1; + } + else if (title2 == NULL) + { + retval = 1; + } + else + { + char *str_a, *str_b; + + str_a = g_utf8_casefold (title1, -1); + str_b = g_utf8_casefold (title2, -1); + retval = g_utf8_collate (str_a, str_b); + g_free (str_a); + g_free (str_b); + } return retval; } |