--- a/Character.st Thu Jul 13 12:13:44 2017 +0200
+++ b/Character.st Thu Jul 13 12:19:01 2017 +0200
@@ -142,41 +142,45 @@
%{ /* NOCONTEXT */
#ifdef __SCHTEAM__
{
- char ch = (char)(context.stArg(0).intValue("[codePoint:]"));
-
- return context._RETURN(STCharacter._new(ch));
+ char ch = (char)(context.stArg(0).intValue("[codePoint:]"));
+
+ return context._RETURN(STCharacter._new(ch));
}
/* NOTREACHED */
#else
INT __codePoint;
if (__isSmallInteger(anInteger)) {
- __codePoint = __smallIntegerVal(anInteger);
- if ((unsigned INT)(__codePoint) <= MAX_IMMEDIATE_CHARACTER /* (__codePoint >= 0) && (__codePoint <= 255) */) {
- RETURN ( __MKCHARACTER(__codePoint) );
- } else {
- RETURN ( __MKUCHARACTER(__codePoint) );
- }
+ __codePoint = ( __smallIntegerVal(anInteger) );
+ if ((unsigned INT)(__codePoint) <= MAX_IMMEDIATE_CHARACTER /* (__codePoint >= 0) && (__codePoint <= 255) */) {
+ RETURN ( __MKCHARACTER(__codePoint) );
+ }
}
#endif
%}.
(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
+ (anInteger = 16rFEFF) ifTrue:[^ self byteOrderMark].
+ ^ super basicNew setCodePoint:anInteger
].
+
"
- a characters codePoint must be 0..16r3FFFFFFF.
- (i.e. only characters with up-to 30 bits are allowed.)
+ a character's codePoint must be 0..16r3FFFFFFF.
+ (i.e. only characters with up-to 30 bits are allowed,
+ which is way more than needed...)
"
RangeError raiseWith:anInteger errorString:'invalid codePoint for character'
"
self codePoint:16r34.
self codePoint:16r3455.
+ (self codePoint:16rFEFF) == (self codePoint:16rFEFF).
self codePoint:16rFFFFFFFFFFFFFFFFFFF.
"
+
+ "Modified (comment): / 13-07-2017 / 12:18:14 / cg"
!
digitValue:anInteger
@@ -388,13 +392,17 @@
!
byteOrderMark
- "the unicode BOM character"
+ "the unicode BOM character as a singleton"
BOMCharacter isNil ifTrue:[
BOMCharacter := 16rFEFF asCharacter
].
^ BOMCharacter
+ "
+ self byteOrderMark
+ "
+
"Created: / 13-07-2017 / 12:04:34 / cg"
!