--- a/Character.st Tue Oct 22 20:14:36 2002 +0200
+++ b/Character.st Tue Oct 22 20:17:25 2002 +0200
@@ -140,6 +140,9 @@
c2 := fetchNext value.
ascii := c1 asciiValue bitAnd:16r1F.
ascii := (ascii bitShift:6) bitOr:(c2 asciiValue bitAnd:16r3F).
+ ascii <= 16r7F ifTrue:[
+ self error:'invalid encoding'.
+ ].
^ Character value:ascii
].
(ascii bitAnd:2r11110000) == 2r11100000 ifTrue:[
@@ -149,6 +152,9 @@
ascii := c1 asciiValue bitAnd:16r0F.
ascii := (ascii bitShift:6) bitOr:(c2 asciiValue bitAnd:16r3F).
ascii := (ascii bitShift:6) bitOr:(c3 asciiValue bitAnd:16r3F).
+ ascii <= 16r7FF ifTrue:[
+ self error:'invalid encoding'.
+ ].
^ Character value:ascii
].
@@ -164,6 +170,9 @@
ascii := (ascii bitShift:6) bitOr:(c2 asciiValue bitAnd:16r3F).
ascii := (ascii bitShift:6) bitOr:(c3 asciiValue bitAnd:16r3F).
ascii := (ascii bitShift:6) bitOr:(c4 asciiValue bitAnd:16r3F).
+ ascii <= 16rFFFF ifTrue:[
+ self error:'invalid encoding'.
+ ].
^ Character value:ascii
].
@@ -178,6 +187,9 @@
ascii := (ascii bitShift:6) bitOr:(c3 asciiValue bitAnd:16r3F).
ascii := (ascii bitShift:6) bitOr:(c4 asciiValue bitAnd:16r3F).
ascii := (ascii bitShift:6) bitOr:(c5 asciiValue bitAnd:16r3F).
+ ascii <= 16r1FFFFF ifTrue:[
+ self error:'invalid encoding'.
+ ].
^ Character value:ascii
].
@@ -190,6 +202,9 @@
ascii := (ascii bitShift:6) bitOr:(c2 asciiValue bitAnd:16r3F).
aStream next.
].
+ ascii <= 16r3FFFFFF ifTrue:[
+ self error:'invalid encoding'.
+ ].
^ Character value:ascii
].
@@ -1391,5 +1406,5 @@
!Character class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.78 2002-10-22 17:49:31 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.79 2002-10-22 18:17:25 cg Exp $'
! !