Character.st
changeset 9153 197d00a1e50a
parent 9148 b33cbf0648d6
child 9229 74fe3012c7f6
--- a/Character.st	Mon Feb 20 14:26:43 2006 +0100
+++ b/Character.st	Mon Feb 20 14:38:33 2006 +0100
@@ -40,21 +40,21 @@
     This class represents characters.
 
     Notice, that actual character objects are not used when characters
-    are stored in strings, symbols etc; 
+    are stored in strings, symbols etc;
     these only store a character's asciiValue/codePoint for a more compact representation.
     The word 'asciiValue' is a historic leftover - actually, any integer
     code is allowed and actually used (i.e. characters are not limited to 8bit).
 
-    Single byte Characters are unique; i.e. for every asciiValue (0..255) there exists exactly 
-    one instance of Character, which is shared 
+    Single byte Characters are unique; i.e. for every asciiValue (0..255) there exists exactly
+    one instance of Character, which is shared
     (Character value:xxx checks for this, and returns a reference to an existing instance).
-    Other characters (i.e. asciivalue > 255) are not guaranteed to be shared; 
+    Other characters (i.e. asciivalue > 255) are not guaranteed to be shared;
     i.e. these might be created as required (actually, do NOT depend on which characters are and
     which are not shared; always compare using #= if there is any chance of a non-ascii character
     being involved.
-    
+
     This means: you may compare characters using #== ONLY IFF you are certain,
-    that the characters ranges is 0..255. 
+    that the characters ranges is 0..255.
     Otherwise, you HAVE TO compare using #=. (if in doubt, always compare using #=).
     Sorry for this inconvenience, but it is (practically) impossible to keep
     the possible maximum of 2^32 characters (Unicode) around, for that convenience alone.
@@ -62,12 +62,12 @@
 
     Methods marked as (JS) come from the manchester Character goody
     (CharacterComparing) by Jan Steinman, which allow Characters to be used as
-    Interval elements (i.e. ($a to:$z) do:[...] ); 
+    Interval elements (i.e. ($a to:$z) do:[...] );
     They are not a big deal, but convenient add-ons.
     Some of these have been modified a bit.
 
     WARNING: characters are known by compiler and runtime system -
-             do not change the instance layout. 
+	     do not change the instance layout.
 
     Also, although you can create subclasses of Character, the compiler always
     creates instances of Character for literals ...
@@ -76,43 +76,43 @@
     Therefore, it may not make sense to create a character-subclass.
 
     Case Mapping in Unicode:
-        There are a number of complications to case mappings that occur once the repertoire 
-        of characters is expanded beyond ASCII.
-
-        * Because of the inclusion of certain composite characters for compatibility, 
-          such as U+01F1 'DZ' capital dz, there is a third case, called titlecase, 
-          which is used where the first letter of a word is to be capitalized 
-          (e.g. Titlecase, vs. UPPERCASE, or lowercase).
-          For example, the title case of the example character is U+01F2 'Dz' capital d with small z.
-
-        * Case mappings may produce strings of different length than the original.
-          For example, the German character U+00DF small letter sharp s expands when uppercased to 
-          the sequence of two characters 'SS'. 
-          This also occurs where there is no precomposed character corresponding to a case mapping.
-          *** This is not yet implemented (in 5.2) ***
-
-        * Characters may also have different case mappings, depending on the context.
-          For example, U+03A3 capital sigma lowercases to U+03C3 small sigma if it is not followed 
-          by another letter, but lowercases to 03C2 small final sigma if it is.
-          *** This is not yet implemented (in 5.2) ***
-
-        * Characters may have case mappings that depend on the locale.
-          For example, in Turkish the letter 0049 'I' capital letter i lowercases to 0131 small dotless i.
-          *** This is not yet implemented (in 5.2) ***
-
-        * Case mappings are not, in general, reversible.
-          For example, once the string 'McGowan' has been uppercased, lowercased or titlecased, 
-          the original cannot be recovered by applying another uppercase, lowercase, or titlecase operation.
+	There are a number of complications to case mappings that occur once the repertoire
+	of characters is expanded beyond ASCII.
+
+	* Because of the inclusion of certain composite characters for compatibility,
+	  such as U+01F1 'DZ' capital dz, there is a third case, called titlecase,
+	  which is used where the first letter of a word is to be capitalized
+	  (e.g. Titlecase, vs. UPPERCASE, or lowercase).
+	  For example, the title case of the example character is U+01F2 'Dz' capital d with small z.
+
+	* Case mappings may produce strings of different length than the original.
+	  For example, the German character U+00DF small letter sharp s expands when uppercased to
+	  the sequence of two characters 'SS'.
+	  This also occurs where there is no precomposed character corresponding to a case mapping.
+	  *** This is not yet implemented (in 5.2) ***
+
+	* Characters may also have different case mappings, depending on the context.
+	  For example, U+03A3 capital sigma lowercases to U+03C3 small sigma if it is not followed
+	  by another letter, but lowercases to 03C2 small final sigma if it is.
+	  *** This is not yet implemented (in 5.2) ***
+
+	* Characters may have case mappings that depend on the locale.
+	  For example, in Turkish the letter 0049 'I' capital letter i lowercases to 0131 small dotless i.
+	  *** This is not yet implemented (in 5.2) ***
+
+	* Case mappings are not, in general, reversible.
+	  For example, once the string 'McGowan' has been uppercased, lowercased or titlecased,
+	  the original cannot be recovered by applying another uppercase, lowercase, or titlecase operation.
 
     Collation Sequence:
-        *** This is not yet implemented (in 5.2) ***
+	*** This is not yet implemented (in 5.2) ***
 
     [author:]
-        Claus Gittinger
+	Claus Gittinger
 
     [see also:]
-        String TwoByteString Unicode16String Unicode32String
-        StringCollection
+	String TwoByteString Unicode16String Unicode32String
+	StringCollection
 "
 ! !
 
@@ -132,10 +132,10 @@
 
     val := anInteger.
     (val between:0 and:9) ifTrue:[
-        ^ Character value:(val + ($0 codePoint))
+	^ Character value:(val + ($0 codePoint))
     ].
     (val between:10 and:35) ifTrue:[
-        ^ Character value:(val + ($A codePoint - 10))
+	^ Character value:(val + ($A codePoint - 10))
     ].
     ^self error:'value not in range 0 to 35'
 !
@@ -148,118 +148,118 @@
     c1 := aStream next.
     ascii := c1 codePoint.
     ascii <= 16r7F ifTrue:[
-        "/ 0xxxxxxx - 7 bits   
-        ^ c1.
+	"/ 0xxxxxxx - 7 bits
+	^ c1.
     ].
 
     (ascii bitAnd:2r11000000) == 2r10000000 ifTrue:[
-        "/ out of sync (got an intermediate character)
-        self error:'out of sync'.
-        ^ c1.
+	"/ out of sync (got an intermediate character)
+	self error:'out of sync'.
+	^ c1.
     ].
 
     fetchNext := [  |ch|
 
-                    ch := aStream next.
-                    (ch codePoint bitAnd:2r11000000) == 2r10000000 ifFalse:[
-                        "/ followup chars must have 2r10 in high bits
-                        self error:'bad encoding'.
-                    ].
-                    ch
-                 ].
+		    ch := aStream next.
+		    (ch codePoint bitAnd:2r11000000) == 2r10000000 ifFalse:[
+			"/ followup chars must have 2r10 in high bits
+			self error:'bad encoding'.
+		    ].
+		    ch
+		 ].
 
     (ascii bitAnd:2r11100000) == 2r11000000 ifTrue:[
-        "/ 110xxxxx 10xxxxxx - 11 bits
-        c2 := fetchNext value.
-        ascii := c1 codePoint bitAnd:16r1F.
-        ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
-        ascii <= 16r7F ifTrue:[
-            self error:'invalid encoding'.
-        ].
-        ^ Character value:ascii        
+	"/ 110xxxxx 10xxxxxx - 11 bits
+	c2 := fetchNext value.
+	ascii := c1 codePoint bitAnd:16r1F.
+	ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+	ascii <= 16r7F ifTrue:[
+	    self error:'invalid encoding'.
+	].
+	^ Character value:ascii
     ].
     (ascii bitAnd:2r11110000) == 2r11100000 ifTrue:[
-        "/ 1110xxxx 10xxxxxx 10xxxxxx - 16 bits
-        c2 := fetchNext value.
-        c3 := fetchNext value.
-        ascii := c1 codePoint bitAnd:16r0F.
-        ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
-        ascii := (ascii bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
-        ascii <= 16r7FF ifTrue:[
-            self error:'invalid encoding'.
-        ].
-        ^ Character value:ascii        
+	"/ 1110xxxx 10xxxxxx 10xxxxxx - 16 bits
+	c2 := fetchNext value.
+	c3 := fetchNext value.
+	ascii := c1 codePoint bitAnd:16r0F.
+	ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+	ascii := (ascii bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
+	ascii <= 16r7FF ifTrue:[
+	    self error:'invalid encoding'.
+	].
+	^ Character value:ascii
     ].
 
     "/ notice: currently, characters can only have 16bit encoding;
     "/ therefore the following will raise a runtime exception,
 
     (ascii bitAnd:2r11111000) == 2r11110000 ifTrue:[
-        "/ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - 21 bits
-        c2 := fetchNext value.
-        c3 := fetchNext value.
-        c4 := fetchNext value.
-        ascii := c1 codePoint bitAnd:16r07.
-        ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
-        ascii := (ascii bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
-        ascii := (ascii bitShift:6) bitOr:(c4 codePoint bitAnd:16r3F).
-        ascii <= 16rFFFF ifTrue:[
-            self error:'invalid encoding'.
-        ].
-        ^ Character value:ascii        
+	"/ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - 21 bits
+	c2 := fetchNext value.
+	c3 := fetchNext value.
+	c4 := fetchNext value.
+	ascii := c1 codePoint bitAnd:16r07.
+	ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+	ascii := (ascii bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
+	ascii := (ascii bitShift:6) bitOr:(c4 codePoint bitAnd:16r3F).
+	ascii <= 16rFFFF ifTrue:[
+	    self error:'invalid encoding'.
+	].
+	^ Character value:ascii
     ].
 
     (ascii bitAnd:2r11111100) == 2r11111000 ifTrue:[
-        "/ 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx - 26 bits
-        c2 := fetchNext value.
-        c3 := fetchNext value.
-        c4 := fetchNext value.
-        c5 := fetchNext value.
-        ascii := c1 codePoint bitAnd:16r03.
-        ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
-        ascii := (ascii bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
-        ascii := (ascii bitShift:6) bitOr:(c4 codePoint bitAnd:16r3F).
-        ascii := (ascii bitShift:6) bitOr:(c5 codePoint bitAnd:16r3F).
-        ascii <= 16r1FFFFF ifTrue:[
-            self error:'invalid encoding'.
-        ].
-        ^ Character value:ascii        
+	"/ 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx - 26 bits
+	c2 := fetchNext value.
+	c3 := fetchNext value.
+	c4 := fetchNext value.
+	c5 := fetchNext value.
+	ascii := c1 codePoint bitAnd:16r03.
+	ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+	ascii := (ascii bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
+	ascii := (ascii bitShift:6) bitOr:(c4 codePoint bitAnd:16r3F).
+	ascii := (ascii bitShift:6) bitOr:(c5 codePoint bitAnd:16r3F).
+	ascii <= 16r1FFFFF ifTrue:[
+	    self error:'invalid encoding'.
+	].
+	^ Character value:ascii
     ].
 
     (ascii bitAnd:2r11111110) == 2r11111100 ifTrue:[
-        "/ 1111110x ... 10xxxxxx - any number of bits
-        ascii := c1 codePoint bitAnd:16r01.
-
-        c2 := aStream peek.
-        [ (c2 codePoint bitAnd:2r11000000) == 2r10000000 ] whileTrue:[
-            ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
-            aStream next.
-        ].
-        ascii <= 16r3FFFFFF ifTrue:[
-            self error:'invalid encoding'.
-        ].
-        ^ Character value:ascii        
+	"/ 1111110x ... 10xxxxxx - any number of bits
+	ascii := c1 codePoint bitAnd:16r01.
+
+	c2 := aStream peek.
+	[ (c2 codePoint bitAnd:2r11000000) == 2r10000000 ] whileTrue:[
+	    ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+	    aStream next.
+	].
+	ascii <= 16r3FFFFFF ifTrue:[
+	    self error:'invalid encoding'.
+	].
+	^ Character value:ascii
     ].
 
     self error:'bad encoding'.
     ^ c1
 
     "
-      Character utf8DecodeFrom:'a' readStream     
-      Character utf8DecodeFrom:#[195 188] asString readStream   
-    "                                            
+      Character utf8DecodeFrom:'a' readStream
+      Character utf8DecodeFrom:#[195 188] asString readStream
+    "
 
     "test:
 
       |utf8Encoding original readBack|
 
       1 to:16rFFFF do:[:ascii |
-        original := Character value:ascii.
-        utf8Encoding := original asString utf8Encoded.
-        readBack := Character utf8DecodeFrom:(utf8Encoding readStream).
-        readBack codePoint = ascii ifFalse:[
-            self halt
-        ]
+	original := Character value:ascii.
+	utf8Encoding := original asString utf8Encoded.
+	readBack := Character utf8DecodeFrom:(utf8Encoding readStream).
+	readBack codePoint = ascii ifFalse:[
+	    self halt
+	]
       ]
     "
 !
@@ -272,17 +272,17 @@
     INT __codePoint;
 
     if (__isSmallInteger(anInteger)) {
-        __codePoint = __smallIntegerVal(anInteger);
-        if ((unsigned)(__codePoint) <= MAX_IMMEDIATE_CHARACTER /* (__codePoint >= 0) && (__codePoint <= 255) */) {
-            RETURN ( __MKCHARACTER(__codePoint) );
-        }
+	__codePoint = __smallIntegerVal(anInteger);
+	if ((unsigned)(__codePoint) <= MAX_IMMEDIATE_CHARACTER /* (__codePoint >= 0) && (__codePoint <= 255) */) {
+	    RETURN ( __MKCHARACTER(__codePoint) );
+	}
     }
 %}.
     (anInteger between:0 and:(CharacterTable size - 1)) ifTrue:[
-        ^ CharacterTable at:(anInteger + 1)
+	^ CharacterTable at:(anInteger + 1)
     ].
     (anInteger between:16r100 and:16r3FFFFFFF) ifTrue:[
-        ^ super basicNew setCodePoint:anInteger
+	^ super basicNew setCodePoint:anInteger
     ].
     "
      a characters ascii-code must be 0..16r3FFFFFFF.
@@ -301,31 +301,31 @@
 
 endOfInput
     "Answer the Character representing ctrl-d ."
-    
+
     ^ self value:4
 !
 
 leftParenthesis
     "Answer the Character representing a left parenthesis."
-    
+
     ^ self value:40
 !
 
 period
     "Answer the Character representing a carriage period."
-    
+
     ^ self value:46
 !
 
 poundSign
     "Answer the Character representing a pound sign."
-    
+
     ^ self value:35
 !
 
 rightParenthesis
     "Answer the Character representing a right parenthesis."
-    
+
     ^ self value:41
 ! !
 
@@ -344,16 +344,16 @@
 !
 
 cr
-    "return the lineEnd character 
+    "return the lineEnd character
      - actually (in unix) this is a newline character"
 
     ^ Character value:10
 !
 
-del 
+del
     "return the delete character"
 
-    ^ Character value:16r7F 
+    ^ Character value:16r7F
 !
 
 doubleQuote
@@ -380,11 +380,11 @@
     "
     "
      0 to:255 do:[:i |
-        Transcript 
-            show:'| '; show:((i printStringRadix:16) leftPaddedTo:2);
-            show:' | '; show:(i printStringPaddedTo:3);
-            show:' | '; show:(Character value:i);
-            cr.
+	Transcript
+	    show:'| '; show:((i printStringRadix:16) leftPaddedTo:2);
+	    show:' | '; show:(i printStringPaddedTo:3);
+	    show:' | '; show:(Character value:i);
+	    cr.
      ]
     "
 !
@@ -412,7 +412,7 @@
     ^ Character value:10
 !
 
-maxValue 
+maxValue
     "return the maximum asciiValue a character can have"
 
     ^ 16rFFFF
@@ -440,11 +440,11 @@
     ^ Character value:39
 !
 
-return 
+return
     "return the return character.
      In ST/X, this is different from cr - for Unix reasons."
 
-    ^ Character value:13 
+    ^ Character value:13
 !
 
 space
@@ -470,7 +470,7 @@
 
     c = getchar();
     if (c < 0) {
-        RETURN (nil);
+	RETURN (nil);
     }
     RETURN ( __MKCHARACTER(c & 0xFF) );
 %}.
@@ -483,9 +483,9 @@
     "added for squeak compatibility: return a collection of all chars"
 
     ^ CharacterTable
-        
+
     "
-     Character allCharacters 
+     Character allCharacters
     "
 !
 
@@ -510,18 +510,18 @@
 isLegalUnicodeCodePoint:anInteger
     "answer true, if anInteger is a valid unicode code point"
 
-    "Range 16rD800 - 16rDFFF is reserved for the 
+    "Range 16rD800 - 16rDFFF is reserved for the
      lower and upper substitution page for UCS-16"
     (anInteger >= 16rD800) ifTrue:[
-        (anInteger <= 16rDFFF) ifTrue:[
-            ^ false.
-        ].
-        (anInteger == 16rFFFE) ifTrue:[
-            ^ false.
-        ].
-        (anInteger == 16rFFFF) ifTrue:[
-            ^ false.
-        ].
+	(anInteger <= 16rDFFF) ifTrue:[
+	    ^ false.
+	].
+	(anInteger == 16rFFFE) ifTrue:[
+	    ^ false.
+	].
+	(anInteger == 16rFFFF) ifTrue:[
+	    ^ false.
+	].
     ].
     ^ true
 !
@@ -529,14 +529,14 @@
 separators
     "added for squeak compatibility: return a collection of separator chars"
 
-    ^ Array 
-        with:Character space
-        with:Character return
-        "/ with:Character cr
-        with:Character tab
-        with:Character lf
-        with:Character ff
-        
+    ^ Array
+	with:Character space
+	with:Character return
+	"/ with:Character cr
+	with:Character tab
+	with:Character lf
+	with:Character ff
+
     "
      Character separators
     "
@@ -589,7 +589,7 @@
 
 codePoint
     "return the codePoint of myself.
-     Traditionally, this was named 'asciiValue'; 
+     Traditionally, this was named 'asciiValue';
      however, characters are not limited to 8bit characters."
 
     ^ asciivalue
@@ -604,7 +604,7 @@
 !Character methodsFor:'arithmetic'!
 
 + aMagnitude
-    "Return the Character that is <aMagnitude> higher than the receiver. 
+    "Return the Character that is <aMagnitude> higher than the receiver.
      Wrap if the resulting value is not a legal Character value. (JS)"
 
     ^ Character value:(asciivalue + aMagnitude asInteger \\ 16rFFFF)
@@ -617,20 +617,20 @@
 !
 
 - aMagnitude
-    "Return the Character that is <aMagnitude> lower than the receiver.  
+    "Return the Character that is <aMagnitude> lower than the receiver.
      Wrap if the resulting value is not a legal Character value. (JS)
-     claus: 
-        modified to return the difference as integer, if the argument
-        is another character. If the argument is a number, a character is
-        returned."
+     claus:
+	modified to return the difference as integer, if the argument
+	is another character. If the argument is a number, a character is
+	returned."
 
     aMagnitude isCharacter ifTrue:[
-        ^ asciivalue - aMagnitude asInteger
+	^ asciivalue - aMagnitude asInteger
     ].
     ^ Character value:(asciivalue - aMagnitude asInteger \\ 16rFFFF)
 
     "
-     $z - $a  
+     $z - $a
      $d - 3
     "
 
@@ -638,14 +638,14 @@
 !
 
 // aMagnitude
-    "Return the Character who's value is the receiver divided by <aMagnitude>. 
+    "Return the Character who's value is the receiver divided by <aMagnitude>.
      Wrap if the resulting value is not a legal Character value. (JS)"
 
     ^ Character value:(asciivalue // aMagnitude asInteger \\ 16rFFFF)
 !
 
 \\ aMagnitude
-    "Return the Character who's value is the receiver modulo <aMagnitude>.  
+    "Return the Character who's value is the receiver modulo <aMagnitude>.
      Wrap if the resulting value is not a legal Character value. (JS)"
 
     ^ Character value:(asciivalue \\ aMagnitude asInteger \\ 16rFFFF)
@@ -695,8 +695,8 @@
     ^ asciivalue = aCharacter codePoint
 
     "
-        $A = 65
-        $A = 43
+	$A = 65
+	$A = 43
     "
 !
 
@@ -721,13 +721,13 @@
 identityHash
     "return an integer useful for hashing on identity"
 
-%{  
+%{
     INT __codePoint;
 
     __codePoint = __smallIntegerVal(__INST(asciivalue));
 
     if (__codePoint <= MAX_IMMEDIATE_CHARACTER) {
-        RETURN ( __mkSmallInteger(__codePoint + 4096) );
+	RETURN ( __mkSmallInteger(__codePoint + 4096) );
     }
 %}.
 
@@ -765,7 +765,7 @@
     ^ self
 
     "
-     32 asCharacter  
+     32 asCharacter
     "
 !
 
@@ -781,13 +781,13 @@
     "return a character with same letter as the receiver, but in lowercase.
      Returns the receiver if it is already lowercase or if there is no lowercase equivalent.
      CAVEAT:
-        for now, this method is only correct for unicode characters up to u+1d6ff (Unicode3.1).
-        (which is more than mozilla does, btw. ;-)"
+	for now, this method is only correct for unicode characters up to u+1d6ff (Unicode3.1).
+	(which is more than mozilla does, btw. ;-)"
 
 %{
-    static int 
+    static int
     __mapping[] = {
-    /* From    To             Every   Diff   */ 
+    /* From    To             Every   Diff   */
        0x0041, ((0x19 << 8) | 0x01), 0x0020  ,
        0x00c0, ((0x16 << 8) | 0x01), 0x0020  ,
        0x00d8, ((0x06 << 8) | 0x01), 0x0020  ,
@@ -912,8 +912,8 @@
        0x212b, ((0x00 << 8) | 0x00), -8262   ,
        0x2160, ((0x0f << 8) | 0x01), 0x0010  ,
        0x24b6, ((0x19 << 8) | 0x01), 0x001a  ,
-       0xff21, ((0x19 << 8) | 0x01), 0x0020  ,  
-       0x10400, ((0x27 << 8) | 0x01), 0x0028   
+       0xff21, ((0x19 << 8) | 0x01), 0x0020  ,
+       0x10400, ((0x27 << 8) | 0x01), 0x0028
     };
 
     REGISTER unsigned __codePoint;
@@ -921,28 +921,28 @@
 
     __codePoint = __intVal(__INST(asciivalue));
     for (__p = __mapping; (char *)__p < ((char *)__mapping) + sizeof(__mapping); __p += 3) {
-        unsigned rangeStart, rangeSize, rangeEnd, mod;
-
-        rangeStart = (unsigned)__p[0];
-        if (__codePoint < rangeStart) break;
-
-        rangeSize = ((unsigned)__p[1]) >> 8;
-        rangeEnd = rangeStart + rangeSize;
-        if (__codePoint <= rangeEnd) {
-            mod = __p[1] & 0xFF;       
-            if ((mod == 0) || (((__codePoint - rangeStart) % mod) == 0)) {
-                OBJ newChar;
-                unsigned newCodePoint;
-
-                newCodePoint = __codePoint + __p[2];
-                if (newCodePoint <= MAX_IMMEDIATE_CHARACTER) {
-                    RETURN (__MKCHARACTER(newCodePoint)) ;
-                }
-                newChar = __MKUCHARACTER(newCodePoint) ;
-                if (newChar == nil) goto allocationError;
-                RETURN (newChar) ;
-            }
-        }
+	unsigned rangeStart, rangeSize, rangeEnd, mod;
+
+	rangeStart = (unsigned)__p[0];
+	if (__codePoint < rangeStart) break;
+
+	rangeSize = ((unsigned)__p[1]) >> 8;
+	rangeEnd = rangeStart + rangeSize;
+	if (__codePoint <= rangeEnd) {
+	    mod = __p[1] & 0xFF;
+	    if ((mod == 0) || (((__codePoint - rangeStart) % mod) == 0)) {
+		OBJ newChar;
+		unsigned newCodePoint;
+
+		newCodePoint = __codePoint + __p[2];
+		if (newCodePoint <= MAX_IMMEDIATE_CHARACTER) {
+		    RETURN (__MKCHARACTER(newCodePoint)) ;
+		}
+		newChar = __MKUCHARACTER(newCodePoint) ;
+		if (newChar == nil) goto allocationError;
+		RETURN (newChar) ;
+	    }
+	}
     }
     RETURN (self);
 allocationError: ;
@@ -950,13 +950,13 @@
     ^ ObjectMemory allocationFailureSignal raise.
 
     "
-     $A asLowercase 
-     $a asLowercase 
-     (Character value:16r01F5) asUppercase asLowercase 
-     (Character value:16r0205) asUppercase asLowercase 
-     (Character value:16r03B1) asUppercase asLowercase 
-     (Character value:16r1E00) asLowercase  
-    "    
+     $A asLowercase
+     $a asLowercase
+     (Character value:16r01F5) asUppercase asLowercase
+     (Character value:16r0205) asUppercase asLowercase
+     (Character value:16r03B1) asUppercase asLowercase
+     (Character value:16r1E00) asLowercase
+    "
 !
 
 asString
@@ -969,33 +969,33 @@
 
     val = __intVal(_characterVal(self));
     if (val <= 0xFF) {
-        buffer[0] = (char) val;
-        buffer[1] = '\0';
-        s = __MKSTRING_L(buffer, 1);
-        if (s != nil) {
-            RETURN (s);
-        }
+	buffer[0] = (char) val;
+	buffer[1] = '\0';
+	s = __MKSTRING_L(buffer, 1);
+	if (s != nil) {
+	    RETURN (s);
+	}
     }
     if (val <= 0xFFFF) {
-        s = __MKEMPTYUSTRING(1);
-        if (s != nil) {
-            __Unicode16StringInstPtr(s)->s_element[0] = val;
-            RETURN (s);
-        }
+	s = __MKEMPTYU16STRING(1);
+	if (s != nil) {
+	    __Unicode16StringInstPtr(s)->s_element[0] = val;
+	    RETURN (s);
+	}
     }
 %}.
     asciivalue > 16rFF ifTrue:[
-        asciivalue > 16rFFFF ifTrue:[
-            ^ (Unicode32String new:1) at:1 put:self; yourself
-        ].
-        ^ (Unicode16String new:1) at:1 put:self; yourself
+	asciivalue > 16rFFFF ifTrue:[
+	    ^ (Unicode32String new:1) at:1 put:self; yourself
+	].
+	^ (Unicode16String new:1) at:1 put:self; yourself
     ].
 
     ^ (String new:1) at:1 put:self; yourself.
 
     "
-     (Character value:16rB5) asString     
-     (Character value:16r1B5) asString     
+     (Character value:16rB5) asString
+     (Character value:16r1B5) asString
     "
 !
 
@@ -1010,11 +1010,11 @@
      Returns the receiver if it is already titlecase or if there is no titlecase equivalent."
 
     "
-     For example, in Unicode, character U+01F3 is LATIN SMALL LETTER DZ.  
-     (Let us write this compound character using ASCII as 'dz'.) 
-     This character uppercases to character U+01F1, LATIN CAPITAL LETTER DZ.  
-     (Which is basically 'DZ'.) 
-     But it titlecases to to character U+01F2, LATIN CAPITAL LETTER D WITH SMALL LETTER Z. 
+     For example, in Unicode, character U+01F3 is LATIN SMALL LETTER DZ.
+     (Let us write this compound character using ASCII as 'dz'.)
+     This character uppercases to character U+01F1, LATIN CAPITAL LETTER DZ.
+     (Which is basically 'DZ'.)
+     But it titlecases to to character U+01F2, LATIN CAPITAL LETTER D WITH SMALL LETTER Z.
      (Which we can write 'Dz'.)
 
       character uppercase titlecase
@@ -1026,14 +1026,14 @@
 %{
     static unsigned short
     __mapping[] = {
-       0x01F1,    0x01F2, 
-       0x01F3,    0x01F2, 
-       0x01C4,    0x01C5, 
-       0x01C6,    0x01C5, 
-       0x01C7,    0x01C8, 
-       0x01C9,    0x01C8, 
-       0x01CA,    0x01CB, 
-       0x01CC,    0x01CB, 
+       0x01F1,    0x01F2,
+       0x01F3,    0x01F2,
+       0x01C4,    0x01C5,
+       0x01C6,    0x01C5,
+       0x01C7,    0x01C8,
+       0x01C9,    0x01C8,
+       0x01CA,    0x01CB,
+       0x01CC,    0x01CB,
     };
 
     REGISTER unsigned __codePoint;
@@ -1041,36 +1041,36 @@
 
     __codePoint = __intVal(__INST(asciivalue));
     for (__p = __mapping; (char *)__p < ((char *)__mapping) + sizeof(__mapping); __p += 2) {
-        if ((__codePoint == __p[0]) || (__codePoint == __p[1])) {
-            short newCodePoint;
-            OBJ newChar;
-
-            newCodePoint = __p[1];
-            if (newCodePoint == __codePoint) {
-                RETURN (self);
-            }
-            if (newCodePoint <= MAX_IMMEDIATE_CHARACTER) {
-                RETURN (__MKCHARACTER(newCodePoint)) ;
-            }
-            newChar = __MKUCHARACTER(newCodePoint) ;
-            if (newChar == nil) goto getOutOfHere;
-            RETURN (newChar) ;
-        }
+	if ((__codePoint == __p[0]) || (__codePoint == __p[1])) {
+	    short newCodePoint;
+	    OBJ newChar;
+
+	    newCodePoint = __p[1];
+	    if (newCodePoint == __codePoint) {
+		RETURN (self);
+	    }
+	    if (newCodePoint <= MAX_IMMEDIATE_CHARACTER) {
+		RETURN (__MKCHARACTER(newCodePoint)) ;
+	    }
+	    newChar = __MKUCHARACTER(newCodePoint) ;
+	    if (newChar == nil) goto getOutOfHere;
+	    RETURN (newChar) ;
+	}
     }
     ch = self;
 getOutOfHere: ;
 %}.
     ch notNil ifTrue:[
-        ^ ch asUppercase.
+	^ ch asUppercase.
     ].
 
     ^ ObjectMemory allocationFailureSignal raise.
 
     "
-     $A asTitlecase 
-     $a asTitlecase 
-     (Character value:16r01F1) asTitlecase 
-    "    
+     $A asTitlecase
+     $a asTitlecase
+     (Character value:16r01F1) asTitlecase
+    "
 !
 
 asUnicodeString
@@ -1078,7 +1078,7 @@
      This will vanish, as we now (rel5.2.x) use Unicode as default."
 
     asciivalue > 16rFFFF ifTrue:[
-        ^ (Unicode32String new:1) at:1 put:self; yourself.
+	^ (Unicode32String new:1) at:1 put:self; yourself.
     ].
     ^ (Unicode16String new:1) at:1 put:self; yourself.
 !
@@ -1087,13 +1087,13 @@
     "return a character with same letter as the receiver, but in uppercase.
      Returns the receiver if it is already uppercase or if there is no uppercase equivalent.
      CAVEAT:
-        for now, this method is only correct for unicode characters up to u+1d6ff (Unicode3.1).
-        (which is more than mozilla does, btw. ;-)"
+	for now, this method is only correct for unicode characters up to u+1d6ff (Unicode3.1).
+	(which is more than mozilla does, btw. ;-)"
 
 %{
     static int
     __mapping[] = {
-    /* From    To             Every   Diff   */ 
+    /* From    To             Every   Diff   */
        0x0061, ((0x19 << 8) | 0x01), -32  ,
        0x00b5, ((0x00 << 8) | 0x3b), 0x02e7  ,
        0x00e0, ((0x16 << 8) | 0x01), -32   ,
@@ -1230,8 +1230,8 @@
        0x1ff3, ((0x00 << 8) | 0x0e), 0x0009  ,
        0x2170, ((0x0f << 8) | 0x01), -16   ,
        0x24d0, ((0x19 << 8) | 0x01), -26   ,
-       0xff41, ((0x19 << 8) | 0x01), -32  ,  
-       0x10428, ((0x27 << 8) | 0x01), -40   
+       0xff41, ((0x19 << 8) | 0x01), -32  ,
+       0x10428, ((0x27 << 8) | 0x01), -40
     };
 
     REGISTER unsigned __codePoint;
@@ -1239,28 +1239,28 @@
 
     __codePoint = __intVal(__INST(asciivalue));
     for (__p = __mapping; (char *)__p < ((char *)__mapping) + sizeof(__mapping); __p += 3) {
-        unsigned rangeStart, rangeSize, rangeEnd, mod;
-
-        rangeStart = (unsigned)__p[0];
-        if (__codePoint < rangeStart) break;
-
-        rangeSize = ((unsigned)__p[1]) >> 8;
-        rangeEnd = rangeStart + rangeSize;
-        if (__codePoint <= rangeEnd) {
-            mod = __p[1] & 0xFF;       
-            if ((mod == 0) || (((__codePoint - rangeStart) % mod) == 0)) {
-                OBJ newChar;
-                unsigned newCodePoint;
-
-                newCodePoint = __codePoint + __p[2];
-                if (newCodePoint <= MAX_IMMEDIATE_CHARACTER) {
-                    RETURN (__MKCHARACTER(newCodePoint)) ;
-                }
-                newChar = __MKUCHARACTER(newCodePoint) ;
-                if (newChar == nil) goto allocationError;
-                RETURN (newChar) ;
-            }
-        }
+	unsigned rangeStart, rangeSize, rangeEnd, mod;
+
+	rangeStart = (unsigned)__p[0];
+	if (__codePoint < rangeStart) break;
+
+	rangeSize = ((unsigned)__p[1]) >> 8;
+	rangeEnd = rangeStart + rangeSize;
+	if (__codePoint <= rangeEnd) {
+	    mod = __p[1] & 0xFF;
+	    if ((mod == 0) || (((__codePoint - rangeStart) % mod) == 0)) {
+		OBJ newChar;
+		unsigned newCodePoint;
+
+		newCodePoint = __codePoint + __p[2];
+		if (newCodePoint <= MAX_IMMEDIATE_CHARACTER) {
+		    RETURN (__MKCHARACTER(newCodePoint)) ;
+		}
+		newChar = __MKUCHARACTER(newCodePoint) ;
+		if (newChar == nil) goto allocationError;
+		RETURN (newChar) ;
+	    }
+	}
     }
     RETURN (self);
 allocationError: ;
@@ -1268,12 +1268,12 @@
     ^ ObjectMemory allocationFailureSignal raise.
 
     "
-     $A asLowercase 
-     $a asUppercase 
-     (Character value:16r01F5) asUppercase  
-     (Character value:16r0205) asUppercase  
-     (Character value:16r03B1) asUppercase  
-    "    
+     $A asLowercase
+     $a asUppercase
+     (Character value:16r01F5) asUppercase
+     (Character value:16r0205) asUppercase
+     (Character value:16r03B1) asUppercase
+    "
 !
 
 digitValue
@@ -1283,14 +1283,14 @@
 
     code := asciivalue.
     (code between:($0 codePoint) and:($9 codePoint)) ifTrue:[
-        ^ code - $0 codePoint
+	^ code - $0 codePoint
     ].
     (code between:($a codePoint) and:($z codePoint)) ifTrue:[
-        ^ code + (10 - $a codePoint)
-    ]. 
+	^ code + (10 - $a codePoint)
+    ].
     (code between:($A codePoint) and:($Z codePoint)) ifTrue:[
-        ^ code + (10 - $A codePoint)
-    ]. 
+	^ code + (10 - $A codePoint)
+    ].
 
 "remove error below for X3J20 conformance ... "
     self error:'bad character'.
@@ -1308,7 +1308,7 @@
 !
 
 to:aMagnitude
-    "Return an Interval over the characters from the receiver to <aMagnitude>. 
+    "Return an Interval over the characters from the receiver to <aMagnitude>.
      Wrap <aMagnitude> if it is not a legal Character value. (JS)"
 
     ^ Interval from:self to:(aMagnitude \\ 256)
@@ -1321,7 +1321,7 @@
     |s|
 
     asciivalue <= 16r7F ifTrue:[
-        ^ self asString.
+	^ self asString.
     ].
 
     s := WriteStream on:(String new:6).
@@ -1331,60 +1331,60 @@
 
 utf8EncodedOn:aStream
     "append my UTF-8 representation to the argument, aStream.
-     Up to 31 bits can be encoded in up to 6 bytes. 
+     Up to 31 bits can be encoded in up to 6 bytes.
      However, currently, characters are limited to 16 bits."
 
     |b1 b2 b3 b4 b5 v|
 
     asciivalue <= 16r7F ifTrue:[
-        aStream nextPut:self.
-        ^ self.
+	aStream nextPut:self.
+	^ self.
     ].
 
     b1 := Character value:((asciivalue bitAnd:16r3F) bitOr:2r10000000).
     v := asciivalue bitShift:-6.
     v <= 16r1F ifTrue:[
-        aStream nextPut:(Character value:(v bitOr:2r11000000)).
-        aStream nextPut:b1.
-        ^ self.
+	aStream nextPut:(Character value:(v bitOr:2r11000000)).
+	aStream nextPut:b1.
+	^ self.
     ].
     b2 := Character value:((v bitAnd:16r3F) bitOr:2r10000000).
     v := v bitShift:-6.
     v <= 16r0F ifTrue:[
-        aStream nextPut:(Character value:(v bitOr:2r11100000)).
-        aStream nextPut:b2; nextPut:b1.
-        ^ self.
+	aStream nextPut:(Character value:(v bitOr:2r11100000)).
+	aStream nextPut:b2; nextPut:b1.
+	^ self.
     ].
     b3 := Character value:((v bitAnd:16r3F) bitOr:2r10000000).
     v := v bitShift:-6.
     v <= 16r07 ifTrue:[
-        aStream nextPut:(Character value:(v bitOr:2r11110000)).
-        aStream nextPut:b3; nextPut:b2; nextPut:b1.
-        ^ self.
+	aStream nextPut:(Character value:(v bitOr:2r11110000)).
+	aStream nextPut:b3; nextPut:b2; nextPut:b1.
+	^ self.
     ].
     b4 := Character value:((v bitAnd:16r3F) bitOr:2r10000000).
     v := v bitShift:-6.
     v <= 16r03 ifTrue:[
-        aStream nextPut:(Character value:(v bitOr:2r11111000)).
-        aStream nextPut:b4; nextPut:b3; nextPut:b2; nextPut:b1.
-        ^ self.
+	aStream nextPut:(Character value:(v bitOr:2r11111000)).
+	aStream nextPut:b4; nextPut:b3; nextPut:b2; nextPut:b1.
+	^ self.
     ].
     b5 := Character value:((v bitAnd:16r3F) bitOr:2r10000000).
     v := v bitShift:-6.
     v <= 16r01 ifTrue:[
-        aStream nextPut:(Character value:(v bitOr:2r11111100)).
-        aStream nextPut:b5; nextPut:b4; nextPut:b3; nextPut:b2; nextPut:b1.
-        ^ self.
+	aStream nextPut:(Character value:(v bitOr:2r11111100)).
+	aStream nextPut:b5; nextPut:b4; nextPut:b3; nextPut:b2; nextPut:b1.
+	^ self.
     ].
     "/ cannot happen - we only support up to 16 bit characters
     self error:'ascii value > 31bit in utf8Encode'.
-        
+
     "
-      $a utf8Encoded   
-      $ü utf8Encoded asByteArray  
-      (Character value:16r1fff) utf8Encoded asByteArray      
-      (Character value:16rffff) utf8Encoded asByteArray      
-      (Character value:16r800) utf8Encoded asByteArray      
+      $a utf8Encoded
+      $ü utf8Encoded asByteArray
+      (Character value:16r1fff) utf8Encoded asByteArray
+      (Character value:16rffff) utf8Encoded asByteArray
+      (Character value:16r800) utf8Encoded asByteArray
     "
 ! !
 
@@ -1421,25 +1421,25 @@
 !Character methodsFor:'encoding'!
 
 rot13
-     "Usenet: from `rotate alphabet 13 places'] 
+     "Usenet: from `rotate alphabet 13 places']
       The simple Caesar-cypher encryption that replaces each English
-      letter with the one 13 places forward or back along the alphabet, 
+      letter with the one 13 places forward or back along the alphabet,
       so that 'The butler did it!!' becomes 'Gur ohgyre qvq vg!!'
-      Most Usenet news reading and posting programs include a rot13 feature. 
+      Most Usenet news reading and posting programs include a rot13 feature.
       It is used to enclose the text in a sealed wrapper that the reader must choose
-      to open -- e.g., for posting things that might offend some readers, or spoilers. 
+      to open -- e.g., for posting things that might offend some readers, or spoilers.
       A major advantage of rot13 over rot(N) for other N is that it
       is self-inverse, so the same code can be used for encoding and decoding."
 
     (((self >= $a) and:[ self < $n]) or:[(self >= $A) and:[ self < $N]])
-        ifTrue: [ ^ Character value:(self codePoint + 13) ].
+	ifTrue: [ ^ Character value:(self codePoint + 13) ].
     (((self > $m) and:[ self <= $z]) or:[(self > $M) and:[ self <= $Z]])
-        ifTrue: [ ^ Character value:(self codePoint - 13) ].
+	ifTrue: [ ^ Character value:(self codePoint - 13) ].
     ^ self
 
     "
-     $h rot13      
-     $h rot13 rot13           
+     $h rot13
+     $h rot13 rot13
      'The butler did it!!' rot13             -> 'Gur ohgyre qvq vg!!'
      'The butler did it!!' rot13 rot13       -> 'The butler did it!!'
     "
@@ -1450,7 +1450,7 @@
 asciiValue
     "return the asciivalue of myself.
      The name 'asciiValue' is a historic leftover:
-        characters are not limited to 8bit characters.
+	characters are not limited to 8bit characters.
      So the actual value returned is a codePoint (i.e. full potential for 31bit encoding).
      PP has removed this method with 4.1 and providing asInteger instead.
      ANSI defines #codePoint, please use this method"
@@ -1480,14 +1480,14 @@
 
 print
     "print myself on stdout.
-     This method does NOT (by purpose) use the stream classes and 
+     This method does NOT (by purpose) use the stream classes and
      will therefore work even in case of emergency (but only, if Stdout is nil)."
 
 %{  /* NOCONTEXT */
 
     if (@global(Stdout) == nil) {
-        putchar(__intVal(__INST(asciivalue)));
-        RETURN(self);
+	putchar(__intVal(__INST(asciivalue)));
+	RETURN(self);
     }
 %}.
     super print
@@ -1551,11 +1551,11 @@
 !Character methodsFor:'private-accessing'!
 
 setCodePoint:anInteger
-    "very private - set the codePoint. 
+    "very private - set the codePoint.
      - use this only for characters with codes > 16rFF.
-     DANGER alert: 
-        funny things happen, if this is applied to
-        one of the shared characters with codePoints 0..255."
+     DANGER alert:
+	funny things happen, if this is applied to
+	one of the shared characters with codePoints 0..255."
 
     asciivalue := anInteger
 ! !
@@ -1597,7 +1597,7 @@
 
     val = __intVal(__INST(asciivalue));
     if (val < ' ' || val == 0xFF) {
-        RETURN ( true );
+	RETURN ( true );
     }
 #endif
     RETURN (false);
@@ -1618,7 +1618,7 @@
 
     val = __intVal(__INST(asciivalue));
     if ((unsigned)(val - '0') <= ('9' - '0')) {
-        RETURN ( true );
+	RETURN ( true );
     }
     RETURN ( false );
 %}.
@@ -1628,15 +1628,15 @@
 isDigitRadix:r
     "return true, if I am a digit of a base r number"
 
-    (asciivalue < $0 codePoint) ifTrue:[^ false]. 
+    (asciivalue < $0 codePoint) ifTrue:[^ false].
     (r > 10) ifTrue:[
-        (asciivalue <= $9 codePoint) ifTrue:[
-            ^ true
-        ].
-        ((asciivalue - $a codePoint) between:0 and:(r - 11)) ifTrue:[
-            ^ true
-        ].
-        ^ (asciivalue - $A codePoint) between:0 and:(r - 11)
+	(asciivalue <= $9 codePoint) ifTrue:[
+	    ^ true
+	].
+	((asciivalue - $a codePoint) between:0 and:(r - 11)) ifTrue:[
+	    ^ true
+	].
+	^ (asciivalue - $A codePoint) between:0 and:(r - 11)
     ].
     (asciivalue - $0 codePoint) < r ifTrue:[^ true].
     ^ false
@@ -1653,7 +1653,7 @@
     if ((val == '\n')
      || (val == '\r')
      || (val == '\f')) {
-        RETURN ( true );
+	RETURN ( true );
     }
     RETURN (false);
 %}.
@@ -1667,21 +1667,21 @@
     "return true if I am an immediate object
      i.e. I am represented in the pointer itself and
      no real object header/storage is used me.
-     For VW compatibility, shared characters (i.e. in the range 0..MAX_IMMEDIATE_CHARACTER) 
+     For VW compatibility, shared characters (i.e. in the range 0..MAX_IMMEDIATE_CHARACTER)
      also return true here"
-    
+
 %{  /* NOCONTEXT */
     if (__smallIntegerVal(__INST(asciivalue)) <= MAX_IMMEDIATE_CHARACTER) {
-        RETURN ( true );
+	RETURN ( true );
     }
 %}.
     ^ false
 
     "
-        $a isImmediate.
-        (Character value:255) isImmediate.
-        (Character value:256) isImmediate.
-        (Character value:1566) isImmediate.
+	$a isImmediate.
+	(Character value:255) isImmediate.
+	(Character value:256) isImmediate.
+	(Character value:1566) isImmediate.
     "
 !
 
@@ -1695,10 +1695,10 @@
 
     val = __intVal(__INST(asciivalue));
     if ((unsigned)(val - 'a') <= ('z' - 'a')) {
-        RETURN ( true );
+	RETURN ( true );
     }
     if ((unsigned)(val - 'A') <= ('Z' - 'A')) {
-        RETURN ( true );
+	RETURN ( true );
     }
     RETURN ( false );
 %}.
@@ -1716,13 +1716,13 @@
 
     val = __intVal(__INST(asciivalue));
     if ((unsigned)(val - 'a') <= ('z' - 'a')) {
-        RETURN ( true );
+	RETURN ( true );
     }
     if ((unsigned)(val - 'A') <= ('Z' - 'A')) {
-        RETURN ( true );
+	RETURN ( true );
     }
     if ((unsigned)(val - '0') <= ('9' - '0')) {
-        RETURN ( true );
+	RETURN ( true );
     }
     RETURN ( false );
 %}.
@@ -1732,9 +1732,9 @@
 isLowercase
     "return true, if I am a lower-case letter.
      This one does care for national characters.
-     Caveat: 
-        only returns the correct value for codes up to u+1d6ff (Unicode3.1).
-        (which is more than mozilla does, btw. ;-)"
+     Caveat:
+	only returns the correct value for codes up to u+1d6ff (Unicode3.1).
+	(which is more than mozilla does, btw. ;-)"
 
 %{  /* NOCONTEXT */
 
@@ -1744,206 +1744,206 @@
 
     val = __intVal(__INST(asciivalue));
     switch (val >> 8) {
-        case 0x00:
-            if ((unsigned)(val - 'a') <= ('z' - 'a')) {
-                RETURN ( true );
-            }
-
-            /* iso8859 puts national lower case characters at e0 .. ff */
-            if ((val >= 0xDF) && (val <= 0xFF)) {
-                if (val != 0xF7) {
-                    RETURN(true);
-                }
-            }
-            if (val == 0xAA) RETURN(true);     /* FEMININE ORDINAL INDICATOR (high a-underline) */
-            if (val == 0xB5) RETURN(true);     /* MICRO SIGN */
-            if (val == 0xBA) RETURN(true);     /* MASCULINE ORDINAL INDICATOR (high o-underline) */
-            RETURN (false);
-
-        case 0x01:
-            if (val <= 0x0137) { RETURN (TRUE_IF_ODD(val)); } 
-            if (val <= 0x0148) { RETURN (TRUE_IF_EVEN(val)); } 
-            if (val <= 0x0178) { RETURN (TRUE_IF_ODD(val)); } 
-            if (val <= 0x017E) { RETURN (TRUE_IF_EVEN(val)); } 
-            if (val <= 0x0180) { RETURN (true); } 
-            if (val < 0x01CD) {
-                if (val == 0x0181) { RETURN (false); }
-                if (val <= 0x0185) {
-                    RETURN (TRUE_IF_ODD(val));
-                }
-                if (val == 0x0188) { RETURN (true); }
-                if (val == 0x018C) { RETURN (true); }
-                if (val == 0x018D) { RETURN (true); }
-                if (val == 0x0192) { RETURN (true); }
-                if (val == 0x0195) { RETURN (true); }
-                if (val == 0x0199) { RETURN (true); }
-                if (val == 0x019A) { RETURN (true); }
-                if (val == 0x019B) { RETURN (true); }
-                if (val == 0x019E) { RETURN (true); }
-                if (val <= 0x01A0) { RETURN (false); }
-                if (val <= 0x01A6) { RETURN (TRUE_IF_ODD(val)); }
-                if (val <= 0x01AA) { RETURN (TRUE_IF_EVEN(val)); }
-                if (val <= 0x01AE) { RETURN (TRUE_IF_ODD(val)); }
-                if (val == 0x01B2) { RETURN (false); }
-                if (val <= 0x01B6) { RETURN (TRUE_IF_EVEN(val)); }
-                if (val == 0x01B9) { RETURN (true); }
-                if (val == 0x01BA) { RETURN (true); }
-                if (val == 0x01BD) { RETURN (true); }
-                if (val == 0x01BE) { RETURN (true); }
-                if (val == 0x01BF) { RETURN (true); }
-                if (val == 0x01C6) { RETURN (true); }
-                if (val == 0x01C9) { RETURN (true); }
-                if (val == 0x01CC) { RETURN (true); }
-                RETURN (false);
-            } 
-            if (val <= 0x01DC) { RETURN (TRUE_IF_EVEN(val)); } 
-            if (val <= 0x01EF) { RETURN (TRUE_IF_ODD(val)); } 
-            if (val == 0x01F0) { RETURN (true); }
-            if (val == 0x01F1) { RETURN (false); }
-            if (val == 0x01F2) { RETURN (false); }
-            if (val == 0x01F3) { RETURN (true); }
-            if (val <= 0x01F6) { RETURN (TRUE_IF_ODD(val)); } 
-            if (val == 0x01F7) { RETURN (false); }
-            RETURN (TRUE_IF_ODD(val));
-
-        case 0x02:
-            if (val <= 0x0233) { RETURN (TRUE_IF_ODD(val)); } 
-            if (val <= 0x0236) { RETURN (true); } 
-            if (val < 0x0250) { RETURN (false); } 
-            if (val < 0x02B0) { RETURN (true); } 
-            RETURN (false);
-
-
-        case 0x03:
-            if (val == 0x0390) { RETURN (true); } 
-            if (val <= 0x03AB) { RETURN (false); } 
-            if (val <= 0x03D1) { RETURN (true); } 
-            if (val == 0x03D5) { RETURN (true); } 
-            if (val == 0x03D6) { RETURN (true); } 
-            if (val < 0x03D7) { RETURN (false); } 
-            if (val <= 0x03EF) { RETURN (TRUE_IF_ODD(val)); } 
-            if (val <= 0x03F3) { RETURN (true); } 
-            if (val == 0x03F5) { RETURN (true); } 
+	case 0x00:
+	    if ((unsigned)(val - 'a') <= ('z' - 'a')) {
+		RETURN ( true );
+	    }
+
+	    /* iso8859 puts national lower case characters at e0 .. ff */
+	    if ((val >= 0xDF) && (val <= 0xFF)) {
+		if (val != 0xF7) {
+		    RETURN(true);
+		}
+	    }
+	    if (val == 0xAA) RETURN(true);     /* FEMININE ORDINAL INDICATOR (high a-underline) */
+	    if (val == 0xB5) RETURN(true);     /* MICRO SIGN */
+	    if (val == 0xBA) RETURN(true);     /* MASCULINE ORDINAL INDICATOR (high o-underline) */
+	    RETURN (false);
+
+	case 0x01:
+	    if (val <= 0x0137) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val <= 0x0148) { RETURN (TRUE_IF_EVEN(val)); }
+	    if (val <= 0x0178) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val <= 0x017E) { RETURN (TRUE_IF_EVEN(val)); }
+	    if (val <= 0x0180) { RETURN (true); }
+	    if (val < 0x01CD) {
+		if (val == 0x0181) { RETURN (false); }
+		if (val <= 0x0185) {
+		    RETURN (TRUE_IF_ODD(val));
+		}
+		if (val == 0x0188) { RETURN (true); }
+		if (val == 0x018C) { RETURN (true); }
+		if (val == 0x018D) { RETURN (true); }
+		if (val == 0x0192) { RETURN (true); }
+		if (val == 0x0195) { RETURN (true); }
+		if (val == 0x0199) { RETURN (true); }
+		if (val == 0x019A) { RETURN (true); }
+		if (val == 0x019B) { RETURN (true); }
+		if (val == 0x019E) { RETURN (true); }
+		if (val <= 0x01A0) { RETURN (false); }
+		if (val <= 0x01A6) { RETURN (TRUE_IF_ODD(val)); }
+		if (val <= 0x01AA) { RETURN (TRUE_IF_EVEN(val)); }
+		if (val <= 0x01AE) { RETURN (TRUE_IF_ODD(val)); }
+		if (val == 0x01B2) { RETURN (false); }
+		if (val <= 0x01B6) { RETURN (TRUE_IF_EVEN(val)); }
+		if (val == 0x01B9) { RETURN (true); }
+		if (val == 0x01BA) { RETURN (true); }
+		if (val == 0x01BD) { RETURN (true); }
+		if (val == 0x01BE) { RETURN (true); }
+		if (val == 0x01BF) { RETURN (true); }
+		if (val == 0x01C6) { RETURN (true); }
+		if (val == 0x01C9) { RETURN (true); }
+		if (val == 0x01CC) { RETURN (true); }
+		RETURN (false);
+	    }
+	    if (val <= 0x01DC) { RETURN (TRUE_IF_EVEN(val)); }
+	    if (val <= 0x01EF) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val == 0x01F0) { RETURN (true); }
+	    if (val == 0x01F1) { RETURN (false); }
+	    if (val == 0x01F2) { RETURN (false); }
+	    if (val == 0x01F3) { RETURN (true); }
+	    if (val <= 0x01F6) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val == 0x01F7) { RETURN (false); }
+	    RETURN (TRUE_IF_ODD(val));
+
+	case 0x02:
+	    if (val <= 0x0233) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val <= 0x0236) { RETURN (true); }
+	    if (val < 0x0250) { RETURN (false); }
+	    if (val < 0x02B0) { RETURN (true); }
+	    RETURN (false);
+
+
+	case 0x03:
+	    if (val == 0x0390) { RETURN (true); }
+	    if (val <= 0x03AB) { RETURN (false); }
+	    if (val <= 0x03D1) { RETURN (true); }
+	    if (val == 0x03D5) { RETURN (true); }
+	    if (val == 0x03D6) { RETURN (true); }
+	    if (val < 0x03D7) { RETURN (false); }
+	    if (val <= 0x03EF) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val <= 0x03F3) { RETURN (true); }
+	    if (val == 0x03F5) { RETURN (true); }
 #ifndef UNICODE_3_2
-            if (val == 0x03F8) { RETURN (true); } 
-            if (val == 0x03FB) { RETURN (true); } 
+	    if (val == 0x03F8) { RETURN (true); }
+	    if (val == 0x03FB) { RETURN (true); }
 #endif
-            RETURN (false);
-
-        case 0x04:
-            if (val <= 0x042F) { RETURN (false); } 
-            if (val <= 0x045F) { RETURN (true); } 
-            if (val <= 0x0481) { RETURN (TRUE_IF_ODD(val)); } 
-            if (val < 0x048A) { RETURN (false); } 
-            if (val <= 0x04C0) { RETURN (TRUE_IF_ODD(val)); }
+	    RETURN (false);
+
+	case 0x04:
+	    if (val <= 0x042F) { RETURN (false); }
+	    if (val <= 0x045F) { RETURN (true); }
+	    if (val <= 0x0481) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val < 0x048A) { RETURN (false); }
+	    if (val <= 0x04C0) { RETURN (TRUE_IF_ODD(val)); }
 #ifdef UNICODE_3_2
-            if (val == 0x04C5) { RETURN (true); }
+	    if (val == 0x04C5) { RETURN (true); }
 #endif
 #ifdef UNICODE_3_2
-            if (val <= 0x04C8) { RETURN (TRUE_IF_EVEN(val)); }
+	    if (val <= 0x04C8) { RETURN (TRUE_IF_EVEN(val)); }
 #else
-            if (val <= 0x04CA) { RETURN (TRUE_IF_EVEN(val)); }
-            if (val == 0x04CD) { RETURN (false); }
-            if (val == 0x04CE) { RETURN (true); }
+	    if (val <= 0x04CA) { RETURN (TRUE_IF_EVEN(val)); }
+	    if (val == 0x04CD) { RETURN (false); }
+	    if (val == 0x04CE) { RETURN (true); }
 #endif
-            if (val == 0x04CB) { RETURN (false); }
-            if (val == 0x04CC) { RETURN (true); }
-            RETURN (TRUE_IF_ODD(val));
-
-        case 0x05:
-            if (val <= 0x050F) { RETURN (TRUE_IF_ODD(val)); } 
-            if (val < 0x0561) { RETURN (false); } 
-            if (val <= 0x0587) { RETURN (true); } 
-            RETURN (false);
-
-        case 0x1D:
+	    if (val == 0x04CB) { RETURN (false); }
+	    if (val == 0x04CC) { RETURN (true); }
+	    RETURN (TRUE_IF_ODD(val));
+
+	case 0x05:
+	    if (val <= 0x050F) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val < 0x0561) { RETURN (false); }
+	    if (val <= 0x0587) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x1D:
 #ifndef UNICODE_3_2
-            if (val <= 0x1D2B) { RETURN (true); }
-            if (val <= 0x1D61) { RETURN (false); }
-            if (val <= 0x1D70) { RETURN (true); }
+	    if (val <= 0x1D2B) { RETURN (true); }
+	    if (val <= 0x1D61) { RETURN (false); }
+	    if (val <= 0x1D70) { RETURN (true); }
 #endif
-            RETURN (false);
-
-        case 0x1E:
-            if (val < 0x1E96) { RETURN (TRUE_IF_ODD(val)); }
-            if (val <= 0x1E9F) { RETURN (true); }
-            RETURN (TRUE_IF_ODD(val));
-
-        case 0x1F:
-            if (val <= 0x1F6F) {
-                if (val & 0x0008) { RETURN (false); }
-                RETURN (true);
-            }
-            if (val <= 0x1F87) { RETURN (true); }
-            if (val < 0x1FB8) {
-                if (val & 0x0008) { RETURN (false); }
-                RETURN (true);
-            }
-            if (val == 0x1FBE) { RETURN (true); }
-            if (val == 0x1FD4) { RETURN (false); }
-            if (val == 0x1FC5) { RETURN (false); }
-            if (val == 0x1FD5) { RETURN (false); }
-            if (val == 0x1FC1) { RETURN (false); }
-            if (val == 0x1FF1) { RETURN (false); }
-            if (val == 0x1FC0) { RETURN (false); }
-            if (val == 0x1FF0) { RETURN (false); }
-            if (((val & 0x000F) >= 0x0000) && ((val & 0x000F) <= 0x0007)) { RETURN (true); }
-            RETURN (false);
-
-        case 0x20:
+	    RETURN (false);
+
+	case 0x1E:
+	    if (val < 0x1E96) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val <= 0x1E9F) { RETURN (true); }
+	    RETURN (TRUE_IF_ODD(val));
+
+	case 0x1F:
+	    if (val <= 0x1F6F) {
+		if (val & 0x0008) { RETURN (false); }
+		RETURN (true);
+	    }
+	    if (val <= 0x1F87) { RETURN (true); }
+	    if (val < 0x1FB8) {
+		if (val & 0x0008) { RETURN (false); }
+		RETURN (true);
+	    }
+	    if (val == 0x1FBE) { RETURN (true); }
+	    if (val == 0x1FD4) { RETURN (false); }
+	    if (val == 0x1FC5) { RETURN (false); }
+	    if (val == 0x1FD5) { RETURN (false); }
+	    if (val == 0x1FC1) { RETURN (false); }
+	    if (val == 0x1FF1) { RETURN (false); }
+	    if (val == 0x1FC0) { RETURN (false); }
+	    if (val == 0x1FF0) { RETURN (false); }
+	    if (((val & 0x000F) >= 0x0000) && ((val & 0x000F) <= 0x0007)) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x20:
 #ifndef UNICODE_3_2
