Character.st
changeset 5423 e33decc83182
parent 5407 d6729266a95b
child 5433 aa2365ee12cf
--- a/Character.st	Mon Jun 26 11:14:05 2000 +0200
+++ b/Character.st	Mon Jun 26 11:43:23 2000 +0200
@@ -882,11 +882,12 @@
 
     val = __intVal(__INST(asciivalue));
     if (val < ' ') {
-	RETURN ( true );
+        RETURN ( true );
     }
 #endif
+    RETURN (false);
 %}.
-    ^ false
+    ^ asciivalue < 16r20.
 
     "
      (Character value:1) isControlCharacter
@@ -928,11 +929,14 @@
     if ((val == '\n')
      || (val == '\r')
      || (val == '\f')) {
-	RETURN ( true );
+        RETURN ( true );
     }
-%}
-.
-    ^ false
+    RETURN (false);
+%}.
+    ^ asciivalue == 16r0A
+      or:[asciivalue == 16r0D
+      or:[asciivalue == 16r0C]]
+
 !
 
 isLetter
@@ -945,8 +949,10 @@
 
     val = __intVal(__INST(asciivalue));
     RETURN ( (((val >= 'a') && (val <= 'z')) ||
-	      ((val >= 'A') && (val <= 'Z'))) ? true : false );
-%}
+              ((val >= 'A') && (val <= 'Z'))) ? true : false );
+%}.
+    ^ (asciivalue between:($a asciiValue) and:($z asciiValue))
+      or:[(asciivalue between:($A asciiValue) and:($Z asciiValue))]
 !
 
 isLetterOrDigit
@@ -959,16 +965,18 @@
 
     val = __intVal(__INST(asciivalue));
     if ((val >= 'a') && (val <= 'z')) {
-	RETURN ( true );
+        RETURN ( true );
     }
     if ((val >= 'A') && (val <= 'Z')) {
-	RETURN ( true );
+        RETURN ( true );
     }
     if ((val >= '0') && (val <= '9')) {
-	RETURN ( true );
+        RETURN ( true );
     }
     RETURN ( false );
-%}
+%}.
+    ^ self isLetter or:[self isDigit]
+
 !
 
 isLowercase
@@ -982,11 +990,13 @@
 #ifndef OLD
     /* iso8859 puts national lower case characters at e0 .. ff */
     if ((val >= 0xE0) && (val <= 0xFF)) {
-	RETURN(true);
+        RETURN(true);
     }
 #endif
     RETURN ( ((val >= 'a') && (val <= 'z')) ? true : false );
-%}
+%}.
+    ^ (asciivalue between:($a asciiValue) and:($z asciiValue))
+      or:[asciivalue between:16rE0 and:16rFF]
 !
 
 isPrintable
@@ -1015,16 +1025,21 @@
 #ifndef NON_ASCII       /* i.e. EBCDIC ;-) */
     if (val <= ' ')
 #endif
-	if ((val == ' ')
-	 || (val == '\n') 
-	 || (val == '\t')
-	 || (val == '\r')
-	 || (val == '\f')) {
-	    RETURN ( true );
-	}
-%}
-.
-    ^ false
+        if ((val == ' ')
+         || (val == '\n') 
+         || (val == '\t')
+         || (val == '\r')
+         || (val == '\f')) {
+            RETURN ( true );
+        }
+    RETURN (false);
+%}.                                  
+    ^ (asciivalue == 16r20)
+      or:[asciivalue == 16r0D
+      or:[asciivalue == 16r0A
+      or:[asciivalue == 16r09
+      or:[asciivalue == 16r0C]]]]
+
 !
 
 isUppercase
@@ -1038,11 +1053,14 @@
 #ifndef OLD
     /* iso8859 puts national upper case characters at c0 .. df */
     if ((val >= 0xC0) && (val <= 0xDF)) {
-	RETURN(true);
+        RETURN(true);
     }
 #endif
     RETURN ( ((val >= 'A') && (val <= 'Z')) ? true : false );
-%}
+%}.
+    ^ (asciivalue between:($A asciiValue) and:($Z asciiValue))
+      or:[asciivalue between:16rC0 and:16rDF]
+
 !
 
 isVowel
@@ -1073,5 +1091,5 @@
 !Character class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.58 2000-06-23 08:19:52 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.59 2000-06-26 09:43:23 cg Exp $'
 ! !