mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
Added latin9 support.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@15646 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
590043c595
commit
2aafe79eee
3 changed files with 296 additions and 1 deletions
|
@ -1,3 +1,10 @@
|
|||
2003-01-20 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Headers/gnustep/unicode/latin9.h: Latin9 string encoding tables
|
||||
* Source/Additions/Unicode.m: Added built-in support for the Latin9
|
||||
character encoding ... contains the Euro symbol ... nice for
|
||||
european users.
|
||||
|
||||
2003-01-16 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/NSURL.m: Support MacOS-X style initialisation using a path
|
||||
|
|
274
Headers/gnustep/unicode/latin9.h
Normal file
274
Headers/gnustep/unicode/latin9.h
Normal file
|
@ -0,0 +1,274 @@
|
|||
/* Created by Stefan Urbanek <urbane@decef.elf.stuba.sk> on 2000 Apr 6 */
|
||||
|
||||
// ISO_8859-15 to Unicode maping
|
||||
|
||||
const unsigned int Latin9_conv_base = 0x80;
|
||||
|
||||
unichar Latin9_char_to_uni_table[] =
|
||||
{
|
||||
0x0080,
|
||||
0x0081,
|
||||
0x0082,
|
||||
0x0083,
|
||||
0x0084,
|
||||
0x0085,
|
||||
0x0086,
|
||||
0x0087,
|
||||
0x0088,
|
||||
0x0089,
|
||||
0x008A,
|
||||
0x008B,
|
||||
0x008C,
|
||||
0x008D,
|
||||
0x008E,
|
||||
0x008F,
|
||||
0x0090,
|
||||
0x0091,
|
||||
0x0092,
|
||||
0x0093,
|
||||
0x0094,
|
||||
0x0095,
|
||||
0x0096,
|
||||
0x0097,
|
||||
0x0098,
|
||||
0x0099,
|
||||
0x009A,
|
||||
0x009B,
|
||||
0x009C,
|
||||
0x009D,
|
||||
0x009E,
|
||||
0x009F,
|
||||
0x00A0,
|
||||
0x00A1,
|
||||
0x00A2,
|
||||
0x00A3,
|
||||
0x20AC,
|
||||
0x00A5,
|
||||
0x0160,
|
||||
0x00A7,
|
||||
0x0161,
|
||||
0x00A9,
|
||||
0x00AA,
|
||||
0x00AB,
|
||||
0x00AC,
|
||||
0x00AD,
|
||||
0x00AE,
|
||||
0x00AF,
|
||||
0x00B0,
|
||||
0x00B1,
|
||||
0x00B2,
|
||||
0x00B3,
|
||||
0x017D,
|
||||
0x00B5,
|
||||
0x00B6,
|
||||
0x00B7,
|
||||
0x017E,
|
||||
0x00B9,
|
||||
0x00BA,
|
||||
0x00BB,
|
||||
0x0152,
|
||||
0x0153,
|
||||
0x0178,
|
||||
0x00BF,
|
||||
0x00C0,
|
||||
0x00C1,
|
||||
0x00C2,
|
||||
0x00C3,
|
||||
0x00C4,
|
||||
0x00C5,
|
||||
0x00C6,
|
||||
0x00C7,
|
||||
0x00C8,
|
||||
0x00C9,
|
||||
0x00CA,
|
||||
0x00CB,
|
||||
0x00CC,
|
||||
0x00CD,
|
||||
0x00CE,
|
||||
0x00CF,
|
||||
0x00D0,
|
||||
0x00D1,
|
||||
0x00D2,
|
||||
0x00D3,
|
||||
0x00D4,
|
||||
0x00D5,
|
||||
0x00D6,
|
||||
0x00D7,
|
||||
0x00D8,
|
||||
0x00D9,
|
||||
0x00DA,
|
||||
0x00DB,
|
||||
0x00DC,
|
||||
0x00DD,
|
||||
0x00DE,
|
||||
0x00DF,
|
||||
0x00E0,
|
||||
0x00E1,
|
||||
0x00E2,
|
||||
0x00E3,
|
||||
0x00E4,
|
||||
0x00E5,
|
||||
0x00E6,
|
||||
0x00E7,
|
||||
0x00E8,
|
||||
0x00E9,
|
||||
0x00EA,
|
||||
0x00EB,
|
||||
0x00EC,
|
||||
0x00ED,
|
||||
0x00EE,
|
||||
0x00EF,
|
||||
0x00F0,
|
||||
0x00F1,
|
||||
0x00F2,
|
||||
0x00F3,
|
||||
0x00F4,
|
||||
0x00F5,
|
||||
0x00F6,
|
||||
0x00F7,
|
||||
0x00F8,
|
||||
0x00F9,
|
||||
0x00FA,
|
||||
0x00FB,
|
||||
0x00FC,
|
||||
0x00FD,
|
||||
0x00FE,
|
||||
0x00FF
|
||||
};
|
||||
|
||||
// Unicode to ISO_8859-15 maping
|
||||
|
||||
const unsigned int Latin9_uni_to_char_table_size = 128;
|
||||
|
||||
_ucc_ Latin9_uni_to_char_table[]=
|
||||
{
|
||||
{0x0080, 0x80},
|
||||
{0x0081, 0x81},
|
||||
{0x0082, 0x82},
|
||||
{0x0083, 0x83},
|
||||
{0x0084, 0x84},
|
||||
{0x0085, 0x85},
|
||||
{0x0086, 0x86},
|
||||
{0x0087, 0x87},
|
||||
{0x0088, 0x88},
|
||||
{0x0089, 0x89},
|
||||
{0x008A, 0x8A},
|
||||
{0x008B, 0x8B},
|
||||
{0x008C, 0x8C},
|
||||
{0x008D, 0x8D},
|
||||
{0x008E, 0x8E},
|
||||
{0x008F, 0x8F},
|
||||
{0x0090, 0x90},
|
||||
{0x0091, 0x91},
|
||||
{0x0092, 0x92},
|
||||
{0x0093, 0x93},
|
||||
{0x0094, 0x94},
|
||||
{0x0095, 0x95},
|
||||
{0x0096, 0x96},
|
||||
{0x0097, 0x97},
|
||||
{0x0098, 0x98},
|
||||
{0x0099, 0x99},
|
||||
{0x009A, 0x9A},
|
||||
{0x009B, 0x9B},
|
||||
{0x009C, 0x9C},
|
||||
{0x009D, 0x9D},
|
||||
{0x009E, 0x9E},
|
||||
{0x009F, 0x9F},
|
||||
{0x00A0, 0xA0},
|
||||
{0x00A1, 0xA1},
|
||||
{0x00A2, 0xA2},
|
||||
{0x00A3, 0xA3},
|
||||
{0x00A5, 0xA5},
|
||||
{0x00A7, 0xA7},
|
||||
{0x00A9, 0xA9},
|
||||
{0x00AA, 0xAA},
|
||||
{0x00AB, 0xAB},
|
||||
{0x00AC, 0xAC},
|
||||
{0x00AD, 0xAD},
|
||||
{0x00AE, 0xAE},
|
||||
{0x00AF, 0xAF},
|
||||
{0x00B0, 0xB0},
|
||||
{0x00B1, 0xB1},
|
||||
{0x00B2, 0xB2},
|
||||
{0x00B3, 0xB3},
|
||||
{0x00B5, 0xB5},
|
||||
{0x00B6, 0xB6},
|
||||
{0x00B7, 0xB7},
|
||||
{0x00B9, 0xB9},
|
||||
{0x00BA, 0xBA},
|
||||
{0x00BB, 0xBB},
|
||||
{0x00BF, 0xBF},
|
||||
{0x00C0, 0xC0},
|
||||
{0x00C1, 0xC1},
|
||||
{0x00C2, 0xC2},
|
||||
{0x00C3, 0xC3},
|
||||
{0x00C4, 0xC4},
|
||||
{0x00C5, 0xC5},
|
||||
{0x00C6, 0xC6},
|
||||
{0x00C7, 0xC7},
|
||||
{0x00C8, 0xC8},
|
||||
{0x00C9, 0xC9},
|
||||
{0x00CA, 0xCA},
|
||||
{0x00CB, 0xCB},
|
||||
{0x00CC, 0xCC},
|
||||
{0x00CD, 0xCD},
|
||||
{0x00CE, 0xCE},
|
||||
{0x00CF, 0xCF},
|
||||
{0x00D0, 0xD0},
|
||||
{0x00D1, 0xD1},
|
||||
{0x00D2, 0xD2},
|
||||
{0x00D3, 0xD3},
|
||||
{0x00D4, 0xD4},
|
||||
{0x00D5, 0xD5},
|
||||
{0x00D6, 0xD6},
|
||||
{0x00D7, 0xD7},
|
||||
{0x00D8, 0xD8},
|
||||
{0x00D9, 0xD9},
|
||||
{0x00DA, 0xDA},
|
||||
{0x00DB, 0xDB},
|
||||
{0x00DC, 0xDC},
|
||||
{0x00DD, 0xDD},
|
||||
{0x00DE, 0xDE},
|
||||
{0x00DF, 0xDF},
|
||||
{0x00E0, 0xE0},
|
||||
{0x00E1, 0xE1},
|
||||
{0x00E2, 0xE2},
|
||||
{0x00E3, 0xE3},
|
||||
{0x00E4, 0xE4},
|
||||
{0x00E5, 0xE5},
|
||||
{0x00E6, 0xE6},
|
||||
{0x00E7, 0xE7},
|
||||
{0x00E8, 0xE8},
|
||||
{0x00E9, 0xE9},
|
||||
{0x00EA, 0xEA},
|
||||
{0x00EB, 0xEB},
|
||||
{0x00EC, 0xEC},
|
||||
{0x00ED, 0xED},
|
||||
{0x00EE, 0xEE},
|
||||
{0x00EF, 0xEF},
|
||||
{0x00F0, 0xF0},
|
||||
{0x00F1, 0xF1},
|
||||
{0x00F2, 0xF2},
|
||||
{0x00F3, 0xF3},
|
||||
{0x00F4, 0xF4},
|
||||
{0x00F5, 0xF5},
|
||||
{0x00F6, 0xF6},
|
||||
{0x00F7, 0xF7},
|
||||
{0x00F8, 0xF8},
|
||||
{0x00F9, 0xF9},
|
||||
{0x00FA, 0xFA},
|
||||
{0x00FB, 0xFB},
|
||||
{0x00FC, 0xFC},
|
||||
{0x00FD, 0xFD},
|
||||
{0x00FE, 0xFE},
|
||||
{0x00FF, 0xFF},
|
||||
{0x0152, 0xBC},
|
||||
{0x0153, 0xBD},
|
||||
{0x0160, 0xA6},
|
||||
{0x0161, 0xA8},
|
||||
{0x0178, 0xBE},
|
||||
{0x017D, 0xB4},
|
||||
{0x017E, 0xB8},
|
||||
{0x20AC, 0xA4}
|
||||
};
|
||||
|
|
@ -44,6 +44,7 @@ typedef struct {unichar from; unsigned char to;} _ucc_;
|
|||
|
||||
#include "unicode/cyrillic.h"
|
||||
#include "unicode/latin2.h"
|
||||
#include "unicode/latin9.h"
|
||||
#include "unicode/nextstep.h"
|
||||
#include "unicode/caseconv.h"
|
||||
#include "unicode/cop.h"
|
||||
|
@ -168,7 +169,7 @@ static struct _strenc_ str_encoding_table[] = {
|
|||
{NSISOThaiStringEncoding, "NSISOThaiStringEncoding","ISO-8859-11",1,1},
|
||||
{NSISOLatin7StringEncoding, "NSISOLatin7StringEncoding","ISO-8859-13",0,0},
|
||||
{NSISOLatin8StringEncoding, "NSISOLatin8StringEncoding","ISO-8859-14",0,0},
|
||||
{NSISOLatin9StringEncoding, "NSISOLatin9StringEncoding","ISO-8859-15",0,0},
|
||||
{NSISOLatin9StringEncoding, "NSISOLatin9StringEncoding","ISO-8859-15",1,1},
|
||||
{NSUTF7StringEncoding, "NSUTF7StringEncoding","",0,0},
|
||||
{NSGB2312StringEncoding, "NSGB2312StringEncoding","EUC-CN",0,0},
|
||||
{NSGSM0338StringEncoding, "NSGSM0338StringEncoding","",0,1},
|
||||
|
@ -364,6 +365,8 @@ GSEncodingForRegistry (NSString *registry, NSString *encoding)
|
|||
return NSISOHebrewStringEncoding;
|
||||
else if ([encoding isEqualToString: @"11"])
|
||||
return NSISOThaiStringEncoding;
|
||||
else if ([encoding isEqualToString: @"15"])
|
||||
return NSISOLatin9StringEncoding;
|
||||
// Other latin encodings are currently not supported
|
||||
}
|
||||
else if ([registry isEqualToString: @"iso10646"])
|
||||
|
@ -1127,6 +1130,11 @@ GSToUnicode(unichar **dst, unsigned int *size, const unsigned char *src,
|
|||
table = Latin2_char_to_uni_table;
|
||||
goto tables;
|
||||
|
||||
case NSISOLatin9StringEncoding:
|
||||
base = Latin9_conv_base;
|
||||
table = Latin9_char_to_uni_table;
|
||||
goto tables;
|
||||
|
||||
case NSISOThaiStringEncoding:
|
||||
base = Thai_conv_base;
|
||||
table = Thai_char_to_uni_table;
|
||||
|
@ -1652,6 +1660,12 @@ bases:
|
|||
tsize = Latin2_uni_to_char_table_size;
|
||||
goto tables;
|
||||
|
||||
case NSISOLatin9StringEncoding:
|
||||
base = (unichar)Latin9_conv_base;
|
||||
table = Latin9_uni_to_char_table;
|
||||
tsize = Latin9_uni_to_char_table_size;
|
||||
goto tables;
|
||||
|
||||
case NSISOThaiStringEncoding:
|
||||
base = (unichar)Thai_conv_base;
|
||||
table = Thai_uni_to_char_table;
|
||||
|
|
Loading…
Reference in a new issue