|
@@ -347,6 +347,9 @@ The remember buffer is still current when this hook runs."
|
|
|
"Local variable holding the plist in a capture buffer.
|
|
|
This is used to store the plist for use when finishing a capture process.
|
|
|
Another such process might have changed the global variable by then.")
|
|
|
+(defvar org-capture-clock-keep nil
|
|
|
+ "Local variable to store the value of the :clock-keep parameter.
|
|
|
+This is needed in case org-capture-finalize is called interactively.")
|
|
|
|
|
|
(defun org-capture-put (&rest stuff)
|
|
|
(while stuff
|
|
@@ -447,6 +450,7 @@ bypassed."
|
|
|
(if (get-buffer "*Capture*") (kill-buffer "*Capture*"))
|
|
|
(error "Capture abort: %s" error)))
|
|
|
|
|
|
+ (setq org-capture-clock-keep (org-capture-get :clock-keep))
|
|
|
(if (equal goto 0)
|
|
|
;;insert at point
|
|
|
(org-capture-insert-template-here)
|
|
@@ -460,19 +464,19 @@ bypassed."
|
|
|
(error "Capture template `%s': %s"
|
|
|
(org-capture-get :key)
|
|
|
(nth 1 error))))
|
|
|
+ (if (and (org-mode-p)
|
|
|
+ (org-capture-get :clock-in))
|
|
|
+ (condition-case nil
|
|
|
+ (progn
|
|
|
+ (if (org-clock-is-active)
|
|
|
+ (org-capture-put :interrupted-clock
|
|
|
+ (copy-marker org-clock-marker)))
|
|
|
+ (org-clock-in)
|
|
|
+ (org-set-local 'org-capture-clock-was-started t))
|
|
|
+ (error
|
|
|
+ "Could not start the clock in this capture buffer")))
|
|
|
(if (org-capture-get :immediate-finish)
|
|
|
- (org-capture-finalize nil (org-capture-get :clock-keep))
|
|
|
- (if (and (org-mode-p)
|
|
|
- (org-capture-get :clock-in))
|
|
|
- (condition-case nil
|
|
|
- (progn
|
|
|
- (if (org-clock-is-active)
|
|
|
- (org-capture-put :interrupted-clock
|
|
|
- (copy-marker org-clock-marker)))
|
|
|
- (org-clock-in)
|
|
|
- (org-set-local 'org-capture-clock-was-started t))
|
|
|
- (error
|
|
|
- "Could not start the clock in this capture buffer")))))))))))
|
|
|
+ (org-capture-finalize nil)))))))))
|
|
|
|
|
|
(defun org-capture-get-template ()
|
|
|
"Get the template from a file or a function if necessary."
|
|
@@ -492,12 +496,10 @@ bypassed."
|
|
|
(t (setq txt "* Invalid capture template")))
|
|
|
(org-capture-put :template txt)))
|
|
|
|
|
|
-(defun org-capture-finalize (&optional stay-with-capture clock-keep)
|
|
|
+(defun org-capture-finalize (&optional stay-with-capture)
|
|
|
"Finalize the capture process.
|
|
|
With prefix argument STAY-WITH-CAPTURE, jump to the location of the
|
|
|
-captured item after finalizing.
|
|
|
-A second optional argument tells whether finalizing the capture
|
|
|
-process should keep the clock running in the filed entry."
|
|
|
+captured item after finalizing."
|
|
|
(interactive "P")
|
|
|
(unless (and org-capture-mode
|
|
|
(buffer-base-buffer (current-buffer)))
|
|
@@ -510,8 +512,8 @@ process should keep the clock running in the filed entry."
|
|
|
(> org-clock-marker (point-min))
|
|
|
(< org-clock-marker (point-max)))
|
|
|
;; Looks like the clock we started is still running. Clock out.
|
|
|
- (when (not clock-keep) (let (org-log-note-clock-out) (org-clock-out)))
|
|
|
- (when (and (not clock-keep)
|
|
|
+ (when (not org-capture-clock-keep) (let (org-log-note-clock-out) (org-clock-out)))
|
|
|
+ (when (and (not org-capture-clock-keep)
|
|
|
(org-capture-get :clock-resume 'local)
|
|
|
(markerp (org-capture-get :interrupted-clock 'local))
|
|
|
(buffer-live-p (marker-buffer
|