--- a/ByteArray.st Mon Jul 04 23:39:13 2016 +0100
+++ b/ByteArray.st Wed Jul 06 06:50:27 2016 +0200
@@ -164,6 +164,9 @@
! !
+
+
+
!ByteArray class methodsFor:'queries'!
elementByteSize
@@ -198,6 +201,8 @@
^ 0
! !
+
+
!ByteArray methodsFor:'Compatibility-Squeak'!
bitXor:aByteArray
@@ -223,13 +228,6 @@
"
! !
-!ByteArray methodsFor:'Compatibility-VW'!
-
-asByteString
- "same as asString, for visualworks compatibility"
-
- ^ self asString
-! !
!ByteArray methodsFor:'accessing'!
@@ -3106,6 +3104,7 @@
"
! !
+
!ByteArray methodsFor:'searching'!
indexOf:aByte startingAt:start
@@ -3171,6 +3170,7 @@
"
! !
+
!ByteArray methodsFor:'testing'!
isByteArray
@@ -3195,6 +3195,7 @@
"Modified: 22.4.1996 / 12:55:30 / cg"
! !
+
!ByteArray class methodsFor:'documentation'!
version
--- a/Filename.st Mon Jul 04 23:39:13 2016 +0100
+++ b/Filename.st Wed Jul 06 06:50:27 2016 +0200
@@ -4190,12 +4190,12 @@
|sepString sub|
sub := subName asString.
+ nameString size == 0 ifTrue:[
+ ^ sub
+ ].
sepString := self species separatorString.
- nameString size == 0 ifTrue:[
- ^ sub
- ].
(nameString endsWith:sepString) ifTrue:[
- ^ nameString , sub
+ ^ nameString , sub
].
^ nameString , sepString , sub
--- a/String.st Mon Jul 04 23:39:13 2016 +0100
+++ b/String.st Wed Jul 06 06:50:27 2016 +0200
@@ -517,6 +517,7 @@
+
!String class methodsFor:'queries'!
defaultPlatformClass
@@ -541,26 +542,6 @@
-!String methodsFor:'Compatibility-VW5.4'!
-
-asByteString
- ^ self asSingleByteString
-!
-
-asGUID
- "return self as a GUID (or UUID if not present)"
-
- GUID notNil ifTrue:[ ^ GUID fromString:self ].
- ^ self asUUID
-
- "
- '{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}' asGUID
- "
-
- "Modified: / 12-01-2011 / 12:33:58 / cg"
-! !
-
-
!String methodsFor:'accessing'!
at:index
@@ -2781,15 +2762,15 @@
!String methodsFor:'copying'!
-, aString
- "return the concatenation of myself and the argument, aString as a String.
+, aStringOrCharacter
+ "return the concatenation of myself and the argument, aStringOrCharacter as a String.
- reimplemented here for speed"
%{
#ifdef __SCHTEAM__
- if ( aString.isStringLike() && self.isStringLike() ) {
+ if ( aStringOrCharacter.isStringLike() && self.isStringLike() ) {
STString me = self.asSTString();
- STString other = aString.asSTString();
+ STString other = aStringOrCharacter.asSTString();
int myLength = me.characters.length;
int otherLength = other.characters.length;
@@ -2802,22 +2783,36 @@
/*
* can do it here if both are Strings/Symbols:
*/
- if (__qIsStringLike(self) && __isStringLike(aString)) {
- OBJ newString;
+ if (__qIsStringLike(self)) {
+ char *cp1 = (char *) __stringVal(self);
int l1 = __stringSize(self);
- int l2 = __stringSize(aString);
- int sz = OHDR_SIZE + l1 + l2 + 1;
-
+ int l2;
+ char *cp2;
+ int sz;
+ OBJ newString;
+ char character;
+
+ if (__isCharacter(aStringOrCharacter)) {
+ if (__intVal(__characterVal(aStringOrCharacter)) <= 0 || __intVal(__characterVal(aStringOrCharacter)) > 255)
+ goto out;
+
+ character = __intVal(__characterVal(aStringOrCharacter));
+ l2 = 1;
+ cp2 = &character;
+ } else if (__isStringLike(aStringOrCharacter)) {
+ l2 = __stringSize(aStringOrCharacter);
+ cp2 = (char *) __stringVal(aStringOrCharacter);
+ } else
+ goto out;
+
+ sz = OHDR_SIZE + l1 + l2 + 1;
__qNew(newString, sz); /* OBJECT ALLOCATION */
if (newString != nil) {
- char *cp1, *cp2;
REGISTER unsigned char *dstp;
__InstPtr(newString)->o_class = String;
__qSTORE(newString, String);
dstp = __stringVal(newString);
- cp1 = (char *) __stringVal(self);
- cp2 = (char *) __stringVal(aString);
# ifdef bcopy4
/* knowing that allocation is 4-byte aligned and
@@ -2868,13 +2863,15 @@
RETURN ( newString );
}
}
+out:;
#endif /* not SCHTEAM */
%}.
- ^ super , aString
+ ^ super , aStringOrCharacter
"
- 'hello' , 'world' asImmutableString
- 'hello' , #world
+ 'hello' , ' world' asImmutableString
+ 'hello ' , #world
+ 'hello ' , $w
#[0 0 0 1] asString, #[0 0 0 2 0] asString
"
@@ -3897,17 +3894,15 @@
REGISTER OBJ slf, cls;
slf = self;
-
cls = __qClass(slf);
if (cls == String) {
- RETURN ( __mkSmallInteger(__stringSize(slf)) );
+ RETURN ( __mkSmallInteger(__stringSize(slf)) );
}
RETURN ( __mkSmallInteger(__stringSize(slf)
- - __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars))));
+ - __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars))));
#endif
%}.
^ super basicSize - 1
-
!
bitsPerCharacter