Browse Source

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 years ago
parent
commit
8d5198d654
1 changed files with 7 additions and 1 deletions
  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)