--- a/Character.st Sat Oct 26 11:22:22 2013 +0100
+++ b/Character.st Mon Nov 04 11:11:22 2013 -0300
@@ -182,98 +182,98 @@
c1 := aStream next.
codePoint := c1 codePoint.
codePoint <= 16r7F ifTrue:[
- "/ 0xxxxxxx - 7 bits
- ^ c1.
+ "/ 0xxxxxxx - 7 bits
+ ^ c1.
].
(codePoint bitAnd:2r11000000) == 2r10000000 ifTrue:[
- "/ out of sync (got an intermediate character)
- InvalidEncodingError raiseRequestWith:codePoint errorString:' - out of sync'.
- ^ c1.
+ "/ out of sync (got an intermediate character)
+ InvalidEncodingError raiseRequestWith:codePoint errorString:' - out of sync'.
+ ^ c1.
].
fetchNext := [ |ch|
-
- ch := aStream next.
- (ch codePoint bitAnd:2r11000000) == 2r10000000 ifFalse:[
- "/ followup chars must have 2r10 in high bits
- InvalidEncodingError raiseRequestWith:ch codePoint.
- ^ c1.
- ].
- ch
- ].
+ ch := aStream next.
+ (ch codePoint bitAnd:2r11000000) == 2r10000000 ifFalse:[
+ "/ followup chars must have 2r10 in high bits
+ InvalidEncodingError raiseRequestWith:ch codePoint.
+ ^ c1.
+ ].
+ ch
+ ].
(codePoint bitAnd:2r11100000) == 2r11000000 ifTrue:[
- "/ 110xxxxx 10xxxxxx - 11 bits
- c2 := fetchNext value.
- codePoint := c1 codePoint bitAnd:16r1F.
- codePoint := (codePoint bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
- codePoint <= 16r7F ifTrue:[
- InvalidEncodingError raiseRequestWith:codePoint.
- ].
- ^ Character codePoint:codePoint
+ "/ 110xxxxx 10xxxxxx - 11 bits
+ c2 := fetchNext value.
+ codePoint := c1 codePoint bitAnd:16r1F.
+ codePoint := (codePoint bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+ codePoint <= 16r7F ifTrue:[
+ InvalidEncodingError raiseRequestWith:codePoint.
+ ].
+ ^ Character codePoint:codePoint
].
(codePoint bitAnd:2r11110000) == 2r11100000 ifTrue:[
- "/ 1110xxxx 10xxxxxx 10xxxxxx - 16 bits
- c2 := fetchNext value.
- c3 := fetchNext value.
- codePoint := c1 codePoint bitAnd:16r0F.
- codePoint := (codePoint bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
- codePoint := (codePoint bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
- codePoint <= 16r7FF ifTrue:[
- InvalidEncodingError raiseRequestWith:codePoint.
- ].
- ^ Character codePoint:codePoint
+ "/ 1110xxxx 10xxxxxx 10xxxxxx - 16 bits
+ c2 := fetchNext value.
+ c3 := fetchNext value.
+ codePoint := c1 codePoint bitAnd:16r0F.
+ codePoint := (codePoint bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+ codePoint := (codePoint bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
+ codePoint <= 16r7FF ifTrue:[
+ InvalidEncodingError raiseRequestWith:codePoint.
+ ].
+ ^ Character codePoint:codePoint
].
"/ notice: currently, characters can only have 16bit encoding;
"/ therefore the following will raise a runtime exception,
(codePoint bitAnd:2r11111000) == 2r11110000 ifTrue:[
- "/ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - 21 bits
- c2 := fetchNext value.
- c3 := fetchNext value.
- c4 := fetchNext value.
- codePoint := c1 codePoint bitAnd:16r07.
- codePoint := (codePoint bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
- codePoint := (codePoint bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
- codePoint := (codePoint bitShift:6) bitOr:(c4 codePoint bitAnd:16r3F).
- codePoint <= 16rFFFF ifTrue:[
- InvalidEncodingError raiseRequestWith:codePoint.
- ].
- ^ Character codePoint:codePoint
+ "/ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - 21 bits
+ c2 := fetchNext value.
+ c3 := fetchNext value.
+ c4 := fetchNext value.
+ codePoint := c1 codePoint bitAnd:16r07.
+ codePoint := (codePoint bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+ codePoint := (codePoint bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
+ codePoint := (codePoint bitShift:6) bitOr:(c4 codePoint bitAnd:16r3F).
+ codePoint <= 16rFFFF ifTrue:[
+ InvalidEncodingError raiseRequestWith:codePoint.
+ ].
+ ^ Character codePoint:codePoint
].
(codePoint bitAnd:2r11111100) == 2r11111000 ifTrue:[
- "/ 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx - 26 bits
- c2 := fetchNext value.
- c3 := fetchNext value.
- c4 := fetchNext value.
- c5 := fetchNext value.
- codePoint := c1 codePoint bitAnd:16r03.
- codePoint := (codePoint bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
- codePoint := (codePoint bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
- codePoint := (codePoint bitShift:6) bitOr:(c4 codePoint bitAnd:16r3F).
- codePoint := (codePoint bitShift:6) bitOr:(c5 codePoint bitAnd:16r3F).
- codePoint <= 16r1FFFFF ifTrue:[
- InvalidEncodingError raiseRequestWith:codePoint.
- ].
- ^ Character codePoint:codePoint
+ "/ 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx - 26 bits
+ c2 := fetchNext value.
+ c3 := fetchNext value.
+ c4 := fetchNext value.
+ c5 := fetchNext value.
+ codePoint := c1 codePoint bitAnd:16r03.
+ codePoint := (codePoint bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+ codePoint := (codePoint bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
+ codePoint := (codePoint bitShift:6) bitOr:(c4 codePoint bitAnd:16r3F).
+ codePoint := (codePoint bitShift:6) bitOr:(c5 codePoint bitAnd:16r3F).
+ codePoint <= 16r1FFFFF ifTrue:[
+ InvalidEncodingError raiseRequestWith:codePoint.
+ ].
+ ^ Character codePoint:codePoint
].
(codePoint bitAnd:2r11111110) == 2r11111100 ifTrue:[
- "/ 1111110x ... 10xxxxxx - any number of bits
- codePoint := c1 codePoint bitAnd:16r01.
-
- c2 := aStream peek.
- [ c2 notNil and:[(c2 codePoint bitAnd:2r11000000) == 2r10000000]] whileTrue:[
- codePoint := (codePoint bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
- aStream next.
- ].
- codePoint <= 16r3FFFFFF ifTrue:[
- InvalidEncodingError raiseRequestWith:codePoint.
- ].
- ^ Character codePoint:codePoint
+ "/ 1111110x ... 10xxxxxx - any number of bits
+ codePoint := c1 codePoint bitAnd:16r01.
+
+ c2 := aStream peek.
+ [c2 notNil and:[(c2 codePoint bitAnd:2r11000000) == 2r10000000]] whileTrue:[
+ codePoint := (codePoint bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+ aStream next.
+ c2 := aStream peek.
+ ].
+ codePoint <= 16r3FFFFFF ifTrue:[
+ InvalidEncodingError raiseRequestWith:codePoint.
+ ].
+ ^ Character codePoint:codePoint
].
InvalidEncodingError raiseRequestWith:codePoint.
@@ -289,12 +289,12 @@
|utf8Encoding original readBack|
1 to:16rFFFF do:[:codePoint |
- original := Character value:codePoint.
- utf8Encoding := original asString utf8Encoded.
- readBack := Character utf8DecodeFrom:(utf8Encoding readStream).
- readBack codePoint = codePoint ifFalse:[
- self halt
- ]
+ original := Character value:codePoint.
+ utf8Encoding := original asString utf8Encoded.
+ readBack := Character utf8DecodeFrom:(utf8Encoding readStream).
+ readBack codePoint = codePoint ifFalse:[
+ self halt
+ ]
]
"
!
@@ -2829,10 +2829,10 @@
!Character class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.147 2013-08-23 14:39:09 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.148 2013-10-14 19:59:53 stefan Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.147 2013-08-23 14:39:09 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.148 2013-10-14 19:59:53 stefan Exp $'
! !