From: vibhavp@gmail.com
To: "emacs-devel\@gnu.org" <emacs-devel@gnu.org>
Subject: [PATCH] Add support for Conkeror in browse-url.el
Date: Thu, 12 Feb 2015 20:55:09 +0530 [thread overview]
Message-ID: <87bnkzxicq.fsf@gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 331 bytes --]
Hello,
I have added support for net/browse-url.el for Conkeror[1], a web
browser based on Mozilla's XULRunner, which provides an emacs-like
navigation interface.
The browser treats tabs like "buffers", which can be navigated with C-x
b, so I have used the term "buffer" instead of "tabs" in the code, to
maintain consistency.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Add support for conkeror --]
[-- Type: text/x-diff, Size: 4960 bytes --]
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ff2755d..908a32e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,12 @@
+2015-02-12 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.
+
2015-02-12 Oleh Krehel <ohwoeowho@gmail.com>
* progmodes/gdb-mi.el (gdb-display-io-nopopup): New defcustom.
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index 42fb954..6cbf393 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"
@@ -413,6 +415,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
@@ -459,6 +468,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
@@ -933,6 +953,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
@@ -1392,6 +1413,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.
[-- Attachment #3: Type: text/plain, Size: 29 bytes --]
[1]: http://conkeror.org/
next reply other threads:[~2015-02-12 15:25 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-12 15:25 vibhavp [this message]
2015-02-14 8:07 ` [PATCH] Add support for Conkeror in browse-url.el Vibhav Pant
2015-02-14 9:30 ` Jan D.
2015-02-14 11:22 ` vibhavp
2015-02-14 13:51 ` Jan D.
2015-02-15 5:15 ` vibhavp
2015-02-15 10:13 ` Jan D.
2015-02-15 20:30 ` Stefan Monnier
2015-02-16 2:33 ` vibhavp
2015-03-10 19:52 ` Vibhav Pant
2015-02-14 11:32 ` Artur Malabarba
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87bnkzxicq.fsf@gmail.com \
--to=vibhavp@gmail.com \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.