forked from mirrors/org-mode
Fix `org-insert-heading' at buffer boundaries
* lisp/org.el (org-insert-heading): Do not error out when inserting is to be done at one of the buffer's boundaries. * testing/lisp/test-org.el: Add tests.
This commit is contained in:
parent
8eadca98a6
commit
a7e5a74e2c
|
@ -7569,7 +7569,8 @@ This is important for non-interactive uses of the command."
|
|||
(and (ignore-errors (org-back-to-heading invisible-ok))
|
||||
(org-at-heading-p))))
|
||||
(or arg (not itemp))))
|
||||
;; At beginning of buffer or so hight up that only a heading makes sense.
|
||||
;; At beginning of buffer or so high up that only a heading
|
||||
;; makes sense.
|
||||
(insert
|
||||
(if (or (bobp) (org-previous-line-empty-p)) "" "\n")
|
||||
(if (org-in-src-block-p) ",* " "* "))
|
||||
|
@ -7631,9 +7632,9 @@ This is important for non-interactive uses of the command."
|
|||
(org-end-of-subtree nil t)
|
||||
(skip-chars-backward " \r\n")
|
||||
(and (looking-at "[ \t]+") (replace-match ""))
|
||||
(forward-char 1)
|
||||
(unless (eobp) (forward-char 1))
|
||||
(when (looking-at "^\\*")
|
||||
(backward-char 1)
|
||||
(unless (bobp) (backward-char 1))
|
||||
(insert "\n")))
|
||||
|
||||
;; If we are splitting, grab the text that should be moved to the new headline
|
||||
|
|
|
@ -407,6 +407,28 @@
|
|||
(beginning-of-line)
|
||||
(looking-at "- $")))))
|
||||
|
||||
(ert-deftest test-org/insert-todo-heading-respect-content ()
|
||||
"Test `org-insert-todo-heading-respect-content' specifications."
|
||||
;; Create a TODO heading.
|
||||
(should
|
||||
(org-test-with-temp-text "* H1\n Body"
|
||||
(org-insert-todo-heading-respect-content)
|
||||
(nth 2 (org-heading-components))))
|
||||
;; Add headline after body of current subtree.
|
||||
(should
|
||||
(org-test-with-temp-text "* H1\nBody"
|
||||
(org-insert-todo-heading-respect-content)
|
||||
(eobp)))
|
||||
(should
|
||||
(org-test-with-temp-text "* H1\n** H2\nBody"
|
||||
(org-insert-todo-heading-respect-content)
|
||||
(eobp)))
|
||||
;; In a list, do not create a new item.
|
||||
(should
|
||||
(org-test-with-temp-text "* H\n- an item\n- another one"
|
||||
(search-forward "an ")
|
||||
(org-insert-todo-heading-respect-content)
|
||||
(and (eobp) (org-at-heading-p)))))
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue