summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2019-04-10 15:26:46 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2019-04-10 15:26:46 +0200
commit09a1a24b735d5e65ca8f27eca2834b8923da6f70 (patch)
tree50eb28eeb8bd6493e9f3e838251b43e53b65ef9d
parentea4876869c05ff58bfdeefdfcd69bd510b280c01 (diff)
downloadorg-mode-09a1a24b735d5e65ca8f27eca2834b8923da6f70.tar.gz
ol: Fix `org-previous-link' skipping links
* lisp/ol.el (org-next-link): Do not skip links when searching backwards. Reported-by: stardiviner <numbchild@gmail.com> <http://lists.gnu.org/r/emacs-orgmode/2019-04/msg00022.html>
-rw-r--r--lisp/ol.el2
-rw-r--r--testing/lisp/test-ol.el5
2 files changed, 6 insertions, 1 deletions
diff --git a/lisp/ol.el b/lisp/ol.el
index 2dd171e..a6f76a3 100644
--- a/lisp/ol.el
+++ b/lisp/ol.el
@@ -1308,7 +1308,7 @@ is non-nil, move backward."
(catch :found
(while (funcall search-fun org-link-any-re nil t)
(let ((context (save-excursion
- (forward-char -1)
+ (unless search-backward (forward-char -1))
(org-element-context))))
(pcase (org-element-lineage context '(link) t)
(`nil nil)
diff --git a/testing/lisp/test-ol.el b/testing/lisp/test-ol.el
index c7c4703..fd735dc 100644
--- a/testing/lisp/test-ol.el
+++ b/testing/lisp/test-ol.el
@@ -352,6 +352,11 @@
(org-test-with-temp-text "[[link1]]\n[[link2<point>]]"
(org-previous-link)
(buffer-substring (point) (line-end-position)))))
+ (should
+ (equal "[[link1]]"
+ (org-test-with-temp-text "line\n[[link1]]\n[[link2<point>]]"
+ (org-previous-link)
+ (buffer-substring (point) (line-end-position)))))
;; Ignore fake links.
(should
(equal "[[truelink]]"