diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2018-02-14 17:57:21 +0100 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2018-02-14 17:57:21 +0100 |
commit | 1a5151c51d3f3118e19f732ae364c7b01921af7c (patch) | |
tree | 7866e889fb7ffbc588786ca0d2378ff00a1d1c7f | |
parent | d5527699ab518258db1e8611c6195db356b3d31d (diff) | |
download | org-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.el | 37 |
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) |