-            if (val == 0x2071) { RETURN (true); }
+	    if (val == 0x2071) { RETURN (true); }
 #endif
-            if (val == 0x207F) { RETURN (true); }
-            RETURN (false);
-
-        case 0x21:
-            if (val == 0x210A) { RETURN (true); }
-            if (val < 0x210E) { RETURN (false); }
-            if (val <= 0x210F) { RETURN (true); }
-            if (val == 0x2113) { RETURN (true); }
-            if (val == 0x212F) { RETURN (true); }
-            if (val == 0x2134) { RETURN (true); }
-            if (val == 0x2139) { RETURN (true); }
+	    if (val == 0x207F) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x21:
+	    if (val == 0x210A) { RETURN (true); }
+	    if (val < 0x210E) { RETURN (false); }
+	    if (val <= 0x210F) { RETURN (true); }
+	    if (val == 0x2113) { RETURN (true); }
+	    if (val == 0x212F) { RETURN (true); }
+	    if (val == 0x2134) { RETURN (true); }
+	    if (val == 0x2139) { RETURN (true); }
 #ifndef UNICODE_3_2
-            if (val == 0x213D) { RETURN (true); }
-            if (val <= 0x2145) { RETURN (false); }
-            if (val <= 0x2149) { RETURN (true); }
+	    if (val == 0x213D) { RETURN (true); }
+	    if (val <= 0x2145) { RETURN (false); }
+	    if (val <= 0x2149) { RETURN (true); }
 #endif
-            RETURN (false);
-
-        case 0xFB:
-            if (val <= 0xFB1C) { RETURN (true); }
-            RETURN (false);
-            
-        case 0xFF:
-            if ((val >= 0xFF41) && (val <= 0xFF5A)) { RETURN (true); }
-            RETURN (false);
-
-        case 0x104:
-            if (val <= 0x10427) { RETURN (false); }
-            if (val <= 0x1044D) { RETURN (true); }
+	    RETURN (false);
+
+	case 0xFB:
+	    if (val <= 0xFB1C) { RETURN (true); }
+	    RETURN (false);
+
+	case 0xFF:
+	    if ((val >= 0xFF41) && (val <= 0xFF5A)) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x104:
+	    if (val <= 0x10427) { RETURN (false); }
+	    if (val <= 0x1044D) { RETURN (true); }
 #ifdef UNICODE_3_2
-            if (val <= 0x1044D) { RETURN (true); }
+	    if (val <= 0x1044D) { RETURN (true); }
 #else
-            if (val <= 0x1044F) { RETURN (true); }
+	    if (val <= 0x1044F) { RETURN (true); }
 #endif
-            RETURN (false);
-
-        case 0x1D4:
-        case 0x1D5:
-        case 0x1D6:
-            if (val <= 0x1D419) { RETURN (false); }
-            if (val < 0x1D6be) {
-                if (((val - 0x1D41A) % 52) <= 25) { RETURN (true); }
-                RETURN (false);
-            }
-            if (val < 0x1D6c2) { RETURN (false); }
-            if (val < 0x1D6db) { RETURN (true); }
-            if (val == 0x1D6db) { RETURN (false); }
-            if (val < 0x1D6e2) { RETURN (true); }
-            if (val <= 0x1D6fb) { RETURN (false); }
-            RETURN (true);
+	    RETURN (false);
+
+	case 0x1D4:
+	case 0x1D5:
+	case 0x1D6:
+	    if (val <= 0x1D419) { RETURN (false); }
+	    if (val < 0x1D6be) {
+		if (((val - 0x1D41A) % 52) <= 25) { RETURN (true); }
+		RETURN (false);
+	    }
+	    if (val < 0x1D6c2) { RETURN (false); }
+	    if (val < 0x1D6db) { RETURN (true); }
+	    if (val == 0x1D6db) { RETURN (false); }
+	    if (val < 0x1D6e2) { RETURN (true); }
+	    if (val <= 0x1D6fb) { RETURN (false); }
+	    RETURN (true);
     }
 #undef TRUE_IF_ODD
 #undef TRUE_IF_EVEN
@@ -1978,15 +1978,15 @@
 #ifndef NON_ASCII       /* i.e. EBCDIC ;-) */
     if (val <= ' ')
 #endif
-        if ((val == ' ')
-         || (val == '\n') 
-         || (val == '\t')
-         || (val == '\r')
-         || (val == '\f')) {
-            RETURN ( true );
-        }
+	if ((val == ' ')
+	 || (val == '\n')
+	 || (val == '\t')
+	 || (val == '\r')
+	 || (val == '\f')) {
+	    RETURN ( true );
+	}
     RETURN (false);
-%}.                                  
+%}.
     ^ (asciivalue == 16r20)
       or:[asciivalue == 16r0D
       or:[asciivalue == 16r0A
@@ -1998,9 +1998,9 @@
 isUppercase
     "return true, if I am an upper-case letter.
      This one does care for national characters.
-     Caveat:   
-        only returns the correct value for codes up to u+1d6ff (Unicode3.1).
-        (which is more than mozilla does, btw. ;-)"
+     Caveat:
+	only returns the correct value for codes up to u+1d6ff (Unicode3.1).
+	(which is more than mozilla does, btw. ;-)"
 
 %{  /* NOCONTEXT */
 #define TRUE_IF_ODD(x)      ((x & 1) ? true : false)
@@ -2011,197 +2011,197 @@
     val = __intVal(__INST(asciivalue));
 
     switch (val >> 8) {
-        case 0x00:
-            if ((unsigned)(val - 'A') <= ('Z' - 'A')) {
-                RETURN ( true );
-            }
-            /* iso8859 puts national upper case characters at c0 .. df */
-            if ((val >= 0xC0) && (val <= 0xDE)) {
-                if (val != 0xD7) {
-                    RETURN(true);
-                }
-            }
-            RETURN (false);
-
-        case 0x01:
-            if (val <= 0x0137) { RETURN (TRUE_IF_EVEN(val)); }
-            if (val <= 0x0148) { RETURN (TRUE_IF_ODD(val)); } 
-            if (val <= 0x0178) { RETURN (TRUE_IF_EVEN(val)); }
-            if (val <= 0x017E) { RETURN (TRUE_IF_ODD(val)); } 
-            if (val < 0x01CD) { 
-                if (val == 0x0180) { RETURN (false); }
-                if (val == 0x0181) { RETURN (true); }
-                if (val <= 0x0186) {
-                    RETURN (TRUE_IF_EVEN(val));
-                }
-                if (val <= 0x0189) {
-                    RETURN (TRUE_IF_ODD(val));
-                }
-                if (val <= 0x018B) { RETURN (true); }
-                if (val <= 0x018D) { RETURN (false); }
-                if (val <= 0x0191) { RETURN (true); }
-                if (val == 0x0193) { RETURN (true); }
-                if (val == 0x0194) { RETURN (true); }
-                if (val == 0x0196) { RETURN (true); }
-                if (val == 0x0197) { RETURN (true); }
-                if (val == 0x0198) { RETURN (true); }
-                if (val == 0x019C) { RETURN (true); }
-                if (val == 0x019D) { RETURN (true); }
-                if (val == 0x019F) { RETURN (true); }
-                if (val < 0x01A0) { RETURN (false); }
-                if (val <= 0x01A6) { RETURN (TRUE_IF_EVEN(val)); }
-                if (val <= 0x01AA) { RETURN (TRUE_IF_ODD(val)); }
-                if (val <= 0x01AE) { RETURN (TRUE_IF_EVEN(val)); }
-                if (val == 0x01B2) { RETURN (true); }
-                if (val <= 0x01B7) { RETURN (TRUE_IF_ODD(val)); }
-                if (val == 0x01B8) { RETURN (true); }
-                if (val == 0x01BC) { RETURN (true); }
-                if (val == 0x01C4) { RETURN (true); }
-                if (val == 0x01C7) { RETURN (true); }
+	case 0x00:
+	    if ((unsigned)(val - 'A') <= ('Z' - 'A')) {
+		RETURN ( true );
+	    }
+	    /* iso8859 puts national upper case characters at c0 .. df */
+	    if ((val >= 0xC0) && (val <= 0xDE)) {
+		if (val != 0xD7) {
+		    RETURN(true);
+		}
+	    }
+	    RETURN (false);
+
+	case 0x01:
+	    if (val <= 0x0137) { RETURN (TRUE_IF_EVEN(val)); }
+	    if (val <= 0x0148) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val <= 0x0178) { RETURN (TRUE_IF_EVEN(val)); }
+	    if (val <= 0x017E) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val < 0x01CD) {
+		if (val == 0x0180) { RETURN (false); }
+		if (val == 0x0181) { RETURN (true); }
+		if (val <= 0x0186) {
+		    RETURN (TRUE_IF_EVEN(val));
+		}
+		if (val <= 0x0189) {
+		    RETURN (TRUE_IF_ODD(val));
+		}
+		if (val <= 0x018B) { RETURN (true); }
+		if (val <= 0x018D) { RETURN (false); }
+		if (val <= 0x0191) { RETURN (true); }
+		if (val == 0x0193) { RETURN (true); }
+		if (val == 0x0194) { RETURN (true); }
+		if (val == 0x0196) { RETURN (true); }
+		if (val == 0x0197) { RETURN (true); }
+		if (val == 0x0198) { RETURN (true); }
+		if (val == 0x019C) { RETURN (true); }
+		if (val == 0x019D) { RETURN (true); }
+		if (val == 0x019F) { RETURN (true); }
+		if (val < 0x01A0) { RETURN (false); }
+		if (val <= 0x01A6) { RETURN (TRUE_IF_EVEN(val)); }
+		if (val <= 0x01AA) { RETURN (TRUE_IF_ODD(val)); }
+		if (val <= 0x01AE) { RETURN (TRUE_IF_EVEN(val)); }
+		if (val == 0x01B2) { RETURN (true); }
+		if (val <= 0x01B7) { RETURN (TRUE_IF_ODD(val)); }
+		if (val == 0x01B8) { RETURN (true); }
+		if (val == 0x01BC) { RETURN (true); }
+		if (val == 0x01C4) { RETURN (true); }
+		if (val == 0x01C7) { RETURN (true); }
 #if 0
-                if (val == 0x01C8) { RETURN (true); }
+		if (val == 0x01C8) { RETURN (true); }
 #endif
-                if (val == 0x01CA) { RETURN (true); }
+		if (val == 0x01CA) { RETURN (true); }
 #if 0
-                if (val == 0x01CB) { RETURN (true); }
+		if (val == 0x01CB) { RETURN (true); }
 #endif
-                RETURN (false);         /* WRONG !!! */ 
-            }
-            if (val <= 0x01DC) { RETURN (TRUE_IF_ODD(val)); } 
-            if (val <= 0x01EF) { RETURN (TRUE_IF_EVEN(val)); }
-            if (val == 0x01F0) { RETURN (false); }
-            if (val == 0x01F1) { RETURN (true); }
-            if (val == 0x01F2) { RETURN (false); }
-            if (val == 0x01F3) { RETURN (false); }
-            if (val == 0x01F4) { RETURN (true); }
-            if (val == 0x01F5) { RETURN (false); }
-            if (val == 0x01F6) { RETURN (true); }
-            if (val == 0x01F7) { RETURN (true); } 
-            RETURN (TRUE_IF_EVEN(val));
-
-        case 0x02:
-            if (val <= 0x0233) { RETURN (TRUE_IF_EVEN(val)); }
-            RETURN (false); 
-
-        case 0x03:
-            if (val < 0x0386) { RETURN (false); }
-            if (val == 0x0387) { RETURN (false); }
-            if (val == 0x0390) { RETURN (false); }
-            if (val <= 0x03AB) { RETURN (true); }
-            if (val <= 0x03D1) { RETURN (false); }
-            if (val <= 0x03D4) { RETURN (true); }
-            if (val <= 0x03D7) { RETURN (false); }
-            if (val <= 0x03EF) { RETURN (TRUE_IF_EVEN(val)); }
-            if (val == 0x03F4) { RETURN (true); }
+		RETURN (false);         /* WRONG !!! */
+	    }
+	    if (val <= 0x01DC) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val <= 0x01EF) { RETURN (TRUE_IF_EVEN(val)); }
+	    if (val == 0x01F0) { RETURN (false); }
+	    if (val == 0x01F1) { RETURN (true); }
+	    if (val == 0x01F2) { RETURN (false); }
+	    if (val == 0x01F3) { RETURN (false); }
+	    if (val == 0x01F4) { RETURN (true); }
+	    if (val == 0x01F5) { RETURN (false); }
+	    if (val == 0x01F6) { RETURN (true); }
+	    if (val == 0x01F7) { RETURN (true); }
+	    RETURN (TRUE_IF_EVEN(val));
+
+	case 0x02:
+	    if (val <= 0x0233) { RETURN (TRUE_IF_EVEN(val)); }
+	    RETURN (false);
+
+	case 0x03:
+	    if (val < 0x0386) { RETURN (false); }
+	    if (val == 0x0387) { RETURN (false); }
+	    if (val == 0x0390) { RETURN (false); }
+	    if (val <= 0x03AB) { RETURN (true); }
+	    if (val <= 0x03D1) { RETURN (false); }
+	    if (val <= 0x03D4) { RETURN (true); }
+	    if (val <= 0x03D7) { RETURN (false); }
+	    if (val <= 0x03EF) { RETURN (TRUE_IF_EVEN(val)); }
+	    if (val == 0x03F4) { RETURN (true); }
 #ifndef UNICODE_3_2
-            if (val == 0x03F7) { RETURN (true); }
-            if (val == 0x03F9) { RETURN (true); }
-            if (val == 0x03Fa) { RETURN (true); }
+	    if (val == 0x03F7) { RETURN (true); }
+	    if (val == 0x03F9) { RETURN (true); }
+	    if (val == 0x03Fa) { RETURN (true); }
 #endif
-            RETURN (false); 
-
-        case 0x04:
-            if (val <= 0x042F) { RETURN (true); }
-            if (val <= 0x045F) { RETURN (false); }
-            if (val <= 0x0481) { RETURN (TRUE_IF_EVEN(val)); }
-            if (val < 0x048A) { RETURN (false); }
-            if (val <= 0x04C0) { RETURN (TRUE_IF_EVEN(val)); }
+	    RETURN (false);
+
+	case 0x04:
+	    if (val <= 0x042F) { RETURN (true); }
+	    if (val <= 0x045F) { RETURN (false); }
+	    if (val <= 0x0481) { RETURN (TRUE_IF_EVEN(val)); }
+	    if (val < 0x048A) { RETURN (false); }
+	    if (val <= 0x04C0) { RETURN (TRUE_IF_EVEN(val)); }
 #ifdef UNICODE_3_2
-            if (val == 0x04C5) { RETURN (false); }
+	    if (val == 0x04C5) { RETURN (false); }
 #endif
 #ifdef UNICODE_3_2
-            if (val <= 0x04C8) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val <= 0x04C8) { RETURN (TRUE_IF_ODD(val)); }
 #else
