TwoByteString.st
author Claus Gittinger <cg@exept.de>
Sat, 11 Nov 1995 16:28:41 +0100
changeset 530 07d0bce293c9
parent 383 8e3ec8164440
child 608 cd5ac440fa95
permissions -rw-r--r--
uff - version methods changed to return stings
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     1
"
a27a279701f8 Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
235
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
     3
	      All Rights Reserved
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     4
a27a279701f8 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
a27a279701f8 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
a27a279701f8 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a27a279701f8 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a27a279701f8 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
a27a279701f8 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    11
"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    12
256
f59b4cfdc55a *** empty log message ***
claus
parents: 235
diff changeset
    13
CharacterArray subclass:#TwoByteString
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    14
       instanceVariableNames:''
a27a279701f8 Initial revision
claus
parents:
diff changeset
    15
       classVariableNames:''
a27a279701f8 Initial revision
claus
parents:
diff changeset
    16
       poolDictionaries:''
a27a279701f8 Initial revision
claus
parents:
diff changeset
    17
       category:'Collections-Text'
a27a279701f8 Initial revision
claus
parents:
diff changeset
    18
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    19
89
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    20
!TwoByteString class methodsFor:'documentation'!
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    21
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    22
copyright
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    23
"
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    24
 COPYRIGHT (c) 1993 by Claus Gittinger
235
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    25
	      All Rights Reserved
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    26
89
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    27
 This software is furnished under a license and may be used
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    28
 only in accordance with the terms of that license and with the
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    29
 inclusion of the above copyright notice.   This software may not
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    30
 be provided or otherwise made available to, or used by, any
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    31
 other person.  No title to or ownership of the software is
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    32
 hereby transferred.
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    33
"
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    34
!
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    35
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    36
version
530
07d0bce293c9 uff - version methods changed to return stings
Claus Gittinger <cg@exept.de>
parents: 383
diff changeset
    37
    ^ '$Header: /cvs/stx/stx/libbasic/TwoByteString.st,v 1.13 1995-11-11 15:21:57 cg Exp $'
89
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    38
!
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    39
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    40
documentation
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    41
"
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    42
    TwoByteStrings are like strings, but storing 16bits per character.
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    43
    The integration of them into the system is not completed ....
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    44
"
7be0b86ef80f *** empty log message ***
claus
parents: 73
diff changeset
    45
! !
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    46
a27a279701f8 Initial revision
claus
parents:
diff changeset
    47
!TwoByteString class methodsFor:'instance creation'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    48
a27a279701f8 Initial revision
claus
parents:
diff changeset
    49
basicNew:anInteger
a27a279701f8 Initial revision
claus
parents:
diff changeset
    50
    "return a new empty string with anInteger characters"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    51
63
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
    52
    ^ (super basicNew:(anInteger*2)) atAllPut:(Character space)
