瀏覽代碼

org.el (org-insert-heading): Fix case when there the first heading starts at the beginning of the buffer

* org.el (org-insert-heading): Fix case when there the first
heading starts at the beginning of the buffer.

In this case, `org-backward-heading-same-level' will throw an error in
the let form, and the error would fall back on "*" instead of falling
back on the correct number of stars to add.

Thanks to Jisang Yoo and John Hendy who reported this bug.
Bastien Guerry 12 年之前
父節點
當前提交
8d5198d654
共有 1 個文件被更改,包括 7 次插入1 次删除
  1. 7 1
      lisp/org.el

+ 7 - 1
lisp/org.el

@@ -7523,6 +7523,12 @@ This is important for non-interactive uses of the command."
 	      (or (not (null arg)) org-insert-heading-respect-content))
 	     (level nil)
 	     (on-heading (org-at-heading-p))
+	     ;; Get a level to fall back on
+	     (fix-level
+	      (save-excursion
+		(org-back-to-heading t)
+		(looking-at org-outline-regexp)
+		(make-string (1- (length (match-string 0))) ?*)))
 	     (on-empty-line
 	      (save-excursion (beginning-of-line 1) (looking-at "^\\s-*$")))
 	     (head (save-excursion
@@ -7547,7 +7553,7 @@ This is important for non-interactive uses of the command."
 					(not (org-previous-line-empty-p t)))
 			     (setq empty-line-p (org-previous-line-empty-p)))
 			   (match-string 0))
-		       (error "* "))))
+		       (error (or fix-level "* ")))))
 	     (blank-a (cdr (assq 'heading org-blank-before-new-entry)))
 	     (blank (if (eq blank-a 'auto) empty-line-p blank-a))
 	     pos hide-previous previous-pos)