JISEncodedString.st
author Claus Gittinger <cg@exept.de>
Sat, 02 May 2020 21:40:13 +0200
changeset 5476 7355a4b11cb6
parent 4185 ed1c3f6e7730
permissions -rw-r--r--
#FEATURE by cg class: Socket class added: #newTCPclientToHost:port:domain:domainOrder:withTimeout: changed: #newTCPclientToHost:port:domain:withTimeout:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
195
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
201
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
     2
 COPYRIGHT (c) 1995 by Claus Gittinger
195
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	      All Rights Reserved
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
4185
ed1c3f6e7730 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 1426
diff changeset
    12
"{ Package: 'stx:libbasic2' }"
195
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
4185
ed1c3f6e7730 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 1426
diff changeset
    14
"{ NameSpace: Smalltalk }"
1250
e69088cf58fc category rename
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
    15
e69088cf58fc category rename
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
    16
TwoByteString variableWordSubclass:#JISEncodedString
195
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	instanceVariableNames:''
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:''
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	category:'Collections-Text'
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
540
4ec91ce5fa89 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 449
diff changeset
    23
!JISEncodedString class methodsFor:'documentation'!
195
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
copyright
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
 COPYRIGHT (c) 1995 by Claus Gittinger
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	      All Rights Reserved
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 This software is furnished under a license and may be used
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 hereby transferred.
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
"
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
documentation
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
"
1426
1f5ee0a4cfe4 document string
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
    41
    OBSOLETE
1f5ee0a4cfe4 document string
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
    42
        this class will vanish - its functionality has been replaced
1f5ee0a4cfe4 document string
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
    43
        by the UnicodeString classes.
1f5ee0a4cfe4 document string
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
    44
230
aef7afe6a01d no need for initialize method
Claus Gittinger <cg@exept.de>
parents: 202
diff changeset
    45
    JISEncodedString represents 16bit strings encoded in JIS.
262
1d0e8b654573 commentary
Claus Gittinger <cg@exept.de>
parents: 260
diff changeset
    46
    You need jis-encoded fonts on your display workstation, 
1d0e8b654573 commentary
Claus Gittinger <cg@exept.de>
parents: 260
diff changeset
    47
    to display them (i.e. when switching to japanese ...).
1d0e8b654573 commentary
Claus Gittinger <cg@exept.de>
parents: 260
diff changeset
    48
253
09aefd01f021 documentation
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    49
    [author:]
09aefd01f021 documentation
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
    50
        Claus Gittinger
262
1d0e8b654573 commentary
Claus Gittinger <cg@exept.de>
parents: 260
diff changeset
    51
1d0e8b654573 commentary
Claus Gittinger <cg@exept.de>
parents: 260
diff changeset
    52
    [see also:]
1d0e8b654573 commentary
Claus Gittinger <cg@exept.de>
parents: 260
diff changeset
    53
        BIG5EncodedString GBEncodedString
1d0e8b654573 commentary
Claus Gittinger <cg@exept.de>
parents: 260
diff changeset
    54
        TwoByteString String CharacterArray
1d0e8b654573 commentary
Claus Gittinger <cg@exept.de>
parents: 260
diff changeset
    55
        StringCollection
195
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
"
241
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    57
!
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    58
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    59
examples
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    60
"
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    61
    JISEncodedString fromString:'hello world'
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    62
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    63
    'hello world' decodeFrom:#jis7
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    64
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    65
    <someStringWithJIS7Escapes> decodeFrom:#jis7
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
    66
"
195
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
! !
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
540
4ec91ce5fa89 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 449
diff changeset
    69
!JISEncodedString class methodsFor:'initialization'!
260
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
    70
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
    71
initialize
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
    72
    "initialize the class - private"
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
    73
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
    74
    self flags:(Behavior flagWords)
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
    75
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
    76
    "
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
    77
     JISEncodedString initialize
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
    78
    "
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
    79
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
    80
    "Created: 27.4.1996 / 13:12:02 / cg"
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
    81
! !
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
    82
540
4ec91ce5fa89 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 449
diff changeset
    83
!JISEncodedString class methodsFor:'code tables'!
201
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    84
545
886217d90c39 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 543
diff changeset
    85
defaultRomanCharacterValue
1421
56012c7b8a0b code cleanup (removed old obsolete encoding stuff)
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
    86
    ^ CharacterEncoderImplementations::JIS0208 defaultRomanCharacterValue
545
886217d90c39 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 543
diff changeset
    87
886217d90c39 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 543
diff changeset
    88
    "Created: 30.6.1997 / 18:34:58 / cg"
886217d90c39 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 543
diff changeset
    89
!
886217d90c39 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 543
diff changeset
    90
543
9c29370c7dc8 fixed BIG5 encoding stuff
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
    91
