~ubuntu-branches/ubuntu/karmic/gnustep-base/karmic

« back to all changes in this revision

Viewing changes to Headers/Additions/GNUstepBase/unicode/gsm0338.h

  • Committer: Bazaar Package Importer
  • Author(s): Eric Heintzmann
  • Date: 2005-04-17 00:14:38 UTC
  • mfrom: (1.2.1 upstream) (2.1.2 hoary)
  • Revision ID: james.westby@ubuntu.com-20050417001438-enf0y07c9tku85z1
Tags: 1.10.3-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Created by Richard Frith-Macdonald <rfm@gnu.org> on 2002 Jan 24 */
 
2
 
 
3
// GSM0338 to Unicode maping
 
4
 
 
5
const unsigned int GSM0338_conv_base = 0x00;
 
6
 
 
7
unichar GSM0338_char_to_uni_table[] =
 
8
{
 
9
  0x0040,
 
10
  0x00A3,
 
11
  0x0024,
 
12
  0x00A5,
 
13
  0x00E8,
 
14
  0x00E9,
 
15
  0x00F9,
 
16
  0x00EC,
 
17
  0x00F2,
 
18
  0x00E7,
 
19
  0x000A,
 
20
  0x00D8,
 
21
  0x00F8,
 
22
  0x000D,
 
23
  0x00C5,
 
24
  0x00E5,
 
25
  0x0394,
 
26
  0x005F,
 
27
  0x03A6,
 
28
  0x0393,
 
29
  0x039B,
 
30
  0x03A9,
 
31
  0x03A0,
 
32
  0x03A8,
 
33
  0x03A3,
 
34
  0x0398,
 
35
  0x039E,
 
36
  0x00A0,
 
37
  0x00C6,
 
38
  0x00E6,
 
39
  0x00DF,
 
40
  0x00C9,
 
41
  0x0020,
 
42
  0x0021,
 
43
  0x0022,
 
44
  0x0023,
 
45
  0x00A4,
 
46
  0x0025,
 
47
  0x0026,
 
48
  0x0027,
 
49
  0x0028,
 
50
  0x0029,
 
51
  0x002A,
 
52
  0x002B,
 
53
  0x002C,
 
54
  0x002D,
 
55
  0x002E,
 
56
  0x002F,
 
57
  0x0030,
 
58
  0x0031,
 
59
  0x0032,
 
60
  0x0033,
 
61
  0x0034,
 
62
  0x0035,
 
63
  0x0036,
 
64
  0x0037,
 
65
  0x0038,
 
66
  0x0039,
 
67
  0x003A,
 
68
  0x003B,
 
69
  0x003C,
 
70
  0x003D,
 
71
  0x003E,
 
72
  0x003F,
 
73
  0x00A1,
 
74
  0x0041,
 
75
  0x0042,
 
76
  0x0043,
 
77
  0x0044,
 
78
  0x0045,
 
79
  0x0046,
 
80
  0x0047,
 
81
  0x0048,
 
82
  0x0049,
 
83
  0x004A,
 
84
  0x004B,
 
85
  0x004C,
 
86
  0x004D,
 
87
  0x004E,
 
88
  0x004F,
 
89
  0x0050,
 
90
  0x0051,
 
91
  0x0052,
 
92
  0x0053,
 
93
  0x0054,
 
94
  0x0055,
 
95
  0x0056,
 
96
  0x0057,
 
97
  0x0058,
 
98
  0x0059,
 
99
  0x005A,
 
100
  0x00C4,
 
101
  0x00D6,
 
102
  0x00D1,
 
103
  0x00DC,
 
104
  0x00A7,
 
105
  0x00BF,
 
106
  0x0061,
 
107
  0x0062,
 
108
  0x0063,
 
109
  0x0064,
 
110
  0x0065,
 
111
  0x0066,
 
112
  0x0067,
 
113
  0x0068,
 
114
  0x0069,
 
115
  0x006A,
 
116
  0x006B,
 
117
  0x006C,
 
118
  0x006D,
 
119
  0x006E,
 
120
  0x006F,
 
121
  0x0070,
 
122
  0x0071,
 
123
  0x0072,
 
124
  0x0073,
 
125
  0x0074,
 
126
  0x0075,
 
127
  0x0076,
 
128
  0x0077,
 
129
  0x0078,
 
130
  0x0079,
 
131
  0x007A,
 
132
  0x00E4,
 
133
  0x00F6,
 
134
  0x00F1,
 
135
  0x00FC,
 
136
  0x00E0
 
137
};
 
138
 
 
139
_ucc_ GSM0338_uni_to_char_table[] =
 
