diff --git a/lisp/org-element.el b/lisp/org-element.el index eb8ff4158..0ec86cfac 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -4887,7 +4887,7 @@ Providing it allows for quicker computation." (if (not (member (org-element-property :key element) org-element-document-properties)) (throw 'objects-forbidden element) - (beginning-of-line) + (goto-char (org-element-property :begin element)) (search-forward ":") (if (and (>= origin (point)) (< origin (line-end-position))) (narrow-to-region (point) (line-end-position)) diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index 5e8f0fff4..b86531cd9 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -3087,9 +3087,16 @@ Text ;; Find objects in document keywords. (should (eq 'macro - (org-test-with-temp-text "#+DATE: {{{macro}}}" - (progn (search-forward "{") - (org-element-type (org-element-context)))))) + (org-test-with-temp-text "#+DATE: {{{macro}}}" + (org-element-type (org-element-context))))) + (should-not + (eq 'macro + (org-test-with-temp-text "#+DATE: {{{macro}}}\n" + (org-element-type (org-element-context))))) + (should-not + (eq 'macro + (org-test-with-temp-text "#+RANDOM_KEYWORD: {{{macro}}}" + (org-element-type (org-element-context))))) ;; Do not find objects in table rules. (should (eq 'table-row