Browse Source

Merge branch 'maint'

Nicolas Goaziou 8 năm trước cách đây
mục cha
commit
235d3c5e45
1 tập tin đã thay đổi với 16 bổ sung16 xóa
  1. 16 16
      lisp/org-capture.el

+ 16 - 16
lisp/org-capture.el

@@ -750,8 +750,7 @@ captured item after finalizing."
       ;; Store this place as the last one where we stored something
       ;; Do the marking in the base buffer, so that it makes sense after
       ;; the indirect buffer has been killed.
-      (when org-capture-bookmark
-	(org-capture-bookmark-last-stored-position))
+      (org-capture-store-last-position)
 
       ;; Run the hook
       (run-hooks 'org-capture-before-finalize-hook))
@@ -888,12 +887,12 @@ Store them in the capture property list."
 	   (_ (error "Cannot find target ID \"%s\"" id))))
 	(`(file+headline ,path ,headline)
 	 (set-buffer (org-capture-target-buffer path))
-	 (org-capture-put-target-region-and-position)
-	 (widen)
-	 (goto-char (point-min))
 	 (unless (derived-mode-p 'org-mode)
 	   (error "Target buffer \"%s\" for file+headline not in Org mode"
 		  (current-buffer)))
+	 (org-capture-put-target-region-and-position)
+	 (widen)
+	 (goto-char (point-min))
 	 (if (re-search-forward (format org-complex-heading-regexp-format
 					(regexp-quote headline))
 				nil t)
@@ -928,8 +927,12 @@ Store them in the capture property list."
 			  `file+weektree
 			  `file+weektree+prompt))
 	   ,path)
-	 (require 'org-datetree)
 	 (set-buffer (org-capture-target-buffer path))
+	 (unless (derived-mode-p 'org-mode)
+	   (error "Target buffer \"%s\" for %s should be in Org mode"
+		  (current-buffer)
+		  type))
+	 (require 'org-datetree)
 	 (org-capture-put-target-region-and-position)
 	 (widen)
 	 ;; Make a date/week tree entry, with the current date (or
@@ -1298,8 +1301,8 @@ Of course, if exact position has been required, just put it there."
 			   (org-table-current-dline))))
    (t (error "This should not happen"))))
 
-(defun org-capture-bookmark-last-stored-position ()
-  "Bookmark the last-captured position."
+(defun org-capture-store-last-position ()
+  "Store the last-captured position."
   (let* ((where (org-capture-get :position-for-last-stored 'local))
 	 (pos (cond
 	       ((markerp where)
@@ -1312,14 +1315,11 @@ Of course, if exact position has been required, just put it there."
 		      (point-at-bol))
 		  (point))))))
     (with-current-buffer (buffer-base-buffer (current-buffer))
-      (org-with-wide-buffer
-       (goto-char pos)
-       (let ((bookmark-name (plist-get org-bookmark-names-plist
-				       :last-capture)))
-	 (when bookmark-name
-	   (with-demoted-errors
-	       (bookmark-set bookmark-name))))
-       (move-marker org-capture-last-stored-marker (point))))))
+      (org-with-point-at pos
+	(when org-capture-bookmark
+	  (let ((bookmark (plist-get org-bookmark-names-plist :last-capture)))
+	    (when bookmark (with-demoted-errors (bookmark-set bookmark)))))
+	(move-marker org-capture-last-stored-marker (point))))))
 
 (defun org-capture-narrow (beg end)
   "Narrow, unless configuration says not to narrow."