Browse Source

Fix last commit

* lisp/org-clock.el (org-clock-out-if-current): Autoload function.
* lisp/org.el (org-todo): Do not call `org-clock-out-if-current' if
  `org-clock' is not loaded yet.
Nicolas Goaziou 1 month ago
parent
commit
f9015b4bbf
2 changed files with 4 additions and 2 deletions
  1. 2 1
      lisp/org-clock.el
  2. 2 1
      lisp/org.el

+ 2 - 1
lisp/org-clock.el

@@ -38,6 +38,7 @@
 (declare-function org-table-goto-line "org-table" (n))
 
 (defvar org-frame-title-format-backup frame-title-format)
+(defvar org-state)
 (defvar org-time-stamp-formats)
 
 
@@ -1982,7 +1983,7 @@ If NOREMOVE is nil, remove this function from the
       (remove-hook 'before-change-functions
 		   'org-clock-remove-overlays 'local))))
 
-(defvar org-state) ;; dynamically scoped into this function
+;;;###autoload
 (defun org-clock-out-if-current ()
   "Clock out if the current entry contains the running clock.
 This is used to stop the clock after a TODO entry is marked DONE,

+ 2 - 1
lisp/org.el

@@ -12259,7 +12259,8 @@ When called through ELisp, arg is also interpreted in the following way:
 	    (when org-auto-align-tags (org-align-tags))
 	    (when org-provide-todo-statistics
 	      (org-update-parent-todo-statistics))
-	    (org-clock-out-if-current)
+	    (when (bound-and-true-p org-clock-out-when-done)
+	      (org-clock-out-if-current))
 	    (run-hooks 'org-after-todo-state-change-hook)
 	    (when (and arg (not (member org-state org-done-keywords)))
 	      (setq head (org-get-todo-sequence-head org-state)))