[Conkeror] [PATCH] google-search-results: use search result links for more commands

David Kettler kettler at internode.on.net
Fri Feb 6 20:46:51 PST 2009


Use browser_object_google_search_results_links as the default browser
object for all interactive commands that normally use
browser_object_links.  This commit adds follow-new-buffer,
follow-new-buffer-background, follow-new-window and removes
shell-command-on-url.

The code is restructured a little too.

---

It's clunky to have to explicitly list and override all relevant
commands.  Alternatives:

  - trawl through interactive_commands and set
    buffer.default_browser_object_classes for those that have
    browser_object == browser_object_links.

    That's very heavy handed though.

  - Have some further indirection in the hints or browser_object
    system to allow classes to be overridden.  Perhaps this relates to
    the generalized interactive extensions discussed at
    http://bugs.conkeror.org/issue90.
---
 modules/page-modes/google-search-results.js |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/modules/page-modes/google-search-results.js b/modules/page-modes/google-search-results.js
index abca8e9..29037c1 100644
--- a/modules/page-modes/google-search-results.js
+++ b/modules/page-modes/google-search-results.js
@@ -56,15 +56,18 @@ function google_search_bind_number_shortcuts () {
 
 define_page_mode("google_search_results_mode", "Google Search Results",
                  $enable = function (buffer) {
-                     buffer.local_variables.content_buffer_normal_keymap = google_search_results_keymap;
-                     buffer.default_browser_object_classes = {
-                         follow: browser_object_google_search_results_links,
-                         copy: browser_object_google_search_results_links,
-                         save: browser_object_google_search_results_links };
-                     buffer.default_browser_object_classes['shell-command-on-file'] =
-                         browser_object_google_search_results_links;
-                     buffer.default_browser_object_classes['shell-command-on-url'] =
-                         browser_object_google_search_results_links;
+                     buffer.local_variables.content_buffer_normal_keymap =
+		         google_search_results_keymap;
+		     var link_using_commands = ["follow",
+						"follow-new-buffer",
+						"follow-new-buffer-background",
+						"follow-new-window",
+						"save",
+						"copy",
+						"shell-command-on-file"];
+		     for each (var c in link_using_commands)
+			 buffer.default_browser_object_classes[c] =
+			     browser_object_google_search_results_links;
                  });
 
 let (google_search_re = build_url_regex(
-- 
1.5.6.5



More information about the Conkeror mailing list