Teach browse-url to open man page urls
* lisp/net/browse-url.el (browse-url-man-function): New custom option. (browse-url): Add a condition to catch links matching "^man:". (browse-url-man): New function.
This commit is contained in:
parent
0929e061fb
commit
76b08a35bb
2 changed files with 28 additions and 0 deletions
|
@ -184,6 +184,15 @@ be used instead."
|
|||
:version "24.1"
|
||||
:group 'browse-url)
|
||||
|
||||
(defcustom browse-url-man-function 'browse-url-man
|
||||
"Function to display man: links."
|
||||
:type '(radio
|
||||
(function-item :tag "Emacs Man" :value browse-url-man)
|
||||
(const :tag "None" nil)
|
||||
(function :tag "Other function"))
|
||||
:version "26.1"
|
||||
:group 'browse-url)
|
||||
|
||||
(defcustom browse-url-netscape-program "netscape"
|
||||
;; Info about netscape-remote from Karl Berry.
|
||||
"The name by which to invoke Netscape.
|
||||
|
@ -801,6 +810,8 @@ as ARGS."
|
|||
(let ((process-environment (copy-sequence process-environment))
|
||||
(function (or (and (string-match "\\`mailto:" url)
|
||||
browse-url-mailto-function)
|
||||
(and (string-match "\\`man:" url)
|
||||
browse-url-man-function)
|
||||
browse-url-browser-function))
|
||||
;; Ensure that `default-directory' exists and is readable (b#6077).
|
||||
(default-directory (or (unhandled-file-name-directory default-directory)
|
||||
|
@ -1588,6 +1599,19 @@ used instead of `browse-url-new-window-flag'."
|
|||
(unless (bolp)
|
||||
(insert "\n"))))))))
|
||||
|
||||
;; --- man ---
|
||||
|
||||
(defvar manual-program)
|
||||
|
||||
(defun browse-url-man (url &optional _new-window)
|
||||
"Open a man page."
|
||||
(interactive (browse-url-interactive-arg "Man page URL: "))
|
||||
(require 'man)
|
||||
(setq url (replace-regexp-in-string "\\`man:" "" url))
|
||||
(cond
|
||||
((executable-find manual-program) (man url))
|
||||
(t (woman (replace-regexp-in-string "([[:alnum:]]+)" "" url)))))
|
||||
|
||||
;; --- Random browser ---
|
||||
|
||||
;;;###autoload
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue