diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2004-01-27 23:26:26 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2004-01-27 23:26:26 +0000 |
commit | 01e0a777491a7d5bf48ea704df7bc0965d4e8883 (patch) | |
tree | ab47784a74cf30131ae6cb6e08c4d5045b125992 /newlib/libc/iconv/lib/ccs.c | |
parent | ef33379be8be59c475cdb280e2e2f414fe1c2a8e (diff) | |
download | cygnal-01e0a777491a7d5bf48ea704df7bc0965d4e8883.tar.gz cygnal-01e0a777491a7d5bf48ea704df7bc0965d4e8883.tar.bz2 cygnal-01e0a777491a7d5bf48ea704df7bc0965d4e8883.zip |
2004-01-27 Artem B. Bityuckiy <abitytsky@softminecorp.com>
* configure.in: Add support to generate iconv converter flags
for newlib.h
* newlib.hin: Add iconv converter flags.
* configure: Regenerated.
* libc/Makefile.in: Ditto.
* libc/configure.in: Moved iconv converter parsing logic to
top level newlib configure.in.
* libc/configure: Regenerated.
* libc/iconv/Makefile.in: Ditto.
* libc/iconv/README.TODO
* libc/iconv/charset.aliases: Remove wrong BE aliases for
UCS2/UCS4/UTF8.
* libc/iconv/ccs/Makefile.am: Remove C flag setting now that
newlib.h can be used.
* libc/iconv/ces/Makefile.am: Ditto.
* libc/iconv/lib/Makefile.am: Ditto.
* libc/iconv/ccs/Makefile.in: Regenerated.
* libc/iconv/ces/Makefile.in: Ditto.
* libc/iconv/lib/Makefile.in: Ditto.
* libc/iconv/ccs/README.CCS.SOURCES: Updated.
* libc/iconv/ccs/iconv_mktbl: Don't write junk strings to binaries.
* libc/iconv/ccs/big5.c: Switch to use new underscored flags
defined in newlib.h.
* libc/iconv/ccs/cns11643_plane1.c: Ditto.
* libc/iconv/ccs/cns11643_plane14.c: Ditto.
* libc/iconv/ccs/cns11643_plane2.c: Ditto.
* libc/iconv/ccs/cp775.c: Ditto.
* libc/iconv/ccs/cp850.c: Ditto.
* libc/iconv/ccs/cp852.c: Ditto.
* libc/iconv/ccs/cp855.c: Ditto.
* libc/iconv/ccs/cp866.c: Ditto.
* libc/iconv/ccs/gb_2312_80.c: Ditto.
* libc/iconv/ccs/iso_8859_1.c: Ditto.
* libc/iconv/ccs/iso_8859_15.c: Ditto.
* libc/iconv/ccs/iso_8859_2.c: Ditto.
* libc/iconv/ccs/iso_8859_4.c: Ditto.
* libc/iconv/ccs/iso_8859_5.c: Ditto.
* libc/iconv/ccs/jis_x0201.c: Ditto.
* libc/iconv/ccs/jis_x0208_1983.c: Ditto.
* libc/iconv/ccs/jis_x0212_1990.c: Ditto.
* libc/iconv/ccs/koi8_r.c: Ditto.
* libc/iconv/ccs/koi8_u.c: Ditto.
* libc/iconv/ccs/ksx1001.c: Ditto.
* libc/iconv/ccs/shift_jis.c: Ditto.
* libc/iconv/ccs/us_ascii.c: Ditto.
* libc/iconv/ccs/binary/big5.cct: Newly generated.
* libc/iconv/ccs/binary/cns11643_plane1.cct: Ditto.
* libc/iconv/ccs/binary/cns11643_plane14.cct: Ditto.
* libc/iconv/ccs/binary/cns11643_plane2.cct: Ditto.
* libc/iconv/ccs/binary/cp775.cct: Ditto.
* libc/iconv/ccs/binary/cp850.cct: Ditto.
* libc/iconv/ccs/binary/cp852.cct: Ditto.
* libc/iconv/ccs/binary/cp855.cct: Ditto.
* libc/iconv/ccs/binary/cp866.cct: Ditto.
* libc/iconv/ccs/binary/gb_2312_80.cct: Ditto.
* libc/iconv/ccs/binary/iso_8859_1.cct: Ditto.
* libc/iconv/ccs/binary/iso_8859_15.cct: Ditto.
* libc/iconv/ccs/binary/iso_8859_2.cct: Ditto.
* libc/iconv/ccs/binary/iso_8859_4.cct: Ditto.
* libc/iconv/ccs/binary/iso_8859_5.cct: Ditto.
* libc/iconv/ccs/binary/jis_x0201.cct: Ditto.
* libc/iconv/ccs/binary/jis_x0208_1983.cct: Ditto.
* libc/iconv/ccs/binary/jis_x0212_1990.cct: Ditto.
* libc/iconv/ccs/binary/koi8_r.cct: Ditto.
* libc/iconv/ccs/binary/koi8_u.cct: Ditto.
* libc/iconv/ccs/binary/ksx1001.cct: Ditto.
* libc/iconv/ccs/binary/shift_jis.cct: Ditto.
* libc/iconv/ccs/binary/us_ascii.cct: Ditto.
* libc/iconv/lib/bialiasesi.c: Sync with charset.aliases.
* libc/iconv/ces/euc-jp.c: Use newlib.h macros.
* libc/iconv/ces/euc-kr.c: Ditto.
* libc/iconv/ces/euc-tw.c: Ditto.
* libc/iconv/ces/gb2312.c: Ditto.
* libc/iconv/ces/iso-10646-ucs-2.c: Ditto.
* libc/iconv/ces/iso-10646-ucs-4.c: Ditto.
* libc/iconv/ces/ucs-2-internal.c: Ditto.
* libc/iconv/ces/ucs-4-internal.c: Ditto.
* libc/iconv/ces/utf-16.c: Ditto.
* libc/iconv/ces/utf-8.c: Ditto.
* libc/iconv/lib/aliases.c: Ditto.
* libc/iconv/lib/biccs.c: Ditto.
* libc/iconv/lib/bices.c: Ditto.
* libc/iconv/lib/ccs.c: Ditto.
* libc/iconv/lib/ces.c: Ditto.
* libc/iconv/lib/ces_euc.c: Ditto.
* libc/iconv/lib/ces_iso2022.c: Ditto.
* libc/iconv/lib/ces_table.c: Ditto.
* libc/iconv/lib/converter.c: Ditto.
* libc/iconv/lib/deps.h: Ditto.
* libc/iconv/lib/endian.h: Ditto.
* libc/iconv/lib/iconv.c: Ditto.
* libc/iconv/lib/loaddata.c: Ditto.
* libc/iconv/lib/local.h: Include newlib.h.
* libc/argz/Makefile.in: Regenerated.
* libc/ctype/Makefile.in: Ditto.
* libc/errno/Makefile.in: Ditto.
* libc/iconv/ccs/binary/Makefile.in: Ditto.
* libc/locale/Makefile.in: Ditto.
* libc/misc/Makefile.in: Ditto.
* libc/posix/Makefile.in: Ditto.
* libc/reent/Makefile.in: Ditto.
* libc/search/Makefile.in: Ditto.
* libc/signal/Makefile.in: Ditto.
* libc/stdio/Makefile.in: Ditto.
* libc/stdio64/Makefile.in: Ditto.
* libc/stdlib/Makefile.in: Ditto.
* libc/string/Makefile.in: Ditto.
* libc/syscalls/Makefile.in: Ditto.
* libc/time/Makefile.in: Ditto.
* libc/unix/Makefile.in: Ditto.
* testsuite/newlib.iconv/iconv.exp: New file.
* testsuite/newlib.iconv/iconvjp.c: Ditto.
* testsuite/newlib.iconv/iconvnm.c: Ditto.
* testsuite/newlib.iconv/iconvru.c: Ditto.
Diffstat (limited to 'newlib/libc/iconv/lib/ccs.c')
-rw-r--r-- | newlib/libc/iconv/lib/ccs.c | 85 |
1 files changed, 40 insertions, 45 deletions
diff --git a/newlib/libc/iconv/lib/ccs.c b/newlib/libc/iconv/lib/ccs.c index 856223ec0..79c64ff5e 100644 --- a/newlib/libc/iconv/lib/ccs.c +++ b/newlib/libc/iconv/lib/ccs.c @@ -25,15 +25,12 @@ * * iconv (Charset Conversion Library) v2.0 */ -#ifdef ENABLE_ICONV - #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <reent.h> #include <endian.h> -#include <_ansi.h> #include <sys/param.h> #include <sys/types.h> #include "local.h" @@ -96,7 +93,7 @@ _DEFUN(letohl, (s), __uint32_t l) typedef struct { unsigned char label[8]; /* CSconvT<N>; N=[0-3] */ __uint32_t tables[2]; /* offsets to 2 unidirectional tables */ -} iconv_ccs_convtable; +} iconv_ccs_convtable_t; #define ICONV_TBL_LABEL "\003CSCT" #define ICONV_TBL_LABEL_SIZE 5 @@ -105,7 +102,7 @@ typedef struct { #define ICONV_TBL_VERSION(table) ((table)->label[7]) /* Indices for unidirectional conversion tables */ -enum { iconv_ccs_to_ucs = 0, iconv_ccs_from_ucs = 1 }; +enum { _iconv_ccs_to_ucs = 0, _iconv_ccs_from_ucs = 1 }; /* Unidirectional conversion table types */ @@ -113,29 +110,29 @@ enum { iconv_ccs_to_ucs = 0, iconv_ccs_from_ucs = 1 }; /* one-level tables */ typedef struct { ucs2_t data[128]; -} iconv_ccs_table_7bit; /* 7-bit charset to Unicode */ +} iconv_ccs_table_7bit_t; /* 7-bit charset to Unicode */ typedef struct { ucs2_t data[256]; -} iconv_ccs_table_8bit; /* 8-bit charset to Unicode */ +} iconv_ccs_table_8bit_t; /* 8-bit charset to Unicode */ /* two-level tables */ typedef struct { __uint32_t data[128]; -} iconv_ccs_table_14bit; /* 14-bit charset to Unicode */ +} iconv_ccs_table_14bit_t; /* 14-bit charset to Unicode */ typedef struct { __uint32_t data[256]; -} iconv_ccs_table_16bit; /* 16-bit charset to Unicode; - * Unicode to any charset */ +} iconv_ccs_table_16bit_t; /* 16-bit charset to Unicode; + * Unicode to any charset */ /* abstract table */ typedef union { - iconv_ccs_table_7bit _7bit; - iconv_ccs_table_8bit _8bit; - iconv_ccs_table_14bit _14bit; - iconv_ccs_table_16bit _16bit; -} iconv_ccs_table_abstract; + iconv_ccs_table_7bit_t _7bit; + iconv_ccs_table_8bit_t _8bit; + iconv_ccs_table_14bit_t _14bit; + iconv_ccs_table_16bit_t _16bit; +} iconv_ccs_table_abstract_t; /* host and network byte order array element macros */ #define iconv_table_elt_le(base, i, type) \ @@ -144,7 +141,7 @@ typedef union { #define iconv_table_elt_be(base, i, type) \ ((type *)(((char *)(base)) + betohl(((__int32_t *)(base))[(i)]))) -#define abstable ((_CONST iconv_ccs_table_abstract *)table) +#define abstable ((_CONST iconv_ccs_table_abstract_t *)table) /* Functions for little endian byte order tables */ static ucs2_t @@ -168,11 +165,11 @@ _DEFUN(cvt_14bit_le, (table, ch), _CONST _VOID_PTR table _AND ucs2_t ch) { - _CONST iconv_ccs_table_7bit *sub_table; + _CONST iconv_ccs_table_7bit_t *sub_table; if (ch & 0x8080) return UCS_CHAR_INVALID; - sub_table = iconv_table_elt_le(table, ch >> 8, iconv_ccs_table_7bit); + sub_table = iconv_table_elt_le(table, ch >> 8, iconv_ccs_table_7bit_t); return sub_table == &(abstable->_7bit) ? UCS_CHAR_INVALID : letohs(sub_table->data[ch & 0x7F]); } @@ -182,8 +179,8 @@ _DEFUN(cvt_16bit_le, (table, ch), _CONST _VOID_PTR table _AND ucs2_t ch) { - _CONST iconv_ccs_table_8bit *sub_table = - iconv_table_elt_le(table, ch >> 8, iconv_ccs_table_8bit); + _CONST iconv_ccs_table_8bit_t *sub_table = + iconv_table_elt_le(table, ch >> 8, iconv_ccs_table_8bit_t); return sub_table == &(abstable->_8bit) ? UCS_CHAR_INVALID : letohs(sub_table->data[ch & 0xFF]); } @@ -215,11 +212,11 @@ _DEFUN(cvt_14bit_be, (table, ch), _CONST _VOID_PTR table _AND ucs2_t ch) { - _CONST iconv_ccs_table_7bit *sub_table; + _CONST iconv_ccs_table_7bit_t *sub_table; if (ch & 0x8080) return UCS_CHAR_INVALID; - sub_table = iconv_table_elt_be(table, ch >> 8, iconv_ccs_table_7bit); + sub_table = iconv_table_elt_be(table, ch >> 8, iconv_ccs_table_7bit_t); return sub_table == &(abstable->_7bit) ? UCS_CHAR_INVALID : betohs(sub_table->data[ch & 0x7F]); } @@ -229,8 +226,8 @@ _DEFUN(cvt_16bit_be, (table, ch), _CONST _VOID_PTR table _AND ucs2_t ch) { - _CONST iconv_ccs_table_8bit *sub_table = - iconv_table_elt_be(table, ch >> 8, iconv_ccs_table_8bit); + _CONST iconv_ccs_table_8bit_t *sub_table = + iconv_table_elt_be(table, ch >> 8, iconv_ccs_table_8bit_t); return sub_table == &(abstable->_8bit) ? UCS_CHAR_INVALID : betohs(sub_table->data[ch & 0xFF]); } @@ -245,7 +242,7 @@ static iconv_ccs_convert_t * _CONST converters_be[] = { static int _DEFUN(ccs_init, (ccs, table), struct iconv_ccs *ccs _AND - _CONST iconv_ccs_convtable *table) + _CONST iconv_ccs_convtable_t *table) { if (strncmp(table->label, ICONV_TBL_LABEL, ICONV_TBL_LABEL_SIZE)) return EINVAL; @@ -256,21 +253,21 @@ _DEFUN(ccs_init, (ccs, table), if (ICONV_TBL_BYTE_ORDER(table) == ICONV_CCT_LE) { /* Little Endian */ ccs->from_ucs = iconv_table_elt_le(table->tables, - iconv_ccs_from_ucs, - _CONST iconv_ccs_convtable); + _iconv_ccs_from_ucs, + _CONST iconv_ccs_convtable_t); ccs->to_ucs = iconv_table_elt_le(table->tables, - iconv_ccs_to_ucs, - _CONST iconv_ccs_convtable); + _iconv_ccs_to_ucs, + _CONST iconv_ccs_convtable_t); ccs->convert_from_ucs = cvt_16bit_le; ccs->convert_to_ucs = converters_le[ICONV_TBL_VERSION(table)]; } else { /* Big Endian (Network Byte Order) */ ccs->from_ucs = iconv_table_elt_be(table->tables, - iconv_ccs_from_ucs, - _CONST iconv_ccs_convtable); + _iconv_ccs_from_ucs, + _CONST iconv_ccs_convtable_t); ccs->to_ucs = iconv_table_elt_be(table->tables, - iconv_ccs_to_ucs, - _CONST iconv_ccs_convtable); + _iconv_ccs_to_ucs, + _CONST iconv_ccs_convtable_t); ccs->convert_from_ucs = cvt_16bit_be; ccs->convert_to_ucs = converters_be[ICONV_TBL_VERSION(table)]; } @@ -291,10 +288,10 @@ _DEFUN(iconv_ccs_init_builtin, (ccs, name), struct iconv_ccs *ccs _AND _CONST char *name) { - _CONST iconv_builtin_table *ccs_ptr; - for (ccs_ptr = iconv_builtin_ccs; ccs_ptr->key != NULL; ccs_ptr ++) { + _CONST iconv_builtin_table_t *ccs_ptr; + for (ccs_ptr = _iconv_builtin_ccs; ccs_ptr->key != NULL; ccs_ptr ++) { if (strcmp(ccs_ptr->key, name) == 0) { - int res = ccs_init(ccs, (_CONST iconv_ccs_convtable *) + int res = ccs_init(ccs, (_CONST iconv_ccs_convtable_t *) (ccs_ptr->value)); if (res == 0) ccs->close = close_builtin; @@ -306,7 +303,7 @@ _DEFUN(iconv_ccs_init_builtin, (ccs, name), /* External CCS initialisation */ struct external_extra { - _CONST iconv_ccs_convtable *ptr; + _CONST iconv_ccs_convtable_t *ptr; off_t size; }; @@ -327,7 +324,7 @@ _DEFUN(iconv_ccs_init_external, (rptr, ccs, name), _CONST char *name) { char *file; - _CONST iconv_ccs_convtable *ccs_ptr; + _CONST iconv_ccs_convtable_t *ccs_ptr; _CONST char *datapath; _iconv_fd_t *extra; @@ -358,7 +355,7 @@ _DEFUN(iconv_ccs_init_external, (rptr, ccs, name), } _free_r(rptr, (_VOID_PTR)name); - ccs_ptr = (_CONST iconv_ccs_convtable *)extra->mem; + ccs_ptr = (_CONST iconv_ccs_convtable_t *)extra->mem; if (ccs_init(ccs, ccs_ptr) != 0) { _iconv_unload_file(rptr, extra); _free_r(rptr, (_VOID_PTR)extra); @@ -371,10 +368,10 @@ _DEFUN(iconv_ccs_init_external, (rptr, ccs, name), } int -_DEFUN(iconv_ccs_init, (rptr, ccs, name), - struct _reent *rptr _AND - struct iconv_ccs *ccs _AND - _CONST char *name) +_DEFUN(_iconv_ccs_init, (rptr, ccs, name), + struct _reent *rptr _AND + struct iconv_ccs *ccs _AND + _CONST char *name) { int res = iconv_ccs_init_builtin(ccs, name); if (res) @@ -384,5 +381,3 @@ _DEFUN(iconv_ccs_init, (rptr, ccs, name), return res; } -#endif /* #ifdef ENABLE_ICONV */ - |