Don't search for position in existing list if :exact-position

* org-capture.el (org-capture-place-item): Don't search for
position in existing list if :exact-position was supplied.

This fixes a bug reported by François Pinard in
<http://thread.gmane.org/gmane.emacs.orgmode/49995>.
This commit is contained in:
David Maus 2012-01-24 06:41:49 +01:00
parent fce92180d1
commit cda38d182a
1 changed files with 23 additions and 23 deletions

View File

@ -911,30 +911,30 @@ it. When it is a variable, retrieve the value. Return whatever we get."
(target-entry-p (org-capture-get :target-entry-p)) (target-entry-p (org-capture-get :target-entry-p))
(ind 0) (ind 0)
beg end) beg end)
(cond (if (org-capture-get :exact-position)
((org-capture-get :exact-position) (goto-char (org-capture-get :exact-position))
(goto-char (org-capture-get :exact-position))) (cond
((not target-entry-p) ((not target-entry-p)
;; Insert as top-level entry, either at beginning or at end of file ;; Insert as top-level entry, either at beginning or at end of file
(setq beg (point-min) end (point-max))) (setq beg (point-min) end (point-max)))
(t (t
(setq beg (1+ (point-at-eol)) (setq beg (1+ (point-at-eol))
end (save-excursion (outline-next-heading) (point))))) end (save-excursion (outline-next-heading) (point)))))
(if (org-capture-get :prepend) (if (org-capture-get :prepend)
(progn
(goto-char beg)
(if (org-list-search-forward (org-item-beginning-re) end t)
(progn
(goto-char (match-beginning 0))
(setq ind (org-get-indentation)))
(goto-char end)
(setq ind 0)))
(goto-char end)
(if (org-list-search-backward (org-item-beginning-re) beg t)
(progn (progn
(setq ind (org-get-indentation)) (goto-char beg)
(org-end-of-item)) (if (org-list-search-forward (org-item-beginning-re) end t)
(setq ind 0))) (progn
(goto-char (match-beginning 0))
(setq ind (org-get-indentation)))
(goto-char end)
(setq ind 0)))
(goto-char end)
(if (org-list-search-backward (org-item-beginning-re) beg t)
(progn
(setq ind (org-get-indentation))
(org-end-of-item))
(setq ind 0))))
;; Remove common indentation ;; Remove common indentation
(setq txt (org-remove-indentation txt)) (setq txt (org-remove-indentation txt))
;; Make sure this is indeed an item ;; Make sure this is indeed an item