From 43a847c02c3eb848cd0d55a4722bfe7f39b1112f Mon Sep 17 00:00:00 2001 From: Vibhav Pant Date: Tue, 17 Mar 2015 05:27:23 +0530 Subject: [PATCH] Fixes: debbugs:19335 * 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 | 4 +++ lisp/ChangeLog | 10 ++++++++ lisp/net/browse-url.el | 56 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index 491d0d3de54..24ed0799b2c 100644 --- 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. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3af4bb20b04..1383fdb2ecf 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,13 @@ +2015-03-16 Vibhav Pant + + * 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 * eshell/esh-mode.el (eshell/clear): New function. diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index 5e61c094c2e..4b64d95d0c6 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -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. -- 2.39.2