diff --git a/code/parse-time.lisp b/code/parse-time.lisp index 55bbc0655838848535d7574b890b8a14519c1aa2..721c7b33ed2e84863a713a2ec0109c6ab72c132c 100644 --- a/code/parse-time.lisp +++ b/code/parse-time.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/parse-time.lisp,v 1.10 2003/08/16 11:45:47 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/parse-time.lisp,v 1.11 2003/08/29 19:22:32 gerd Exp $") ;;; ;;; ********************************************************************** @@ -461,13 +461,13 @@ (setf numeric-value (- numeric-value))) (push numeric-value parts-list) (setf string-index scan-index)))) - ((and (char= next-char #\-) + ((and (member next-char '(#\+ #\-) :test #'char=) (or (not prev-char) (member prev-char whitespace-chars :test #'char=))) - ;; If we see a minus sign before a number, but not after one, - ;; it is not a date divider, but a negative offset from GMT, so - ;; set next-negative to t and continue. - (setf next-negative t) + ;; If we see a minus or plus sign before a number, but + ;; not after one, it is not a date divider, but a offset + ;; from GMT, so set next-negative to t if minus and continue. + (setq next-negative (char= next-char #\-)) (incf string-index)) ((member next-char time-dividers :test #'char=) ;; Time-divider - add it to the parts-list with symbol. diff --git a/general-info/release-19a.txt b/general-info/release-19a.txt index 27a97c5003ec64cfdb6995f218d48210938e6d37..3551f5b781cffae8b1b0e5e06419585dac65a3e7 100644 --- a/general-info/release-19a.txt +++ b/general-info/release-19a.txt @@ -168,6 +168,7 @@ New in this release: COMPACT-INFO-LOOKUP for hash values equal to MOST-POSITIVE-FIXNUM. - FFLOOR and FCEILING return types sometimes being inferred as being the nil type. + - PARSE-TIME accepting GMT offsets with a leading plus sign. * Other changes: - CREATE-REQUEST-SERVER has an additional :reuse-address keyword