From 9720463c8c42e51ed436a0e8cde5703ca953e406 Mon Sep 17 00:00:00 2001
From: Daniel Carl <danielcarl@gmx.de>
Date: Sat, 30 Aug 2014 00:12:42 +0200
Subject: [PATCH] Show the number of search results in status bar.

If search highlight feature is on, show the number of matches in status bar as
(num).
---
 src/command.c | 6 ++++--
 src/main.c    | 7 +++++++
 src/main.h    | 3 +++
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/command.c b/src/command.c
index ed278b3..4e90e09 100644
--- a/src/command.c
+++ b/src/command.c
@@ -39,6 +39,8 @@ gboolean command_search(const Arg *arg)
     if (arg->i == 0) {
 #ifdef FEATURE_SEARCH_HIGHLIGHT
         webkit_web_view_unmark_text_matches(vb.gui.webview);
+        vb.state.search_matches = 0;
+        vb_update_statusbar();
 #endif
         newsearch = true;
         return true;
@@ -66,10 +68,10 @@ gboolean command_search(const Arg *arg)
             /* highlight matches if the search is started new or continued
              * after switch to normal mode which calls this function with
              * COMMAND_SEARCH_OFF */
-            webkit_web_view_mark_text_matches(vb.gui.webview, query, false, 0);
+            vb.state.search_matches = webkit_web_view_mark_text_matches(vb.gui.webview, query, false, 0);
             webkit_web_view_set_highlight_text_matches(vb.gui.webview, true);
+            vb_update_statusbar();
 #endif
-
             newsearch = false;
             /* skip first search because this is done during typing in ex
              * mode, else the search will mark the next match as active */
diff --git a/src/main.c b/src/main.c
index bab1570..a9130a3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -297,6 +297,13 @@ void vb_update_statusbar()
         g_string_append_printf(status, " %d %s", num, num == 1 ? "download" : "downloads");
     }
 
+#ifdef FEATURE_SEARCH_HIGHLIGHT
+    /* show the number of matches search results */
+    if (vb.state.search_matches) {
+        g_string_append_printf(status, " (%d)", vb.state.search_matches);
+    }
+#endif
+
     /* show load status of page or the downloads */
     if (vb.state.progress != 100) {
 #ifdef FEATURE_WGET_PROGRESS_BAR
diff --git a/src/main.h b/src/main.h
index dc513e3..103ac09 100644
--- a/src/main.h
+++ b/src/main.h
@@ -301,6 +301,9 @@ typedef struct {
     char            *reg[VB_REG_SIZE];      /* holds the yank buffer */
     gboolean        enable_register;        /* indicates if registers are filled */
     gboolean        enable_history;         /* indicates if history entries are written */
+#ifdef FEATURE_SEARCH_HIGHLIGHT
+    int             search_matches;         /* number of matches search results */
+#endif
 } State;
 
 typedef struct {
-- 
2.20.1