[Xfce4-commits] <midori:master> Check for duplicates before storing form fields
Christian Dywan
noreply at xfce.org
Thu Nov 12 23:16:01 CET 2009
Updating branch refs/heads/master
to 55e50e20b1626e93b6b26549b51a9bd88d6cde6d (commit)
from 1a52db823fe716185fd8c95ea3889ab2598d5245 (commit)
commit 55e50e20b1626e93b6b26549b51a9bd88d6cde6d
Author: Alexander Butenko <a.butenka at gmail.com>
Date: Thu Nov 12 23:10:37 2009 +0100
Check for duplicates before storing form fields
extensions/formhistory.c | 25 +++++++++++++++----------
1 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/extensions/formhistory.c b/extensions/formhistory.c
index 8c730d5..f0a369b 100644
--- a/extensions/formhistory.c
+++ b/extensions/formhistory.c
@@ -144,7 +144,7 @@ formhistory_update_database (gpointer db,
#endif
}
-static void
+static gboolean
formhistory_update_main_hash (gchar* key,
gchar* value)
{
@@ -152,11 +152,12 @@ formhistory_update_main_hash (gchar* key,
gchar* tmp;
if (!(value && *value))
- return;
+ return FALSE;
length = strlen (value);
if (length > MAXCHARS || length < MINCHARS)
- return;
+ return FALSE;
+ formhistory_fixup_value (value);
if ((tmp = g_hash_table_lookup (global_keys, (gpointer)key)))
{
gchar* rvalue = g_strdup_printf ("\"%s\"",value);
@@ -164,17 +165,21 @@ formhistory_update_main_hash (gchar* key,
G_REGEX_CASELESS, G_REGEX_MATCH_NOTEMPTY))
{
gchar* new_value = g_strdup_printf ("%s%s,", tmp, rvalue);
- formhistory_fixup_value (new_value);
g_hash_table_insert (global_keys, g_strdup (key), new_value);
+ g_free (rvalue);
+ }
+ else
+ {
+ g_free (rvalue);
+ return FALSE;
}
- g_free (rvalue);
}
else
{
gchar* new_value = g_strdup_printf ("\"%s\",",value);
- formhistory_fixup_value (new_value);
g_hash_table_replace (global_keys, g_strdup (key), new_value);
}
+ return TRUE;
}
#if WEBKIT_CHECK_VERSION (1, 1, 4)
@@ -223,8 +228,8 @@ formhistory_navigation_decision_cb (WebKitWebView* web_view,
/* FIXME: We need to handle passwords */
if (strcmp (parts[2], "password"))
{
- formhistory_update_main_hash (parts[0], parts[1]);
- formhistory_update_database (db, parts[0], parts[1]);
+ if (formhistory_update_main_hash (parts[0], parts[1]))
+ formhistory_update_database (db, parts[0], parts[1]);
}
}
g_strfreev (parts);
@@ -248,8 +253,8 @@ formhistory_feed_keys (GHashTable* keys,
g_hash_table_iter_init (&iter, keys);
while (g_hash_table_iter_next (&iter, (gpointer)&key, (gpointer)&value))
{
- formhistory_update_main_hash (key, value);
- formhistory_update_database (db, key, value);
+ if (formhistory_update_main_hash (key, value))
+ formhistory_update_database (db, key, value);
}
}
More information about the Xfce4-commits
mailing list