diff --git a/lisp/org.el b/lisp/org.el index d63bab6c9..10e2dca1b 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -13609,49 +13609,44 @@ a Show deadlines and scheduled items after a date. d Show deadlines due within `org-deadline-warning-days'. D Show deadlines and scheduled items between a date range." (interactive "P") - (let (ans kwd value ts-type) - (setq type (or type org-sparse-tree-default-date-type)) - (setq org-ts-type type) - (message "Sparse tree: [/]regexp [t]odo [T]odo-kwd [m]atch [p]roperty\n [d]eadlines [b]efore-date [a]fter-date [D]ates range\n [c]ycle through date types: %s" - (cond ((eq type 'all) "all timestamps") - ((eq type 'scheduled) "only scheduled") - ((eq type 'deadline) "only deadline") - ((eq type 'active) "only active timestamps") - ((eq type 'inactive) "only inactive timestamps") - ((eq type 'scheduled-or-deadline) "scheduled/deadline") - ((eq type 'closed) "with a closed time-stamp") - (t "scheduled/deadline"))) - (setq ans (read-char-exclusive)) - (cond - ((equal ans ?c) - (org-sparse-tree - arg (cadr (member type '(scheduled-or-deadline - all scheduled deadline active inactive closed))))) - ((equal ans ?d) - (call-interactively 'org-check-deadlines)) - ((equal ans ?b) - (call-interactively 'org-check-before-date)) - ((equal ans ?a) - (call-interactively 'org-check-after-date)) - ((equal ans ?D) - (call-interactively 'org-check-dates-range)) - ((equal ans ?t) - (call-interactively 'org-show-todo-tree)) - ((equal ans ?T) - (org-show-todo-tree '(4))) - ((member ans '(?T ?m)) - (call-interactively 'org-match-sparse-tree)) - ((member ans '(?p ?P)) - (setq kwd (org-icompleting-read "Property: " - (mapcar 'list (org-buffer-property-keys)))) - (setq value (org-icompleting-read "Value: " - (mapcar 'list (org-property-values kwd)))) - (unless (string-match "\\`{.*}\\'" value) - (setq value (concat "\"" value "\""))) - (org-match-sparse-tree arg (concat kwd "=" value))) - ((member ans '(?r ?R ?/)) - (call-interactively 'org-occur)) - (t (user-error "No such sparse tree command \"%c\"" ans))))) + (setq type (or type org-sparse-tree-default-date-type)) + (setq org-ts-type type) + (message "Sparse tree: [/]regexp [t]odo [T]odo-kwd [m]atch [p]roperty + [d]eadlines [b]efore-date [a]fter-date [D]ates range + [c]ycle through date types: %s" + (case type + (all "all timestamps") + (scheduled "only scheduled") + (deadline "only deadline") + (active "only active timestamps") + (inactive "only inactive timestamps") + (scheduled-or-deadline "scheduled/deadline") + (closed "with a closed time-stamp") + (otherwise "scheduled/deadline"))) + (let ((answer (read-char-exclusive))) + (case answer + (?c + (org-sparse-tree + arg + (cadr (memq type '(scheduled-or-deadline all scheduled deadline active + inactive closed))))) + (?d (call-interactively #'org-check-deadlines)) + (?b (call-interactively #'org-check-before-date)) + (?a (call-interactively #'org-check-after-date)) + (?D (call-interactively #'org-check-dates-range)) + (?t (call-interactively #'org-show-todo-tree)) + (?T (org-show-todo-tree '(4))) + (?m (call-interactively #'org-match-sparse-tree)) + ((?p ?P) + (let* ((kwd (org-icompleting-read + "Property: " (mapcar #'list (org-buffer-property-keys)))) + (value (org-icompleting-read + "Value: " (mapcar #'list (org-property-values kwd))))) + (unless (string-match "\\`{.*}\\'" value) + (setq value (concat "\"" value "\"")))) + (org-match-sparse-tree arg (concat kwd "=" value))) + ((?r ?R ?/) (call-interactively #'org-occur)) + (otherwise (user-error "No such sparse tree command \"%c\"" answer))))) (defvar org-occur-highlights nil "List of overlays used for occur matches.")