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.
This commit is contained in:
Bastien Guerry 2013-04-26 08:52:43 +02:00
parent dcb0ac48a8
commit 8d5198d654
1 changed files with 7 additions and 1 deletions

View File

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