When removing bookmarks, folder must not be NULL

If folder is NULL, we end up with "(NULL)" in sqlite.

Modified patch to use katze_str_non_null.

Fixes: https://bugs.launchpad.net/midori/+bug/926914
This commit is contained in:
Vincent Cappe 2012-02-19 17:44:15 +01:00 committed by Christian Dywan
parent 69c319d62a
commit 62f0ef746c
3 changed files with 21 additions and 13 deletions

View file

@ -58,6 +58,20 @@ G_BEGIN_DECLS
**/ **/
#define katze_strv_assign(lvalue, rvalue) lvalue = (g_strfreev (lvalue), rvalue) #define katze_strv_assign(lvalue, rvalue) lvalue = (g_strfreev (lvalue), rvalue)
/**
* katze_str_non_null:
* @str: a string, or %NULL
*
* Returns "" if @str is %NULL.
*
* Since: 0.4.4
**/
static inline const gchar*
katze_str_non_null (const gchar* str)
{
return str ? str : "";
}
GtkWidget* GtkWidget*
katze_property_proxy (gpointer object, katze_property_proxy (gpointer object,
const gchar* property, const gchar* property,

View file

@ -531,14 +531,14 @@ midori_bookmarks_remove_item_cb (KatzeArray* array,
"DELETE FROM bookmarks WHERE uri = '%q' " "DELETE FROM bookmarks WHERE uri = '%q' "
" AND folder = '%q'", " AND folder = '%q'",
katze_item_get_uri (item), katze_item_get_uri (item),
katze_item_get_meta_string (item, "folder")); katze_str_non_null (katze_item_get_meta_string (item, "folder")));
else else
sqlcmd = sqlite3_mprintf ( sqlcmd = sqlite3_mprintf (
"DELETE FROM bookmarks WHERE title = '%q'" "DELETE FROM bookmarks WHERE title = '%q'"
" AND folder = '%q'", " AND folder = '%q'",
katze_item_get_name (item), katze_item_get_name (item),
katze_item_get_meta_string (item, "folder")); katze_str_non_null (katze_item_get_meta_string (item, "folder")));
if (sqlite3_exec (db, sqlcmd, NULL, NULL, &errmsg) != SQLITE_OK) if (sqlite3_exec (db, sqlcmd, NULL, NULL, &errmsg) != SQLITE_OK)
{ {

View file

@ -877,12 +877,6 @@ midori_search_action_editor_name_changed_cb (GtkWidget* entry,
GTK_RESPONSE_ACCEPT, text && *text); GTK_RESPONSE_ACCEPT, text && *text);
} }
static inline const gchar*
STR_NON_NULL (const gchar* string)
{
return string ? string : "";
}
static void static void
midori_search_action_get_editor (MidoriSearchAction* search_action, midori_search_action_get_editor (MidoriSearchAction* search_action,
gboolean new_engine) gboolean new_engine)
@ -943,7 +937,7 @@ midori_search_action_get_editor (MidoriSearchAction* search_action,
gtk_entry_set_activates_default (GTK_ENTRY (entry_name), TRUE); gtk_entry_set_activates_default (GTK_ENTRY (entry_name), TRUE);
if (!new_engine) if (!new_engine)
gtk_entry_set_text (GTK_ENTRY (entry_name), gtk_entry_set_text (GTK_ENTRY (entry_name),
STR_NON_NULL (katze_item_get_name (item))); katze_str_non_null (katze_item_get_name (item)));
gtk_box_pack_start (GTK_BOX (hbox), entry_name, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), entry_name, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (content_area), hbox); gtk_container_add (GTK_CONTAINER (content_area), hbox);
gtk_widget_show_all (hbox); gtk_widget_show_all (hbox);
@ -957,7 +951,7 @@ midori_search_action_get_editor (MidoriSearchAction* search_action,
gtk_entry_set_activates_default (GTK_ENTRY (entry_description), TRUE); gtk_entry_set_activates_default (GTK_ENTRY (entry_description), TRUE);
if (!new_engine) if (!new_engine)
gtk_entry_set_text (GTK_ENTRY (entry_description) gtk_entry_set_text (GTK_ENTRY (entry_description)
, STR_NON_NULL (katze_item_get_text (item))); , katze_str_non_null (katze_item_get_text (item)));
gtk_box_pack_start (GTK_BOX (hbox), entry_description, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), entry_description, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (content_area), hbox); gtk_container_add (GTK_CONTAINER (content_area), hbox);
gtk_widget_show_all (hbox); gtk_widget_show_all (hbox);
@ -977,7 +971,7 @@ midori_search_action_get_editor (MidoriSearchAction* search_action,
gtk_entry_set_activates_default (GTK_ENTRY (entry_uri), TRUE); gtk_entry_set_activates_default (GTK_ENTRY (entry_uri), TRUE);
if (!new_engine) if (!new_engine)
gtk_entry_set_text (GTK_ENTRY (entry_uri) gtk_entry_set_text (GTK_ENTRY (entry_uri)
, STR_NON_NULL (katze_item_get_uri (item))); , katze_str_non_null (katze_item_get_uri (item)));
gtk_box_pack_start (GTK_BOX (hbox), entry_uri, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), entry_uri, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (content_area), hbox); gtk_container_add (GTK_CONTAINER (content_area), hbox);
gtk_widget_show_all (hbox); gtk_widget_show_all (hbox);
@ -991,7 +985,7 @@ midori_search_action_get_editor (MidoriSearchAction* search_action,
gtk_entry_set_activates_default (GTK_ENTRY (entry_icon), TRUE); gtk_entry_set_activates_default (GTK_ENTRY (entry_icon), TRUE);
if (!new_engine) if (!new_engine)
gtk_entry_set_text (GTK_ENTRY (entry_icon) gtk_entry_set_text (GTK_ENTRY (entry_icon)
, STR_NON_NULL (katze_item_get_icon (item))); , katze_str_non_null (katze_item_get_icon (item)));
gtk_box_pack_start (GTK_BOX (hbox), entry_icon, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), entry_icon, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (content_area), hbox); gtk_container_add (GTK_CONTAINER (content_area), hbox);
gtk_widget_show_all (hbox); gtk_widget_show_all (hbox);
@ -1005,7 +999,7 @@ midori_search_action_get_editor (MidoriSearchAction* search_action,
gtk_entry_set_activates_default (GTK_ENTRY (entry_token), TRUE); gtk_entry_set_activates_default (GTK_ENTRY (entry_token), TRUE);
if (!new_engine) if (!new_engine)
gtk_entry_set_text (GTK_ENTRY (entry_token) gtk_entry_set_text (GTK_ENTRY (entry_token)
, STR_NON_NULL (katze_item_get_token (item))); , katze_str_non_null (katze_item_get_token (item)));
gtk_box_pack_start (GTK_BOX (hbox), entry_token, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), entry_token, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (content_area), hbox); gtk_container_add (GTK_CONTAINER (content_area), hbox);
gtk_widget_show_all (hbox); gtk_widget_show_all (hbox);