-            if (val <= 0x04CA) { RETURN (TRUE_IF_ODD(val)); }
-            if (val == 0x04CD) { RETURN (true); }
-            if (val == 0x04CE) { RETURN (false); }
+	    if (val <= 0x04CA) { RETURN (TRUE_IF_ODD(val)); }
+	    if (val == 0x04CD) { RETURN (true); }
+	    if (val == 0x04CE) { RETURN (false); }
 #endif
-            if (val == 0x04CB) { RETURN (true); }
-            if (val == 0x04CC) { RETURN (false); }
-            RETURN (TRUE_IF_EVEN(val));
-
-        case 0x05:
-            if (val <= 0x050F) { RETURN (TRUE_IF_EVEN(val)); }
-            if (val < 0x0531) { RETURN (false); }
-            if (val <= 0x0556) { RETURN (true); }
-            RETURN (false);
-
-        case 0x10:
-            if (val < 0x10A0) { RETURN (false); }
-            if (val <= 0x10CF) { RETURN (true); }
-            RETURN (false);
-
-        case 0x1E:
-            if (val < 0x1E96) { RETURN (TRUE_IF_EVEN(val)); }
-            if (val < 0x1EA0) { RETURN (false); }
-            RETURN (TRUE_IF_EVEN(val)); 
-
-        case 0x1F:
-            if (val <= 0x1F6F) {
-                if (val & 0x0008) { RETURN (true); }
-            }
-            if (val <= 0x1F87) { RETURN (false); }
-            if (val < 0x1FB8) { RETURN (false); }
-            if (val < 0x1FBC) { RETURN (true); }
-            if (val == 0x1FEC) { RETURN (true); }
-            if (((val & 0x000F) >= 0x0008) && ((val & 0x000F) <= 0x000B)) { RETURN (true); }
-            RETURN (false);
-    
-        case 0x21:
-            if (val == 0x2102) { RETURN (true); }
-            if (val == 0x2107) { RETURN (true); }
-            if (val < 0x210B) { RETURN (false); }
-            if (val < 0x210E) { RETURN (true); }
-            if (val == 0x2110) { RETURN (true); }
-            if (val == 0x2111) { RETURN (true); }
-            if (val == 0x2112) { RETURN (true); }
-            if (val == 0x2115) { RETURN (true); }
-            if (val == 0x2119) { RETURN (true); }
-            if (val == 0x211A) { RETURN (true); }
-            if (val == 0x211B) { RETURN (true); }
-            if (val == 0x211C) { RETURN (true); }
-            if (val == 0x211D) { RETURN (true); }
-            if (val < 0x2124) { RETURN (false); }
-            if (val <= 0x212A) { RETURN (TRUE_IF_EVEN(val)); }
-            if (val == 0x212B) { RETURN (true); }
-            if (val == 0x212C) { RETURN (true); }
-            if (val == 0x212D) { RETURN (true); }
-            if (val == 0x2130) { RETURN (true); }
-            if (val == 0x2131) { RETURN (true); }
-            if (val == 0x2133) { RETURN (true); }
+	    if (val == 0x04CB) { RETURN (true); }
+	    if (val == 0x04CC) { RETURN (false); }
+	    RETURN (TRUE_IF_EVEN(val));
+
+	case 0x05:
+	    if (val <= 0x050F) { RETURN (TRUE_IF_EVEN(val)); }
+	    if (val < 0x0531) { RETURN (false); }
+	    if (val <= 0x0556) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x10:
+	    if (val < 0x10A0) { RETURN (false); }
+	    if (val <= 0x10CF) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x1E:
+	    if (val < 0x1E96) { RETURN (TRUE_IF_EVEN(val)); }
+	    if (val < 0x1EA0) { RETURN (false); }
+	    RETURN (TRUE_IF_EVEN(val));
+
+	case 0x1F:
+	    if (val <= 0x1F6F) {
+		if (val & 0x0008) { RETURN (true); }
+	    }
+	    if (val <= 0x1F87) { RETURN (false); }
+	    if (val < 0x1FB8) { RETURN (false); }
+	    if (val < 0x1FBC) { RETURN (true); }
+	    if (val == 0x1FEC) { RETURN (true); }
+	    if (((val & 0x000F) >= 0x0008) && ((val & 0x000F) <= 0x000B)) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x21:
+	    if (val == 0x2102) { RETURN (true); }
+	    if (val == 0x2107) { RETURN (true); }
+	    if (val < 0x210B) { RETURN (false); }
+	    if (val < 0x210E) { RETURN (true); }
+	    if (val == 0x2110) { RETURN (true); }
+	    if (val == 0x2111) { RETURN (true); }
+	    if (val == 0x2112) { RETURN (true); }
+	    if (val == 0x2115) { RETURN (true); }
+	    if (val == 0x2119) { RETURN (true); }
+	    if (val == 0x211A) { RETURN (true); }
+	    if (val == 0x211B) { RETURN (true); }
+	    if (val == 0x211C) { RETURN (true); }
+	    if (val == 0x211D) { RETURN (true); }
+	    if (val < 0x2124) { RETURN (false); }
+	    if (val <= 0x212A) { RETURN (TRUE_IF_EVEN(val)); }
+	    if (val == 0x212B) { RETURN (true); }
+	    if (val == 0x212C) { RETURN (true); }
+	    if (val == 0x212D) { RETURN (true); }
+	    if (val == 0x2130) { RETURN (true); }
+	    if (val == 0x2131) { RETURN (true); }
+	    if (val == 0x2133) { RETURN (true); }
 #ifndef UNICODE_3_2
-            if (val == 0x213E) { RETURN (true); }
-            if (val == 0x213F) { RETURN (true); }
-            if (val == 0x2145) { RETURN (true); }
+	    if (val == 0x213E) { RETURN (true); }
+	    if (val == 0x213F) { RETURN (true); }
+	    if (val == 0x2145) { RETURN (true); }
 #endif
-            RETURN (false); 
-
-        case 0xFF:
-            if ((val >= 0xFF21) && (val <= 0xFF3A)) { RETURN (true); }
-            RETURN (false);
-
-        case 0x104:
-            if (val <= 0x10427) { RETURN (true); }
-            RETURN (false);
-
-        case 0x1D4:
-        case 0x1D5:
-        case 0x1D6:
-            if (val <= 0x1D419) { RETURN (true); }
-            if (val < 0x1D6be) {
-                if (((val - 0x1D41A) % 52) <= 25) { RETURN (false); }
-                RETURN (true);
-            }
-            if (val < 0x1D6c1) { RETURN (true); }
-            if (val < 0x1D6e2) { RETURN (false); }
-            if (val < 0x1D6fb) { RETURN (true); }
-
-            RETURN (false);
+	    RETURN (false);
+
+	case 0xFF:
+	    if ((val >= 0xFF21) && (val <= 0xFF3A)) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x104:
+	    if (val <= 0x10427) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x1D4:
+	case 0x1D5:
+	case 0x1D6:
+	    if (val <= 0x1D419) { RETURN (true); }
+	    if (val < 0x1D6be) {
+		if (((val - 0x1D41A) % 52) <= 25) { RETURN (false); }
+		RETURN (true);
+	    }
+	    if (val < 0x1D6c1) { RETURN (true); }
+	    if (val < 0x1D6e2) { RETURN (false); }
+	    if (val < 0x1D6fb) { RETURN (true); }
+
+	    RETURN (false);
     }
     RETURN (false);
 
-#undef TRUE_IF_ODD     
-#undef TRUE_IF_EVEN    
+#undef TRUE_IF_ODD
+#undef TRUE_IF_EVEN
 %}
 !
 
@@ -2236,7 +2236,7 @@
      current language (Language variable)"
 
     self isNationalLetter ifTrue:[^ true].
-    ^ self isNationalDigit 
+    ^ self isNationalDigit
 !
 
 isNationalDigit
@@ -2248,9 +2248,9 @@
 
     codePoint := asciivalue.
 
