--- a/ByteArray.st Sat Jan 19 21:24:42 2019 +0000
+++ b/ByteArray.st Thu Feb 07 10:38:17 2019 +0000
@@ -166,6 +166,9 @@
! !
+
+
+
!ByteArray class methodsFor:'queries'!
elementByteSize
@@ -200,6 +203,7 @@
^ 0
! !
+
!ByteArray methodsFor:'Compatibility-Squeak'!
bitXor:aByteArray
@@ -225,6 +229,7 @@
"
! !
+
!ByteArray methodsFor:'accessing'!
basicAt:index
@@ -234,10 +239,10 @@
%{ /* NOCONTEXT */
- REGISTER INT indx;
+ REGISTER int indx;
REGISTER OBJ slf;
REGISTER OBJ cls;
- REGISTER INT nIndex;
+ REGISTER int nIndex;
if (__isSmallInteger(index)) {
indx = __intVal(index) - 1;
@@ -251,7 +256,7 @@
indx += __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
}
nIndex = __byteArraySize(slf);
- if ((unsigned INT)indx < (unsigned INT)nIndex) {
+ if ((unsigned)indx < (unsigned)nIndex) {
RETURN ( __mkSmallInteger((__ByteArrayInstPtr(slf)->ba_element[indx])) );
}
}
@@ -268,8 +273,8 @@
%{ /* NOCONTEXT */
- REGISTER INT indx;
- unsigned INT nIndex;
+ REGISTER int indx;
+ int nIndex;
int val;
REGISTER OBJ slf;
REGISTER OBJ cls;
@@ -288,7 +293,7 @@
indx += __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
}
nIndex = __byteArraySize(slf);
- if ((unsigned INT)indx < (unsigned INT)nIndex) {
+ if ((unsigned)indx < (unsigned)nIndex) {
__ByteArrayInstPtr(slf)->ba_element[indx] = val;
RETURN ( value );
}
@@ -308,9 +313,9 @@
%{ /* NOCONTEXT */
- REGISTER INT indx;
+ REGISTER int indx;
REGISTER int byte;
- unsigned INT nIndex;
+ int nIndex;
REGISTER OBJ slf;
REGISTER OBJ cls;
@@ -326,7 +331,7 @@
byte += __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
}
nIndex = __byteArraySize(slf);
- if ((unsigned)byte < (unsigned INT)nIndex) {
+ if ((unsigned)byte < (unsigned)nIndex) {
RETURN ( __mkSmallInteger(((__ByteArrayInstPtr(slf)->ba_element[byte] & (1 << indx)) != 0)) );
}
}
@@ -351,9 +356,9 @@
%{ /* NOCONTEXT */
- REGISTER INT indx;
+ REGISTER int indx;
REGISTER int byte;
- unsigned INT nIndex;
+ int nIndex;
REGISTER OBJ slf;
REGISTER OBJ cls;
@@ -369,7 +374,7 @@
byte += __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
}
nIndex = __byteArraySize(slf);
- if ((unsigned)byte < (unsigned INT)nIndex) {
+ if ((unsigned)byte < (unsigned)nIndex) {
__ByteArrayInstPtr(slf)->ba_element[byte] &= ~(1 << indx);
RETURN (slf);
}
@@ -416,13 +421,13 @@
if (indx >= 0) {
int byteIndex;
int bitIndex;
- unsigned INT nIndex;
+ int nIndex;
byteIndex = indx / 8;
bitIndex = indx % 8;
nIndex = __byteArraySize(self);
- if ((unsigned)byteIndex < (unsigned INT)nIndex) {
+ if ((unsigned)byteIndex < (unsigned)nIndex) {
__ByteArrayInstPtr(self)->ba_element[byteIndex] |= (1 << bitIndex);
RETURN (self);
}
@@ -464,8 +469,8 @@
%{ /* NOCONTEXT */
- REGISTER INT indx;
- unsigned INT nIndex;
+ REGISTER int indx;
+ int nIndex;
REGISTER OBJ slf;
REGISTER OBJ cls;
@@ -477,7 +482,7 @@
indx += __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
}
nIndex = __byteArraySize(slf);
- if ((unsigned INT)indx < (unsigned INT)nIndex) {
+ if ((unsigned)indx < (unsigned)nIndex) {
RETURN ( __mkSmallInteger((__ByteArrayInstPtr(slf)->ba_element[indx])) );
}
}
@@ -492,8 +497,8 @@
%{ /* NOCONTEXT */
- REGISTER INT indx;
- unsigned INT nIndex;
+ REGISTER int indx;
+ int nIndex;
int val;
REGISTER OBJ slf;
REGISTER OBJ cls;
@@ -509,7 +514,7 @@
indx += __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
}
nIndex = __byteArraySize(slf);
- if ((unsigned INT)indx < (unsigned INT)nIndex) {
+ if ((unsigned)indx < (unsigned)nIndex) {
__ByteArrayInstPtr(slf)->ba_element[indx] = val;
RETURN ( value );
}
@@ -534,7 +539,7 @@
%{ /* NOCONTEXT */
REGISTER INT indx;
- unsigned INT nIndex;
+ int nIndex;
union {
unsigned char u_char[4];
unsigned int u_uint;
@@ -598,7 +603,7 @@
%{ /* NOCONTEXT */
REGISTER INT indx;
- unsigned INT nIndex;
+ int nIndex;
int val;
OBJ cls;
unsigned char *byteP;
@@ -690,7 +695,7 @@
%{ /* NOCONTEXT */
REGISTER INT indx;
- unsigned INT nIndex;
+ int nIndex;
union {
unsigned char u_char[2];
unsigned short u_ushort;
@@ -730,7 +735,7 @@
%{ /* NOCONTEXT */
REGISTER INT indx;
- unsigned INT nIndex;
+ int nIndex;
int val;
unsigned char *byteP;
@@ -807,7 +812,7 @@
%{ /* NOCONTEXT */
REGISTER INT indx;
- unsigned INT nIndex;
+ int nIndex;
int v;
union {
unsigned char u_char[2];
@@ -876,7 +881,7 @@
%{ /* NOCONTEXT */
REGISTER INT indx;
- unsigned INT nIndex;
+ int nIndex;
int val;
OBJ cls;
unsigned char *byteP;
@@ -2780,6 +2785,46 @@
"Created: / 31.10.2001 / 09:43:41 / cg"
!
+pythonOn: aStream
+ "Prints receiver as Python string literal on `aStream`.
+
+ This may be useful when copy-pasting ByteArray values to
+ Python code."
+
+ aStream nextPut:$'.
+ self do:[:byte |
+ (byte between: $0 codePoint and: $z codePoint) ifTrue:[
+ aStream nextPut: (Character codePoint: byte)
+ ] ifFalse:[
+ aStream nextPutAll: '\x'.
+ byte printOn:aStream base:16 size:2 fill:$0
+ ].
+ ].
+ aStream nextPut:$'.
+
+ "
+ #[46 0 1 1 0 41 0 1 1 0 36 0 0 0 0 0 1 0 28 0 1 25 0 97 83 101 113 117 101 110 99 101 97 98 108 101 67 111 108 108 101 99 116 105 111 110] pythonString
+ "
+
+ "Created: / 22-06-2018 / 09:30:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (comment): / 07-02-2019 / 10:32:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+pythonString
+ "Returns Python-escaped representation of self as String`.
+
+ This may be useful when copu-pasting ByteArray values to
+ Python code."
+
+ ^ String streamContents:[ :s | self pythonOn: s ]
+
+ "
+ #[46 0 1 1 0 41 0 1 1 0 36 0 0 0 0 0 1 0 28 0 1 25 0 97 83 101 113 117 101 110 99 101 97 98 108 101 67 111 108 108 101 99 116 105 111 110] pythonString
+ "
+
+ "Created: / 22-06-2018 / 09:31:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
storeOn:aStream
"append a printed representation from which the receiver can be
reconstructed to aStream. (reimplemented to make it look better)"
@@ -3217,6 +3262,7 @@
"Modified: 22.4.1996 / 12:55:30 / cg"
! !
+
!ByteArray class methodsFor:'documentation'!
version
@@ -3225,5 +3271,10 @@
version_CVS
^ '$Header$'
+!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
! !