]> git.eshelyaron.com Git - emacs.git/commitdiff
Fixes: debbugs:19335
authorVibhav Pant <vibhavp@gmail.com>
Mon, 16 Mar 2015 23:57:23 +0000 (05:27 +0530)
committerVibhav Pant <vibhavp@gmail.com>
Mon, 16 Mar 2015 23:57:23 +0000 (05:27 +0530)
* net/browse-url.el (browse-url-browser-function): Add "Conkeror".
(browse-url-conkeror-program, browse-url-conkeror-arguments)
(browse-url-conkeror-new-window-is-buffer): New defcustoms.
(browse-url-default-browser): Check for `browse-url-conkeror'
and call `browse-url-conkeror-program'.
(browse-url-conkeror): New command.
(bug#19863)

* etc/NEWS: Mention added support for Conkeror.

etc/NEWS
lisp/ChangeLog
lisp/net/browse-url.el

index 491d0d3de54e94b7358cbedfc71ada3dabdf2529..24ed0799b2c28bc7853cf7c98c45bc730c7e3119 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -560,6 +560,10 @@ command line's password prompt.
 
 *** The new built-in command `clear' can scroll window contents out of sight.
 
+** Browse-url
+
+*** browse-url now supports the Conkeror Web Browser.
+
 +++
 ** tar-mode: new `tar-new-entry' command, allowing for new members to
 be added to the archive.
index 3af4bb20b04ff69a9d4b69cb6a91bfaa6d1350bc..1383fdb2ecf5d6cef51a856ba8a34b15a29cd4c9 100644 (file)
@@ -1,3 +1,13 @@
+2015-03-16  Vibhav Pant  <vibhavp@gmail.com>
+
+       * net/browse-url.el (browse-url-browser-function): Add "Conkeror".
+       (browse-url-conkeror-program, browse-url-conkeror-arguments)
+       (browse-url-conkeror-new-window-is-buffer): New defcustoms.
+       (browse-url-default-browser): Check for `browse-url-conkeror'
+       and call `browse-url-conkeror-program'.
+       (browse-url-conkeror): New command.
+       (bug#19863)
+
 2015-03-16  Vibhav Pant  <vibhavp@gmail.com>
 
        * eshell/esh-mode.el (eshell/clear): New function.
index 5e61c094c2e07e1f16c6369827f2bec55e9a07a6..4b64d95d0c6c074829274a3cc93af4773ce0ea97 100644 (file)
@@ -42,6 +42,7 @@
 ;; browse-url-netscape                Netscape    1.1b1
 ;; browse-url-mosaic                  XMosaic/mMosaic <= 2.4
 ;; browse-url-cci                     XMosaic     2.5
+;; browse-url-conkeror                Conkeror    Dont know
 ;; browse-url-w3                      w3          0
 ;; browse-url-w3-gnudoit              w3 remotely
 ;; browse-url-text-*                 Any text browser     0
@@ -236,6 +237,7 @@ regexp should probably be \".\" to specify a default browser."
          (function-item :tag "Netscape" :value  browse-url-netscape)
          (function-item :tag "Mosaic" :value  browse-url-mosaic)
          (function-item :tag "Mosaic using CCI" :value  browse-url-cci)
+         (function-item :tag "Conkeror" :value  browse-url-conkeror)
          (function-item :tag "Text browser in an xterm window"
                         :value browse-url-text-xterm)
          (function-item :tag "Text browser in an Emacs window"
@@ -416,6 +418,13 @@ functionality is not available there."
   :type 'boolean
   :group 'browse-url)
 
+(defcustom browse-url-conkeror-new-window-is-buffer nil
+  "Whether to open up new windows in a buffer or a new window.
+If non-nill, then open the URL in a new buffer rather than a new window if
+`browse-url-conkeror' is asked to open it in a new window"
+  :type 'boolean
+  :group 'browse-url)
+
 (defcustom browse-url-galeon-new-window-is-tab nil
   "Whether to open up new windows in a tab or a new window.
 If non-nil, then open the URL in a new tab rather than a new window if
@@ -462,6 +471,17 @@ commands reverses the effect of this variable.  Requires Netscape version
   :type 'string
   :group 'browse-url)
 
+(defcustom browse-url-conkeror-program "conkeror"
+  "The name by which to invoke Conkeror."
+  :type 'string
+  :version "25.1"
+  :group 'browse-url)
+
+(defcustom browse-url-conkeror-arguments nil
+  "A list of strings to pass to Conkeror as arguments."
+  :type '(repeat (string :tag "Argument"))
+  :group 'browse-url)
+
 (defcustom browse-url-filename-alist
   `(("^/\\(ftp@\\|anonymous@\\)?\\([^:]+\\):/*" . "ftp://\\2/")
     ;; The above loses the username to avoid the browser prompting for
@@ -936,6 +956,7 @@ used instead of `browse-url-new-window-flag'."
     ((executable-find browse-url-kde-program) 'browse-url-kde)
     ((executable-find browse-url-netscape-program) 'browse-url-netscape)
     ((executable-find browse-url-mosaic-program) 'browse-url-mosaic)
+    ((executable-find browse-url-conkeror-program) 'browse-url-conkeror)
     ((executable-find browse-url-xterm-program) 'browse-url-text-xterm)
     ((locate-library "w3") 'browse-url-w3)
     (t
@@ -1359,6 +1380,41 @@ used instead of `browse-url-new-window-flag'."
   (process-send-string "browse-url" "disconnect\r\n")
   (delete-process "browse-url"))
 
+;; --- Conkeror ---
+;;;###autoload
+(defun browse-url-conkeror (url &optional new-window)
+  "Ask the Conkeror WWW browser to load URL.
+Default to the URL around or before point. The strings in the variable
+`browse-url-conkeror-arguments' are also passed to Conkeror.
+
+When called interactively, if variable `browse-url-new-window-flag'
+is non-nil, load the document in a new Conkeror window, otherwise use a random
+existing one. A non-nil interactive prefix argument reverses the effect of
+`browse-url-new-window-flag'
+
+If `browse-url-conkeror-new-window-is-buffer' then whenever a document would
+otherwise be loaded in a new window, it is loaded in a new buffer in an existing
+window instead.
+
+When called non-interatively, optional second argument NEW-WINDOW is used instead of
+`browse-url-new-window-flag'"
+  (interactive (browse-url-interactive-arg "URL: "))
+  (setq url (browse-url-encode-url url))
+  (let* ((process-environment (browse-url-process-environment)))
+    (apply 'start-process (format "conkeror %s" url)
+          nil
+          browse-url-conkeror-program
+          (append
+           browse-url-conkeror-arguments
+           (list
+            "-e"
+            (format "load_url_in_new_%s('%s')"
+                    (if (browse-url-maybe-new-window new-window)
+                        (if browse-url-conkeror-new-window-is-buffer
+                            "buffer"
+                          "window")
+                      "buffer")
+                    url))))))
 ;; --- W3 ---
 
 ;; External.