Merge branch 'bugfix'
This commit is contained in:
commit
8f7efd9d7d
|
@ -44,13 +44,27 @@
|
||||||
:group 'org-link
|
:group 'org-link
|
||||||
:type '(choice (const man) (const :tag "WoMan (obsolete)" woman)))
|
:type '(choice (const man) (const :tag "WoMan (obsolete)" woman)))
|
||||||
|
|
||||||
|
(declare-function Man-translate-references "man" (ref))
|
||||||
(defun org-man-open (path _)
|
(defun org-man-open (path _)
|
||||||
"Visit the manpage on PATH.
|
"Visit the manpage on PATH.
|
||||||
PATH should be a topic that can be thrown at the man command.
|
PATH should be a topic that can be thrown at the man command.
|
||||||
If PATH contains extra ::STRING which will use `occur' to search
|
If PATH contains extra ::STRING which will use `occur' to search
|
||||||
matched strings in man buffer."
|
matched strings in man buffer."
|
||||||
|
(require 'man) ; For `Man-translate-references'
|
||||||
(string-match "\\(.*?\\)\\(?:::\\(.*\\)\\)?$" path)
|
(string-match "\\(.*?\\)\\(?:::\\(.*\\)\\)?$" path)
|
||||||
(let* ((command (match-string 1 path))
|
(let* ((command (match-string 1 path))
|
||||||
|
;; FIXME: Remove after we drop Emacs 29 support.
|
||||||
|
;; Working around security bug #66390.
|
||||||
|
(command (if (org-man-store-link (equal (Man-translate-references ";id") "\\;id"))
|
||||||
|
;; We are on Emacs that properly escapes man
|
||||||
|
;; command args (see Emacs commit 820f0793f0b).
|
||||||
|
command
|
||||||
|
;; Older Emacs without the fix - escape the
|
||||||
|
;; arguments ourselves.
|
||||||
|
(mapconcat 'identity
|
||||||
|
(mapcar #'shell-quote-argument
|
||||||
|
(split-string command "\\s-+"))
|
||||||
|
" ")))
|
||||||
(search (match-string 2 path))
|
(search (match-string 2 path))
|
||||||
(buffer (funcall org-man-command command)))
|
(buffer (funcall org-man-command command)))
|
||||||
(when search
|
(when search
|
||||||
|
|
Loading…
Reference in New Issue