org-element-cache-map: Fix edge case when FUNC removes DATA
* lisp/org-element.el (org-element-cache-map): Fix when DATA is obsolete after buffer modification. * testing/lisp/test-org.el (test-org/map-entries): Add test. Reported-by: Victor A. Stoichita <victor@svictor.net> Link: https://orgmode.org/list/87v8fzxbfo.fsf@svictor.net
This commit is contained in:
parent
f2e71ee726
commit
84e5a4da54
|
@ -7734,7 +7734,8 @@ the cache."
|
|||
;; it to real beginning then despite
|
||||
;; START being larger.
|
||||
(setq start nil)
|
||||
(move-start-to-next-match nil)
|
||||
(let ((data nil)) ; data may not be valid. ignore it.
|
||||
(move-start-to-next-match nil))
|
||||
;; The new element may now start before
|
||||
;; or at already processed position.
|
||||
;; Make sure that we continue from an
|
||||
|
|
|
@ -2774,7 +2774,30 @@ SCHEDULED: <2014-03-04 tue.>"
|
|||
(beginning-of-line 2)
|
||||
(insert "test\n")
|
||||
(beginning-of-line -1)))
|
||||
acc))))))
|
||||
acc)))))
|
||||
;; Removing heading being processed.
|
||||
(should
|
||||
(equal
|
||||
"Some text
|
||||
Some text
|
||||
Some more text
|
||||
Let’s stop here
|
||||
"
|
||||
(org-test-with-temp-text
|
||||
"* Heading 1
|
||||
Some text
|
||||
** Heading 1.1
|
||||
Some text
|
||||
* Heading 2
|
||||
Some more text
|
||||
** Heading 2.1
|
||||
Let’s stop here
|
||||
"
|
||||
(org-map-entries
|
||||
(lambda ()
|
||||
(delete-region (point) (line-beginning-position 2))
|
||||
(setq org-map-continue-from (point))))
|
||||
(buffer-string)))))
|
||||
|
||||
(ert-deftest test-org/edit-headline ()
|
||||
"Test `org-edit-headline' specifications."
|
||||
|
|
Loading…
Reference in New Issue