diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2017-04-15 17:28:04 +0200 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2017-04-15 17:28:04 +0200 |
commit | 0be422187fbb362ba81c14964227edef56c23f21 (patch) | |
tree | 7d9afd747674a79a0e4643fde8a36520c2f24d9c | |
parent | 42f24c167c3fb156a2fed7daf485640063526245 (diff) | |
parent | 8a2ffac88ae697ddd835da1db1de03bb0162c4c0 (diff) | |
download | org-mode-0be422187fbb362ba81c14964227edef56c23f21.tar.gz |
Merge branch 'maint'
-rw-r--r-- | lisp/org-element.el | 11 | ||||
-rw-r--r-- | testing/lisp/test-org-element.el | 11 |
2 files changed, 19 insertions, 3 deletions
diff --git a/lisp/org-element.el b/lisp/org-element.el index bec36a0..2878164 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -4365,6 +4365,10 @@ to an appropriate container (e.g., a paragraph)." (if (memq 'table-cell restriction) (org-element-table-cell-parser) (let* ((start (point)) (limit + ;; Object regexp sometimes needs to have a peek at + ;; a character ahead. Therefore, when there is a hard + ;; limit, make it one more than the true beginning of the + ;; radio target. (save-excursion (cond ((not org-target-link-regexp) nil) ((not (memq 'link restriction)) nil) @@ -4380,8 +4384,8 @@ to an appropriate container (e.g., a paragraph)." ((and (= start (1+ (line-beginning-position))) (= start (match-end 1))) (and (re-search-forward org-target-link-regexp nil t) - (match-beginning 1))) - (t (match-beginning 1))))) + (1+ (match-beginning 1)))) + (t (1+ (match-beginning 1)))))) found) (save-excursion (while (and (not found) @@ -4453,7 +4457,8 @@ to an appropriate container (e.g., a paragraph)." (org-element-link-parser))))))) (or (eobp) (forward-char)))) (cond (found) - (limit (org-element-link-parser)) ;radio link + (limit (forward-char -1) + (org-element-link-parser)) ;radio link (t nil)))))) (defun org-element--parse-objects (beg end acc restriction &optional parent) diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index 431072e..bbc2618 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -1615,6 +1615,17 @@ e^{i\\pi}+1=0 (org-test-with-temp-text "* <<<a>>>\n<point>a-bug" (org-update-radio-target-regexp) (org-element-parse-buffer))) + ;; Pathological case: radio target in an emphasis environment. + (should + (eq 'bold + (org-test-with-temp-text "* <<<radio>>>\n<point>*radio*" + (org-update-radio-target-regexp) + (org-element-type (org-element-context))))) + (should + (eq 'link + (org-test-with-temp-text "* <<<radio>>>\n*<point>radio*" + (org-update-radio-target-regexp) + (org-element-type (org-element-context))))) ;; Standard link. ;; ;; ... with description. |