140
{
 
141
  {0x000A,0x0A,},
 
142
  {0x000D,0x0D,},
 
143
  {0x0020,0x20,},
 
144
  {0x0021,0x21,},
 
145
  {0x0022,0x22,},
 
146
  {0x0023,0x23,},
 
147
  {0x0024,0x02,},
 
148
  {0x0025,0x25,},
 
149
  {0x0026,0x26,},
 
150
  {0x0027,0x27,},
 
151
  {0x0028,0x28,},
 
152
  {0x0029,0x29,},
 
153
  {0x002A,0x2A,},
 
154
  {0x002B,0x2B,},
 
155
  {0x002C,0x2C,},
 
156
  {0x002D,0x2D,},
 
157
  {0x002E,0x2E,},
 
158
  {0x002F,0x2F,},
 
159
  {0x0030,0x30,},
 
160
  {0x0031,0x31,},
 
161
  {0x0032,0x32,},
 
162
  {0x0033,0x33,},
 
163
  {0x0034,0x34,},
 
164
  {0x0035,0x35,},
 
165
  {0x0036,0x36,},
 
166
  {0x0037,0x37,},
 
167
  {0x0038,0x38,},
 
168
  {0x0039,0x39,},
 
169
  {0x003A,0x3A,},
 
170
  {0x003B,0x3B,},
 
171
  {0x003C,0x3C,},
 
172
  {0x003D,0x3D,},
 
173
  {0x003E,0x3E,},
 
174
  {0x003F,0x3F,},
 
175
  {0x0040,0x00,},
 
176
  {0x0041,0x41,},
 
177
  {0x0042,0x42,},
 
178
  {0x0043,0x43,},
 
179
  {0x0044,0x44,},
 
180
  {0x0045,0x45,},
 
181
  {0x0046,0x46,},
 
182
  {0x0047,0x47,},
 
183
  {0x0048,0x48,},
 
184
  {0x0049,0x49,},
 
185
  {0x004A,0x4A,},
 
186
  {0x004B,0x4B,},
 
187
  {0x004C,0x4C,},
 
188
  {0x004D,0x4D,},
 
189
  {0x004E,0x4E,},
 
190
  {0x004F,0x4F,},
 
191
  {0x0050,0x50,},
 
192
  {0x0051,0x51,},
 
193
  {0x0052,0x52,},
 
194
  {0x0053,0x53,},
 
195
  {0x0054,0x54,},
 
196
  {0x0055,0x55,},
 
197
  {0x0056,0x56,},
 
198
  {0x0057,0x57,},
 
199
  {0x0058,0x58,},
 
200
  {0x0059,0x59,},
 
201
  {0x005A,0x5A,},
 
202
  {0x005F,0x11,},
 
203
  {0x0061,0x61,},
 
204
  {0x0062,0x62,},
 
205
  {0x0063,0x63,},
 
206
  {0x0064,0x64,},
 
207
  {0x0065,0x65,},
 
208
  {0x0066,0x66,},
 
209
  {0x0067,0x67,},
 
210
  {0x0068,0x68,},
 
211
  {0x0069,0x69,},
 
212
  {0x006A,0x6A,},
 
213
  {0x006B,0x6B,},
 
214
  {0x006C,0x6C,},
 
215
  {0x006D,0x6D,},
 
216
  {0x006E,0x6E,},
 
217
  {0x006F,0x6F,},
 
218
  {0x0070,0x70,},
 
219
  {0x0071,0x71,},
 
220
  {0x0072,0x72,},
 
221
  {0x0073,0x73,},
 
222
  {0x0074,0x74,},
 
223
  {0x0075,0x75,},
 
224
  {0x0076,0x76,},
 
225
  {0x0077,0x77,},
 
226
  {0x0078,0x78,},
 
227
  {0x0079,0x79,},
 
228
  {0x007A,0x7A,},
 
229
  {0x00A0,0x1B,},
 
230
  {0x00A1,0x40,},
 
231
  {0x00A3,0x01,},
 
232
  {0x00A4,0x24,},
 
233
  {0x00A5,0x03,},
 
234
  {0x00A7,0x5F,},
 
235
  {0x00BF,0x60,},
 
236
  {0x00C4,0x5B,},
 
237
  {0x00C5,0x0E,},
 
238
  {0x00C6,0x1C,},
 
239
  {0x00C9,0x1F,},
 
240
  {0x00D1,0x5D,},
 
241
  {0x00D6,0x5C,},
 
242
  {0x00D8,0x0B,},
 
243
  {0x00DC,0x5E,},
 
244
  {0x00DF,0x1E,},
 
245
  {0x00E0,0x7F,},
 
246
  {0x00E4,0x7B,},
 
247
  {0x00E5,0x0F,},
 
248
  {0x00E6,0x1D,},
 
249
  {0x00E7,0x09,},
 
250
  {0x00E8,0x04,},
 
251
  {0x00E9,0x05,},
 
252
  {0x00EC,0x07,},
 
253
  {0x00F1,0x7D,},
 
254
  {0x00F2,0x08,},
 
255
  {0x00F6,0x7C,},
 
256
  {0x00F8,0x0C,},
 
257
  {0x00F9,0x06,},
 
258
  {0x00FC,0x7E,},
 
259
  {0x0393,0x13,},
 
260
  {0x0394,0x10,},
 
261
  {0x0398,0x19,},
 
262
  {0x039B,0x14,},
 
263
  {0x039E,0x1A,},
 
264
  {0x03A0,0x16,},
 
265
  {0x03A3,0x18,},
 
266
  {0x03A6,0x12,},
 
267
  {0x03A8,0x17,},
 
268
  {0x03A9,0x15,}
 
269
};
 
