*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Tue, 04 Nov 2008 14:51:21 +0100
changeset 11308 fa79c438bb34
parent 11307 98d31040610f
child 11309 6feac5882443
*** empty log message ***
Time.st
--- a/Time.st	Tue Nov 04 10:14:09 2008 +0100
+++ b/Time.st	Tue Nov 04 14:51:21 2008 +0100
@@ -151,7 +151,7 @@
      either 24 hour format or being am."
 
     ^ [
-        |str hour min sec|
+        |str hour min sec peekC|
 
         str := aStringOrStream readStream.
 
@@ -161,7 +161,8 @@
         min := 0.
         sec := 0.
         str atEnd ifFalse:[
-            (str peek == $:) ifTrue:[
+            peekC := str peek.
+            (peekC == $:) ifTrue:[
                 str next.
                 min := Integer readFrom:str.
                 (min between:0 and:59) ifFalse:[^ exceptionBlock value].
@@ -171,9 +172,10 @@
                     sec := Integer readFrom:str.
                     (sec between:0 and:59) ifFalse:[^ exceptionBlock value].
                 ].
+                peekC := str peek.
             ].
-            [str peek == Character space] whileTrue:[str next].
-            (str peek == $p or:[str peek == $P]) ifTrue:[
+            [peekC == Character space] whileTrue:[str next. peekC := str peek].
+            (peekC == $p or:[peekC == $P]) ifTrue:[
                 str next.
                 (str peek == $m or:[str peek == $M]) ifTrue:[
                     str next
@@ -183,9 +185,10 @@
                 "pm"
                 hour ~~ 12 ifTrue:[
                     hour := hour + 12
-                ]
+                ].
+                peekC := str peek
             ] ifFalse:[
-                (str peek == $a or:[str peek == $A]) ifTrue:[
+                (peekC == $a or:[peekC == $A]) ifTrue:[
                     str next.
                     (str peek == $m or:[str peek == $M]) ifTrue:[
                         str next
@@ -194,7 +197,12 @@
                         hour := 0.
                     ].
                     hour > 12 ifTrue:[^ exceptionBlock value].
-                ]
+                    peekC := str peek
+                ] ifFalse:[
+                    peekC notNil ifTrue:[
+                        peekC isSeparator ifFalse:[^ exceptionBlock value].
+                    ]
+                ].
             ]
         ].
         self basicNew setHours:hour minutes:min seconds:sec
@@ -716,5 +724,5 @@
 !Time class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Time.st,v 1.83 2008-09-06 10:45:31 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Time.st,v 1.84 2008-11-04 13:51:21 cg Exp $'
 ! !