--- a/CharArray.st Sat Jun 28 20:24:11 1997 +0200
+++ b/CharArray.st Sat Jun 28 21:06:18 1997 +0200
@@ -53,14 +53,14 @@
!CharacterArray class methodsFor:'initialization'!
initialize
- DecodingFailedSignal := (Signal new) mayProceed:true.
+ DecodingFailedSignal := Signal new mayProceed:true.
DecodingFailedSignal notifierString:'decoding failure'.
"
CharacterArray initialize
"
- "Modified: 28.6.1997 / 20:12:26 / cg"
+ "Modified: 28.6.1997 / 21:05:17 / cg"
! !
!CharacterArray class methodsFor:'instance creation'!
@@ -728,9 +728,9 @@
b1 "{ Class: SmallInteger }"
b2 "{ Class: SmallInteger }"
val "{ Class: SmallInteger }"
- romans c|
-
- romans := JISEncodedString romanJISDecoderTable.
+ romans c c2|
+
+"/ romans := JISEncodedString romanJISDecoderTable.
sz := aString size.
newString := JISEncodedString new:sz.
@@ -756,16 +756,24 @@
"/ ]
] ifFalse:[
start := start + 1.
- b1 := b1 - 161 + 33.
- b2 := (aString at:start) asciiValue.
- b2 := b2 - 161 + 33.
- val := (b1 bitShift:8) bitOr:b2.
- val <= 0 ifTrue:[
- ^ DecodingFailedSignal
+ start <= sz ifTrue:[
+ b1 := b1 - 161 + 33.
+ b2 := (c2 := aString at:start) asciiValue.
+ b2 := b2 - 161 + 33.
+ val := (b1 bitShift:8) bitOr:b2.
+ val <= 0 ifTrue:[
+ DecodingFailedSignal
raiseWith:aString
- errorString:'EUC decoding failed (not EUC encoded ?)'
+ errorString:'EUC decoding failed (not EUC encoded ?)'.
+ newString at:dstIdx put:c.
+ dstIdx := dstIdx + 1.
+ newString at:dstIdx put:c2.
+ ] ifFalse:[
+ newString at:dstIdx put:(Character value:val).
+ ].
+ ] ifFalse:[
+ newString at:dstIdx put:c.
].
- newString at:dstIdx put:(Character value:val).
dstIdx := dstIdx + 1.
]
].
@@ -784,7 +792,7 @@
"
"Created: 17.4.1996 / 16:10:22 / cg"
- "Modified: 28.6.1997 / 20:11:28 / cg"
+ "Modified: 28.6.1997 / 21:03:44 / cg"
!
decodeFromGB:aString
@@ -1044,11 +1052,15 @@
b2 := (b2 - cellOffs).
val := (b1 bitShift:8) + b2.
val <= 0 ifTrue:[
- ^ DecodingFailedSignal
+ DecodingFailedSignal
raiseWith:aString
- errorString:'SJIS decoding failed (not SJIS encoded ?)'
- ].
- newString at:dstIdx put:(Character value:val).
+ errorString:'SJIS decoding failed (not SJIS encoded ?)'.
+ newString at:dstIdx put:char1.
+ dstIdx := dstIdx + 1.
+ newString at:dstIdx put:char2.
+ ] ifFalse:[
+ newString at:dstIdx put:(Character value:val).
+ ]
] ifFalse:[
"/ mhmh - append untranslated
@@ -1081,7 +1093,7 @@
"
"Created: 28.6.1997 / 19:19:23 / cg"
- "Modified: 28.6.1997 / 20:12:10 / cg"
+ "Modified: 28.6.1997 / 21:00:12 / cg"
!
encodeIntoBIG5withRomans:aBIG5String
@@ -4443,6 +4455,6 @@
!CharacterArray class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Attic/CharArray.st,v 1.114 1997-06-28 18:16:37 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/CharArray.st,v 1.115 1997-06-28 19:06:18 cg Exp $'
! !
CharacterArray initialize!
--- a/CharacterArray.st Sat Jun 28 20:24:11 1997 +0200
+++ b/CharacterArray.st Sat Jun 28 21:06:18 1997 +0200
@@ -53,14 +53,14 @@
!CharacterArray class methodsFor:'initialization'!
initialize
- DecodingFailedSignal := (Signal new) mayProceed:true.
+ DecodingFailedSignal := Signal new mayProceed:true.
DecodingFailedSignal notifierString:'decoding failure'.
"
CharacterArray initialize
"
- "Modified: 28.6.1997 / 20:12:26 / cg"
+ "Modified: 28.6.1997 / 21:05:17 / cg"
! !
!CharacterArray class methodsFor:'instance creation'!
@@ -728,9 +728,9 @@
b1 "{ Class: SmallInteger }"
b2 "{ Class: SmallInteger }"
val "{ Class: SmallInteger }"
- romans c|
-
- romans := JISEncodedString romanJISDecoderTable.
+ romans c c2|
+
+"/ romans := JISEncodedString romanJISDecoderTable.
sz := aString size.
newString := JISEncodedString new:sz.
@@ -756,16 +756,24 @@
"/ ]
] ifFalse:[
start := start + 1.
- b1 := b1 - 161 + 33.
- b2 := (aString at:start) asciiValue.
- b2 := b2 - 161 + 33.
- val := (b1 bitShift:8) bitOr:b2.
- val <= 0 ifTrue:[
- ^ DecodingFailedSignal
+ start <= sz ifTrue:[
+ b1 := b1 - 161 + 33.
+ b2 := (c2 := aString at:start) asciiValue.
+ b2 := b2 - 161 + 33.
+ val := (b1 bitShift:8) bitOr:b2.
+ val <= 0 ifTrue:[
+ DecodingFailedSignal
raiseWith:aString
- errorString:'EUC decoding failed (not EUC encoded ?)'
+ errorString:'EUC decoding failed (not EUC encoded ?)'.
+ newString at:dstIdx put:c.
+ dstIdx := dstIdx + 1.
+ newString at:dstIdx put:c2.
+ ] ifFalse:[
+ newString at:dstIdx put:(Character value:val).
+ ].
+ ] ifFalse:[
+ newString at:dstIdx put:c.
].
- newString at:dstIdx put:(Character value:val).
dstIdx := dstIdx + 1.
]
].
@@ -784,7 +792,7 @@
"
"Created: 17.4.1996 / 16:10:22 / cg"
- "Modified: 28.6.1997 / 20:11:28 / cg"
+ "Modified: 28.6.1997 / 21:03:44 / cg"
!
decodeFromGB:aString
@@ -1044,11 +1052,15 @@
b2 := (b2 - cellOffs).
val := (b1 bitShift:8) + b2.
val <= 0 ifTrue:[
- ^ DecodingFailedSignal
+ DecodingFailedSignal
raiseWith:aString
- errorString:'SJIS decoding failed (not SJIS encoded ?)'
- ].
- newString at:dstIdx put:(Character value:val).
+ errorString:'SJIS decoding failed (not SJIS encoded ?)'.
+ newString at:dstIdx put:char1.
+ dstIdx := dstIdx + 1.
+ newString at:dstIdx put:char2.
+ ] ifFalse:[
+ newString at:dstIdx put:(Character value:val).
+ ]
] ifFalse:[
"/ mhmh - append untranslated
@@ -1081,7 +1093,7 @@
"
"Created: 28.6.1997 / 19:19:23 / cg"
- "Modified: 28.6.1997 / 20:12:10 / cg"
+ "Modified: 28.6.1997 / 21:00:12 / cg"
!
encodeIntoBIG5withRomans:aBIG5String
@@ -4443,6 +4455,6 @@
!CharacterArray class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/CharacterArray.st,v 1.114 1997-06-28 18:16:37 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/CharacterArray.st,v 1.115 1997-06-28 19:06:18 cg Exp $'
! !
CharacterArray initialize!