summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2018-02-14 17:57:21 +0100
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2018-02-14 17:57:21 +0100
commit1a5151c51d3f3118e19f732ae364c7b01921af7c (patch)
tree7866e889fb7ffbc588786ca0d2378ff00a1d1c7f
parentd5527699ab518258db1e8611c6195db356b3d31d (diff)
downloadorg-mode-1a5151c51d3f3118e19f732ae364c7b01921af7c.tar.gz
org-clock: Fix default clocktable properties priority
* lisp/org-clock.el (org-clock-report): Improve docstring. Refactor code. Ensure user-defined properties have precedence over automatic ones. Reported-by: Tyler Smith <tyler@plantarum.ca> <http://lists.gnu.org/r/emacs-orgmode/2018-02/msg00215.html>
-rw-r--r--lisp/org-clock.el37
1 files changed, 21 insertions, 16 deletions
diff --git a/lisp/org-clock.el b/lisp/org-clock.el
index 93e1009..ee84fe4 100644
--- a/lisp/org-clock.el
+++ b/lisp/org-clock.el
@@ -2023,27 +2023,32 @@ fontified, and then returned."
;;;###autoload
(defun org-clock-report (&optional arg)
- "Create a table containing a report about clocked time.
-If the cursor is inside an existing clocktable block, then the table
-will be updated. If not, a new clocktable will be inserted. The scope
-of the new clock will be subtree when called from within a subtree, and
-file elsewhere.
-
-When called with a prefix argument, move to the first clock table in the
-buffer and update it."
+ "Update or create a table containing a report about clocked time.
+
+If point is inside an existing clocktable block, update it.
+Otherwise, insert a new one.
+
+The new table inherits its properties from the variable
+`org-clock-clocktable-default-properties'. The scope of the
+clocktable, when not specified in the previous variable, is
+`subtree' when the function is called from within a subtree, and
+`file' elsewhere.
+
+When called with a prefix argument, move to the first clock table
+in the buffer and update it."
(interactive "P")
(org-clock-remove-overlays)
(when arg
(org-find-dblock "clocktable")
(org-show-entry))
- (if (org-in-clocktable-p)
- (goto-char (org-in-clocktable-p))
- (let ((props (if (ignore-errors
- (save-excursion (org-back-to-heading)))
- (list :name "clocktable" :scope 'subtree)
- (list :name "clocktable"))))
- (org-create-dblock
- (org-combine-plists org-clock-clocktable-default-properties props))))
+ (pcase (org-in-clocktable-p)
+ (`nil
+ (org-create-dblock
+ (org-combine-plists
+ (list :scope (if (org-before-first-heading-p) 'file 'subtree))
+ org-clock-clocktable-default-properties
+ '(:name "clocktable"))))
+ (start (goto-char start)))
(org-update-dblock))
(defun org-day-of-week (day month year)