1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-30 08:09:04 +00:00

* calc/calc-forms.el (math-parse-date): Try using

`math-parse-iso-date' when it looks like it might be needed.  Allow
times of 24:00. 
(math-parse-date-validate, math-parse-iso-date-validate):  Allow times
of 24:00.
This commit is contained in:
Jay Belanger 2012-12-30 20:58:57 -06:00
parent 84cc1ab625
commit fd1f1603a4
2 changed files with 26 additions and 6 deletions

View File

@ -1,3 +1,11 @@
2012-12-31 Jay Belanger <jay.p.belanger@gmail.com>
* calc/calc-forms.el (math-parse-date): Try using
`math-parse-iso-date' when it looks like it might be needed. Allow
times of 24:00.
(math-parse-date-validate, math-parse-iso-date-validate): Allow times
of 24:00.
2012-12-30 Glenn Morris <rgm@gnu.org>
* net/mairix.el (rmail, rmail-summary-displayed, rmail-summary):

View File

@ -918,7 +918,7 @@ as measured in the integer number of days before December 31, 1 BC (Gregorian)."
(catch 'syntax
(or (math-parse-standard-date math-pd-str t)
(math-parse-standard-date math-pd-str nil)
(and (or (memq 'IYYY calc-date-format) (memq 'Iww calc-date-format))
(and (string-match "W[0-9][0-9]" math-pd-str)
(math-parse-iso-date math-pd-str))
(and (string-match "\\`[^-+/0-9a-zA-Z]*\\([-+]?[0-9]+\\.?[0-9]*\\([eE][-+]?[0-9]+\\)?\\)[^-+/0-9a-zA-Z]*\\'" math-pd-str)
(list 'date (math-read-number (math-match-substring math-pd-str 1))))
@ -943,8 +943,12 @@ as measured in the integer number of days before December 31, 1 BC (Gregorian)."
(setq second 0)
(setq second (math-read-number second)))
(if (equal ampm "")
(if (> hour 23)
(throw 'syntax "Hour value out of range"))
(if (or
(> hour 24)
(and (= hour 24)
(not (= minute 0))
(not (eq second 0))))
(throw 'syntax "Hour value is out of range"))
(setq ampm (upcase (aref ampm 0)))
(if (memq ampm '(?N ?M))
(if (and (= hour 12) (= minute 0) (eq second 0))
@ -952,7 +956,7 @@ as measured in the integer number of days before December 31, 1 BC (Gregorian)."
(throw 'syntax
"Time must be 12:00:00 in this context"))
(if (or (= hour 0) (> hour 12))
(throw 'syntax "Hour value out of range"))
(throw 'syntax "Hour value is out of range"))
(if (eq (= ampm ?A) (= hour 12))
(setq hour (% (+ hour 12) 24)))))))
@ -1075,7 +1079,11 @@ as measured in the integer number of days before December 31, 1 BC (Gregorian)."
(throw 'syntax "Day value is out of range"))
(and hour
(progn
(if (or (< hour 0) (> hour 23))
(if (or (< hour 0)
(> hour 24)
(and (= hour 24)
(not (= minute 0))
(not (eq second 0))))
(throw 'syntax "Hour value is out of range"))
(if (or (< minute 0) (> minute 59))
(throw 'syntax "Minute value is out of range"))
@ -1091,7 +1099,11 @@ as measured in the integer number of days before December 31, 1 BC (Gregorian)."
(throw 'syntax "Weekday value is out of range"))
(and hour
(progn
(if (or (< hour 0) (> hour 23))
(if (or (< hour 0)
(> hour 24)
(and (= hour 24)
(not (= minute 0))
(not (eq second 0))))
(throw 'syntax "Hour value is out of range"))
(if (or (< minute 0) (> minute 59))
(throw 'syntax "Minute value is out of range"))