Browse Source

org-agenda.el (org-agenda-bulk-action): Fix bug when bulk-shifting timestamps.

* org-agenda.el (org-agenda-bulk-action): Fix bug when
bulk-shifting timestamps.

Thanks to Rainer Stengele for reporting this.
Bastien Guerry 12 years ago
parent
commit
cdc1db5fda
1 changed files with 10 additions and 8 deletions
  1. 10 8
      lisp/org-agenda.el

+ 10 - 8
lisp/org-agenda.el

@@ -8958,20 +8958,22 @@ The prefix arg is passed through to the command if possible."
 	  (setq cmd `(org-agenda-set-tags ,tag ,(if (eq action ?+) ''on ''off))))
 
 	 ((memq action '(?s ?d))
-	  (let* ((date (unless arg
-			 (or org-overriding-default-time
-			     (org-read-date
+	  (let* ((date
+		  (unless arg
+		    (or org-overriding-default-time
+			(and (org-read-date
 			      nil nil nil
-			      (if (eq action ?s) "(Re)Schedule to" "(Re)Set Deadline to")
-			      nil (format-time-string (car org-time-stamp-formats)
-						      (org-get-cursor-date))))))
-		 (ans (if arg nil org-read-date-final-answer))
+			      (if (eq action ?s) "(Re)Schedule to" "(Re)Set Deadline to"))
+			     (or (ignore-errors
+				   (org-time-string-to-time org-read-date-final-answer))
+				 (current-time))))))
+		 (date (format-time-string (car org-time-stamp-formats) date))
 		 (c1 (if (eq action ?s) 'org-agenda-schedule 'org-agenda-deadline)))
 	    (setq cmd `(let* ((bound (fboundp 'read-string))
 			      (old (and bound (symbol-function 'read-string))))
 			 (unwind-protect
 			     (progn
-			       (fset 'read-string (lambda (&rest ignore) ,ans))
+			       (fset 'read-string (lambda (&rest ignore) ,date))
 			       (eval '(,c1 arg)))
 			   (if bound
 			       (fset 'read-string old)