Prevent duplicating calls to `org-link-search'
* lisp/org.el (org-open-at-point): Do not call twice `org-link-search' when destination is not accessible within the current narrowed part of the buffer.
This commit is contained in:
parent
b4d85b47a9
commit
776449fd7d
24
lisp/org.el
24
lisp/org.el
|
@ -10827,22 +10827,24 @@ link in a property drawer line."
|
|||
(if (not arg) (org-mark-ring-push)
|
||||
(switch-to-buffer-other-window
|
||||
(org-get-buffer-for-internal-link (current-buffer))))
|
||||
(let ((cmd
|
||||
(let ((destination
|
||||
(org-with-wide-buffer
|
||||
(if (equal type "radio")
|
||||
`(org-search-radio-target
|
||||
,(org-element-property :path link))
|
||||
`(org-link-search
|
||||
,(if (member type '("custom-id" "coderef"))
|
||||
(org-search-radio-target
|
||||
(org-element-property :path link))
|
||||
(org-link-search
|
||||
(if (member type '("custom-id" "coderef"))
|
||||
(org-element-property :raw-link link)
|
||||
path)
|
||||
;; Prevent fuzzy links from matching
|
||||
;; themselves.
|
||||
,(and (equal type "fuzzy")
|
||||
(+ 2
|
||||
(org-element-property :begin link)))))))
|
||||
(condition-case nil
|
||||
(let ((org-link-search-inhibit-query t)) (eval cmd))
|
||||
(error (progn (widen) (eval cmd)))))))
|
||||
(and (equal type "fuzzy")
|
||||
(+ 2 (org-element-property :begin link)))))
|
||||
(point))))
|
||||
(unless (and (<= (point-min) destination)
|
||||
(>= (point-max) destination))
|
||||
(widen))
|
||||
(goto-char destination))))
|
||||
(t (browse-url-at-point))))))
|
||||
;; On a footnote reference or at a footnote definition's label.
|
||||
((or (eq type 'footnote-reference)
|
||||
|
|
Loading…
Reference in New Issue