diff --git a/lisp/org-element.el b/lisp/org-element.el index 1e5ca3e6b..0e01a0a8e 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -737,7 +737,9 @@ Return a list whose CAR is `drawer' and CDR is a plist containing Assume point is at beginning of drawer." (let ((case-fold-search t)) - (if (not (save-excursion (re-search-forward "^[ \t]*:END:[ \t]*$" limit t))) + (if (not (save-excursion + (goto-char (min limit (line-end-position))) + (re-search-forward "^[ \t]*:END:[ \t]*$" limit t))) ;; Incomplete drawer: parse it as a paragraph. (org-element-paragraph-parser limit affiliated) (save-excursion diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index bc21df33e..93dd3b161 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -662,6 +662,9 @@ Some other text (should-not (org-test-with-temp-text ":TEST:" (org-element-map (org-element-parse-buffer) 'drawer 'identity nil t))) + (should-not + (org-test-with-temp-text ":END:" + (org-element-map (org-element-parse-buffer) 'drawer 'identity nil t))) ;; Handle non-empty blank line at the end of buffer. (should (org-test-with-temp-text ":TEST:\nC\n:END:\n "