1 /* 2 * This file is part of the TINICONV Library. 3 * 4 * The TINICONV Library is free software; you can redistribute it 5 * and/or modify it under the terms of the GNU Library General Public 6 * License version 2 as published by the Free Software Foundation. 7 */ 8 // ---------------------------------------------------------------------------- 9 // Copyright (C) 2014 10 // David Freese, W1HKJ 11 // 12 // This file is part of fldigi 13 // 14 // fldigi is distributed in the hope that it will be useful, 15 // but WITHOUT ANY WARRANTY; without even the implied warranty of 16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 // GNU General Public License for more details. 18 // 19 // You should have received a copy of the GNU General Public License 20 // along with this program. If not, see <http://www.gnu.org/licenses/>. 21 // ---------------------------------------------------------------------------- 22 23 #include "tiniconv_int.h" 24 25 #include <assert.h> 26 27 #define abort() assert(0) 28 #define NULL 0 29 30 #include "encdec/ascii.h" 31 32 #include "encdec/cp1250.h" 33 #include "encdec/cp1251.h" 34 #include "encdec/cp1252.h" 35 #include "encdec/cp1253.h" 36 #include "encdec/cp1254.h" 37 #include "encdec/cp1255.h" 38 #include "encdec/cp1256.h" 39 #include "encdec/cp1257.h" 40 #include "encdec/cp1258.h" 41 42 #include "encdec/iso8859_1.h" 43 #include "encdec/iso8859_2.h" 44 #include "encdec/iso8859_3.h" 45 #include "encdec/iso8859_4.h" 46 #include "encdec/iso8859_5.h" 47 #include "encdec/iso8859_6.h" 48 #include "encdec/iso8859_7.h" 49 #include "encdec/iso8859_8.h" 50 #include "encdec/iso8859_9.h" 51 #include "encdec/iso8859_10.h" 52 #include "encdec/iso8859_11.h" 53 #include "encdec/iso8859_13.h" 54 #include "encdec/iso8859_14.h" 55 #include "encdec/iso8859_15.h" 56 #include "encdec/iso8859_16.h" 57 58 #include "encdec/cp866.h" 59 #include "encdec/koi8_r.h" 60 #include "encdec/koi8_ru.h" 61 #include "encdec/koi8_u.h" 62 #include "encdec/mac_cyrillic.h" 63 64 #include "encdec/ucs2.h" 65 #include "encdec/utf7.h" 66 #include "encdec/utf8.h" 67 68 #include "encdec/gb2312.h" /* is needed for euc_cn.h */ 69 #include "encdec/euc_cn.h" 70 #include "encdec/gbk.h" 71 #include "encdec/ces_gbk.h" 72 #include "encdec/big5.h" /* is needed for ces_big5.h */ 73 #include "encdec/ces_big5.h" 74 #include "encdec/jisx0208.h" 75 #include "encdec/jisx0201.h" 76 77 #include "encdec/cp936.h" 78 #include "encdec/iso2022_jp.h" 79 80 const struct tiniconv_charset_map_entry_s tiniconv_charset_map[] = 81 { 82 {ascii_mbtowc, NULL, ascii_wctomb, NULL }, /* 0 */ 83 {cp1250_mbtowc, NULL, cp1250_wctomb, NULL }, /* 1 */ 84 {cp1251_mbtowc, NULL, cp1251_wctomb, NULL }, /* 2 */ 85 {cp1252_mbtowc, NULL, cp1252_wctomb, NULL }, /* 3 */ 86 {cp1253_mbtowc, NULL, cp1253_wctomb, NULL }, /* 4 */ 87 {cp1254_mbtowc, NULL, cp1254_wctomb, NULL }, /* 5 */ 88 {cp1255_mbtowc, cp1255_flushwc, cp1255_wctomb, NULL }, /* 6 */ 89 {cp1256_mbtowc, NULL, cp1256_wctomb, NULL }, /* 7 */ 90 {cp1257_mbtowc, NULL, cp1257_wctomb, NULL }, /* 8 */ 91 {cp1258_mbtowc, cp1258_flushwc, cp1258_wctomb, NULL }, /* 9 */ 92 {cp936_mbtowc, NULL, cp936_wctomb, NULL }, /* 10 */ 93 {euc_cn_mbtowc, NULL, euc_cn_wctomb, NULL }, /* 11 */ 94 {gbk_mbtowc, NULL, gbk_wctomb, NULL }, /* 12 */ 95 {iso2022_jp_mbtowc, NULL, iso2022_jp_wctomb, iso2022_jp_reset}, /* 13 */ 96 {iso8859_1_mbtowc, NULL, iso8859_1_wctomb, NULL }, /* 14 */ 97 {iso8859_2_mbtowc, NULL, iso8859_2_wctomb, NULL }, /* 15 */ 98 {iso8859_3_mbtowc, NULL, iso8859_3_wctomb, NULL }, /* 16 */ 99 {iso8859_4_mbtowc, NULL, iso8859_4_wctomb, NULL }, /* 17 */ 100 {iso8859_5_mbtowc, NULL, iso8859_5_wctomb, NULL }, /* 18 */ 101 {iso8859_6_mbtowc, NULL, iso8859_6_wctomb, NULL }, /* 19 */ 102 {iso8859_7_mbtowc, NULL, iso8859_7_wctomb, NULL }, /* 20 */ 103 {iso8859_8_mbtowc, NULL, iso8859_8_wctomb, NULL }, /* 21 */ 104 {iso8859_9_mbtowc, NULL, iso8859_9_wctomb, NULL }, /* 22 */ 105 {iso8859_10_mbtowc, NULL, iso8859_10_wctomb, NULL }, /* 23 */ 106 {iso8859_11_mbtowc, NULL, iso8859_11_wctomb, NULL }, /* 24 */ 107 {iso8859_13_mbtowc, NULL, iso8859_13_wctomb, NULL }, /* 25 */ 108 {iso8859_14_mbtowc, NULL, iso8859_14_wctomb, NULL }, /* 26 */ 109 {iso8859_15_mbtowc, NULL, iso8859_15_wctomb, NULL }, /* 27 */ 110 {iso8859_16_mbtowc, NULL, iso8859_16_wctomb, NULL }, /* 28 */ 111 {cp866_mbtowc, NULL, cp866_wctomb, NULL }, /* 29 */ 112 {koi8_r_mbtowc, NULL, koi8_r_wctomb, NULL }, /* 30 */ 113 {koi8_ru_mbtowc, NULL, koi8_ru_wctomb, NULL }, /* 31 */ 114 {koi8_u_mbtowc, NULL, koi8_u_wctomb, NULL }, /* 32 */ 115 {mac_cyrillic_mbtowc, NULL, mac_cyrillic_wctomb, NULL }, /* 33 */ 116 {ucs2_mbtowc, NULL, ucs2_wctomb, NULL }, /* 34 */ 117 {utf7_mbtowc, NULL, utf7_wctomb, utf7_reset }, /* 35 */ 118 {utf8_mbtowc, NULL, utf8_wctomb, NULL }, /* 36 */ 119 {gb2312_mbtowc, NULL, gb2312_wctomb, NULL }, /* 37, CHINESE */ 120 {ces_big5_mbtowc, NULL, ces_big5_wctomb, NULL }, /* 38 */ 121 {NULL, NULL, NULL, NULL } 122 }; 123