On Tue, Oct 17, 2017 at 12:47 AM, Nicolas Goaziou <m...@nicolasgoaziou.fr> wrote: > Hello, > > Allen Li <vianchielfa...@gmail.com> writes: > >> This makes org-insert-todo-heading-respect-content use the previous >> heading of the same level instead of the previous heading regardless >> of level. >> >> Given: >> >> * TODO some task >> ** WAITING other task >> >> The original code yields: >> >> * TODO some task >> ** WAITING other task >> * WAITING >> >> This commit yields: >> >> * TODO some task >> ** WAITING other task >> * TODO >> >> * lisp/org.el (org-insert-todo-heading): Use keyword of previous same >> level heading > > Thank you. > > Would you mind adding a test in "test-org.el", to > `insert-todo-heading-respect-content' test? > > Regards, > > -- > Nicolas Goaziou
Here's the new patch with tests --- lisp/org.el | 3 +-- testing/lisp/test-org.el | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index d6cd77bf9..100fe9a58 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -7947,8 +7947,7 @@ unchecked check box." (org-insert-heading (or (and (equal arg '(16)) '(16)) force-heading)) (save-excursion - (org-back-to-heading) - (outline-previous-heading) + (org-forward-heading-same-level -1) (let ((case-fold-search nil)) (looking-at org-todo-line-regexp))) (let* ((new-mark-x (if (or (equal arg '(4)) diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el index 3bc8c7b23..1b9178426 100644 --- a/testing/lisp/test-org.el +++ b/testing/lisp/test-org.el @@ -1415,6 +1415,13 @@ "* TODO \n" (org-test-with-temp-text "* H\n- an item\n- another one" (search-forward "an ") + (org-insert-todo-heading-respect-content) + (buffer-substring-no-properties (line-beginning-position) (point-max))))) + ;; Use the same TODO keyword as current heading. + (should + (equal + "* TODO\n" + (org-test-with-temp-text "* TODO\n** WAITING\n" (org-insert-todo-heading-respect-content) (buffer-substring-no-properties (line-beginning-position) (point-max)))))) -- 2.15.0.rc0.271.g36b669edcc-goog