Integer.st
changeset 5882 8574ffbe45fb
parent 5816 ce15ce5294b4
child 5988 7b9f381ebf8c
--- a/Integer.st	Sat Jun 23 10:36:10 2001 +0200
+++ b/Integer.st	Mon Jun 25 09:03:35 2001 +0200
@@ -213,12 +213,18 @@
 
         lo := (twoDigits bitShift:-4) bitAnd:16r0F.
         hi := twoDigits bitAnd:16r0F.
-        val := (val * 100) + (hi * 10) + lo
+        lo <= 9 ifTrue:[
+            val := (val * 100) + (hi * 10) + lo
+        ] ifFalse:[
+            "16rF is used to encode an odd number of digits"
+            val := (val * 10) + hi.
+        ].
     ].
     ^ val
 
     "
      Integer fromSwappedBCDBytes:#[16r12 16r34 16r56]    
+     Integer fromSwappedBCDBytes:#[16r12 16r34 16rF6]    
      Integer fromSwappedBCDBytes:#[16r12 16r34 16r56 16r78]   
      Integer fromSwappedBCDBytes:#[16r12 16r34 16r56 16r78 16r90] 
      Integer fromSwappedBCDBytes:#[16r98 16r76 16r54] 
@@ -226,8 +232,6 @@
      Integer fromSwappedBCDBytes:#[16r98 16r76 16r54 16r32 16r10] 
      Integer fromSwappedBCDBytes:#[16r12 16r34 16r56 16r78 16r90 16r12 16r34 16r56 16r78 16r90]
     "
-
-    "Modified: / 12.1.2000 / 10:36:18 / stefan"
 !
 
 new:numberOfBytes neg:negative
@@ -495,6 +499,7 @@
     "
 ! !
 
+
 !Integer methodsFor:'bcd conversion'!
 
 decodeFromBCD
@@ -2304,6 +2309,7 @@
     "Modified: 15.10.1997 / 18:43:49 / cg"
 ! !
 
+
 !Integer methodsFor:'special bit operators'!
 
 bitAnd_32:anInteger
@@ -2645,6 +2651,6 @@
 !Integer class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.136 2001-02-28 13:12:23 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.137 2001-06-25 07:03:35 stefan Exp $'
 ! !
 Integer initialize!