diff -uprN libiconv-1.11.orig/lib/converters.h libiconv-1.11/lib/converters.h --- libiconv-1.11.orig/lib/converters.h 2006-05-18 18:43:55.000000000 +0600 +++ libiconv-1.11/lib/converters.h 2007-05-25 18:50:30.000000000 +0600 @@ -182,6 +182,7 @@ struct conv_struct { #include "georgian_ps.h" #include "koi8_t.h" #include "pt154.h" +#include "rk1048.h" #include "mulelao.h" #include "cp1133.h" #include "tis620.h" diff -uprN libiconv-1.11.orig/lib/encodings.def libiconv-1.11/lib/encodings.def --- libiconv-1.11.orig/lib/encodings.def 2006-05-18 18:43:55.000000000 +0600 +++ libiconv-1.11/lib/encodings.def 2007-05-25 18:50:34.000000000 +0600 @@ -599,6 +599,13 @@ DEFENCODING(( "PT154", pt154, { pt154_mbtowc, NULL }, { pt154_wctomb, NULL }) +DEFENCODING(( "RK1048", /* IANA, glibc */ + "KZ-1048", /* IANA */ + "STRK1048-2002", /* IANA */ + ), + rk1048, + { rk1048_mbtowc, NULL }, { rk1048_wctomb, NULL }) + DEFENCODING(( "MULELAO-1", ), mulelao, diff -uprN libiconv-1.11.orig/lib/flags.h libiconv-1.11/lib/flags.h --- libiconv-1.11.orig/lib/flags.h 2006-05-18 18:45:30.000000000 +0600 +++ libiconv-1.11/lib/flags.h 2007-05-25 18:50:39.000000000 +0600 @@ -82,6 +82,7 @@ #define ei_georgian_ps_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) #define ei_koi8_t_oflags (HAVE_QUOTATION_MARKS) #define ei_pt154_oflags (HAVE_QUOTATION_MARKS) +#define ei_rk1048_oflags (HAVE_QUOTATION_MARKS) #define ei_mulelao_oflags (0) #define ei_cp1133_oflags (0) #define ei_tis620_oflags (0) diff -uprN libiconv-1.11.orig/lib/rk1048.h libiconv-1.11/lib/rk1048.h --- libiconv-1.11.orig/lib/rk1048.h 1970-01-01 06:00:00.000000000 +0600 +++ libiconv-1.11/lib/rk1048.h 2007-05-25 18:50:23.000000000 +0600 @@ -0,0 +1,145 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * RK1048 + */ + +static const unsigned short rk1048_2uni[128] = { + /* 0x80 */ + 0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021, + 0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x049a, 0x04ba, 0x040f, + /* 0x90 */ + 0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0xfffd, 0x2122, 0x0459, 0x203a, 0x045a, 0x049b, 0x04bb, 0x045f, + /* 0xa0 */ + 0x00a0, 0x04b0, 0x04b1, 0x04d8, 0x00a4, 0x04e8, 0x00a6, 0x00a7, + 0x0401, 0x00a9, 0x0492, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x04ae, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x0406, 0x0456, 0x04e9, 0x00b5, 0x00b6, 0x00b7, + 0x0451, 0x2116, 0x0493, 0x00bb, 0x04d9, 0x04a2, 0x04a3, 0x04af, + /* 0xc0 */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + /* 0xd0 */ + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + /* 0xe0 */ + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xf0 */ + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, +}; + +static int +rk1048_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = rk1048_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char rk1048_page00[32] = { + 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ + 0x00, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char rk1048_page04[240] = { + 0x00, 0xa8, 0x80, 0x81, 0x00, 0x00, 0xb2, 0x00, /* 0x00-0x07 */ + 0x00, 0x8a, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x8f, /* 0x08-0x0f */ + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x10-0x17 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x18-0x1f */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x20-0x27 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x28-0x2f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0x48-0x4f */ + 0x00, 0xb8, 0x90, 0x83, 0x00, 0x00, 0xb3, 0x00, /* 0x50-0x57 */ + 0x00, 0x9a, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0xaa, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x8d, 0x9d, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0xbd, 0xbe, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xbf, /* 0xa8-0xaf */ + 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x8e, 0x9e, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0xa3, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0xa5, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ +}; +static const unsigned char rk1048_page20[48] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; +static const unsigned char rk1048_page21[24] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; + +static int +rk1048_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = rk1048_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x04f0) + c = rk1048_page04[wc-0x0400]; + else if (wc >= 0x2010 && wc < 0x2040) + c = rk1048_page20[wc-0x2010]; + else if (wc == 0x20ac) + c = 0x88; + else if (wc >= 0x2110 && wc < 0x2128) + c = rk1048_page21[wc-0x2110]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff -uprN libiconv-1.11.orig/man/iconv_open.3 libiconv-1.11/man/iconv_open.3 --- libiconv-1.11.orig/man/iconv_open.3 2006-05-18 18:43:55.000000000 +0600 +++ libiconv-1.11/man/iconv_open.3 2007-05-25 18:50:55.000000000 +0600 @@ -76,7 +76,7 @@ KOI8-T Kazakh .nf .fi -PT154 +PT154, RK1048 .TP Thai .nf diff -uprN libiconv-1.11.orig/README libiconv-1.11/README --- libiconv-1.11.orig/README 2006-05-18 18:43:55.000000000 +0600 +++ libiconv-1.11/README 2007-05-25 18:50:13.000000000 +0600 @@ -28,7 +28,7 @@ It provides support for the encodings: Tajik KOI8-T Kazakh - PT154 + PT154, RK1048 Thai ISO-8859-11, TIS-620, CP874, MacThai Laotian diff -uprN libiconv-1.11.orig/tests/Makefile.in libiconv-1.11/tests/Makefile.in --- libiconv-1.11.orig/tests/Makefile.in 2006-07-14 19:19:19.000000000 +0600 +++ libiconv-1.11/tests/Makefile.in 2007-05-25 18:51:15.000000000 +0600 @@ -98,6 +98,7 @@ check : all table-from table-to ../src/i $(srcdir)/check-stateless $(srcdir) Georgian-PS $(srcdir)/check-stateless $(srcdir) KOI8-T $(srcdir)/check-stateless $(srcdir) PT154 + $(srcdir)/check-stateless $(srcdir) RK1048 $(srcdir)/check-stateless $(srcdir) MuleLao-1 $(srcdir)/check-stateless $(srcdir) CP1133 $(srcdir)/check-stateless $(srcdir) TIS-620 diff -uprN libiconv-1.11.orig/tests/Makefile.msvc libiconv-1.11/tests/Makefile.msvc --- libiconv-1.11.orig/tests/Makefile.msvc 2006-05-20 20:39:59.000000000 +0600 +++ libiconv-1.11/tests/Makefile.msvc 2007-05-25 18:51:15.000000000 +0600 @@ -126,6 +126,7 @@ check : all table-from.exe table-to.exe $(srcdir)\check-stateless.bat $(srcdir) Georgian-PS $(srcdir)\check-stateless.bat $(srcdir) KOI8-T $(srcdir)\check-stateless.bat $(srcdir) PT154 + $(srcdir)\check-stateless.bat $(srcdir) RK1048 $(srcdir)\check-stateless.bat $(srcdir) MuleLao-1 $(srcdir)\check-stateless.bat $(srcdir) CP1133 $(srcdir)\check-stateless.bat $(srcdir) TIS-620 diff -uprN libiconv-1.11.orig/tests/Makefile.os2 libiconv-1.11/tests/Makefile.os2 --- libiconv-1.11.orig/tests/Makefile.os2 2006-05-20 20:39:59.000000000 +0600 +++ libiconv-1.11/tests/Makefile.os2 2007-05-25 18:51:15.000000000 +0600 @@ -87,6 +87,7 @@ check : all table-from.exe table-to.exe $(srcdir)\check-stateless $(srcdir) Georgian-PS $(srcdir)\check-stateless $(srcdir) KOI8-T $(srcdir)\check-stateless $(srcdir) PT154 + $(srcdir)\check-stateless $(srcdir) RK1048 $(srcdir)\check-stateless $(srcdir) MuleLao-1 $(srcdir)\check-stateless $(srcdir) CP1133 $(srcdir)\check-stateless $(srcdir) TIS-620 diff -uprN libiconv-1.11.orig/tests/RK1048.TXT libiconv-1.11/tests/RK1048.TXT --- libiconv-1.11.orig/tests/RK1048.TXT 1970-01-01 06:00:00.000000000 +0600 +++ libiconv-1.11/tests/RK1048.TXT 2007-05-25 18:51:15.000000000 +0600 @@ -0,0 +1,255 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x0004 +0x05 0x0005 +0x06 0x0006 +0x07 0x0007 +0x08 0x0008 +0x09 0x0009 +0x0A 0x000A +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x0014 +0x15 0x0015 +0x16 0x0016 +0x17 0x0017 +0x18 0x0018 +0x19 0x0019 +0x1A 0x001A +0x1B 0x001B +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0020 +0x21 0x0021 +0x22 0x0022 +0x23 0x0023 +0x24 0x0024 +0x25 0x0025 +0x26 0x0026 +0x27 0x0027 +0x28 0x0028 +0x29 0x0029 +0x2A 0x002A +0x2B 0x002B +0x2C 0x002C +0x2D 0x002D +0x2E 0x002E +0x2F 0x002F +0x30 0x0030 +0x31 0x0031 +0x32 0x0032 +0x33 0x0033 +0x34 0x0034 +0x35 0x0035 +0x36 0x0036 +0x37 0x0037 +0x38 0x0038 +0x39 0x0039 +0x3A 0x003A +0x3B 0x003B +0x3C 0x003C +0x3D 0x003D +0x3E 0x003E +0x3F 0x003F +0x40 0x0040 +0x41 0x0041 +0x42 0x0042 +0x43 0x0043 +0x44 0x0044 +0x45 0x0045 +0x46 0x0046 +0x47 0x0047 +0x48 0x0048 +0x49 0x0049 +0x4A 0x004A +0x4B 0x004B +0x4C 0x004C +0x4D 0x004D +0x4E 0x004E +0x4F 0x004F +0x50 0x0050 +0x51 0x0051 +0x52 0x0052 +0x53 0x0053 +0x54 0x0054 +0x55 0x0055 +0x56 0x0056 +0x57 0x0057 +0x58 0x0058 +0x59 0x0059 +0x5A 0x005A +0x5B 0x005B +0x5C 0x005C +0x5D 0x005D +0x5E 0x005E +0x5F 0x005F +0x60 0x0060 +0x61 0x0061 +0x62 0x0062 +0x63 0x0063 +0x64 0x0064 +0x65 0x0065 +0x66 0x0066 +0x67 0x0067 +0x68 0x0068 +0x69 0x0069 +0x6A 0x006A +0x6B 0x006B +0x6C 0x006C +0x6D 0x006D +0x6E 0x006E +0x6F 0x006F +0x70 0x0070 +0x71 0x0071 +0x72 0x0072 +0x73 0x0073 +0x74 0x0074 +0x75 0x0075 +0x76 0x0076 +0x77 0x0077 +0x78 0x0078 +0x79 0x0079 +0x7A 0x007A +0x7B 0x007B +0x7C 0x007C +0x7D 0x007D +0x7E 0x007E +0x7F 0x007F +0x80 0x0402 +0x81 0x0403 +0x82 0x201A +0x83 0x0453 +0x84 0x201E +0x85 0x2026 +0x86 0x2020 +0x87 0x2021 +0x88 0x20AC +0x89 0x2030 +0x8A 0x0409 +0x8B 0x2039 +0x8C 0x040A +0x8D 0x049A +0x8E 0x04BA +0x8F 0x040F +0x90 0x0452 +0x91 0x2018 +0x92 0x2019 +0x93 0x201C +0x94 0x201D +0x95 0x2022 +0x96 0x2013 +0x97 0x2014 +0x99 0x2122 +0x9A 0x0459 +0x9B 0x203A +0x9C 0x045A +0x9D 0x049B +0x9E 0x04BB +0x9F 0x045F +0xA0 0x00A0 +0xA1 0x04B0 +0xA2 0x04B1 +0xA3 0x04D8 +0xA4 0x00A4 +0xA5 0x04E8 +0xA6 0x00A6 +0xA7 0x00A7 +0xA8 0x0401 +0xA9 0x00A9 +0xAA 0x0492 +0xAB 0x00AB +0xAC 0x00AC +0xAD 0x00AD +0xAE 0x00AE +0xAF 0x04AE +0xB0 0x00B0 +0xB1 0x00B1 +0xB2 0x0406 +0xB3 0x0456 +0xB4 0x04E9 +0xB5 0x00B5 +0xB6 0x00B6 +0xB7 0x00B7 +0xB8 0x0451 +0xB9 0x2116 +0xBA 0x0493 +0xBB 0x00BB +0xBC 0x04D9 +0xBD 0x04A2 +0xBE 0x04A3 +0xBF 0x04AF +0xC0 0x0410 +0xC1 0x0411 +0xC2 0x0412 +0xC3 0x0413 +0xC4 0x0414 +0xC5 0x0415 +0xC6 0x0416 +0xC7 0x0417 +0xC8 0x0418 +0xC9 0x0419 +0xCA 0x041A +0xCB 0x041B +0xCC 0x041C +0xCD 0x041D +0xCE 0x041E +0xCF 0x041F +0xD0 0x0420 +0xD1 0x0421 +0xD2 0x0422 +0xD3 0x0423 +0xD4 0x0424 +0xD5 0x0425 +0xD6 0x0426 +0xD7 0x0427 +0xD8 0x0428 +0xD9 0x0429 +0xDA 0x042A +0xDB 0x042B +0xDC 0x042C +0xDD 0x042D +0xDE 0x042E +0xDF 0x042F +0xE0 0x0430 +0xE1 0x0431 +0xE2 0x0432 +0xE3 0x0433 +0xE4 0x0434 +0xE5 0x0435 +0xE6 0x0436 +0xE7 0x0437 +0xE8 0x0438 +0xE9 0x0439 +0xEA 0x043A +0xEB 0x043B +0xEC 0x043C +0xED 0x043D +0xEE 0x043E +0xEF 0x043F +0xF0 0x0440 +0xF1 0x0441 +0xF2 0x0442 +0xF3 0x0443 +0xF4 0x0444 +0xF5 0x0445 +0xF6 0x0446 +0xF7 0x0447 +0xF8 0x0448 +0xF9 0x0449 +0xFA 0x044A +0xFB 0x044B +0xFC 0x044C +0xFD 0x044D +0xFE 0x044E +0xFF 0x044F