270
#define GSM0338_tsize   (sizeof(GSM0338_uni_to_char_table)/sizeof(_ucc_))
 
271
 
 
272
_ucc_ GSM0338_escapes[] =
 
273
{
 
274
  {0x000C,0x0A},        /* Form feed    */
 
275
  {0x005B,0x3C},        /* '['          */
 
276
  {0x005C,0x2F},        /* '\\'         */
 
277
  {0x005D,0x3E},        /* ']'          */
 
278
  {0x005E,0x14},        /* '^'          */
 
279
  {0x007B,0x28},        /* '{'          */
 
280
  {0x007C,0x40},        /* '|'          */
 
281
  {0x007D,0x29},        /* '}'          */
 
282
  {0x007E,0x3D},        /* '~'          */
 
283
  {0x20AC,0x65}         /* Euro symbol  */
 
284
};
 
285
 
 
286
#define GSM0338_esize   (sizeof(GSM0338_escapes)/sizeof(_ucc_))
 
287
 
 
288
/*
 
289
 * Some of these conversions should not be needed because they are
 
290
 * already handled by escape sequences ... I put them here so we can
 
291
 * support two varieties of the GSM alphabet.  The official one, and
 
292
 * a cut down version suitable for use when delivering data to phones
 
293
 * which don't support escape sequences.
 
294
 */
 
295
_ucc_ GSM0338_lossy[] =
 
296
{
 
297
  {0x005B,0x3C},        /* '[' => '<'   */
 
298
  {0x005C,0x2F},        /* '\\' => '/'  */
 
299
  {0x005D,0x3E},        /* ']' => '>'   */
 
300
  {0x005E,0x14},        /* '^' => lambda */
 
301
  {0x0060,0x27},        /* '`' => '\''  */
 
302
  {0x007B,0x28},        /* '{' => '('   */
 
303
  {0x007C,0x40},        /* '|' => 'i'   */
 
304
  {0x007D,0x29},        /* '}' => ')'   */
 
305
  {0x007E,0x3D},        /* '~' => '='   */
 
306
  {0x00C7,0x09},        /* C cedilla    */
 
307
  {0x0391,0x41},        /* Alpha        */
 
308
  {0x0392,0x42},        /* Beta         */
 
309
  {0x0395,0x45},        /* Epsilon      */
 
310
  {0x0396,0x5A},        /* Zeta         */
 
311
  {0x0397,0x48},        /* Eta          */
 
312
  {0x0399,0x49},        /* Iota         */
 
313
  {0x039A,0x4B},        /* Kappa        */
 
314
  {0x039C,0x4D},        /* Mu           */
 
315
  {0x039D,0x4E},        /* Nu           */
 
316
  {0x039F,0x4F},        /* Omicron      */
 
317
  {0x03A1,0x50},        /* Rho          */
 
318
  {0x03A4,0x54},        /* Tau          */
 
319
  {0x03A5,0x55},        /* Upsilon      */
 
320
  {0x03A7,0x58},        /* Chi          */
 
321
  {0x2014,0x2D},        /* Em-dash              */
 
322
  {0x2018,0x27},        /* left single quote    */
 
323
  {0x2019,0x27},        /* right single quote   */
 
324
  {0x201C,0x22},        /* left double quote    */
 
325
  {0x201D,0x22}         /* right double quote   */
 
326
};
 
327
 
 
328
#define GSM0338_lsize   (sizeof(GSM0338_lossy)/sizeof(_ucc_))
 
329