+05 May 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.12
+ * sql/time.lisp: Fix error in submitted patch which caused error
+ in timestrings with 19 or less characters.
+
27 Apr 2005 Kevin Rosenberg <kevin@rosenberg.net>
* db-postgresql-socket/postgresql-api.lisp: Commit patch from Tim Howe
to fix read-socket-sequence on non-sb-unicode sbcl.
(defun syntax-parse-iso-8601 (string)
;; use strlen to determine if fractional seconds are present in timestamp
(let ((strlen (length string))
- year month day hour minute second usec gmt-sec-offset)
+ year month day hour minute second gmt-sec-offset)
(handler-case
(progn
(setf year (parse-integer string :start 0 :end 4)
(parse-integer string :start 17 :end 19)
0))
(cond
- ((or (char= #\, (char string 19))
- (char= #\. (char string 19)))
+ ((and (> strlen 19)
+ (or (char= #\, (char string 19))
+ (char= #\. (char string 19))))
(multiple-value-bind (parsed-usec usec-end)
(parse-integer string :start 20 :junk-allowed t)
(setf usec parsed-usec
:bad-component
(car (find-if (lambda (pair) (null (cdr pair)))
`((year . ,year) (month . ,month)
- (day . ,day) (hour ,hour)
- (minute ,minute) (second ,second)
- (timezone ,gmt-sec-offset)))))))))
+ (day . ,day) (hour . ,hour)
+ (minute . ,minute) (second . ,second)
+ (usec . ,usec)
+ (timezone . ,gmt-sec-offset)))))))))