Search reverse. Use vim keys (n, N and /, ?).
authorPeter Suschlik <peter@suschlik.de>
Sun, 17 May 2009 14:01:33 +0000 (16:01 +0200)
committerPeter Suschlik <peter@suschlik.de>
Sun, 17 May 2009 14:01:33 +0000 (16:01 +0200)
examples/configs/sampleconfig-dev
uzbl.c
uzbl.h

index 901421b..752a191 100644 (file)
@@ -67,8 +67,10 @@ bind    t         = toggle_status
 # Hilight matches. Notice the * after the slash - it makes the command incremental, i.e. gets called
 # on every character you type.  You can do `bind /_ = search %s' if you want it less interactive.
 bind    /*        = search %s
+bind    ?*        = search_reverse %s
 #jump to next
-bind    ;         = search
+bind    n         = search
+bind    N         = search_reverse
 bind    gh        = uri http://www.uzbl.org
 #TODO: set uri?
 bind    o _       = uri %s
diff --git a/uzbl.c b/uzbl.c
index bbc2c27..ca37eab 100644 (file)
--- a/uzbl.c
+++ b/uzbl.c
@@ -411,7 +411,8 @@ static struct {char *name; Command command;} cmdlist[] =
     { "spawn",            spawn                   },
     { "sh",               spawn_sh                },
     { "exit",             close_uzbl              },
-    { "search",           search_text             },
+    { "search",           search_forward_text     },
+    { "search_reverse",   search_reverse_text     },
     { "insert_mode",      set_insert_mode         },
     { "runcmd",           runcmd                  }
 };
@@ -483,7 +484,7 @@ run_js (WebKitWebView * web_view, const gchar *param) {
 }
 
 static void
-search_text (WebKitWebView *page, const char *param) {
+search_text (WebKitWebView *page, const char *param, const gboolean forward) {
     if ((param) && (param[0] != '\0')) {
         strcpy(uzbl.state.searchtx, param);
     }
@@ -493,11 +494,21 @@ search_text (WebKitWebView *page, const char *param) {
         webkit_web_view_unmark_text_matches (page);
         webkit_web_view_mark_text_matches (page, uzbl.state.searchtx, FALSE, 0);
         webkit_web_view_set_highlight_text_matches (page, TRUE);
-        webkit_web_view_search_text (page, uzbl.state.searchtx, FALSE, TRUE, TRUE);
+        webkit_web_view_search_text (page, uzbl.state.searchtx, FALSE, forward, TRUE);
     }
 }
 
 static void
+search_forward_text (WebKitWebView *page, const char *param) {
+    search_text(page, param, TRUE);
+}
+
+static void
+search_reverse_text (WebKitWebView *page, const char *param) {
+    search_text(page, param, FALSE);
+}
+
+static void
 new_window_load_uri (const gchar * uri) {
     GString* to_execute = g_string_new ("");
     g_string_append_printf (to_execute, "%s --uri '%s'", uzbl.state.executable_path, uri);
diff --git a/uzbl.h b/uzbl.h
index 368ad46..11a4ad7 100644 (file)
--- a/uzbl.h
+++ b/uzbl.h
@@ -345,7 +345,10 @@ static void
 settings_init ();
 
 static void
-search_text (WebKitWebView *page, const char *param);
+search_forward_text (WebKitWebView *page, const char *param);
+
+static void
+search_reverse_text (WebKitWebView *page, const char *param);
 
 static void
 run_js (WebKitWebView * web_view, const gchar *param);