romanTable
1399
f70b5744db6f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    92
    "return a table to decode from roman ascii to 16 bit JIS.
f70b5744db6f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    93
f70b5744db6f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    94
     WARNING: this is a temporary kludge for CJK characterSets and will be removed, 
f70b5744db6f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    95
     when the textViews always use unicode."
201
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    96
1421
56012c7b8a0b code cleanup (removed old obsolete encoding stuff)
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
    97
    ^ CharacterEncoderImplementations::JIS0208 romanTable
201
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    98
! !
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
    99
1250
e69088cf58fc category rename
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   100
!JISEncodedString class methodsFor:'encoding & decoding'!
546
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   101
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   102
encodeHalfWidthKatakana:aString
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   103
    "encode halfWidth katakana characters in aString.
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   104
     Return the argument or a copy."
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   105
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   106
    |newString char code cell halfWidthKanaToFullKana|
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   107
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   108
    halfWidthKanaToFullKana := #(
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   109
       "/ full            half       uni
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   110
       16r2123         "/ 0x8E21    0xFF61  # HALFWIDTH IDEOGRAPHIC FULL STOP
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   111
       16r2156         "/ 0x8E22    0xFF62  # HALFWIDTH LEFT CORNER BRACKET
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   112
       16r2157         "/ 0x8E23    0xFF63  # HALFWIDTH RIGHT CORNER BRACKET
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   113
       16r2122         "/ 0x8E24    0xFF64  # HALFWIDTH IDEOGRAPHIC COMMA
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   114
       16r2126         "/ 0x8E25    0xFF65  # HALFWIDTH KATAKANA MIDDLE DOT
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   115
       16r2572         "/ 0x8E26    0xFF66  # HALFWIDTH KATAKANA LETTER WO
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   116
       16r2522         "/ 0x8E27    0xFF67  # HALFWIDTH KATAKANA LETTER SMALL A
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   117
       16r2521         "/ 0x8E28    0xFF68  # HALFWIDTH KATAKANA LETTER SMALL I
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   118
       16r2525         "/ 0x8E29    0xFF69  # HALFWIDTH KATAKANA LETTER SMALL U
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   119
       16r2527         "/ 0x8E2A    0xFF6A  # HALFWIDTH KATAKANA LETTER SMALL E
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   120
       16r2529         "/ 0x8E2B    0xFF6B  # HALFWIDTH KATAKANA LETTER SMALL O
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   121
       16r2563         "/ 0x8E2C    0xFF6C  # HALFWIDTH KATAKANA LETTER SMALL YA
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   122
       16r2565         "/ 0x8E2D    0xFF6D  # HALFWIDTH KATAKANA LETTER SMALL YU
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   123
       16r2567         "/ 0x8E2E    0xFF6E  # HALFWIDTH KATAKANA LETTER SMALL YO
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   124
       16r2543         "/ 0x8E2F    0xFF6F  # HALFWIDTH KATAKANA LETTER SMALL TU
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   125
       16r213C         "/ 0x8E30    0xFF70  # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   126
       16r2522         "/ 0x8E31    0xFF71  # HALFWIDTH KATAKANA LETTER A
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   127
       16r2524         "/ 0x8E32    0xFF72  # HALFWIDTH KATAKANA LETTER I
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   128
       16r2526         "/ 0x8E33    0xFF73  # HALFWIDTH KATAKANA LETTER U
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   129
       16r2528         "/ 0x8E34    0xFF74  # HALFWIDTH KATAKANA LETTER E
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   130
       16r252A         "/ 0x8E35    0xFF75  # HALFWIDTH KATAKANA LETTER O
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   131
       16r252B         "/ 0x8E36    0xFF76  # HALFWIDTH KATAKANA LETTER KA
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   132
       16r252D         "/ 0x8E37    0xFF77  # HALFWIDTH KATAKANA LETTER KI
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   133
       16r252F         "/ 0x8E38    0xFF78  # HALFWIDTH KATAKANA LETTER KU
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   134
       16r2531         "/ 0x8E39    0xFF79  # HALFWIDTH KATAKANA LETTER KE
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   135
       16r2533         "/ 0x8E3A    0xFF7A  # HALFWIDTH KATAKANA LETTER KO
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   136
       16r2535         "/ 0x8E3B    0xFF7B  # HALFWIDTH KATAKANA LETTER SA
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   137
       16r2537         "/ 0x8E3C    0xFF7C  # HALFWIDTH KATAKANA LETTER SI
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   138
       16r2539         "/ 0x8E3D    0xFF7D  # HALFWIDTH KATAKANA LETTER SU
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   139
       16r253B         "/ 0x8E3E    0xFF7E  # HALFWIDTH KATAKANA LETTER SE
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   140
       16r253D         "/ 0x8E3F    0xFF7F  # HALFWIDTH KATAKANA LETTER SO
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   141
       16r253F         "/ 0x8E40    0xFF80  # HALFWIDTH KATAKANA LETTER TA
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   142
       16r2541         "/ 0x8E41    0xFF81  # HALFWIDTH KATAKANA LETTER TI
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   143
       16r2544         "/ 0x8E42    0xFF82  # HALFWIDTH KATAKANA LETTER TU
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   144
       16r2546         "/ 0x8E43    0xFF83  # HALFWIDTH KATAKANA LETTER TE
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   145
       16r2548         "/ 0x8E44    0xFF84  # HALFWIDTH KATAKANA LETTER TO
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   146
       16r254A         "/ 0x8E45    0xFF85  # HALFWIDTH KATAKANA LETTER NA
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   147
       16r254B         "/ 0x8E46    0xFF86  # HALFWIDTH KATAKANA LETTER NI
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   148
       16r254C         "/ 0x8E47    0xFF87  # HALFWIDTH KATAKANA LETTER NU
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   149
       16r254D         "/ 0x8E48    0xFF88  # HALFWIDTH KATAKANA LETTER NE
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   150
       16r254E         "/ 0x8E49    0xFF89  # HALFWIDTH KATAKANA LETTER NO
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   151
       16r254F         "/ 0x8E4A    0xFF8A  # HALFWIDTH KATAKANA LETTER HA
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   152
       16r2552         "/ 0x8E4B    0xFF8B  # HALFWIDTH KATAKANA LETTER HI
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   153
       16r2555         "/ 0x8E4C    0xFF8C  # HALFWIDTH KATAKANA LETTER HU
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   154
       16r2558         "/ 0x8E4D    0xFF8D  # HALFWIDTH KATAKANA LETTER HE
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   155
       16r255B         "/ 0x8E4E    0xFF8E  # HALFWIDTH KATAKANA LETTER HO
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   156
       16r255E         "/ 0x8E4F    0xFF8F  # HALFWIDTH KATAKANA LETTER MA
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   157
       16r255F         "/ 0x8E50    0xFF90  # HALFWIDTH KATAKANA LETTER MI
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   158
       16r2560         "/ 0x8E51    0xFF91  # HALFWIDTH KATAKANA LETTER MU
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   159
       16r2561         "/ 0x8E52    0xFF92  # HALFWIDTH KATAKANA LETTER ME
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   160
       16r2562         "/ 0x8E53    0xFF93  # HALFWIDTH KATAKANA LETTER MO
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   161
       16r2564         "/ 0x8E54    0xFF94  # HALFWIDTH KATAKANA LETTER YA
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   162
       16r2566         "/ 0x8E55    0xFF95  # HALFWIDTH KATAKANA LETTER YU
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   163
       16r2568         "/ 0x8E56    0xFF96  # HALFWIDTH KATAKANA LETTER YO
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   164
       16r2569         "/ 0x8E57    0xFF97  # HALFWIDTH KATAKANA LETTER RA
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   165
       16r256A         "/ 0x8E58    0xFF98  # HALFWIDTH KATAKANA LETTER RI
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   166
       16r256B         "/ 0x8E59    0xFF99  # HALFWIDTH KATAKANA LETTER RU
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   167
       16r256C         "/ 0x8E5A    0xFF9A  # HALFWIDTH KATAKANA LETTER RE
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   168
       16r256D         "/ 0x8E5B    0xFF9B  # HALFWIDTH KATAKANA LETTER RO
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   169
       16r256F         "/ 0x8E5C    0xFF9C  # HALFWIDTH KATAKANA LETTER WA
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   170
       16r2573         "/ 0x8E5D    0xFF9D  # HALFWIDTH KATAKANA LETTER N
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   171
       16r212B         "/ 0x8E5E    0xFF9E  # HALFWIDTH KATAKANA VOICED SOUND MARK
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   172
       16r212C         "/ 0x8E5F    0xFF9F  # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   173
        ).
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   174
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   175
    1 to:aString size do:[:idx |
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   176
        char := aString at:idx.
1417
b75a9128f73e Use #codePoint instead of deprecated #asciiValue
Stefan Vogel <sv@exept.de>
parents: 1403
diff changeset
   177
        ((code := char codePoint) bitAnd:16rFF00) == 16r8E00 ifTrue:[
546
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   178
            cell := code bitAnd:16rFF.
4185
ed1c3f6e7730 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 1426
diff changeset
   179
            (cell between:16r21 and:16r5F) ifTrue:[
546
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   180
                newString isNil ifTrue:[
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   181
                    newString := JISEncodedString fromString:aString
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   182
                ].
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   183
                code := halfWidthKanaToFullKana at:(cell - 16r21 + 1).
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   184
                newString at:idx put:(Character value:code).
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   185
            ].
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   186
        ]
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   187
    ].
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   188
    newString notNil ifTrue:[
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   189
        ^ newString
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   190
    ].
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   191
    ^ aString
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   192
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   193
    "Created: 2.7.1997 / 12:41:21 / cg"
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   194
    "Modified: 2.7.1997 / 12:51:08 / cg"
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   195
! !
51973c9643ad care for halfWidth kanakana characters
Claus Gittinger <cg@exept.de>
parents: 545
diff changeset
   196
540
4ec91ce5fa89 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 449
diff changeset
   197
!JISEncodedString class methodsFor:'standards'!
201
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   198
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   199
jis7KanjiEscapeSequence
543
9c29370c7dc8 fixed BIG5 encoding stuff
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   200
    "return the escape sequence used to switch to kanji in jis7 encoded strings.
9c29370c7dc8 fixed BIG5 encoding stuff
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   201
     This happens to be the same as ISO2022-JP's escape sequence."
241
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   202
1421
56012c7b8a0b code cleanup (removed old obsolete encoding stuff)
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   203
    ^ CharacterEncoder jis7KanjiEscapeSequence.
201
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   204
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   205
    "Created: 26.2.1996 / 17:38:08 / cg"
543
9c29370c7dc8 fixed BIG5 encoding stuff
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   206
    "Modified: 30.6.1997 / 16:03:16 / cg"
201
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   207
!
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   208
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   209
jis7RomanEscapeSequence
241
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   210
    "return the escape sequence used to switch to roman in jis7 encoded strings"
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   211
1421
56012c7b8a0b code cleanup (removed old obsolete encoding stuff)
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   212
    ^ CharacterEncoder jis7RomanEscapeSequence.
201
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   213
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   214
    "Created: 26.2.1996 / 17:38:03 / cg"
