Browse Source

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>.
David Maus 8 years ago
parent
commit
cda38d182a
1 changed files with 23 additions and 23 deletions
  1. 23 23
      lisp/org-capture.el

+ 23 - 23
lisp/org-capture.el

@@ -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))
 	 (ind 0)
 	 beg end)
-    (cond
-     ((org-capture-get :exact-position)
-      (goto-char (org-capture-get :exact-position)))
-     ((not target-entry-p)
-      ;; Insert as top-level entry, either at beginning or at end of file
-      (setq beg (point-min) end (point-max)))
-     (t
-      (setq beg (1+ (point-at-eol))
-	    end (save-excursion (outline-next-heading) (point)))))
-    (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)
+    (if (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 beg (point-min) end (point-max)))
+       (t
+	(setq beg (1+ (point-at-eol))
+	      end (save-excursion (outline-next-heading) (point)))))
+      (if (org-capture-get :prepend)
 	  (progn
-	    (setq ind (org-get-indentation))
-	    (org-end-of-item))
-	(setq ind 0)))
+	    (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
+	      (setq ind (org-get-indentation))
+	      (org-end-of-item))
+	  (setq ind 0))))
     ;; Remove common indentation
     (setq txt (org-remove-indentation txt))
     ;; Make sure this is indeed an item