Merge branch 'maint'
This commit is contained in:
commit
ed291a4a91
|
@ -1088,48 +1088,38 @@ may have been stored before."
|
|||
|
||||
(defun org-capture-place-entry ()
|
||||
"Place the template as a new Org entry."
|
||||
(let* ((txt (org-capture-get :template))
|
||||
(reversed (org-capture-get :prepend))
|
||||
(target-entry-p (org-capture-get :target-entry-p))
|
||||
level beg end)
|
||||
|
||||
(and (org-capture-get :exact-position)
|
||||
(goto-char (org-capture-get :exact-position)))
|
||||
(let ((reversed? (org-capture-get :prepend))
|
||||
level)
|
||||
(when (org-capture-get :exact-position)
|
||||
(goto-char (org-capture-get :exact-position)))
|
||||
(cond
|
||||
((not target-entry-p)
|
||||
;; Insert as top-level entry, either at beginning or at end of
|
||||
;; file.
|
||||
(setq level 1)
|
||||
(if reversed
|
||||
(progn (goto-char (point-min))
|
||||
(or (org-at-heading-p)
|
||||
(outline-next-heading)))
|
||||
(goto-char (point-max))
|
||||
(or (bolp) (insert "\n"))))
|
||||
(t
|
||||
;; Insert as a child of the current entry
|
||||
(and (looking-at "\\*+")
|
||||
(setq level (- (match-end 0) (match-beginning 0))))
|
||||
(setq level (org-get-valid-level (or level 1) 1))
|
||||
(if reversed
|
||||
(progn
|
||||
(outline-next-heading)
|
||||
(or (bolp) (insert "\n")))
|
||||
(org-end-of-subtree t nil)
|
||||
(or (bolp) (insert "\n")))))
|
||||
;; Insert as a child of the current entry.
|
||||
((org-capture-get :target-entry-p)
|
||||
(setq level (org-get-valid-level
|
||||
(if (org-at-heading-p) (org-outline-level) 1)
|
||||
1))
|
||||
(if reversed? (outline-next-heading) (org-end-of-subtree t)))
|
||||
;; Insert as a top-level entry at the beginning of the file.
|
||||
(reversed?
|
||||
(goto-char (point-min))
|
||||
(unless (org-at-heading-p) (outline-next-heading)))
|
||||
;; Otherwise, insert as a top-level entry at the end of the file.
|
||||
(t (goto-char (point-max))))
|
||||
(unless (bolp) (insert "\n"))
|
||||
(org-capture-empty-lines-before)
|
||||
(setq beg (point))
|
||||
(org-capture-verify-tree txt)
|
||||
(org-paste-subtree level txt 'for-yank)
|
||||
(org-capture-empty-lines-after)
|
||||
(org-capture-position-for-last-stored beg)
|
||||
(outline-next-heading)
|
||||
(setq end (point))
|
||||
(org-capture-mark-kill-region beg (1- end))
|
||||
(org-capture-narrow beg (1- end))
|
||||
(if (or (re-search-backward "%\\?" beg t)
|
||||
(re-search-forward "%\\?" end t))
|
||||
(replace-match ""))))
|
||||
(let ((beg (point))
|
||||
(template (org-capture-get :template)))
|
||||
(org-capture-verify-tree template)
|
||||
(org-paste-subtree level template 'for-yank)
|
||||
(org-capture-empty-lines-after)
|
||||
(org-capture-position-for-last-stored beg)
|
||||
(unless (org-at-heading-p) (outline-next-heading))
|
||||
(let ((end (point)))
|
||||
(org-capture-mark-kill-region beg end)
|
||||
(org-capture-narrow beg end)
|
||||
(when (or (re-search-backward "%\\?" beg t)
|
||||
(re-search-forward "%\\?" end t))
|
||||
(replace-match ""))))))
|
||||
|
||||
(defun org-capture-place-item ()
|
||||
"Place the template as a new plain list item."
|
||||
|
|
Loading…
Reference in New Issue