mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 08:26:27 +00:00
Add thai encoding
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@14835 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
a7852f69cd
commit
93168d9fe4
6 changed files with 230 additions and 3 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
|||
2002-10-21 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
* Headers/gnustep/unicode/thai.h: New file.
|
||||
* Headers/gnustep/base/NSString.h (_NSStringEncoding): Add
|
||||
NSISOThaiStringEncoding.
|
||||
* Source/NSString.m (-dataUsingEncoding:allowLossyConversion:):
|
||||
Handle it.
|
||||
* Source/Unicode.m (struct _strenc_ str_encoding_table[]): Idem.
|
||||
(GSEncodingForRegistry): Idem.
|
||||
(GSToUnicode, GSFromUnicode): Idem.
|
||||
(Patches, modified, from Banlu Kemiyatorn <id@project-ile.net>).
|
||||
|
||||
2002-10-21 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
* Source/GSLocale.m (GSLanguageFromLocale): Implement regardless
|
||||
|
|
|
@ -83,8 +83,8 @@ typedef enum _NSStringEncoding
|
|||
NSISOHebrewStringEncoding = 55, // ISO-8859-8
|
||||
NSISOLatin5StringEncoding = 57, // ISO-8859-9; Turkish
|
||||
NSISOLatin6StringEncoding = 58, // ISO-8859-10; Nordic
|
||||
/* Possible future ISO-8859 additions
|
||||
NSISOThaiStringEncoding = 59, // ISO-8859-11
|
||||
/* Possible future ISO-8859 additions
|
||||
// ISO-8859-12
|
||||
*/
|
||||
NSISOLatin7StringEncoding = 61, // ISO-8859-13
|
||||
|
|
199
Headers/gnustep/unicode/thai.h
Normal file
199
Headers/gnustep/unicode/thai.h
Normal file
|
@ -0,0 +1,199 @@
|
|||
/* ISO_8859-11 to Unicode maping */
|
||||
|
||||
const unsigned int Thai_conv_base = 0xA0;
|
||||
|
||||
unichar Thai_char_to_uni_table[] =
|
||||
{
|
||||
0x00A0,
|
||||
0x0E01,
|
||||
0x0E02,
|
||||
0x0E03,
|
||||
0x0E04,
|
||||
0x0E05,
|
||||
0x0E06,
|
||||
0x0E07,
|
||||
0x0E08,
|
||||
0x0E09,
|
||||
0x0E0A,
|
||||
0x0E0B,
|
||||
0x0E0C,
|
||||
0x0E0D,
|
||||
0x0E0E,
|
||||
0x0E0F,
|
||||
0x0E10,
|
||||
0x0E11,
|
||||
0x0E12,
|
||||
0x0E13,
|
||||
0x0E14,
|
||||
0x0E15,
|
||||
0x0E16,
|
||||
0x0E17,
|
||||
0x0E18,
|
||||
0x0E19,
|
||||
0x0E1A,
|
||||
0x0E1B,
|
||||
0x0E1C,
|
||||
0x0E1D,
|
||||
0x0E1E,
|
||||
0x0E1F,
|
||||
0x0E20,
|
||||
0x0E21,
|
||||
0x0E22,
|
||||
0x0E23,
|
||||
0x0E24,
|
||||
0x0E25,
|
||||
0x0E26,
|
||||
0x0E27,
|
||||
0x0E28,
|
||||
0x0E29,
|
||||
0x0E2A,
|
||||
0x0E2B,
|
||||
0x0E2C,
|
||||
0x0E2D,
|
||||
0x0E2E,
|
||||
0x0E2F,
|
||||
0x0E30,
|
||||
0x0E31,
|
||||
0x0E32,
|
||||
0x0E33,
|
||||
0x0E34,
|
||||
0x0E35,
|
||||
0x0E36,
|
||||
0x0E37,
|
||||
0x0E38,
|
||||
0x0E39,
|
||||
0x0E3A,
|
||||
0xFFFD,
|
||||
0xFFFD,
|
||||
0xFFFD,
|
||||
0xFFFD,
|
||||
0x0E3F,
|
||||
0x0E40,
|
||||
0x0E41,
|
||||
0x0E42,
|
||||
0x0E43,
|
||||
0x0E44,
|
||||
0x0E45,
|
||||
0x0E46,
|
||||
0x0E47,
|
||||
0x0E48,
|
||||
0x0E49,
|
||||
0x0E4A,
|
||||
0x0E4B,
|
||||
0x0E4C,
|
||||
0x0E4D,
|
||||
0x0E4E,
|
||||
0x0E4F,
|
||||
0x2116,
|
||||
0x0E51,
|
||||
0x0E52,
|
||||
0x0E53,
|
||||
0x0E54,
|
||||
0x0E55,
|
||||
0x0E56,
|
||||
0x0E57,
|
||||
0x0E58,
|
||||
0x0E59,
|
||||
0x0E5A,
|
||||
0x0E5B,
|
||||
0xFFFD,
|
||||
0xFFFD,
|
||||
0xFFFD,
|
||||
0xFFFD,
|
||||
};
|
||||
|
||||
/* Unicode to ISO_8859-11 maping */
|
||||
|
||||
const unsigned int Thai_uni_to_char_table_size = 88;
|
||||
|
||||
_ucc_ Thai_uni_to_char_table[]=
|
||||
{
|
||||
{0x00A0,0xA0},
|
||||
{0x0E01,0xA1},
|
||||
{0x0E02,0xA2},
|
||||
{0x0E03,0xA3},
|
||||
{0x0E04,0xA4},
|
||||
{0x0E05,0xA5},
|
||||
{0x0E06,0xA6},
|
||||
{0x0E07,0xA7},
|
||||
{0x0E08,0xA8},
|
||||
{0x0E09,0xA9},
|
||||
{0x0E0A,0xAA},
|
||||
{0x0E0B,0xAB},
|
||||
{0x0E0C,0xAC},
|
||||
{0x0E0D,0xAD},
|
||||
{0x0E0E,0xAE},
|
||||
{0x0E0F,0xAF},
|
||||
{0x0E10,0xB0},
|
||||
{0x0E11,0xB1},
|
||||
{0x0E12,0xB2},
|
||||
{0x0E13,0xB3},
|
||||
{0x0E14,0xB4},
|
||||
{0x0E15,0xB5},
|
||||
{0x0E16,0xB6},
|
||||
{0x0E17,0xB7},
|
||||
{0x0E18,0xB8},
|
||||
{0x0E19,0xB9},
|
||||
{0x0E1A,0xBA},
|
||||
{0x0E1B,0xBB},
|
||||
{0x0E1C,0xBC},
|
||||
{0x0E1D,0xBD},
|
||||
{0x0E1E,0xBE},
|
||||
{0x0E1F,0xBF},
|
||||
{0x0E20,0xC0},
|
||||
{0x0E21,0xC1},
|
||||
{0x0E22,0xC2},
|
||||
{0x0E23,0xC3},
|
||||
{0x0E24,0xC4},
|
||||
{0x0E25,0xC5},
|
||||
{0x0E26,0xC6},
|
||||
{0x0E27,0xC7},
|
||||
{0x0E28,0xC8},
|
||||
{0x0E29,0xC9},
|
||||
{0x0E2A,0xCA},
|
||||
{0x0E2B,0xCB},
|
||||
{0x0E2C,0xCC},
|
||||
{0x0E2D,0xCD},
|
||||
{0x0E2E,0xCE},
|
||||
{0x0E2F,0xCF},
|
||||
{0x0E30,0xD0},
|
||||
{0x0E31,0xD1},
|
||||
{0x0E32,0xD2},
|
||||
{0x0E33,0xD3},
|
||||
{0x0E34,0xD4},
|
||||
{0x0E35,0xD5},
|
||||
{0x0E36,0xD6},
|
||||
{0x0E37,0xD7},
|
||||
{0x0E38,0xD8},
|
||||
{0x0E39,0xD9},
|
||||
{0x0E3A,0xDA},
|
||||
{0x0E3F,0xDF},
|
||||
{0x0E40,0xE0},
|
||||
{0x0E41,0xE1},
|
||||
{0x0E42,0xE2},
|
||||
{0x0E43,0xE3},
|
||||
{0x0E44,0xE4},
|
||||
{0x0E45,0xE5},
|
||||
{0x0E46,0xE6},
|
||||
{0x0E47,0xE7},
|
||||
{0x0E48,0xE8},
|
||||
{0x0E49,0xE9},
|
||||
{0x0E4A,0xEA},
|
||||
{0x0E4B,0xEB},
|
||||
{0x0E4C,0xEC},
|
||||
{0x0E4D,0xED},
|
||||
{0x0E4E,0xEE},
|
||||
{0x0E4F,0xEF},
|
||||
{0x0E50,0xF0},
|
||||
{0x0E51,0xF1},
|
||||
{0x0E52,0xF2},
|
||||
{0x0E53,0xF3},
|
||||
{0x0E54,0xF4},
|
||||
{0x0E55,0xF5},
|
||||
{0x0E56,0xF6},
|
||||
{0x0E57,0xF7},
|
||||
{0x0E58,0xF8},
|
||||
{0x0E59,0xF9},
|
||||
{0x0E5A,0xFA},
|
||||
{0x0E5B,0xFB},
|
||||
};
|
|
@ -1,3 +1,3 @@
|
|||
{
|
||||
th_TH = NSThaiStringEncoding;
|
||||
th_TH = NSISOThaiStringEncoding;
|
||||
}
|
||||
|
|
|
@ -2495,7 +2495,8 @@ handle_printf_atsign (FILE *stream,
|
|||
|| (encoding == NSNEXTSTEPStringEncoding)
|
||||
|| (encoding == NSNonLossyASCIIStringEncoding)
|
||||
|| (encoding == NSSymbolStringEncoding)
|
||||
|| (encoding == NSISOCyrillicStringEncoding))
|
||||
|| (encoding == NSISOCyrillicStringEncoding)
|
||||
|| (encoding == NSISOThaiStringEncoding))
|
||||
{
|
||||
char t;
|
||||
unsigned char *buff;
|
||||
|
|
|
@ -48,6 +48,7 @@ typedef struct {unichar from; unsigned char to;} _ucc_;
|
|||
#include "unicode/cop.h"
|
||||
#include "unicode/decomp.h"
|
||||
#include "unicode/gsm0338.h"
|
||||
#include "unicode/thai.h"
|
||||
|
||||
#ifdef HAVE_ICONV
|
||||
#ifdef HAVE_GICONV_H
|
||||
|
@ -163,6 +164,7 @@ static struct _strenc_ str_encoding_table[] = {
|
|||
{NSISOHebrewStringEncoding, "NSISOHebrewStringEncoding","ISO-8859-8",0,0},
|
||||
{NSISOLatin5StringEncoding, "NSISOLatin5StringEncoding","ISO-8859-9",0,0},
|
||||
{NSISOLatin6StringEncoding, "NSISOLatin6StringEncoding","ISO-8859-10",0,0},
|
||||
{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},
|
||||
|
@ -348,6 +350,8 @@ GSEncodingForRegistry (NSString *registry, NSString *encoding)
|
|||
return NSISOGreekStringEncoding;
|
||||
else if ([encoding isEqualToString: @"8"])
|
||||
return NSISOHebrewStringEncoding;
|
||||
else if ([encoding isEqualToString: @"11"])
|
||||
return NSISOThaiStringEncoding;
|
||||
// Other latin encodings are currently not supported
|
||||
}
|
||||
else if ([registry isEqualToString: @"iso10646"])
|
||||
|
@ -986,6 +990,11 @@ GSToUnicode(unichar **dst, unsigned int *size, const unsigned char *src,
|
|||
base = Latin2_conv_base;
|
||||
table = Latin2_char_to_uni_table;
|
||||
goto tables;
|
||||
|
||||
case NSISOThaiStringEncoding:
|
||||
base = Thai_conv_base;
|
||||
table = Thai_char_to_uni_table;
|
||||
goto tables;
|
||||
|
||||
#if 0
|
||||
case NSSymbolStringEncoding:
|
||||
|
@ -1448,6 +1457,12 @@ bases:
|
|||
tsize = Latin2_uni_to_char_table_size;
|
||||
goto tables;
|
||||
|
||||
case NSISOThaiStringEncoding:
|
||||
base = (unichar)Thai_conv_base;
|
||||
table = Thai_uni_to_char_table;
|
||||
tsize = Thai_uni_to_char_table_size;
|
||||
goto tables;
|
||||
|
||||
#if 0
|
||||
case NSSymbolStringEncoding:
|
||||
base = (unichar)Symbol_conv_base;
|
||||
|
|
Loading…
Reference in a new issue