소스 검색

Fix `org-insert-todo-heading'

* lisp/org.el (org-insert-todo-heading): Insert TODO keyword relative
  to the original headline, not to the headline above.

* testing/lisp/test-org.el (test-org/insert-todo-heading-respect-content):
  Add test.
Allen Li 7 년 전
부모
커밋
8c5c030c64
2개의 변경된 파일8개의 추가작업 그리고 2개의 파일을 삭제
  1. 1 2
      lisp/org.el
  2. 7 0
      testing/lisp/test-org.el

+ 1 - 2
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))

+ 7 - 0
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))))))