Pārlūkot izejas kodu

Fix bug with relative date specification.

When there was a lone weekday abbreviation like "fri"
is was interpreted relative to the default date.  I think
now this special case should always be relative to today.

This was a bug report from David Kritzberg.
Carsten Dominik 17 gadi atpakaļ
vecāks
revīzija
1ade1c7c8b
2 mainītis faili ar 14 papildinājumiem un 7 dzēšanām
  1. 5 0
      ChangeLog
  2. 9 7
      lisp/org.el

+ 5 - 0
ChangeLog

@@ -1,3 +1,8 @@
+2008-05-05  Carsten Dominik  <dominik@science.uva.nl>
+
+	* lisp/org.el (org-read-date-analyze): Catch the case where only a
+	weekday is given.
+
 2008-05-04  Carsten Dominik  <dominik@science.uva.nl>
 
 	* lisp/org.el (org-set-font-lock-defaults): Make the description

+ 9 - 7
lisp/org.el

@@ -10379,13 +10379,15 @@ WHAT       is \"d\", \"w\", \"m\", or \"y\" for day, week, month, year.
 N          is the number of WHATs to shift.
 DEF-FLAG   is t when a double ++ or -- indicates shift relative to
            the DEFAULT date rather than TODAY."
-  (when (string-match
-	 (concat
-	  "\\`[ \t]*\\([-+]\\{1,2\\}\\)"
-	  "\\([0-9]+\\)?"
-	  "\\([dwmy]\\|\\(" (mapconcat 'car parse-time-weekdays "\\|") "\\)\\)?"
-	  "\\([ \t]\\|$\\)") s)
-    (let* ((dir (if (match-end 1)
+  (when (and
+	 (string-match
+	  (concat
+	   "\\`[ \t]*\\([-+]\\{0,2\\}\\)"
+	   "\\([0-9]+\\)?"
+	   "\\([dwmy]\\|\\(" (mapconcat 'car parse-time-weekdays "\\|") "\\)\\)?"
+	   "\\([ \t]\\|$\\)") s)
+	 (or (> (match-end 1) (match-beginning 1)) (match-end 4)))
+    (let* ((dir (if (> (match-end 1) (match-beginning 1))
 		    (string-to-char (substring (match-string 1 s) -1))
 		  ?+))
 	   (rel (and (match-end 1) (= 2 (- (match-end 1) (match-beginning 1)))))