241
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   215
    "Modified: 22.4.1996 / 16:08:42 / cg"
202
e335f05824b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   216
!
e335f05824b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   217
543
9c29370c7dc8 fixed BIG5 encoding stuff
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   218
jisISO2022EscapeSequence
9c29370c7dc8 fixed BIG5 encoding stuff
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   219
    "return the escape sequence used to switch to kanji in iso2022 encoded strings"
9c29370c7dc8 fixed BIG5 encoding stuff
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   220
1421
56012c7b8a0b code cleanup (removed old obsolete encoding stuff)
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   221
    ^ CharacterEncoder jisISO2022EscapeSequence
543
9c29370c7dc8 fixed BIG5 encoding stuff
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   222
9c29370c7dc8 fixed BIG5 encoding stuff
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   223
    "Created: 30.6.1997 / 16:02:34 / cg"
9c29370c7dc8 fixed BIG5 encoding stuff
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   224
!
9c29370c7dc8 fixed BIG5 encoding stuff
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   225
202
e335f05824b4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   226
oldJis7KanjiEscapeSequence
1403
69f6ded3b234 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
   227
    "return the escape sequence used to switch to kanji in old jis7 encoded strings"
241
fbf5e6775af8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 240
diff changeset
   228
1421
56012c7b8a0b code cleanup (removed old obsolete encoding stuff)
Claus Gittinger <cg@exept.de>
parents: 1420
diff changeset
   229
    ^ CharacterEncoder jis7KanjiOldEscapeSequence.
201
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   230
! !
f93cf3d2cb61 knowledge about coding sequences moved to JISEncodedString
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   231
195
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
!JISEncodedString methodsFor:'queries'!
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
encoding
264
1e508408ecf5 commentary
Claus Gittinger <cg@exept.de>
parents: 262
diff changeset
   235
    "return the strings encoding as a symbol. 
1e508408ecf5 commentary
Claus Gittinger <cg@exept.de>
parents: 262
diff changeset
   236
     Here, the constant symbol #jis is returned."
240
7af04274190d commentary
Claus Gittinger <cg@exept.de>
parents: 230
diff changeset
   237
195
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
    ^ #jis
240
7af04274190d commentary
Claus Gittinger <cg@exept.de>
parents: 230
diff changeset
   239
264
1e508408ecf5 commentary
Claus Gittinger <cg@exept.de>
parents: 262
diff changeset
   240
    "Modified: 27.4.1996 / 13:23:16 / cg"
195
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
! !
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
540
4ec91ce5fa89 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 449
diff changeset
   243
!JISEncodedString class methodsFor:'documentation'!
195
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
version
4185
ed1c3f6e7730 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 1426
diff changeset
   246
    ^ '$Header$'
195
0feb451128af *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
! !
1250
e69088cf58fc category rename
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   248
4185
ed1c3f6e7730 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 1426
diff changeset
   249
260
427397326fac need explicit #initialize (due to startup optimization)
Claus Gittinger <cg@exept.de>
parents: 253
diff changeset
   250
JISEncodedString initialize!