--- 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 $'
! !