diff options
author | Gustavo Noronha Silva <gns@src.gnome.org> | 2009-01-20 23:42:05 +0800 |
---|---|---|
committer | Gustavo Noronha Silva <gns@src.gnome.org> | 2009-01-20 23:42:05 +0800 |
commit | b6714cc33b570c46f4beb35710b5240eebdf4aa0 (patch) | |
tree | c609a1d8034682204edc5d3f35938fb2ccae1c90 | |
parent | 204e4d53d1f29b4ed4c2b66ff16634aa9dbe25a4 (diff) | |
download | gsoc2013-epiphany-b6714cc33b570c46f4beb35710b5240eebdf4aa0.tar gsoc2013-epiphany-b6714cc33b570c46f4beb35710b5240eebdf4aa0.tar.gz gsoc2013-epiphany-b6714cc33b570c46f4beb35710b5240eebdf4aa0.tar.bz2 gsoc2013-epiphany-b6714cc33b570c46f4beb35710b5240eebdf4aa0.tar.lz gsoc2013-epiphany-b6714cc33b570c46f4beb35710b5240eebdf4aa0.tar.xz gsoc2013-epiphany-b6714cc33b570c46f4beb35710b5240eebdf4aa0.tar.zst gsoc2013-epiphany-b6714cc33b570c46f4beb35710b5240eebdf4aa0.zip |
Handle end of line correctly on location bar search
This change fixes the last character of the last search term being cut
off by special casing the end of the line.
svn path=/trunk/; revision=8708
-rw-r--r-- | lib/widgets/ephy-location-entry.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/widgets/ephy-location-entry.c b/lib/widgets/ephy-location-entry.c index fae13d5fe..ff84fa3fe 100644 --- a/lib/widgets/ephy-location-entry.c +++ b/lib/widgets/ephy-location-entry.c @@ -357,7 +357,7 @@ editable_changed_cb (GtkEditable *editable, char *term; GRegex *term_regex; GRegex *quote_regex; - guint count; + gint count; gboolean inside_quotes = FALSE; quote_regex = g_regex_new ("\"", G_REGEX_OPTIMIZE, @@ -388,6 +388,15 @@ editable_changed_cb (GtkEditable *editable, if (((ptr[0] == ' ') && (!inside_quotes)) || ptr[1] == '\0') { /* + * We special-case the end of the line because + * we would otherwise not copy the last character + * of the search string, since the for loop will + * stop before that. + */ + if (ptr[1] == '\0') + count++; + + /* * remove quotes, and quote any regex-sensitive * characters */ @@ -402,7 +411,8 @@ editable_changed_cb (GtkEditable *editable, priv->search_terms = g_slist_append (priv->search_terms, term_regex); g_free (term); - count = 0; + /* count will be incremented by the for loop */ + count = -1; current = ptr + 1; } } |