summaryrefslogtreecommitdiff
path: root/MSVC/iconv/converters.h
diff options
context:
space:
mode:
authorpixel <pixel>2006-01-31 17:02:38 +0000
committerpixel <pixel>2006-01-31 17:02:38 +0000
commit6daac4eb3604736e20e8af5733f698eb144f0c2a (patch)
tree7a684f120b20e0aae0ecbedcaad480cdae581200 /MSVC/iconv/converters.h
parent6634b5d65d21b826830d7601178453a0a3084e8d (diff)
Way too much changes - all over.
Diffstat (limited to 'MSVC/iconv/converters.h')
-rw-r--r--MSVC/iconv/converters.h278
1 files changed, 278 insertions, 0 deletions
diff --git a/MSVC/iconv/converters.h b/MSVC/iconv/converters.h
new file mode 100644
index 0000000..ddf6ab1
--- /dev/null
+++ b/MSVC/iconv/converters.h
@@ -0,0 +1,278 @@
+/*
+ * 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., 59 Temple Place -
+ * Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/* This file defines all the converters. */
+
+
+/* Our own notion of wide character, as UCS-4, according to ISO-10646-1. */
+typedef unsigned int ucs4_t;
+
+/* State used by a conversion. 0 denotes the initial state. */
+typedef unsigned int state_t;
+
+/* iconv_t is an opaque type. This is the real iconv_t type. */
+typedef struct conv_struct * conv_t;
+
+/*
+ * Data type for conversion multibyte -> unicode
+ */
+struct mbtowc_funcs {
+ int (*xxx_mbtowc) (conv_t conv, ucs4_t *pwc, unsigned char const *s, int n);
+ /*
+ * int xxx_mbtowc (conv_t conv, ucs4_t *pwc, unsigned char const *s, int n)
+ * converts the byte sequence starting at s to a wide character. Up to n bytes
+ * are available at s. n is >= 1.
+ * Result is number of bytes consumed (if a wide character was read),
+ * or -1 if invalid, or -2 if n too small, or -2-(number of bytes consumed)
+ * if only a shift sequence was read.
+ */
+ int (*xxx_flushwc) (conv_t conv, ucs4_t *pwc);
+ /*
+ * int xxx_flushwc (conv_t conv, ucs4_t *pwc)
+ * returns to the initial state and stores the pending wide character, if any.
+ * Result is 1 (if a wide character was read) or 0 if none was pending.
+ */
+};
+
+/* Return code if invalid. (xxx_mbtowc) */
+#define RET_ILSEQ -1
+/* Return code if only a shift sequence of n bytes was read. (xxx_mbtowc) */
+#define RET_TOOFEW(n) (-2-(n))
+
+/*
+ * Data type for conversion unicode -> multibyte
+ */
+struct wctomb_funcs {
+ int (*xxx_wctomb) (conv_t conv, unsigned char *r, ucs4_t wc, int n);
+ /*
+ * int xxx_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
+ * converts the wide character wc to the character set xxx, and stores the
+ * result beginning at r. Up to n bytes may be written at r. n is >= 1.
+ * Result is number of bytes written, or -1 if invalid, or -2 if n too small.
+ */
+ int (*xxx_reset) (conv_t conv, unsigned char *r, int n);
+ /*
+ * int xxx_reset (conv_t conv, unsigned char *r, int n)
+ * stores a shift sequences returning to the initial state beginning at r.
+ * Up to n bytes may be written at r. n is >= 0.
+ * Result is number of bytes written, or -2 if n too small.
+ */
+};
+
+/* Return code if invalid. (xxx_wctomb) */
+#define RET_ILUNI -1
+/* Return code if output buffer is too small. (xxx_wctomb, xxx_reset) */
+#define RET_TOOSMALL -2
+
+/*
+ * Contents of a conversion descriptor.
+ */
+struct conv_struct {
+ struct loop_funcs lfuncs;
+ /* Input (conversion multibyte -> unicode) */
+ int iindex;
+ struct mbtowc_funcs ifuncs;
+ state_t istate;
+ /* Output (conversion unicode -> multibyte) */
+ int oindex;
+ struct wctomb_funcs ofuncs;
+ int oflags;
+ state_t ostate;
+ /* Operation flags */
+ int transliterate;
+ int discard_ilseq;
+};
+
+/*
+ * Include all the converters.
+ */
+
+#include "ascii.h"
+
+/* General multi-byte encodings */
+#include "utf8.h"
+#include "ucs2.h"
+#include "ucs2be.h"
+#include "ucs2le.h"
+#include "ucs4.h"
+#include "ucs4be.h"
+#include "ucs4le.h"
+#include "utf16.h"
+#include "utf16be.h"
+#include "utf16le.h"
+#include "utf32.h"
+#include "utf32be.h"
+#include "utf32le.h"
+#include "utf7.h"
+#include "ucs2internal.h"
+#include "ucs2swapped.h"
+#include "ucs4internal.h"
+#include "ucs4swapped.h"
+#include "c99.h"
+#include "java.h"
+
+/* 8-bit encodings */
+#include "iso8859_1.h"
+#include "iso8859_2.h"
+#include "iso8859_3.h"
+#include "iso8859_4.h"
+#include "iso8859_5.h"
+#include "iso8859_6.h"
+#include "iso8859_7.h"
+#include "iso8859_8.h"
+#include "iso8859_9.h"
+#include "iso8859_10.h"
+#include "iso8859_13.h"
+#include "iso8859_14.h"
+#include "iso8859_15.h"
+#include "iso8859_16.h"
+#include "koi8_r.h"
+#include "koi8_u.h"
+#include "koi8_ru.h"
+#include "cp1250.h"
+#include "cp1251.h"
+#include "cp1252.h"
+#include "cp1253.h"
+#include "cp1254.h"
+#include "cp1255.h"
+#include "cp1256.h"
+#include "cp1257.h"
+#include "cp1258.h"
+#include "cp850.h"
+#include "cp862.h"
+#include "cp866.h"
+#include "mac_roman.h"
+#include "mac_centraleurope.h"
+#include "mac_iceland.h"
+#include "mac_croatian.h"
+#include "mac_romania.h"
+#include "mac_cyrillic.h"
+#include "mac_ukraine.h"
+#include "mac_greek.h"
+#include "mac_turkish.h"
+#include "mac_hebrew.h"
+#include "mac_arabic.h"
+#include "mac_thai.h"
+#include "hp_roman8.h"
+#include "nextstep.h"
+#include "armscii_8.h"
+#include "georgian_academy.h"
+#include "georgian_ps.h"
+#include "koi8_t.h"
+#include "mulelao.h"
+#include "cp1133.h"
+#include "tis620.h"
+#include "cp874.h"
+#include "viscii.h"
+#include "tcvn.h"
+
+/* CJK character sets [CCS = coded character set] [CJKV.INF chapter 3] */
+
+typedef struct {
+ unsigned short indx; /* index into big table */
+ unsigned short used; /* bitmask of used entries */
+} Summary16;
+
+#include "iso646_jp.h"
+#include "jisx0201.h"
+#include "jisx0208.h"
+#include "jisx0212.h"
+
+#include "iso646_cn.h"
+#include "gb2312.h"
+#include "isoir165.h"
+/*#include "gb12345.h"*/
+#include "gbk.h"
+#include "cns11643.h"
+#include "big5.h"
+
+#include "ksc5601.h"
+#include "johab_hangul.h"
+
+/* CJK encodings [CES = character encoding scheme] [CJKV.INF chapter 4] */
+
+#include "euc_jp.h"
+#include "sjis.h"
+#include "cp932.h"
+#include "iso2022_jp.h"
+#include "iso2022_jp1.h"
+#include "iso2022_jp2.h"
+
+#include "euc_cn.h"
+#include "ces_gbk.h"
+#include "gb18030.h"
+#include "iso2022_cn.h"
+#include "iso2022_cnext.h"
+#include "hz.h"
+#include "euc_tw.h"
+#include "ces_big5.h"
+#include "cp950.h"
+#include "big5hkscs.h"
+
+#include "euc_kr.h"
+#include "cp949.h"
+#include "johab.h"
+#include "iso2022_kr.h"
+
+/* Encodings used by system dependent locales. */
+
+#ifdef USE_AIX
+#include "cp856.h"
+#include "cp922.h"
+#include "cp943.h"
+#include "cp1046.h"
+#include "cp1124.h"
+#include "cp1129.h"
+#include "cp1161.h"
+#include "cp1162.h"
+#include "cp1163.h"
+#endif
+
+#ifdef USE_OSF1
+#include "dec_kanji.h"
+#include "dec_hanyu.h"
+#endif
+
+#ifdef USE_DOS
+#include "cp437.h"
+#include "cp737.h"
+#include "cp775.h"
+#include "cp852.h"
+#include "cp853.h"
+#include "cp855.h"
+#include "cp857.h"
+#include "cp858.h"
+#include "cp860.h"
+#include "cp861.h"
+#include "cp863.h"
+#include "cp864.h"
+#include "cp865.h"
+#include "cp869.h"
+#include "cp1125.h"
+#endif
+
+#ifdef USE_EXTRA
+#include "euc_jisx0213.h"
+#include "shift_jisx0213.h"
+#include "iso2022_jp3.h"
+#include "tds565.h"
+#include "riscos1.h"
+#endif
+