235
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    53
!
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    54
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    55
fromJISString:aString
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    56
    "return a new string containing the characters of aString,
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    57
     which are taken as JIS encoded."
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    58
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    59
    |newString sz dstIdx singleBytes start stop n1 n2 n3 b1 b2 val|
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    60
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    61
    sz := aString size.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    62
    newString := self new:sz.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    63
    sz ~~ 0 ifTrue:[
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    64
	dstIdx := 1.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    65
	start := 1.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    66
	singleBytes := true.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    67
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    68
	[true] whileTrue:[
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    69
	    "scan for next escape"
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    70
	    stop := aString indexOf:(Character esc) startingAt:start.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    71
	    stop == 0 ifTrue:[
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    72
		stop := sz + 1.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    73
	    ] ifFalse:[
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    74
		(stop + 2) > sz ifTrue:[
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    75
		    stop := sz + 1.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    76
		]
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    77
	    ].
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    78
	    singleBytes ifTrue:[
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    79
		newString replaceFrom:dstIdx to:(dstIdx + (stop - start - 1))
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    80
				 with:aString startingAt:start.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    81
		dstIdx := dstIdx + (stop - start).
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    82
	    ] ifFalse:[
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    83
		start to:(stop - 1) by:2 do:[:i |
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    84
		    b1 := (aString at:i) asciiValue.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    85
		    b2 := (aString at:i+1) asciiValue.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    86
		    val := (b1 bitShift:8) bitOr:b2.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    87
		    newString at:dstIdx put:(Character value:val).
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    88
		    dstIdx := dstIdx + 1.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    89
		]
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    90
	    ].
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    91
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    92
	    stop > sz ifTrue:[
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    93
		^ newString copyFrom:1 to:dstIdx - 1.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    94
	    ].
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    95
	    start := stop.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    96
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    97
	    "
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    98
	     found an escape (at index stop) - check for ESC $ B
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
    99
	    "
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   100
	    n1 := aString at:start.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   101
	    n2 := aString at:(start + 1).
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   102
	    n3 := aString at:(start + 2).
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   103
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   104
	    (n2 == $$ and:[n3 == $B]) ifTrue:[
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   105
		singleBytes := false.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   106
	    ] ifFalse:[
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   107
		(n2 == $( and:[n3 == $B]) ifTrue:[
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   108
		    singleBytes := true.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   109
		] ifFalse:[
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   110
		    newString at:dstIdx put:n1.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   111
		    newString at:(dstIdx + 1) put:n2.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   112
		    newString at:(dstIdx + 2) put:n3.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   113
		    dstIdx := dstIdx + 3.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   114
		]
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   115
	    ].
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   116
	    start := start + 3.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   117
	    start > sz ifTrue:[
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   118
		^ newString copyFrom:1 to:dstIdx-1.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   119
	    ]
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   120
	]
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   121
    ].
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   122
    ^ newString
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   123
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   124
    "
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   125
     TwoByteString fromJISString:'hello'
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   126
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   127
     |s|
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   128
     s := 'hello' copyWith:Character esc.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   129
     TwoByteString fromJISString:s
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   130
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   131
     |s|
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   132
     s := 'hello' copyWith:Character esc.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   133
     s := s copyWith:$A.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   134
     TwoByteString fromJISString:s
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   135
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   136
     |s|
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   137
     s := 'hello' copyWith:Character esc.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   138
     s := s copyWith:$$.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   139
     TwoByteString fromJISString:s
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   140
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   141
     |s|
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   142
     s := 'hello' copyWith:Character esc.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   143
     s := s copyWith:$$.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   144
     s := s copyWith:$A.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   145
     TwoByteString fromJISString:s
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   146
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   147
     |s|
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   148
     s := 'hello' copyWith:Character esc.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   149
     s := s copyWith:$$.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   150
     s := s copyWith:$B.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   151
     TwoByteString fromJISString:s
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   152
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   153
     |s|
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   154
     s := 'hello' copyWith:Character esc.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   155
     s := s copyWith:$$.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   156
     s := s copyWith:$B.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   157
     s := s , '$N'.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   158
     TwoByteString fromJISString:s
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   159
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   160
     |s|
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   161
     s := 'hello' copyWith:Character esc.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   162
     s := s copyWith:$$.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   163
     s := s copyWith:$B.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   164
     s := s , '$N4A;z'.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   165
     TwoByteString fromJISString:s
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   166
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   167
     |s|
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   168
     s := 'hello' copyWith:Character esc.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   169
     s := s copyWith:$$.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   170
     s := s copyWith:$B.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   171
     s := s , '$N'.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   172
     s := s copyWith:Character esc.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   173
     s := s copyWith:$(.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   174
     s := s copyWith:$B.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   175
     s := s , 'hello'.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   176
     TwoByteString fromJISString:s
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   177
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   178
     |s t l|
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   179
     s := 'kterm ' copyWith:Character esc.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   180
     s := s copyWith:$$.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   181
     s := s copyWith:$B.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   182
     s := s , '$N4A;zC<Kv%(%_%e%l!!<%?'.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   183
     s := s copyWith:Character esc.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   184
     s := s copyWith:$(.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   185
     s := s copyWith:$B.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   186
     s := s , ' kterm'.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   187
     t := TwoByteString fromJISString:s.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   188
     l := Label new.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   189
     l label:t.
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   190
     l font:(Font family:'k14' face:nil style:nil size:nil).
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   191
     l realize
d8e62525bfdf *** empty log message ***
claus
parents: 97
diff changeset
   192
    "
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   193
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
   194
63
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   195
!TwoByteString methodsFor:'queries'!
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   196
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   197
basicSize
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   198
    "return the size of the receiver.
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   199
     (i.e. the number of characters in this String)"
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   200
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   201
    ^ super basicSize // 2
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   202
! !
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   203
    
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   204
!TwoByteString methodsFor:'accessing'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   205
a27a279701f8 Initial revision
claus
parents:
diff changeset
   206
basicAt:index
a27a279701f8 Initial revision
claus
parents:
diff changeset
   207
    "return the character at position index, an Integer
73
a6640cc96199 *** empty log message ***
claus
parents: 63
diff changeset
   208
     - reimplemented here since we return 16-bit characters"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   209
63
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   210
    |val i|
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   211
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   212
    i := (index * 2) - 1.
73
a6640cc96199 *** empty log message ***
claus
parents: 63
diff changeset
   213
    "always msb first"
a6640cc96199 *** empty log message ***
claus
parents: 63
diff changeset
   214
    val := (super basicAt:(i+1)) + ((super basicAt:i) * 256).
63
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   215
    ^ Character value:val
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   216
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   217
a27a279701f8 Initial revision
claus
parents:
diff changeset
   218
basicAt:index put:aCharacter
a27a279701f8 Initial revision
claus
parents:
diff changeset
   219
    "store the argument, aCharacter at position index, an Integer
73
a6640cc96199 *** empty log message ***
claus
parents: 63
diff changeset
   220
     - reimplemented here since we store 16-bit characters"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   221
63
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   222
    |val i|
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   223
    val := aCharacter asciiValue.
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   224
    i := (index * 2) - 1.
73
a6640cc96199 *** empty log message ***
claus
parents: 63
diff changeset
   225
    "always msb first"
a6640cc96199 *** empty log message ***
claus
parents: 63
diff changeset
   226
    super basicAt:(i+1) put:(val bitAnd:16rFF).
a6640cc96199 *** empty log message ***
claus
parents: 63
diff changeset
   227
    super basicAt:i put:(val // 256).
63
1f0cdefb013f *** empty log message ***
claus
parents: 33
diff changeset
   228
    ^ aCharacter
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   229
! !