diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2018-03-01 10:56:01 +0100 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2018-03-01 10:56:01 +0100 |
commit | a1659053d51357ef7d7dc096c8687c730e4cc9ef (patch) | |
tree | 1bb23d6aeaa69551f84042940d99fe3bffa0911c | |
parent | 09af7f18b2f018465a55fceae4e6db014955d757 (diff) | |
parent | 428ab7942a1d7ea377b2c747484a39c9714a73a4 (diff) | |
download | org-mode-a1659053d51357ef7d7dc096c8687c730e4cc9ef.tar.gz |
Merge branch 'maint'
-rw-r--r-- | lisp/org-agenda.el | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index b9c19a5..a8f3deb 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -9925,32 +9925,33 @@ The prefix arg is passed through to the command if possible." (org-agenda-set-tags ,tag ,(if (eq action ?+) ''on ''off)))))) - (?s - (let ((time - (and (not arg) - (org-read-date nil nil nil "(Re)Schedule to" - org-overriding-default-time)))) + ((and (or ?s ?d) c) + (let* ((schedule? (eq c ?s)) + (prompt (if schedule? "(Re)Schedule to" "(Re)Set Deadline to")) + (time + (and (not arg) + (let ((new (org-read-date + nil nil nil prompt org-overriding-default-time))) + ;; A "double plus" answer applies to every + ;; scheduled time. Do not turn it into + ;; a fixed date yet. + (if (string-match-p "\\`[ \t]*\\+\\+" + org-read-date-final-answer) + org-read-date-final-answer + new))))) ;; Make sure to not prompt for a note when bulk - ;; rescheduling as Org cannot cope with simultaneous notes. - ;; Besides, it could be annoying depending on the number of - ;; items re-scheduled. + ;; rescheduling/resetting deadline as Org cannot cope with + ;; simultaneous notes. Besides, it could be annoying + ;; depending on the number of marked items. (setq cmd - `(lambda () - (let ((org-log-reschedule (and org-log-reschedule 'time))) - (org-agenda-schedule arg ,time)))))) - (?d - (let ((time - (and (not arg) - (org-read-date nil nil nil "(Re)Set Deadline to" - org-overriding-default-time)))) - ;; Make sure to not prompt for a note when bulk - ;; rescheduling as Org cannot cope with simultaneous - ;; notes. Besides, it could be annoying depending on the - ;; number of items re-scheduled. - (setq cmd - `(lambda () - (let ((org-log-redeadline (and org-log-redeadline 'time))) - (org-agenda-deadline arg ,time)))))) + (if schedule? + `(lambda () + (let ((org-log-reschedule + (and org-log-reschedule 'time))) + (org-agenda-schedule arg ,time))) + `(lambda () + (let ((org-log-redeadline (and org-log-redeadline 'time))) + (org-agenda-deadline arg ,time))))))) (?S (unless (org-agenda-check-type nil 'agenda 'todo) |