-    codePoint <= 16rFF ifTrue:[                "/ u00xx - unicode latin1 page 
-        (codePoint between:($0 codePoint) and:($9 codePoint)) ifTrue:[^ true].
-        ^ false
+    codePoint <= 16rFF ifTrue:[                "/ u00xx - unicode latin1 page
+	(codePoint between:($0 codePoint) and:($9 codePoint)) ifTrue:[^ true].
+	^ false
     ].
 
     (codePoint between:16rFF10 and:16rFF19) ifTrue:[ ^ true].
@@ -2260,8 +2260,8 @@
 isNationalLetter
     "return true, if the receiver is a letter.
      CAVEAT:
-        for now, this method is only correct for unicode characters up to u+1d6ff (Unicode3.1).
-        (which is more than mozilla does, btw. ;-)"
+	for now, this method is only correct for unicode characters up to u+1d6ff (Unicode3.1).
+	(which is more than mozilla does, btw. ;-)"
 
 %{  /* NOCONTEXT */
 
@@ -2269,470 +2269,470 @@
 
     val = __intVal(__INST(asciivalue));
     switch (val >> 8) {
-        case 0x00:
-            if ((unsigned)(val - 'A') <= ('Z' - 'A')) {
-                RETURN ( true );
-            }
-            if ((unsigned)(val - 'a') <= ('z' - 'a')) {
-                RETURN ( true );
-            }
-            if (val == 0xAA) { RETURN (true); }
-            if (val == 0xB5) { RETURN (true); }
-            if (val == 0xBA) { RETURN (true); }
-            if (val < 0xC0) { RETURN (false); }
-            if (val == 0xD7) { RETURN (false); }
-            if (val == 0xF7) { RETURN (false); }
-            RETURN (true);
-
-        case 0x01:                            
-            RETURN (true);
-
-        case 0x02:                            
+	case 0x00:
+	    if ((unsigned)(val - 'A') <= ('Z' - 'A')) {
+		RETURN ( true );
+	    }
+	    if ((unsigned)(val - 'a') <= ('z' - 'a')) {
+		RETURN ( true );
+	    }
+	    if (val == 0xAA) { RETURN (true); }
+	    if (val == 0xB5) { RETURN (true); }
+	    if (val == 0xBA) { RETURN (true); }
+	    if (val < 0xC0) { RETURN (false); }
+	    if (val == 0xD7) { RETURN (false); }
+	    if (val == 0xF7) { RETURN (false); }
+	    RETURN (true);
+
+	case 0x01:
+	    RETURN (true);
+
+	case 0x02:
 #ifdef UNICODE_3_2
-            if (val <= 0x2B8) { RETURN (true); }
-            if (val == 0x2B9) { RETURN (false); }
-            if (val == 0x2BA) { RETURN (false); }
+	    if (val <= 0x2B8) { RETURN (true); }
+	    if (val == 0x2B9) { RETURN (false); }
+	    if (val == 0x2BA) { RETURN (false); }
 #else
-            if (val <= 0x2BA) { RETURN (true); }
+	    if (val <= 0x2BA) { RETURN (true); }
 #endif
-            if (val <= 0x2C1) { RETURN (true); }
+	    if (val <= 0x2C1) { RETURN (true); }
 #ifndef UNICODE_3_2
-            if (val <= 0x2C5) { RETURN (false); }
-            if (val <= 0x2CF) { RETURN (true); }
+	    if (val <= 0x2C5) { RETURN (false); }
+	    if (val <= 0x2CF) { RETURN (true); }
 #endif
-            if (val == 0x2D0) { RETURN (true); }
-            if (val == 0x2D1) { RETURN (true); }
-            if (val <= 0x2DF) { RETURN (false); }
-            if (val <= 0x2E4) { RETURN (true); }
-            if (val == 0x2EE) { RETURN (true); }
-            RETURN (false);
-
-        case 0x03:                            
-            if (val == 0x37A) { RETURN (true); }
-            if (val <= 0x385) { RETURN (false); }
-            if (val == 0x387) { RETURN (false); }
+	    if (val == 0x2D0) { RETURN (true); }
+	    if (val == 0x2D1) { RETURN (true); }
+	    if (val <= 0x2DF) { RETURN (false); }
+	    if (val <= 0x2E4) { RETURN (true); }
+	    if (val == 0x2EE) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x03:
+	    if (val == 0x37A) { RETURN (true); }
+	    if (val <= 0x385) { RETURN (false); }
+	    if (val == 0x387) { RETURN (false); }
 #ifndef UNICODE_3_2
-            if (val == 0x3F6) { RETURN (false); }
+	    if (val == 0x3F6) { RETURN (false); }
 #endif
-            RETURN (true);
-
-        case 0x04:                            
-            if (val <= 0x481) { RETURN (true); }
-            if (val <= 0x486) { RETURN (false); }
-            if (val == 0x487) { RETURN (true); }
+	    RETURN (true);
+
+	case 0x04:
+	    if (val <= 0x481) { RETURN (true); }
+	    if (val <= 0x486) { RETURN (false); }
+	    if (val == 0x487) { RETURN (true); }
 #ifdef UNICODE_3_2
-            if (val <= 0x48A) { RETURN (false); }
+	    if (val <= 0x48A) { RETURN (false); }
 #else
-            if (val <= 0x489) { RETURN (false); }
+	    if (val <= 0x489) { RETURN (false); }
 #endif
-            RETURN (true);
-
-        case 0x05:                            
-            if (val <= 0x50f) { RETURN (true); }
-            if (val <= 0x530) { RETURN (false); }
-            if (val <= 0x556) { RETURN (true); }
-            if (val <= 0x558) { RETURN (false); }
-            if (val <= 0x559) { RETURN (true); }
-            if (val <= 0x55F) { RETURN (false); }
-            if (val <= 0x587) { RETURN (true); }
-            if (val <= 0x5cf) { RETURN (false); } 
-            if (val <= 0x5f2) { RETURN (true); }
-            RETURN (false);
-
-        case 0x06:                            
-            if (val <= 0x620) { RETURN (false); }
-            if (val <= 0x64A) { RETURN (true); }
-            if (val <= 0x66D) { RETURN (false); }
-            if (val == 0x670) { RETURN (false); }
-            if (val <= 0x6D3) { RETURN (true); }
-            if (val == 0x6D5) { RETURN (true); }
-            if (val == 0x6E5) { RETURN (true); }
-            if (val == 0x6E6) { RETURN (true); }
-            if (val == 0x6EE) { RETURN (true); }
-            if (val == 0x6EF) { RETURN (true); }
-            if (val == 0x6FA) { RETURN (true); }
-            if (val == 0x6FB) { RETURN (true); }
-            if (val == 0x6FC) { RETURN (true); }
+	    RETURN (true);
+
+	case 0x05:
+	    if (val <= 0x50f) { RETURN (true); }
+	    if (val <= 0x530) { RETURN (false); }
+	    if (val <= 0x556) { RETURN (true); }
+	    if (val <= 0x558) { RETURN (false); }
+	    if (val <= 0x559) { RETURN (true); }
+	    if (val <= 0x55F) { RETURN (false); }
+	    if (val <= 0x587) { RETURN (true); }
+	    if (val <= 0x5cf) { RETURN (false); }
+	    if (val <= 0x5f2) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x06:
+	    if (val <= 0x620) { RETURN (false); }
+	    if (val <= 0x64A) { RETURN (true); }
+	    if (val <= 0x66D) { RETURN (false); }
+	    if (val == 0x670) { RETURN (false); }
+	    if (val <= 0x6D3) { RETURN (true); }
+	    if (val == 0x6D5) { RETURN (true); }
+	    if (val == 0x6E5) { RETURN (true); }
+	    if (val == 0x6E6) { RETURN (true); }
+	    if (val == 0x6EE) { RETURN (true); }
+	    if (val == 0x6EF) { RETURN (true); }
+	    if (val == 0x6FA) { RETURN (true); }
+	    if (val == 0x6FB) { RETURN (true); }
+	    if (val == 0x6FC) { RETURN (true); }
 #ifndef UNICODE_3_2
-            if (val == 0x6FF) { RETURN (true); }
+	    if (val == 0x6FF) { RETURN (true); }
 #endif
-            RETURN (false);
-
-        case 0x07:                            
-            if (val <= 0x70F) { RETURN (false); }
-            if (val == 0x711) { RETURN (false); }
-            if (val <= 0x72F) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x07:
+	    if (val <= 0x70F) { RETURN (false); }
+	    if (val == 0x711) { RETURN (false); }
+	    if (val <= 0x72F) { RETURN (true); }
 #ifdef UNICODE_3_2
-            if (val <= 0x74d) { RETURN (false); }
-            if (val <= 0x74e) { RETURN (true); }
+	    if (val <= 0x74d) { RETURN (false); }
+	    if (val <= 0x74e) { RETURN (true); }
 #else
-            if (val <= 0x74c) { RETURN (false); }
-            if (val <= 0x74f) { RETURN (true); }
+	    if (val <= 0x74c) { RETURN (false); }
+	    if (val <= 0x74f) { RETURN (true); }
 #endif
-            if (val <= 0x77F) { RETURN (false); }
-            if (val <= 0x7a5) { RETURN (true); }
-            if (val <= 0x7af) { RETURN (false); }
+	    if (val <= 0x77F) { RETURN (false); }
+	    if (val <= 0x7a5) { RETURN (true); }
+	    if (val <= 0x7af) { RETURN (false); }
 #ifndef UNICODE_3_2
-            if (val == 0x7B1) { RETURN (true); }
+	    if (val == 0x7B1) { RETURN (true); }
 #endif
-            RETURN (false);
-
-        case 0x09:                            
+	    RETURN (false);
+
+	case 0x09:
 #ifdef UNICODE_3_2
-            if (val <= 0x904) { RETURN (false); }
+	    if (val <= 0x904) { RETURN (false); }
 #else
-            if (val <= 0x903) { RETURN (false); }
+	    if (val <= 0x903) { RETURN (false); }
 #endif
-            if (val <= 0x93B) { RETURN (true); }
-            if (val == 0x93D) { RETURN (true); }
-            if (val == 0x950) { RETURN (true); }
-            if (val <= 0x957) { RETURN (false); }
-            if (val <= 0x961) { RETURN (true); }
-            if (val <= 0x984) { RETURN (false); }
-            if (val <= 0x9BB) { RETURN (true); }
+	    if (val <= 0x93B) { RETURN (true); }
+	    if (val == 0x93D) { RETURN (true); }
+	    if (val == 0x950) { RETURN (true); }
+	    if (val <= 0x957) { RETURN (false); }
+	    if (val <= 0x961) { RETURN (true); }
+	    if (val <= 0x984) { RETURN (false); }
+	    if (val <= 0x9BB) { RETURN (true); }
 #ifndef UNICODE_3_2
-            if (val == 0x9BD) { RETURN (true); }
+	    if (val == 0x9BD) { RETURN (true); }
 #endif
-            if (val <= 0x9DB) { RETURN (false); }
-            if (val <= 0x9E1) { RETURN (true); }
-            if (val <= 0x9EF) { RETURN (false); }
-            if (val <= 0x9F1) { RETURN (true); }
-            RETURN (false);
-
-        case 0x0A:                            
-            if (val <= 0xa04) { RETURN (false); }
-            if (val <= 0xa3B) { RETURN (true); }
-            if (val <= 0xa58) { RETURN (false); }
-            if (val <= 0xa65) { RETURN (true); }
-            if (val <= 0xa71) { RETURN (false); }
-            if (val <= 0xa80) { RETURN (true); }
-            if (val <= 0xa84) { RETURN (false); }
-            if (val <= 0xaBB) { RETURN (true); }
-            if (val == 0xaBD) { RETURN (true); }
-            if (val <= 0xaCF) { RETURN (false); }
+	    if (val <= 0x9DB) { RETURN (false); }
+	    if (val <= 0x9E1) { RETURN (true); }
+	    if (val <= 0x9EF) { RETURN (false); }
+	    if (val <= 0x9F1) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x0A:
+	    if (val <= 0xa04) { RETURN (false); }
+	    if (val <= 0xa3B) { RETURN (true); }
+	    if (val <= 0xa58) { RETURN (false); }
+	    if (val <= 0xa65) { RETURN (true); }
+	    if (val <= 0xa71) { RETURN (false); }
+	    if (val <= 0xa80) { RETURN (true); }
+	    if (val <= 0xa84) { RETURN (false); }
+	    if (val <= 0xaBB) { RETURN (true); }
+	    if (val == 0xaBD) { RETURN (true); }
+	    if (val <= 0xaCF) { RETURN (false); }
 #ifndef UNICODE_3_2
-            if (val == 0xAE2) { RETURN (false); }
-            if (val == 0xAE3) { RETURN (false); }
+	    if (val == 0xAE2) { RETURN (false); }
+	    if (val == 0xAE3) { RETURN (false); }
 #endif
-            if (val <= 0xaE5) { RETURN (true); }
-            RETURN (false);
-
-        case 0x0B:                            
-            if (val <= 0xB04) { RETURN (false); }
-            if (val <= 0xb3B) { RETURN (true); }
-            if (val == 0xb3d) { RETURN (true); }
-            if (val <= 0xb5B) { RETURN (false); }
-            if (val <= 0xb65) { RETURN (true); }
+	    if (val <= 0xaE5) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x0B:
+	    if (val <= 0xB04) { RETURN (false); }
+	    if (val <= 0xb3B) { RETURN (true); }
+	    if (val == 0xb3d) { RETURN (true); }
+	    if (val <= 0xb5B) { RETURN (false); }
+	    if (val <= 0xb65) { RETURN (true); }
 #ifndef UNICODE_3_2
-            if (val == 0xB71) { RETURN (true); }
-            if (val == 0xB83) { RETURN (true); }
+	    if (val == 0xB71) { RETURN (true); }
+	    if (val == 0xB83) { RETURN (true); }
 #endif
-            if (val <= 0xb84) { RETURN (false); }
-            if (val <= 0xbBB) { RETURN (true); }
-            RETURN (false);
-
-        case 0x0c:                            
-            if (val <= 0xc04) { RETURN (false); }
-            if (val <= 0xc3d) { RETURN (true); }
-            if (val <= 0xc5f) { RETURN (false); }
-            if (val <= 0xc65) { RETURN (true); }
-            if (val <= 0xc84) { RETURN (false); }
+	    if (val <= 0xb84) { RETURN (false); }
+	    if (val <= 0xbBB) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x0c:
+	    if (val <= 0xc04) { RETURN (false); }
+	    if (val <= 0xc3d) { RETURN (true); }
+	    if (val <= 0xc5f) { RETURN (false); }
+	    if (val <= 0xc65) { RETURN (true); }
+	    if (val <= 0xc84) { RETURN (false); }
 #ifndef UNICODE_3_2
-            if (val == 0xcbc) { RETURN (false); }
+	    if (val == 0xcbc) { RETURN (false); }
 #endif
-            if (val <= 0xcbd) { RETURN (true); }
-            if (val <= 0xcdc) { RETURN (false); }
-            if (val <= 0xce5) { RETURN (true); }
-            RETURN (false);
-
-        case 0x0d:                            
-            if (val <= 0xd04) { RETURN (false); }
-            if (val <= 0xd3d) { RETURN (true); }
-            if (val <= 0xd5f) { RETURN (false); }
-            if (val <= 0xd65) { RETURN (true); }
-            if (val <= 0xd84) { RETURN (false); }
-            if (val <= 0xdc9) { RETURN (true); }
-            RETURN (false);
-
-        case 0x0E:                            
-            if (val == 0xE31) { RETURN (false); }
-            if (val <= 0xE33) { RETURN (true); }
-            if (val <= 0xE3F) { RETURN (false); }
-            if (val <= 0xE46) { RETURN (true); }
-            if (val <= 0xE7f) { RETURN (false); }
-            if (val <= 0xEb0) { RETURN (true); }
-            if (val == 0xEb1) { RETURN (false); }
-            if (val <= 0xEb3) { RETURN (true); }
-            if (val <= 0xEbc) { RETURN (false); }
-            if (val <= 0xEc7) { RETURN (true); }
-            if (val <= 0xEdb) { RETURN (false); }
-            RETURN (true); 
-
-        case 0x0F:                            
-            if (val == 0xf00) { RETURN (true); }
-            if (val <= 0xf3F) { RETURN (false); }
-            if (val <= 0xf70) { RETURN (true); }
-            if (val <= 0xf87) { RETURN (false); }
-            if (val <= 0xf8f) { RETURN (true); }
-            RETURN (false);
-
-        case 0x10:                            
-            if (val <= 0x102b) { RETURN (true); }
-            if (val <= 0x104f) { RETURN (false); }
-            if (val <= 0x1055) { RETURN (true); }
-            if (val <= 0x109f) { RETURN (false); }
-            if (val <= 0x10fa) { RETURN (true); }
-            RETURN (false);
-
-        case 0x11:                            
-        case 0x12:                            
-            RETURN (true);
-
-        case 0x13:
-            if (val <= 0x1360) { RETURN (true); }
-            if (val <= 0x139f) { RETURN (false); }
-            RETURN (true);
-
-        case 0x14:                            
-        case 0x15:                            
-            RETURN (true);
-
-        case 0x16:                            
-            if (val == 0x166d) { RETURN (false); }
-            if (val == 0x166e) { RETURN (false); }
-            if (val == 0x1680) { RETURN (false); }
-            if (val == 0x169b) { RETURN (false); }
-            if (val == 0x169c) { RETURN (false); }
-            if (val <= 0x16ea) { RETURN (true); }
-            RETURN (false);
-
-        case 0x17:
+	    if (val <= 0xcbd) { RETURN (true); }
+	    if (val <= 0xcdc) { RETURN (false); }
+	    if (val <= 0xce5) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x0d:
+	    if (val <= 0xd04) { RETURN (false); }
+	    if (val <= 0xd3d) { RETURN (true); }
+	    if (val <= 0xd5f) { RETURN (false); }
+	    if (val <= 0xd65) { RETURN (true); }
+	    if (val <= 0xd84) { RETURN (false); }
+	    if (val <= 0xdc9) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x0E:
+	    if (val == 0xE31) { RETURN (false); }
+	    if (val <= 0xE33) { RETURN (true); }
+	    if (val <= 0xE3F) { RETURN (false); }
+	    if (val <= 0xE46) { RETURN (true); }
+	    if (val <= 0xE7f) { RETURN (false); }
+	    if (val <= 0xEb0) { RETURN (true); }
+	    if (val == 0xEb1) { RETURN (false); }
+	    if (val <= 0xEb3) { RETURN (true); }
+	    if (val <= 0xEbc) { RETURN (false); }
+	    if (val <= 0xEc7) { RETURN (true); }
+	    if (val <= 0xEdb) { RETURN (false); }
+	    RETURN (true);
+
+	case 0x0F:
+	    if (val == 0xf00) { RETURN (true); }
+	    if (val <= 0xf3F) { RETURN (false); }
+	    if (val <= 0xf70) { RETURN (true); }
+	    if (val <= 0xf87) { RETURN (false); }
+	    if (val <= 0xf8f) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x10:
+	    if (val <= 0x102b) { RETURN (true); }
+	    if (val <= 0x104f) { RETURN (false); }
+	    if (val <= 0x1055) { RETURN (true); }
+	    if (val <= 0x109f) { RETURN (false); }
+	    if (val <= 0x10fa) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x11:
+	case 0x12:
+	    RETURN (true);
+
+	case 0x13:
+	    if (val <= 0x1360) { RETURN (true); }
+	    if (val <= 0x139f) { RETURN (false); }
+	    RETURN (true);
+
+	case 0x14:
+	case 0x15:
+	    RETURN (true);
+
+	case 0x16:
+	    if (val == 0x166d) { RETURN (false); }
+	    if (val == 0x166e) { RETURN (false); }
+	    if (val == 0x1680) { RETURN (false); }
+	    if (val == 0x169b) { RETURN (false); }
+	    if (val == 0x169c) { RETURN (false); }
+	    if (val <= 0x16ea) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x17:
 #ifndef UNICODE_3_2
-            if (val == 0x1712) { RETURN (false); }
-            if (val == 0x1713) { RETURN (false); }
-            if (val == 0x1714) { RETURN (false); }
-            if (val == 0x1732) { RETURN (false); }
-            if (val == 0x1733) { RETURN (false); }
-            if (val == 0x1734) { RETURN (false); }
-            if (val == 0x1735) { RETURN (false); }
-            if (val == 0x1736) { RETURN (false); }
-            if (val == 0x1752) { RETURN (false); }
-            if (val == 0x1753) { RETURN (false); }
-            if (val == 0x1772) { RETURN (false); }
-            if (val == 0x1773) { RETURN (false); }
+	    if (val == 0x1712) { RETURN (false); }
+	    if (val == 0x1713) { RETURN (false); }
+	    if (val == 0x1714) { RETURN (false); }
+	    if (val == 0x1732) { RETURN (false); }
+	    if (val == 0x1733) { RETURN (false); }
+	    if (val == 0x1734) { RETURN (false); }
+	    if (val == 0x1735) { RETURN (false); }
+	    if (val == 0x1736) { RETURN (false); }
+	    if (val == 0x1752) { RETURN (false); }
+	    if (val == 0x1753) { RETURN (false); }
+	    if (val == 0x1772) { RETURN (false); }
+	    if (val == 0x1773) { RETURN (false); }
 #endif
-            if (val <= 0x17b3) { RETURN (true); }
+	    if (val <= 0x17b3) { RETURN (true); }
 #ifndef UNICODE_3_2
-            if (val == 0x17D7) { RETURN (true); }
-            if (val == 0x17DC) { RETURN (true); }
+	    if (val == 0x17D7) { RETURN (true); }
+	    if (val == 0x17DC) { RETURN (true); }
 #endif
-            RETURN (false);
-
-        case 0x18:
-            if (val <= 0x181f) { RETURN (false); }
-            if (val <= 0x18a8) { RETURN (true); }
-            RETURN (false);
-
-        case 0x19:
+	    RETURN (false);
+
+	case 0x18:
+	    if (val <= 0x181f) { RETURN (false); }
+	    if (val <= 0x18a8) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x19:
 #ifndef UNICODE_3_2
-            if (val <= 0x191F) { RETURN (true); }
-            if (val <= 0x194F) { RETURN (false); }
-            if (val <= 0x197F) { RETURN (true); }
+	    if (val <= 0x191F) { RETURN (true); }
+	    if (val <= 0x194F) { RETURN (false); }
+	    if (val <= 0x197F) { RETURN (true); }
 #endif
-            RETURN (false);
-
-        case 0x1d:
-            if (val = 0x1d00) { RETURN (true); }
-            RETURN (false);
-
-        case 0x1e:
-            RETURN (true);
-
-        case 0x1f:
-            if (val <= 0x1fbc) { RETURN (true); }
-            if (val == 0x1fbe) { RETURN (true); }
-            if (val <= 0x1fc1) { RETURN (false); }
-            if (val <= 0x1fcc) { RETURN (true); }
-            if (val <= 0x1fcf) { RETURN (false); }
-            if (val <= 0x1fdc) { RETURN (true); }
-            if (val <= 0x1fdf) { RETURN (false); }
-            if (val <= 0x1fec) { RETURN (true); }
-            if (val <= 0x1ff1) { RETURN (false); }
-            if (val <= 0x1ffc) { RETURN (true); }
-            RETURN (false);
-
-        case 0x20:
+	    RETURN (false);
+
+	case 0x1d:
+	    if (val = 0x1d00) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x1e:
+	    RETURN (true);
+
+	case 0x1f:
+	    if (val <= 0x1fbc) { RETURN (true); }
+	    if (val == 0x1fbe) { RETURN (true); }
+	    if (val <= 0x1fc1) { RETURN (false); }
+	    if (val <= 0x1fcc) { RETURN (true); }
+	    if (val <= 0x1fcf) { RETURN (false); }
+	    if (val <= 0x1fdc) { RETURN (true); }
+	    if (val <= 0x1fdf) { RETURN (false); }
+	    if (val <= 0x1fec) { RETURN (true); }
+	    if (val <= 0x1ff1) { RETURN (false); }
+	    if (val <= 0x1ffc) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x20:
 #ifndef UNICODE_3_2
-            if (val == 0x2071) { RETURN (true); }
+	    if (val == 0x2071) { RETURN (true); }
 #endif
-            if (val == 0x207f) { RETURN (true); }
-            RETURN (false);
-
-        case 0x21:
-            if (val == 0x2102) { RETURN (true); }
-            if (val == 0x2107) { RETURN (true); }
-            if (val <= 0x2109) { RETURN (false); }
-            if (val <= 0x2113) { RETURN (true); }
-            if (val == 0x2115) { RETURN (true); }
-            if (val <= 0x2118) { RETURN (false); }
-            if (val <= 0x211d) { RETURN (true); }
-            if (val <= 0x2123) { RETURN (false); }
-            if (val == 0x2125) { RETURN (false); }
-            if (val == 0x2127) { RETURN (false); }
-            if (val == 0x2129) { RETURN (false); }
-            if (val == 0x212E) { RETURN (false); }
-            if (val == 0x2132) { RETURN (false); }
-            if (val == 0x213A) { RETURN (false); }
+	    if (val == 0x207f) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x21:
+	    if (val == 0x2102) { RETURN (true); }
+	    if (val == 0x2107) { RETURN (true); }
+	    if (val <= 0x2109) { RETURN (false); }
+	    if (val <= 0x2113) { RETURN (true); }
+	    if (val == 0x2115) { RETURN (true); }
+	    if (val <= 0x2118) { RETURN (false); }
+	    if (val <= 0x211d) { RETURN (true); }
+	    if (val <= 0x2123) { RETURN (false); }
+	    if (val == 0x2125) { RETURN (false); }
+	    if (val == 0x2127) { RETURN (false); }
+	    if (val == 0x2129) { RETURN (false); }
+	    if (val == 0x212E) { RETURN (false); }
+	    if (val == 0x2132) { RETURN (false); }
+	    if (val == 0x213A) { RETURN (false); }
 #ifndef UNICODE_3_2
-            if (val == 0x213B) { RETURN (false); }
-            if (val <= 0x213F) { RETURN (true); }
-            if (val <= 0x2144) { RETURN (false); }
-            if (val == 0x214A) { RETURN (false); }
-            if (val == 0x214B) { RETURN (false); }
+	    if (val == 0x213B) { RETURN (false); }
+	    if (val <= 0x213F) { RETURN (true); }
+	    if (val <= 0x2144) { RETURN (false); }
+	    if (val == 0x214A) { RETURN (false); }
+	    if (val == 0x214B) { RETURN (false); }
 #endif
-            if (val <= 0x2152) { RETURN (true); }
-            RETURN (false);
-
-        case 0x30:
-            if (val == 0x3005) { RETURN (true); }
-            if (val == 0x3006) { RETURN (true); }
-            if (val <= 0x3030) { RETURN (false); }
-            if (val <= 0x3035) { RETURN (true); }
+	    if (val <= 0x2152) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x30:
+	    if (val == 0x3005) { RETURN (true); }
+	    if (val == 0x3006) { RETURN (true); }
+	    if (val <= 0x3030) { RETURN (false); }
+	    if (val <= 0x3035) { RETURN (true); }
 #ifndef UNICODE_3_2
-            if (val == 0x303B) { RETURN (true); }
-            if (val == 0x303C) { RETURN (true); }
+	    if (val == 0x303B) { RETURN (true); }
+	    if (val == 0x303C) { RETURN (true); }
 #endif
-            if (val <= 0x3040) { RETURN (false); }
-            if (val <= 0x3098) { RETURN (true); }
-            if (val <= 0x309c) { RETURN (false); }
+	    if (val <= 0x3040) { RETURN (false); }
+	    if (val <= 0x3098) { RETURN (true); }
+	    if (val <= 0x309c) { RETURN (false); }
 #ifndef UNICODE_3_2
-            if (val == 0x30A0) { RETURN (false); }
+	    if (val == 0x30A0) { RETURN (false); }
 #endif
-            if (val == 0x30Fb) { RETURN (false); }
-            RETURN ((true));
-
-        case 0x31:
-            if (val <= 0x318f) { RETURN (true); }
-            if (val <= 0x319F) { RETURN (false); }
-            RETURN ((true));
-
-        case 0x34:
-            RETURN ((true));
-
-        case 0x4d:
-            if (val <= 0x4DB4) { RETURN (false); }
+	    if (val == 0x30Fb) { RETURN (false); }
+	    RETURN ((true));
+
+	case 0x31:
+	    if (val <= 0x318f) { RETURN (true); }
+	    if (val <= 0x319F) { RETURN (false); }
+	    RETURN ((true));
+
+	case 0x34:
+	    RETURN ((true));
+
+	case 0x4d:
+	    if (val <= 0x4DB4) { RETURN (false); }
 #ifndef UNICODE_3_2
-            if (val <= 0x4DBF) { RETURN (true); }
-            RETURN (false);
+	    if (val <= 0x4DBF) { RETURN (true); }
+	    RETURN (false);
 #else
-            RETURN (true);
+	    RETURN (true);
 #endif
 
-        case 0x4e:
-            RETURN ((true));
-
-        case 0x9f:
-            if (val <= 0x9fa4) { RETURN (false); }
-            RETURN (true);
-
-        case 0xA0:
-        case 0xA1:
-        case 0xA2:
-        case 0xA3:
-            RETURN (true);
-
-        case 0xA4:
-            if (val <= 0xa48f) { RETURN (true); }
-            RETURN (false);
-
-        case 0xA5:
-            RETURN (true);
-
-        case 0xAC:
-            RETURN (true);
-
-        case 0xD7:
-            RETURN (true);
-
-        case 0xF9:
-        case 0xFA:
-            RETURN (true);
-
-        case 0xFB:
-            if (val == 0xfb1e) { RETURN (false); }
-            if (val == 0xfb29) { RETURN (false); }
-            RETURN (true);
-
-        case 0xFC:
-            RETURN (true);
-
-        case 0xFD:
-            if (val <= 0xFD3d) { RETURN (true); }
-            if (val <= 0xFD4F) { RETURN (false); }
+	case 0x4e:
+	    RETURN ((true));
+
+	case 0x9f:
+	    if (val <= 0x9fa4) { RETURN (false); }
+	    RETURN (true);
+
+	case 0xA0:
+	case 0xA1:
+	case 0xA2:
+	case 0xA3:
+	    RETURN (true);
+
+	case 0xA4:
+	    if (val <= 0xa48f) { RETURN (true); }
+	    RETURN (false);
+
+	case 0xA5:
+	    RETURN (true);
+
+	case 0xAC:
+	    RETURN (true);
+
+	case 0xD7:
+	    RETURN (true);
+
+	case 0xF9:
+	case 0xFA:
+	    RETURN (true);
+
+	case 0xFB:
+	    if (val == 0xfb1e) { RETURN (false); }
+	    if (val == 0xfb29) { RETURN (false); }
+	    RETURN (true);
+
+	case 0xFC:
+	    RETURN (true);
+
+	case 0xFD:
+	    if (val <= 0xFD3d) { RETURN (true); }
+	    if (val <= 0xFD4F) { RETURN (false); }
 #ifndef UNICODE_3_2
-            if (val == 0xFDFC) { RETURN (false); }
-            if (val == 0xFDFD) { RETURN (false); }
+	    if (val == 0xFDFC) { RETURN (false); }
+	    if (val == 0xFDFD) { RETURN (false); }
 #endif
-            RETURN (true);
-
-        case 0xFE:
+	    RETURN (true);
+
+	case 0xFE:
 #ifndef UNICODE_3_2
-            if (val <= 0xFE0F) { RETURN (false); }
+	    if (val <= 0xFE0F) { RETURN (false); }
 #endif
-            if (val <= 0xFE1f) { RETURN (true); }
-            if (val <= 0xFE6F) { RETURN (false); }
-            if (val <= 0xFEFE) { RETURN (true); }
-            RETURN (false);
-
-        case 0xFF:                            
-            if (val <= 0xFF20) { RETURN (false); }
-            if (val <= 0xFF3a) { RETURN (true); }
-            if (val <= 0xFF40) { RETURN (false); }
-            if (val <= 0xFF5a) { RETURN (true); }
-            if (val <= 0xFF65) { RETURN (false); }
-            if (val <= 0xFFdC) { RETURN (true); }
-            RETURN (false);
-
-        case 0x100:                            
+	    if (val <= 0xFE1f) { RETURN (true); }
+	    if (val <= 0xFE6F) { RETURN (false); }
+	    if (val <= 0xFEFE) { RETURN (true); }
+	    RETURN (false);
+
+	case 0xFF:
+	    if (val <= 0xFF20) { RETURN (false); }
+	    if (val <= 0xFF3a) { RETURN (true); }
+	    if (val <= 0xFF40) { RETURN (false); }
+	    if (val <= 0xFF5a) { RETURN (true); }
+	    if (val <= 0xFF65) { RETURN (false); }
+	    if (val <= 0xFFdC) { RETURN (true); }
+	    RETURN (false);
+
+	case 0x100:
 #ifndef UNICODE_3_2
-            RETURN (true);
+	    RETURN (true);
 #else
-            RETURN (false);
+	    RETURN (false);
 #endif
 
-        case 0x103:                            
-            if (val <= 0x1031f) { RETURN (true); }
-            if (val <= 0x1032F) { RETURN (false); }
-            if (val <= 0x10349) { RETURN (true); }
+	case 0x103:
+	    if (val <= 0x1031f) { RETURN (true); }
+	    if (val <= 0x1032F) { RETURN (false); }
+	    if (val <= 0x10349) { RETURN (true); }
 #ifndef UNICODE_3_2
-            if (val <= 0x1037F) { RETURN (false); }
-            if (val <= 0x1039E) { RETURN (true); }
+	    if (val <= 0x1037F) { RETURN (false); }
+	    if (val <= 0x1039E) { RETURN (true); }
 #endif
-            RETURN (false);
-
-        case 0x104:                            
+	    RETURN (false);
+
+	case 0x104:
 #ifndef UNICODE_3_2
-            if (val <= 0x1049F) { RETURN (true); }
-            if (val <= 0x104aF) { RETURN (false); }
+	    if (val <= 0x1049F) { RETURN (true); }
+	    if (val <= 0x104aF) { RETURN (false); }
 #endif
-            RETURN (true);
-
-        case 0x108:                            
+	    RETURN (true);
+
+	case 0x108:
 #ifndef UNICODE_3_2
-            RETURN (true); 
+	    RETURN (true);
 #else
-            RETURN (false);
+	    RETURN (false);
 #endif
 
-        case 0x1D4:                            
-        case 0x1D5:                            
-            RETURN (true);
-
-        case 0x1D6:                            
-            if (val == 0x1d6c1) { RETURN (false); }
-            if (val == 0x1d6db) { RETURN (false); }
-            if (val == 0x1d6fb) { RETURN (false); }
-            RETURN (true);
+	case 0x1D4:
+	case 0x1D5:
+	    RETURN (true);
+
+	case 0x1D6:
+	    if (val == 0x1d6c1) { RETURN (false); }
+	    if (val == 0x1d6db) { RETURN (false); }
+	    if (val == 0x1d6fb) { RETURN (false); }
+	    RETURN (true);
     }
     RETURN (false);
 %}
@@ -2757,5 +2757,5 @@
 !Character class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.125 2006-02-20 11:26:22 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.126 2006-02-20 13:38:33 cg Exp $'
 ! !