Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/iconv/ces')
-rw-r--r--newlib/libc/iconv/ces/Makefile.am62
-rw-r--r--newlib/libc/iconv/ces/Makefile.in369
-rw-r--r--newlib/libc/iconv/ces/cesbi.c401
-rw-r--r--newlib/libc/iconv/ces/cesbi.h276
-rw-r--r--newlib/libc/iconv/ces/cesdeps.h40
-rw-r--r--newlib/libc/iconv/ces/euc.c471
-rwxr-xr-xnewlib/libc/iconv/ces/mkdeps.pl930
-rw-r--r--newlib/libc/iconv/ces/table-pcs.c169
-rw-r--r--newlib/libc/iconv/ces/table.c594
-rw-r--r--newlib/libc/iconv/ces/ucs-2-internal.c127
-rw-r--r--newlib/libc/iconv/ces/ucs-2.c170
-rw-r--r--newlib/libc/iconv/ces/ucs-4-internal.c127
-rw-r--r--newlib/libc/iconv/ces/ucs-4.c172
-rw-r--r--newlib/libc/iconv/ces/us-ascii.c121
-rw-r--r--newlib/libc/iconv/ces/utf-16.c306
-rw-r--r--newlib/libc/iconv/ces/utf-8.c297
16 files changed, 0 insertions, 4632 deletions
diff --git a/newlib/libc/iconv/ces/Makefile.am b/newlib/libc/iconv/ces/Makefile.am
deleted file mode 100644
index 977d5002b..000000000
--- a/newlib/libc/iconv/ces/Makefile.am
+++ /dev/null
@@ -1,62 +0,0 @@
-## Process this file with automake to generate Makefile.in
-
-AUTOMAKE_OPTIONS = cygnus
-
-INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
-
-GENERAL_SOURCES = \
- utf-8.c \
- utf-16.c \
- ucs-2.c \
- us-ascii.c \
- ucs-4.c \
- ucs-2-internal.c \
- ucs-4-internal.c \
- cesbi.c \
- table.c \
- table-pcs.c \
- euc.c
-
-## The following interfaces are EL/IX level 2
-if ELIX_LEVEL_1
-LIB_OBJS = \
- utf-8.$(oext) \
- utf-16.$(oext) \
- ucs-2.$(oext) \
- us-ascii.$(oext) \
- ucs-4.$(oext) \
- ucs-2-internal.$(oext) \
- ucs-4-internal.$(oext) \
- cesbi.$(oext) \
- table.$(oext) \
- table-pcs.$(oext) \
- euc.$(oext)
-else
-LIB_OBJS =
-endif
-
-noinst_LIBRARIES = lib.a
-lib_a_SOURCES = $(GENERAL_SOURCES)
-lib_a_LIBADD = $(LIB_OBJS)
-lib_a_DEPENDENCIES = $(LIB_OBJS)
-noinst_DATA =
-
-include $(srcdir)/../../../Makefile.shared
-
-CHEWOUT_FILES = ces.def
-
-SUFFIXES = .def
-
-CHEW = ../../../doc/makedoc -f $(srcdir)/../../../doc/doc.str
-
-.c.def:
- $(CHEW) < $< > $*.def 2> $*.ref
- touch stmp-def
-
-TARGETDOC = ../tmp.texi
-
-doc: $(CHEWOUT_FILES)
- cat $(srcdir)/ces.tex >> $(TARGETDOC)
-
-CLEANFILES = $(CHEWOUT_FILES) *.ref
-
diff --git a/newlib/libc/iconv/ces/Makefile.in b/newlib/libc/iconv/ces/Makefile.in
deleted file mode 100644
index c51b74fde..000000000
--- a/newlib/libc/iconv/ces/Makefile.in
+++ /dev/null
@@ -1,369 +0,0 @@
-# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ../..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_alias = @build_alias@
-build_triplet = @build@
-host_alias = @host_alias@
-host_triplet = @host@
-target_alias = @target_alias@
-target_triplet = @target@
-AR = @AR@
-AS = @AS@
-CC = @CC@
-CPP = @CPP@
-CRT0 = @CRT0@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-DLLTOOL = @DLLTOOL@
-EXEEXT = @EXEEXT@
-GCJ = @GCJ@
-GCJFLAGS = @GCJFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBC_EXTRA_DEF = @LIBC_EXTRA_DEF@
-LIBC_EXTRA_LIB = @LIBC_EXTRA_LIB@
-LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@
-LIBC_POSIX_LIB = @LIBC_POSIX_LIB@
-LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@
-LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@
-LIBC_STDIO64_DEF = @LIBC_STDIO64_DEF@
-LIBC_STDIO64_LIB = @LIBC_STDIO64_LIB@
-LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@
-LIBC_SYS_LIB = @LIBC_SYS_LIB@
-LIBC_UNIX_LIB = @LIBC_UNIX_LIB@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-STRIP = @STRIP@
-VERSION = @VERSION@
-aext = @aext@
-extra_dir = @extra_dir@
-libm_machine_dir = @libm_machine_dir@
-machine_dir = @machine_dir@
-newlib_basedir = @newlib_basedir@
-oext = @oext@
-sys_dir = @sys_dir@
-
-AUTOMAKE_OPTIONS = cygnus
-
-INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
-
-GENERAL_SOURCES = utf-8.c utf-16.c ucs-2.c us-ascii.c ucs-4.c ucs-2-internal.c ucs-4-internal.c cesbi.c table.c table-pcs.c euc.c
-
-@ELIX_LEVEL_1_TRUE@LIB_OBJS = utf-8.$(oext) utf-16.$(oext) ucs-2.$(oext) us-ascii.$(oext) ucs-4.$(oext) ucs-2-internal.$(oext) ucs-4-internal.$(oext) cesbi.$(oext) table.$(oext) table-pcs.$(oext) euc.$(oext)
-@ELIX_LEVEL_1_FALSE@LIB_OBJS =
-
-noinst_LIBRARIES = lib.a
-lib_a_SOURCES = $(GENERAL_SOURCES)
-lib_a_LIBADD = $(LIB_OBJS)
-lib_a_DEPENDENCIES = $(LIB_OBJS)
-noinst_DATA =
-
-CHEWOUT_FILES = ces.def
-
-SUFFIXES = .def
-
-CHEW = ../../../doc/makedoc -f $(srcdir)/../../../doc/doc.str
-
-TARGETDOC = ../tmp.texi
-
-CLEANFILES = $(CHEWOUT_FILES) *.ref
-mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir)
-CPPFLAGS = @CPPFLAGS@
-LIBS = @LIBS@
-lib_a_OBJECTS = utf-8.$(OBJEXT) utf-16.$(OBJEXT) ucs-2.$(OBJEXT) \
-us-ascii.$(OBJEXT) ucs-4.$(OBJEXT) ucs-2-internal.$(OBJEXT) \
-ucs-4-internal.$(OBJEXT) cesbi.$(OBJEXT) table.$(OBJEXT) \
-table-pcs.$(OBJEXT) euc.$(OBJEXT)
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DATA = $(noinst_DATA)
-
-DIST_COMMON = Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-SOURCES = $(lib_a_SOURCES)
-OBJECTS = $(lib_a_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .def .lo .o .obj .s
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(srcdir)/../../../Makefile.shared
- cd $(top_srcdir) && $(AUTOMAKE) --cygnus iconv/ces/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-noinstLIBRARIES:
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-distclean-noinstLIBRARIES:
-
-maintainer-clean-noinstLIBRARIES:
-
-.c.o:
- $(COMPILE) -c $<
-
-# FIXME: We should only use cygpath when building on Windows,
-# and only if it is available.
-.c.obj:
- $(COMPILE) -c `cygpath -w $<`
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
-
-mostlyclean-compile:
- -rm -f *.o core *.core
- -rm -f *.$(OBJEXT)
-
-clean-compile:
-
-distclean-compile:
- -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
- -rm -f lib.a
- $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
- $(RANLIB) lib.a
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = iconv/ces
-
-distdir: $(DISTFILES)
- @for file in $(DISTFILES); do \
- if test -f $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- cp -pr $$d/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am:
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-info-am:
-install-info: install-info-am
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am:
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am:
-uninstall: uninstall-am
-all-am: Makefile $(LIBRARIES) $(DATA)
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-
-
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
- mostlyclean-libtool mostlyclean-tags \
- mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-noinstLIBRARIES clean-compile clean-libtool clean-tags \
- clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-noinstLIBRARIES distclean-compile \
- distclean-libtool distclean-tags distclean-generic \
- clean-am
- -rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
- maintainer-clean-compile maintainer-clean-libtool \
- maintainer-clean-tags maintainer-clean-generic \
- distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
-clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-libtool distclean-libtool \
-clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-info-am \
-install-info install-exec-am install-exec install-data-am install-data \
-install-am install uninstall-am uninstall all-redirect all-am all \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-objectlist.awk.in: $(noinst_LTLIBRARIES)
- -rm -f objectlist.awk.in
- for i in `ls *.lo` ; \
- do \
- echo $$i `pwd`/$$i >> objectlist.awk.in ; \
- done
-
-.c.def:
- $(CHEW) < $< > $*.def 2> $*.ref
- touch stmp-def
-
-doc: $(CHEWOUT_FILES)
- cat $(srcdir)/ces.tex >> $(TARGETDOC)
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/newlib/libc/iconv/ces/cesbi.c b/newlib/libc/iconv/ces/cesbi.c
deleted file mode 100644
index c2e6520a3..000000000
--- a/newlib/libc/iconv/ces/cesbi.c
+++ /dev/null
@@ -1,401 +0,0 @@
-/*
- * This file was automatically generated mkdeps.pl script. Don't edit.
- */
-
-#include <_ansi.h>
-#include <newlib.h>
-#include "../lib/ucsconv.h"
-#include "cesbi.h"
-
-/*
- * Each CES converter provides the list of supported encodings.
- */
-#if defined (ICONV_TO_UCS_CES_EUC) \
- || defined (ICONV_FROM_UCS_CES_EUC)
-static _CONST char *
-iconv_ces_names_euc[] =
-{
-# if defined (_ICONV_FROM_ENCODING_EUC_JP) \
- || defined (_ICONV_TO_ENCODING_EUC_JP)
- ICONV_ENCODING_EUC_JP,
-#endif
-# if defined (_ICONV_FROM_ENCODING_EUC_KR) \
- || defined (_ICONV_TO_ENCODING_EUC_KR)
- ICONV_ENCODING_EUC_KR,
-#endif
-# if defined (_ICONV_FROM_ENCODING_EUC_TW) \
- || defined (_ICONV_TO_ENCODING_EUC_TW)
- ICONV_ENCODING_EUC_TW,
-#endif
- NULL
-};
-#endif
-
-#if defined (ICONV_TO_UCS_CES_TABLE) \
- || defined (ICONV_FROM_UCS_CES_TABLE)
-static _CONST char *
-iconv_ces_names_table[] =
-{
-# if defined (_ICONV_FROM_ENCODING_CP775) \
- || defined (_ICONV_TO_ENCODING_CP775)
- ICONV_ENCODING_CP775,
-#endif
-# if defined (_ICONV_FROM_ENCODING_CP850) \
- || defined (_ICONV_TO_ENCODING_CP850)
- ICONV_ENCODING_CP850,
-#endif
-# if defined (_ICONV_FROM_ENCODING_CP852) \
- || defined (_ICONV_TO_ENCODING_CP852)
- ICONV_ENCODING_CP852,
-#endif
-# if defined (_ICONV_FROM_ENCODING_CP855) \
- || defined (_ICONV_TO_ENCODING_CP855)
- ICONV_ENCODING_CP855,
-#endif
-# if defined (_ICONV_FROM_ENCODING_CP866) \
- || defined (_ICONV_TO_ENCODING_CP866)
- ICONV_ENCODING_CP866,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_1) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_1)
- ICONV_ENCODING_ISO_8859_1,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_10) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_10)
- ICONV_ENCODING_ISO_8859_10,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_11) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_11)
- ICONV_ENCODING_ISO_8859_11,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_13) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_13)
- ICONV_ENCODING_ISO_8859_13,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_14) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_14)
- ICONV_ENCODING_ISO_8859_14,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_15) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_15)
- ICONV_ENCODING_ISO_8859_15,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_2) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_2)
- ICONV_ENCODING_ISO_8859_2,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_3) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_3)
- ICONV_ENCODING_ISO_8859_3,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_4) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_4)
- ICONV_ENCODING_ISO_8859_4,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_5) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_5)
- ICONV_ENCODING_ISO_8859_5,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_6) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_6)
- ICONV_ENCODING_ISO_8859_6,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_7) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_7)
- ICONV_ENCODING_ISO_8859_7,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_8) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_8)
- ICONV_ENCODING_ISO_8859_8,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_8859_9) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_9)
- ICONV_ENCODING_ISO_8859_9,
-#endif
-# if defined (_ICONV_FROM_ENCODING_ISO_IR_111) \
- || defined (_ICONV_TO_ENCODING_ISO_IR_111)
- ICONV_ENCODING_ISO_IR_111,
-#endif
-# if defined (_ICONV_FROM_ENCODING_KOI8_R) \
- || defined (_ICONV_TO_ENCODING_KOI8_R)
- ICONV_ENCODING_KOI8_R,
-#endif
-# if defined (_ICONV_FROM_ENCODING_KOI8_RU) \
- || defined (_ICONV_TO_ENCODING_KOI8_RU)
- ICONV_ENCODING_KOI8_RU,
-#endif
-# if defined (_ICONV_FROM_ENCODING_KOI8_U) \
- || defined (_ICONV_TO_ENCODING_KOI8_U)
- ICONV_ENCODING_KOI8_U,
-#endif
-# if defined (_ICONV_FROM_ENCODING_KOI8_UNI) \
- || defined (_ICONV_TO_ENCODING_KOI8_UNI)
- ICONV_ENCODING_KOI8_UNI,
-#endif
-# if defined (_ICONV_FROM_ENCODING_WIN_1250) \
- || defined (_ICONV_TO_ENCODING_WIN_1250)
- ICONV_ENCODING_WIN_1250,
-#endif
-# if defined (_ICONV_FROM_ENCODING_WIN_1251) \
- || defined (_ICONV_TO_ENCODING_WIN_1251)
- ICONV_ENCODING_WIN_1251,
-#endif
-# if defined (_ICONV_FROM_ENCODING_WIN_1252) \
- || defined (_ICONV_TO_ENCODING_WIN_1252)
- ICONV_ENCODING_WIN_1252,
-#endif
-# if defined (_ICONV_FROM_ENCODING_WIN_1253) \
- || defined (_ICONV_TO_ENCODING_WIN_1253)
- ICONV_ENCODING_WIN_1253,
-#endif
-# if defined (_ICONV_FROM_ENCODING_WIN_1254) \
- || defined (_ICONV_TO_ENCODING_WIN_1254)
- ICONV_ENCODING_WIN_1254,
-#endif
-# if defined (_ICONV_FROM_ENCODING_WIN_1255) \
- || defined (_ICONV_TO_ENCODING_WIN_1255)
- ICONV_ENCODING_WIN_1255,
-#endif
-# if defined (_ICONV_FROM_ENCODING_WIN_1256) \
- || defined (_ICONV_TO_ENCODING_WIN_1256)
- ICONV_ENCODING_WIN_1256,
-#endif
-# if defined (_ICONV_FROM_ENCODING_WIN_1257) \
- || defined (_ICONV_TO_ENCODING_WIN_1257)
- ICONV_ENCODING_WIN_1257,
-#endif
-# if defined (_ICONV_FROM_ENCODING_WIN_1258) \
- || defined (_ICONV_TO_ENCODING_WIN_1258)
- ICONV_ENCODING_WIN_1258,
-#endif
- NULL
-};
-#endif
-
-#if defined (ICONV_TO_UCS_CES_TABLE_PCS) \
- || defined (ICONV_FROM_UCS_CES_TABLE_PCS)
-static _CONST char *
-iconv_ces_names_table_pcs[] =
-{
-# if defined (_ICONV_FROM_ENCODING_BIG5) \
- || defined (_ICONV_TO_ENCODING_BIG5)
- ICONV_ENCODING_BIG5,
-#endif
- NULL
-};
-#endif
-
-#if defined (ICONV_TO_UCS_CES_UCS_2) \
- || defined (ICONV_FROM_UCS_CES_UCS_2)
-static _CONST char *
-iconv_ces_names_ucs_2[] =
-{
-# if defined (_ICONV_FROM_ENCODING_UCS_2) \
- || defined (_ICONV_TO_ENCODING_UCS_2)
- ICONV_ENCODING_UCS_2,
-#endif
-# if defined (_ICONV_FROM_ENCODING_UCS_2BE) \
- || defined (_ICONV_TO_ENCODING_UCS_2BE)
- ICONV_ENCODING_UCS_2BE,
-#endif
-# if defined (_ICONV_FROM_ENCODING_UCS_2LE) \
- || defined (_ICONV_TO_ENCODING_UCS_2LE)
- ICONV_ENCODING_UCS_2LE,
-#endif
- NULL
-};
-#endif
-
-#if defined (ICONV_TO_UCS_CES_UCS_2_INTERNAL) \
- || defined (ICONV_FROM_UCS_CES_UCS_2_INTERNAL)
-static _CONST char *
-iconv_ces_names_ucs_2_internal[] =
-{
-# if defined (_ICONV_FROM_ENCODING_UCS_2_INTERNAL) \
- || defined (_ICONV_TO_ENCODING_UCS_2_INTERNAL)
- ICONV_ENCODING_UCS_2_INTERNAL,
-#endif
- NULL
-};
-#endif
-
-#if defined (ICONV_TO_UCS_CES_UCS_4) \
- || defined (ICONV_FROM_UCS_CES_UCS_4)
-static _CONST char *
-iconv_ces_names_ucs_4[] =
-{
-# if defined (_ICONV_FROM_ENCODING_UCS_4) \
- || defined (_ICONV_TO_ENCODING_UCS_4)
- ICONV_ENCODING_UCS_4,
-#endif
-# if defined (_ICONV_FROM_ENCODING_UCS_4BE) \
- || defined (_ICONV_TO_ENCODING_UCS_4BE)
- ICONV_ENCODING_UCS_4BE,
-#endif
-# if defined (_ICONV_FROM_ENCODING_UCS_4LE) \
- || defined (_ICONV_TO_ENCODING_UCS_4LE)
- ICONV_ENCODING_UCS_4LE,
-#endif
- NULL
-};
-#endif
-
-#if defined (ICONV_TO_UCS_CES_UCS_4_INTERNAL) \
- || defined (ICONV_FROM_UCS_CES_UCS_4_INTERNAL)
-static _CONST char *
-iconv_ces_names_ucs_4_internal[] =
-{
-# if defined (_ICONV_FROM_ENCODING_UCS_4_INTERNAL) \
- || defined (_ICONV_TO_ENCODING_UCS_4_INTERNAL)
- ICONV_ENCODING_UCS_4_INTERNAL,
-#endif
- NULL
-};
-#endif
-
-#if defined (ICONV_TO_UCS_CES_US_ASCII) \
- || defined (ICONV_FROM_UCS_CES_US_ASCII)
-static _CONST char *
-iconv_ces_names_us_ascii[] =
-{
-# if defined (_ICONV_FROM_ENCODING_US_ASCII) \
- || defined (_ICONV_TO_ENCODING_US_ASCII)
- ICONV_ENCODING_US_ASCII,
-#endif
- NULL
-};
-#endif
-
-#if defined (ICONV_TO_UCS_CES_UTF_16) \
- || defined (ICONV_FROM_UCS_CES_UTF_16)
-static _CONST char *
-iconv_ces_names_utf_16[] =
-{
-# if defined (_ICONV_FROM_ENCODING_UTF_16) \
- || defined (_ICONV_TO_ENCODING_UTF_16)
- ICONV_ENCODING_UTF_16,
-#endif
-# if defined (_ICONV_FROM_ENCODING_UTF_16BE) \
- || defined (_ICONV_TO_ENCODING_UTF_16BE)
- ICONV_ENCODING_UTF_16BE,
-#endif
-# if defined (_ICONV_FROM_ENCODING_UTF_16LE) \
- || defined (_ICONV_TO_ENCODING_UTF_16LE)
- ICONV_ENCODING_UTF_16LE,
-#endif
- NULL
-};
-#endif
-
-#if defined (ICONV_TO_UCS_CES_UTF_8) \
- || defined (ICONV_FROM_UCS_CES_UTF_8)
-static _CONST char *
-iconv_ces_names_utf_8[] =
-{
-# if defined (_ICONV_FROM_ENCODING_UTF_8) \
- || defined (_ICONV_TO_ENCODING_UTF_8)
- ICONV_ENCODING_UTF_8,
-#endif
- NULL
-};
-#endif
-
-/*
- * The following structure contains the list of "to UCS" linked-in CES converters.
- */
-_CONST iconv_to_ucs_ces_t
-_iconv_to_ucs_ces[] =
-{
-#ifdef ICONV_TO_UCS_CES_EUC
- {(_CONST char **)iconv_ces_names_euc,
- &_iconv_to_ucs_ces_handlers_euc},
-#endif
-#ifdef ICONV_TO_UCS_CES_TABLE
- {(_CONST char **)iconv_ces_names_table,
- &_iconv_to_ucs_ces_handlers_table},
-#endif
-#ifdef ICONV_TO_UCS_CES_TABLE_PCS
- {(_CONST char **)iconv_ces_names_table_pcs,
- &_iconv_to_ucs_ces_handlers_table_pcs},
-#endif
-#ifdef ICONV_TO_UCS_CES_UCS_2
- {(_CONST char **)iconv_ces_names_ucs_2,
- &_iconv_to_ucs_ces_handlers_ucs_2},
-#endif
-#ifdef ICONV_TO_UCS_CES_UCS_2_INTERNAL
- {(_CONST char **)iconv_ces_names_ucs_2_internal,
- &_iconv_to_ucs_ces_handlers_ucs_2_internal},
-#endif
-#ifdef ICONV_TO_UCS_CES_UCS_4
- {(_CONST char **)iconv_ces_names_ucs_4,
- &_iconv_to_ucs_ces_handlers_ucs_4},
-#endif
-#ifdef ICONV_TO_UCS_CES_UCS_4_INTERNAL
- {(_CONST char **)iconv_ces_names_ucs_4_internal,
- &_iconv_to_ucs_ces_handlers_ucs_4_internal},
-#endif
-#ifdef ICONV_TO_UCS_CES_US_ASCII
- {(_CONST char **)iconv_ces_names_us_ascii,
- &_iconv_to_ucs_ces_handlers_us_ascii},
-#endif
-#ifdef ICONV_TO_UCS_CES_UTF_16
- {(_CONST char **)iconv_ces_names_utf_16,
- &_iconv_to_ucs_ces_handlers_utf_16},
-#endif
-#ifdef ICONV_TO_UCS_CES_UTF_8
- {(_CONST char **)iconv_ces_names_utf_8,
- &_iconv_to_ucs_ces_handlers_utf_8},
-#endif
- {(_CONST char **)NULL,
- (iconv_to_ucs_ces_handlers_t *)NULL}
-};
-
-/*
- * The following structure contains the list of "from UCS" linked-in CES converters.
- */
-_CONST iconv_from_ucs_ces_t
-_iconv_from_ucs_ces[] =
-{
-#ifdef ICONV_FROM_UCS_CES_EUC
- {(_CONST char **)iconv_ces_names_euc,
- &_iconv_from_ucs_ces_handlers_euc},
-#endif
-#ifdef ICONV_FROM_UCS_CES_TABLE
- {(_CONST char **)iconv_ces_names_table,
- &_iconv_from_ucs_ces_handlers_table},
-#endif
-#ifdef ICONV_FROM_UCS_CES_TABLE_PCS
- {(_CONST char **)iconv_ces_names_table_pcs,
- &_iconv_from_ucs_ces_handlers_table_pcs},
-#endif
-#ifdef ICONV_FROM_UCS_CES_UCS_2
- {(_CONST char **)iconv_ces_names_ucs_2,
- &_iconv_from_ucs_ces_handlers_ucs_2},
-#endif
-#ifdef ICONV_FROM_UCS_CES_UCS_2_INTERNAL
- {(_CONST char **)iconv_ces_names_ucs_2_internal,
- &_iconv_from_ucs_ces_handlers_ucs_2_internal},
-#endif
-#ifdef ICONV_FROM_UCS_CES_UCS_4
- {(_CONST char **)iconv_ces_names_ucs_4,
- &_iconv_from_ucs_ces_handlers_ucs_4},
-#endif
-#ifdef ICONV_FROM_UCS_CES_UCS_4_INTERNAL
- {(_CONST char **)iconv_ces_names_ucs_4_internal,
- &_iconv_from_ucs_ces_handlers_ucs_4_internal},
-#endif
-#ifdef ICONV_FROM_UCS_CES_US_ASCII
- {(_CONST char **)iconv_ces_names_us_ascii,
- &_iconv_from_ucs_ces_handlers_us_ascii},
-#endif
-#ifdef ICONV_FROM_UCS_CES_UTF_16
- {(_CONST char **)iconv_ces_names_utf_16,
- &_iconv_from_ucs_ces_handlers_utf_16},
-#endif
-#ifdef ICONV_FROM_UCS_CES_UTF_8
- {(_CONST char **)iconv_ces_names_utf_8,
- &_iconv_from_ucs_ces_handlers_utf_8},
-#endif
- {(_CONST char **)NULL,
- (iconv_from_ucs_ces_handlers_t *)NULL}
-};
diff --git a/newlib/libc/iconv/ces/cesbi.h b/newlib/libc/iconv/ces/cesbi.h
deleted file mode 100644
index 67e85ef3c..000000000
--- a/newlib/libc/iconv/ces/cesbi.h
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- * This file was automatically generated mkdeps.pl script. Don't edit.
- */
-
-#ifndef __CESBI_H__
-#define __CESBI_H__
-
-#include <newlib.h>
-#include <_ansi.h>
-#include "../lib/encnames.h"
-#include "../lib/ucsconv.h"
-
-/*
- * Enable CES converter if correspondent encoding is requested.
- * Defining ICONV_TO_UCS_CES_XXX macro or ICONV_FROM_UCS_CES_XXX
- * macro is needed to enable "XXX encoding -> UCS" or "UCS -> XXX encoding"
- * part of UCS-based CES converter.
- */
-#if defined (_ICONV_FROM_ENCODING_EUC_JP) \
- || defined (_ICONV_FROM_ENCODING_EUC_KR) \
- || defined (_ICONV_FROM_ENCODING_EUC_TW)
-# define ICONV_TO_UCS_CES_EUC
-#endif
-#if defined (_ICONV_TO_ENCODING_EUC_JP) \
- || defined (_ICONV_TO_ENCODING_EUC_KR) \
- || defined (_ICONV_TO_ENCODING_EUC_TW)
-# define ICONV_FROM_UCS_CES_EUC
-#endif
-
-#if defined (_ICONV_FROM_ENCODING_CP775) \
- || defined (_ICONV_FROM_ENCODING_CP850) \
- || defined (_ICONV_FROM_ENCODING_CP852) \
- || defined (_ICONV_FROM_ENCODING_CP855) \
- || defined (_ICONV_FROM_ENCODING_CP866) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_1) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_10) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_11) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_13) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_14) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_15) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_2) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_3) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_4) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_5) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_6) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_7) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_8) \
- || defined (_ICONV_FROM_ENCODING_ISO_8859_9) \
- || defined (_ICONV_FROM_ENCODING_ISO_IR_111) \
- || defined (_ICONV_FROM_ENCODING_KOI8_R) \
- || defined (_ICONV_FROM_ENCODING_KOI8_RU) \
- || defined (_ICONV_FROM_ENCODING_KOI8_U) \
- || defined (_ICONV_FROM_ENCODING_KOI8_UNI) \
- || defined (_ICONV_FROM_ENCODING_WIN_1250) \
- || defined (_ICONV_FROM_ENCODING_WIN_1251) \
- || defined (_ICONV_FROM_ENCODING_WIN_1252) \
- || defined (_ICONV_FROM_ENCODING_WIN_1253) \
- || defined (_ICONV_FROM_ENCODING_WIN_1254) \
- || defined (_ICONV_FROM_ENCODING_WIN_1255) \
- || defined (_ICONV_FROM_ENCODING_WIN_1256) \
- || defined (_ICONV_FROM_ENCODING_WIN_1257) \
- || defined (_ICONV_FROM_ENCODING_WIN_1258)
-# define ICONV_TO_UCS_CES_TABLE
-#endif
-#if defined (_ICONV_TO_ENCODING_CP775) \
- || defined (_ICONV_TO_ENCODING_CP850) \
- || defined (_ICONV_TO_ENCODING_CP852) \
- || defined (_ICONV_TO_ENCODING_CP855) \
- || defined (_ICONV_TO_ENCODING_CP866) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_1) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_10) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_11) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_13) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_14) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_15) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_2) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_3) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_4) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_5) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_6) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_7) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_8) \
- || defined (_ICONV_TO_ENCODING_ISO_8859_9) \
- || defined (_ICONV_TO_ENCODING_ISO_IR_111) \
- || defined (_ICONV_TO_ENCODING_KOI8_R) \
- || defined (_ICONV_TO_ENCODING_KOI8_RU) \
- || defined (_ICONV_TO_ENCODING_KOI8_U) \
- || defined (_ICONV_TO_ENCODING_KOI8_UNI) \
- || defined (_ICONV_TO_ENCODING_WIN_1250) \
- || defined (_ICONV_TO_ENCODING_WIN_1251) \
- || defined (_ICONV_TO_ENCODING_WIN_1252) \
- || defined (_ICONV_TO_ENCODING_WIN_1253) \
- || defined (_ICONV_TO_ENCODING_WIN_1254) \
- || defined (_ICONV_TO_ENCODING_WIN_1255) \
- || defined (_ICONV_TO_ENCODING_WIN_1256) \
- || defined (_ICONV_TO_ENCODING_WIN_1257) \
- || defined (_ICONV_TO_ENCODING_WIN_1258)
-# define ICONV_FROM_UCS_CES_TABLE
-#endif
-
-#if defined (_ICONV_FROM_ENCODING_BIG5)
-# define ICONV_TO_UCS_CES_TABLE_PCS
-#endif
-#if defined (_ICONV_TO_ENCODING_BIG5)
-# define ICONV_FROM_UCS_CES_TABLE_PCS
-#endif
-
-#if defined (_ICONV_FROM_ENCODING_UCS_2) \
- || defined (_ICONV_FROM_ENCODING_UCS_2BE) \
- || defined (_ICONV_FROM_ENCODING_UCS_2LE)
-# define ICONV_TO_UCS_CES_UCS_2
-#endif
-#if defined (_ICONV_TO_ENCODING_UCS_2) \
- || defined (_ICONV_TO_ENCODING_UCS_2BE) \
- || defined (_ICONV_TO_ENCODING_UCS_2LE)
-# define ICONV_FROM_UCS_CES_UCS_2
-#endif
-
-#if defined (_ICONV_FROM_ENCODING_UCS_2_INTERNAL)
-# define ICONV_TO_UCS_CES_UCS_2_INTERNAL
-#endif
-#if defined (_ICONV_TO_ENCODING_UCS_2_INTERNAL)
-# define ICONV_FROM_UCS_CES_UCS_2_INTERNAL
-#endif
-
-#if defined (_ICONV_FROM_ENCODING_UCS_4) \
- || defined (_ICONV_FROM_ENCODING_UCS_4BE) \
- || defined (_ICONV_FROM_ENCODING_UCS_4LE)
-# define ICONV_TO_UCS_CES_UCS_4
-#endif
-#if defined (_ICONV_TO_ENCODING_UCS_4) \
- || defined (_ICONV_TO_ENCODING_UCS_4BE) \
- || defined (_ICONV_TO_ENCODING_UCS_4LE)
-# define ICONV_FROM_UCS_CES_UCS_4
-#endif
-
-#if defined (_ICONV_FROM_ENCODING_UCS_4_INTERNAL)
-# define ICONV_TO_UCS_CES_UCS_4_INTERNAL
-#endif
-#if defined (_ICONV_TO_ENCODING_UCS_4_INTERNAL)
-# define ICONV_FROM_UCS_CES_UCS_4_INTERNAL
-#endif
-
-#if defined (_ICONV_FROM_ENCODING_US_ASCII)
-# define ICONV_TO_UCS_CES_US_ASCII
-#endif
-#if defined (_ICONV_TO_ENCODING_US_ASCII)
-# define ICONV_FROM_UCS_CES_US_ASCII
-#endif
-
-#if defined (_ICONV_FROM_ENCODING_UTF_16) \
- || defined (_ICONV_FROM_ENCODING_UTF_16BE) \
- || defined (_ICONV_FROM_ENCODING_UTF_16LE)
-# define ICONV_TO_UCS_CES_UTF_16
-#endif
-#if defined (_ICONV_TO_ENCODING_UTF_16) \
- || defined (_ICONV_TO_ENCODING_UTF_16BE) \
- || defined (_ICONV_TO_ENCODING_UTF_16LE)
-# define ICONV_FROM_UCS_CES_UTF_16
-#endif
-
-#if defined (_ICONV_FROM_ENCODING_UTF_8)
-# define ICONV_TO_UCS_CES_UTF_8
-#endif
-#if defined (_ICONV_TO_ENCODING_UTF_8)
-# define ICONV_FROM_UCS_CES_UTF_8
-#endif
-
-/*
- * Some encodings require another encodings to be enabled.
- * These dependencies are handled in cesdeps.h header file.
- */
-#include "cesdeps.h"
-
-/*
- * NLS uses iconv's capabilities and require one of encodings
- * to be enabled for internal wchar_t representation.
- */
-#include "../lib/iconvnls.h"
-
-/*
- * Forward declarations of CES converter handlers.
- * These handlers are actually defined in correspondent CES converter files.
- */
-#ifdef ICONV_TO_UCS_CES_EUC
-extern _CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_euc;
-#endif
-#ifdef ICONV_FROM_UCS_CES_EUC
-extern _CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_euc;
-#endif
-
-#ifdef ICONV_TO_UCS_CES_TABLE
-extern _CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_table;
-#endif
-#ifdef ICONV_FROM_UCS_CES_TABLE
-extern _CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_table;
-#endif
-
-#ifdef ICONV_TO_UCS_CES_TABLE_PCS
-extern _CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_table_pcs;
-#endif
-#ifdef ICONV_FROM_UCS_CES_TABLE_PCS
-extern _CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_table_pcs;
-#endif
-
-#ifdef ICONV_TO_UCS_CES_UCS_2
-extern _CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_ucs_2;
-#endif
-#ifdef ICONV_FROM_UCS_CES_UCS_2
-extern _CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_ucs_2;
-#endif
-
-#ifdef ICONV_TO_UCS_CES_UCS_2_INTERNAL
-extern _CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_ucs_2_internal;
-#endif
-#ifdef ICONV_FROM_UCS_CES_UCS_2_INTERNAL
-extern _CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_ucs_2_internal;
-#endif
-
-#ifdef ICONV_TO_UCS_CES_UCS_4
-extern _CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_ucs_4;
-#endif
-#ifdef ICONV_FROM_UCS_CES_UCS_4
-extern _CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_ucs_4;
-#endif
-
-#ifdef ICONV_TO_UCS_CES_UCS_4_INTERNAL
-extern _CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_ucs_4_internal;
-#endif
-#ifdef ICONV_FROM_UCS_CES_UCS_4_INTERNAL
-extern _CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_ucs_4_internal;
-#endif
-
-#ifdef ICONV_TO_UCS_CES_US_ASCII
-extern _CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_us_ascii;
-#endif
-#ifdef ICONV_FROM_UCS_CES_US_ASCII
-extern _CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_us_ascii;
-#endif
-
-#ifdef ICONV_TO_UCS_CES_UTF_16
-extern _CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_utf_16;
-#endif
-#ifdef ICONV_FROM_UCS_CES_UTF_16
-extern _CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_utf_16;
-#endif
-
-#ifdef ICONV_TO_UCS_CES_UTF_8
-extern _CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_utf_8;
-#endif
-#ifdef ICONV_FROM_UCS_CES_UTF_8
-extern _CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_utf_8;
-#endif
-
-#endif /* !__CESBI_H__ */
-
diff --git a/newlib/libc/iconv/ces/cesdeps.h b/newlib/libc/iconv/ces/cesdeps.h
deleted file mode 100644
index e6aec4532..000000000
--- a/newlib/libc/iconv/ces/cesdeps.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * This file was automatically generated mkdeps.pl script. Don't edit.
- */
-
-#ifndef __CESDEPS_H__
-#define __CESDEPS_H__
-
-/*
- * Some CES converters use another CES converters and the following
- * is such dependencies description.
- */
-#ifdef ICONV_TO_UCS_CES_EUC
-# ifndef ICONV_TO_UCS_CES_TABLE
-# define ICONV_TO_UCS_CES_TABLE
-# endif
-# ifndef ICONV_TO_UCS_CES_US_ASCII
-# define ICONV_TO_UCS_CES_US_ASCII
-# endif
-#endif
-#ifdef ICONV_FROM_UCS_CES_EUC
-# ifndef ICONV_FROM_UCS_CES_TABLE
-# define ICONV_FROM_UCS_CES_TABLE
-# endif
-# ifndef ICONV_FROM_UCS_CES_US_ASCII
-# define ICONV_FROM_UCS_CES_US_ASCII
-# endif
-#endif
-#ifdef ICONV_TO_UCS_CES_TABLE_PCS
-# ifndef ICONV_TO_UCS_CES_TABLE
-# define ICONV_TO_UCS_CES_TABLE
-# endif
-#endif
-#ifdef ICONV_FROM_UCS_CES_TABLE_PCS
-# ifndef ICONV_FROM_UCS_CES_TABLE
-# define ICONV_FROM_UCS_CES_TABLE
-# endif
-#endif
-
-#endif /* !__CESDEPS_H__ */
-
diff --git a/newlib/libc/iconv/ces/euc.c b/newlib/libc/iconv/ces/euc.c
deleted file mode 100644
index 749269766..000000000
--- a/newlib/libc/iconv/ces/euc.c
+++ /dev/null
@@ -1,471 +0,0 @@
-/*
- * Copyright (c) 2003-2004, Artem B. Bityuckiy
- * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#include "cesbi.h"
-
-#if defined (ICONV_TO_UCS_CES_EUC) \
- || defined (ICONV_FROM_UCS_CES_EUC)
-
-#include <_ansi.h>
-#include <reent.h>
-#include <newlib.h>
-#include <string.h>
-#include <stdlib.h>
-#include <limits.h>
-#include <sys/types.h>
-#include "../lib/local.h"
-#include "../lib/ucsconv.h"
-#include "../lib/encnames.h"
-#include "../ccs/ccsnames.h"
-
-#define TYPE_EUC_JP 0
-#define TYPE_EUC_KR 1
-#define TYPE_EUC_TW 2
-
-#define MAX_CS_NUM 3
-
-/* CS description structure */
-typedef struct
-{
- char *csname;
- char *prefix;
- int bytes;
- int prefixbytes;
- int touchmsb; /* If 1, msb will be set by euc converter */
-} euc_cs_desc_t;
-
-typedef struct
-{
- int type;
- int mb_cur_max;
- euc_cs_desc_t *desc;
-
- _VOID_PTR data[MAX_CS_NUM];
-} euc_data_t;
-
-#if defined (_ICONV_TO_ENCODING_EUC_JP) \
- || defined (_ICONV_FROM_ENCODING_EUC_JP) \
- || defined (_ICONV_ENABLE_EXTERNAL_CCS)
-static euc_cs_desc_t euc_jp_cs_desc[] =
-{
- {ICONV_CCS_JIS_X0208_1990, "", 2, 0, 1},
- {ICONV_CCS_JIS_X0201_1976, "\x8e", 1, 1, 0},
- {ICONV_CCS_JIS_X0212_1990, "\x8f", 2, 1, 1},
- {NULL, NULL, 0, 0}
-};
-#endif
-
-#if defined (_ICONV_TO_ENCODING_EUC_TW) \
- || defined (_ICONV_FROM_ENCODING_EUC_TW) \
- || defined (_ICONV_ENABLE_EXTERNAL_CCS)
-static euc_cs_desc_t euc_tw_cs_desc [] =
-{
- {ICONV_CCS_CNS11643_PLANE1, "", 2, 0, 1},
- {ICONV_CCS_CNS11643_PLANE2, "\x8e\xa2", 2, 2, 1},
- {ICONV_CCS_CNS11643_PLANE14, "\x8e\xae", 2, 2, 1},
- {NULL, NULL, 0, 0}
-};
-#endif
-
-#if defined (_ICONV_TO_ENCODING_EUC_KR) \
- || defined (_ICONV_FROM_ENCODING_EUC_KR) \
- || defined (_ICONV_ENABLE_EXTERNAL_CCS)
-static euc_cs_desc_t euc_kr_cs_desc [] =
-{
- {ICONV_CCS_KSX1001, "", 2, 0, 1},
- {NULL, NULL, 0, 0}
-};
-#endif
-
-#if defined (ICONV_FROM_UCS_CES_EUC)
-static _VOID_PTR
-_DEFUN(euc_from_ucs_init, (rptr, encoding),
- struct _reent *rptr _AND
- _CONST char *encoding)
-{
- int i;
- euc_data_t *data;
-
- if ((data = (euc_data_t *)_calloc_r (rptr, 1, sizeof (euc_data_t))) == NULL)
- return 0;
-
-#if defined (_ICONV_TO_ENCODING_EUC_JP) \
- || defined (_ICONV_ENABLE_EXTERNAL_CCS)
- if (strcmp (encoding, ICONV_ENCODING_EUC_JP) == 0)
- {
- data->type = TYPE_EUC_JP;
- data->mb_cur_max = 3;
- data->desc = &euc_jp_cs_desc[0];
- goto ok;
- }
-#endif
-#if defined (_ICONV_TO_ENCODING_EUC_KR) \
- || defined (_ICONV_ENABLE_EXTERNAL_CCS)
- if (strcmp (encoding, ICONV_ENCODING_EUC_KR) == 0)
- {
- data->type = TYPE_EUC_KR;
- data->mb_cur_max = 2;
- data->desc = &euc_kr_cs_desc[0];
- goto ok;
- }
-#endif
-#if defined (_ICONV_TO_ENCODING_EUC_TW) \
- || defined (_ICONV_ENABLE_EXTERNAL_CCS)
- if (strcmp (encoding, ICONV_ENCODING_EUC_TW) == 0)
- {
- data->type = TYPE_EUC_TW;
- data->mb_cur_max = 4;
- data->desc = &euc_tw_cs_desc[0];
- goto ok;
- }
-#endif
-
- goto error1;
-
-ok:
- for (i = 0; data->desc[i].csname != NULL; i++)
- {
- data->data[i] = _iconv_from_ucs_ces_handlers_table.init (
- rptr,
- data->desc[i].csname);
- if (data->data == NULL)
- goto error;
- }
-
- return data;
-
-error:
- _iconv_from_ucs_ces_handlers_table.close (rptr, data);
- return NULL;
-error1:
- _free_r (rptr, (_VOID_PTR)data);
- return NULL;
-}
-
-static size_t
-_DEFUN(euc_from_ucs_close, (rptr, data),
- struct _reent *rptr _AND
- _VOID_PTR data)
-{
- int i;
- size_t res = 0;
-
- for (i = 0; i < MAX_CS_NUM; i++)
- {
- if (((euc_data_t *)data)->data[i] != NULL)
- res |= _iconv_from_ucs_ces_handlers_table.close (
- rptr,
- ((euc_data_t *)data)->data[i]);
- }
- _free_r(rptr, data);
-
- return res;
-}
-
-static size_t
-_DEFUN(euc_convert_from_ucs, (data, in, outbuf, outbytesleft),
- _VOID_PTR data _AND
- register ucs4_t in _AND
- unsigned char **outbuf _AND
- size_t *outbytesleft)
-{
- int i;
- int j;
- int res;
- unsigned char *outbuf1;
- size_t outbytesleft1;
- euc_data_t *d = (euc_data_t *)data;
-
- if (in < 0x80) /* CS0 ASCII */
- return _iconv_from_ucs_ces_handlers_us_ascii.convert_from_ucs (
- NULL,
- in,
- outbuf,
- outbytesleft);
-
- /* Try other CS */
- for (i = 0; d->desc[i].csname != NULL; i++)
- {
-
- if (((int)*outbytesleft - d->desc[i].prefixbytes - d->desc[i].bytes) < 0)
- {
- char buf[ICONV_MB_LEN_MAX];
- outbytesleft1 = ICONV_MB_LEN_MAX;
- outbuf1 = &buf[0];
- /* See wether this is right sequence */
- res =
- (int)_iconv_from_ucs_ces_handlers_table.convert_from_ucs (
- d->data[i],
- in,
- &outbuf1,
- &outbytesleft1);
- if (res > 0)
- return (size_t)ICONV_CES_NOSPACE;
-
- continue;
- }
-
- outbuf1 = *outbuf + d->desc[i].prefixbytes;
- outbytesleft1 = *outbytesleft - d->desc[i].prefixbytes;
-
- res = (int)_iconv_from_ucs_ces_handlers_table.convert_from_ucs (
- d->data[i],
- in,
- &outbuf1,
- &outbytesleft1);
- if (res == d->desc[i].bytes)
- {
- for (j = 0; j < d->desc[i].prefixbytes; j++)
- (*outbuf)[j] = d->desc[i].prefix[j];
-
- if (d->desc[i].touchmsb)
- for (j = 0; j < d->desc[i].bytes; j++)
- {
- if ((*outbuf)[j + d->desc[i].prefixbytes] & 0x80)
- return (size_t)ICONV_CES_INVALID_CHARACTER;
- (*outbuf)[j + d->desc[i].prefixbytes] |= 0x80;
- }
-
- *outbuf = outbuf1;
- *outbytesleft = outbytesleft1;
-
- return (size_t)(res + d->desc[i].bytes);
- }
- }
-
- return (size_t)ICONV_CES_INVALID_CHARACTER;
-}
-#endif /* ICONV_FROM_UCS_CES_EUC */
-
-#if defined (ICONV_TO_UCS_CES_EUC)
-static _VOID_PTR
-_DEFUN(euc_to_ucs_init, (rptr, encoding),
- struct _reent *rptr _AND
- _CONST char *encoding)
-{
- int i;
- euc_data_t *data;
-
- if ((data = (euc_data_t *)_calloc_r (rptr, 1, sizeof (euc_data_t))) == NULL)
- return 0;
-
-#if defined (_ICONV_TO_ENCODING_EUC_JP) \
- || defined (_ICONV_ENABLE_EXTERNAL_CCS)
- if (strcmp (encoding, ICONV_ENCODING_EUC_JP) == 0)
- {
- data->type = TYPE_EUC_JP;
- data->mb_cur_max = 3;
- data->desc = &euc_jp_cs_desc[0];
- goto ok;
- }
-#endif
-#if defined (_ICONV_TO_ENCODING_EUC_KR) \
- || defined (_ICONV_ENABLE_EXTERNAL_CCS)
- if (strcmp (encoding, ICONV_ENCODING_EUC_KR) == 0)
- {
- data->type = TYPE_EUC_KR;
- data->mb_cur_max = 2;
- data->desc = &euc_kr_cs_desc[0];
- goto ok;
- }
-#endif
-#if defined (_ICONV_TO_ENCODING_EUC_TW) \
- || defined (_ICONV_ENABLE_EXTERNAL_CCS)
- if (strcmp (encoding, ICONV_ENCODING_EUC_TW) == 0)
- {
- data->type = TYPE_EUC_TW;
- data->mb_cur_max = 4;
- data->desc = &euc_tw_cs_desc[0];
- goto ok;
- }
-#endif
-
- goto error1;
-
-ok:
- for (i = 0; data->desc[i].csname != NULL; i++)
- {
- data->data[i] = _iconv_to_ucs_ces_handlers_table.init (
- rptr,
- data->desc[i].csname);
- if (data->data == NULL)
- goto error;
- }
-
- return data;
-
-error:
- _iconv_to_ucs_ces_handlers_table.close (rptr, data);
- return NULL;
-error1:
- _free_r (rptr, (_VOID_PTR)data);
- return NULL;
-}
-
-static size_t
-_DEFUN(euc_to_ucs_close, (rptr, data),
- struct _reent *rptr _AND
- _VOID_PTR data)
-{
- int i;
- size_t res = 0;
-
- for (i = 0; i < MAX_CS_NUM; i++)
- {
- if (((euc_data_t *)data)->data[i] != NULL)
- res |= _iconv_to_ucs_ces_handlers_table.close (
- rptr,
- ((euc_data_t *)data)->data[i]);
- }
- _free_r(rptr, data);
-
- return res;
-}
-
-static ucs4_t
-_DEFUN(euc_convert_to_ucs, (data, inbuf, inbytesleft),
- _VOID_PTR data _AND
- _CONST unsigned char **inbuf _AND
- size_t *inbytesleft)
-{
- int i;
- int j;
- ucs4_t res;
- unsigned char buf[ICONV_MB_LEN_MAX];
- size_t inbytesleft1;
- euc_data_t *d = (euc_data_t *)data;
- unsigned char *inbuf1 = &buf[0];
-
- if (**inbuf < 0x80) /* CS0 is always ASCII */
- return _iconv_to_ucs_ces_handlers_us_ascii.convert_to_ucs (
- NULL,
- inbuf,
- inbytesleft);
-
- for (i = 1; d->desc[i].csname != NULL; i++)
- {
- if (memcmp((_CONST _VOID_PTR)(*inbuf),
- (_CONST _VOID_PTR)d->desc[i].prefix,
- d->desc[i].prefixbytes) == 0)
- {
- if (((int)*inbytesleft - d->desc[i].prefixbytes - d->desc[i].bytes) < 0)
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- if (d->desc[i].touchmsb)
- for (j = 0; j < d->desc[i].bytes; j++)
- {
- if (!((*inbuf)[j + d->desc[i].prefixbytes] & 0x80))
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
- inbuf1[j] = (*inbuf)[j + d->desc[i].prefixbytes] & 0x7F;
- }
- else
- for (j = 0; j < d->desc[i].bytes; j++)
- inbuf1[j] = (*inbuf)[j + d->desc[i].prefixbytes];
-
- inbytesleft1 = d->desc[i].bytes;
-
- res = _iconv_to_ucs_ces_handlers_table.convert_to_ucs (
- d->data[i],
- (_CONST unsigned char **)&inbuf1,
- &inbytesleft1);
- if (((__int32_t)res) > 0)
- {
- *inbuf += d->desc[i].bytes + d->desc[i].prefixbytes;
- *inbytesleft -= d->desc[i].bytes + d->desc[i].prefixbytes;
- }
-
- return res;
- }
- }
-
- /* Process CS1 */
- if (((int)(*inbytesleft - d->desc[0].prefixbytes - d->desc[0].bytes)) < 0)
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- if (d->desc[0].touchmsb)
- for (j = 0; j < d->desc[0].bytes; j++)
- {
- if (!((*inbuf)[j + d->desc[0].prefixbytes] & 0x80))
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
- inbuf1[j] = (*inbuf)[j] & 0x7F;
- }
- else
- for (j = 0; j < d->desc[0].bytes; j++)
- inbuf1[j] = (*inbuf)[j];
-
- inbytesleft1 = d->desc[0].bytes;
-
- res = _iconv_to_ucs_ces_handlers_table.convert_to_ucs (
- d->data[0],
- (_CONST unsigned char **)&inbuf1,
- &inbytesleft1);
- if (((__int32_t)res) > 0)
- {
- *inbuf += d->desc[0].bytes;
- *inbytesleft -= d->desc[0].bytes;
- }
-
- return res;
-}
-#endif /* ICONV_TO_UCS_CES_EUC */
-
-static int
-_DEFUN(euc_get_mb_cur_max, (data),
- _VOID_PTR data)
-{
- return ((euc_data_t *)data)->mb_cur_max;
-}
-
-#if defined (ICONV_FROM_UCS_CES_EUC)
-_CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_euc =
-{
- euc_from_ucs_init,
- euc_from_ucs_close,
- euc_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- euc_convert_from_ucs
-};
-#endif
-
-#if defined (ICONV_TO_UCS_CES_EUC)
-_CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_euc =
-{
- euc_to_ucs_init,
- euc_to_ucs_close,
- euc_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- euc_convert_to_ucs
-};
-#endif
-
-#endif /* ICONV_TO_UCS_CES_EUC || ICONV_FROM_UCS_CES_EUC */
-
-
diff --git a/newlib/libc/iconv/ces/mkdeps.pl b/newlib/libc/iconv/ces/mkdeps.pl
deleted file mode 100755
index 92dd20dfb..000000000
--- a/newlib/libc/iconv/ces/mkdeps.pl
+++ /dev/null
@@ -1,930 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Copyright (c) 2003-2004, Artem B. Bityuckiy, SoftMine Corporation.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-#
-use integer;
-use Getopt::Std;
-use strict;
-
-sub err($);
-sub process_section_encodings($);
-sub process_section_cesdeps($);
-sub next_entry($$$);
-
-sub generate_cesbi_h($$);
-sub generate_encnames_h(@);
-sub generate_aliasesbi_c($);
-sub generate_encoding_aliases_c($);
-sub generate_cesdeps_h($);
-sub generate_ccsbi_h($);
-sub generate_cesbi_c($);
-sub generate_ccsnames_h($);
-
-# ==============================================================================
-#
-# GLOBAL VARIABLES
-#
-# ==============================================================================
-
-my $comment_automatic =
-"/*
- * This file was automatically generated mkdeps.pl script. Don't edit.
- */";
-
-my $macro_from_enc = '_ICONV_FROM_ENCODING_';
-my $macro_to_enc = '_ICONV_TO_ENCODING_';
-my $macro_from_ucs_ces = 'ICONV_FROM_UCS_CES_';
-my $macro_to_ucs_ces = 'ICONV_TO_UCS_CES_';
-my $macro_from_ucs_ccs = 'ICONV_FROM_UCS_CCS_';
-my $macro_to_ucs_ccs = 'ICONV_TO_UCS_CCS_';
-my $macro_enc_name = 'ICONV_ENCODING_';
-my $macro_ccs_name = 'ICONV_CCS_';
-
-my $var_from_ucs_handlers = '_iconv_from_ucs_ces_handlers_';
-my $var_to_ucs_handlers = '_iconv_to_ucs_ces_handlers_';
-my $var_ccs = '_iconv_ccs_';
-my $var_aliases = '_iconv_aliases';
-my $var_ces_names = 'iconv_ces_names_';
-
-# ==============================================================================
-#
-# PARSE COMMAND-LINE OPTIONS.
-#
-# ==============================================================================
-
-my %options;
-
-# SUPPORTED OPTIONS.
-my $help_opt = 'h';
-my $infile_opt = 'i';
-my $verbose_opt = 'v';
-
-# Default input configuration file name
-my $default_infile = '../lib/encoding.deps';
-# Real input configuration file name
-my $infile;
-# Verbose flag (be verbose if not zero)
-my $verbose;
-
-{
-getopts ("${help_opt}${verbose_opt}${infile_opt}:", \%options)
-or err "getopts() failed: $!.";
-
-if ($options{$help_opt})
-{
- # Output help message and exit.
- print "Usage: $0 [-$infile_opt depfile] [-$help_opt]\n";
- print "\t-$infile_opt - input file with configuration ($default_infile ";
- print "file will be used by default)\n";
- print "\t-$help_opt - this help message\n";
- exit 0;
-}
-
-# Input file name.
-$infile = $options{$infile_opt} ? $options{$infile_opt} : $default_infile;
-$verbose = $options{$verbose_opt} ? 1 : 0;
-
-print "Debug: -$verbose_opt option found.\n" if $verbose;
-
-# ==============================================================================
-#
-# Find and fetch sections from input file
-#
-# ==============================================================================
-
-# Opening input file
-print "Debug: open \"$infile\" input file.\n" if $verbose;
-open (INFILE, '<', $infile) or err "Can't open \"$infile\" file for reading.\n"
- . "System error message: $!.\n";
-
-# Configuration file markers
-my $marker_section = 'SECTION';
-my $marker_section_end = 'SECTION END';
-
-# File sections. Hash values are references to arrays with section contents
-my %sections;
-
-# Extract sections from file
-for (my $ln = 1; my $l = <INFILE>; $ln += 1)
-{
- # Skip comments and empty lines
- next if $l =~ m/^#.*$/ or $l =~ m/^\s*$/;
-
- # Remove last CR symbol
- $l =~ s/^(.*)\n$/$1/, $l =~ s/^(.*)\r$/$1/;
-
- # Generate error if line isn't section begin marker
- err "(input file line $ln) Unexpected marker: \"$l\". ${marker_section} "
- . "is expected."
- if $l !~ m/^$marker_section(\s+(\S*)\s*)?$/;
-
- # Generate error if there is no section name
- err "(input file line $ln) Section name isn't found"
- if !$1 or !$2;
-
- # Generate error if this is section end marker
- err "(input file line $ln) Unexpected \"${marker_section_end}\" marker "
- . "in input file."
- if $2 eq $marker_section_end;
-
- my $sect_name = $2;
-
- # Extract section content
- for (; $l = <INFILE>; $ln += 1)
- {
- # Skip comments and empty lines
- next if $l =~ m/^#.*$/ or $l =~ m/^$/;
- # Remove last CR symbol
- $l =~ s/^(.*)\n$/$1/, $l =~ s/^(.*)\r$/$1/;
-
- last if $l =~ m/^$marker_section_end$/;
-
- push @{$sections{$sect_name}}, $l;
- }
-
- # Generate error if section wasn't ended
- err "(input file line $ln) \"No $marker_section_end\" marker found"
- if $l !~ m/^$marker_section_end$/;
-}
-
-close INFILE or err "Error while closing input file.";
-
-# =============================================================================
-#
-# Now sections are fetched. Each section is processed by separate function.
-# There are only three supported sections now: ENCODINGS, CES_DEPENDENCIES
-# and ENCODING_CCS_DEPENDENCIES.
-#
-# =============================================================================
-
-my $section_encodings = 'ENCODINGS';
-my $section_cesdeps = 'CES_DEPENDENCIES';
-
-my $section;
-
-err "$section_encodings not found."
-if !defined $sections{$section_encodings};
-err "$section_cesdeps not found."
-if !defined $sections{$section_cesdeps};
-
-# Process sections
-print "Debug: process $section_encodings section.\n" if $verbose;
-process_section_encodings ($sections{$section_encodings});
-delete $sections{$section_encodings};
-
-print "Debug: process $section_cesdeps section.\n" if $verbose;
-process_section_cesdeps ($sections{$section_cesdeps});
-delete $sections{$section_cesdeps};
-
-print STDERR "Warning: section \"$_\" was ignored!\n"
-foreach (keys %sections);
-
-exit 1;
-}
-
-# =============================================================================
-#
-# Print error message and exit.
-#
-# Parameter 1: error message.
-#
-# =============================================================================
-sub err($)
-{
- print STDERR "Error while running script.\n$_[0]\n";
- exit 0;
-}
-
-
-# =============================================================================
-#
-# Process ENCODINGS section.
-#
-# Parameter 1 (input): array reference with section content;
-#
-# =============================================================================
-sub process_section_encodings($)
-{
- my $sect = $_[0];
- my $lineidx = 0;
- my @entry;
- my $marker_encoding = 'ENCODING';
- my $marker_ces = 'CES';
- my $marker_ccs = 'CCS';
- my $marker_aliases = 'ALIASES';
-
- # Keys: CES names. Values: array reference with encodings list.
- my %cesenc;
- # Keys: encodings. Values: CES converter names.
- my %encces;
- # Keys: CCS tables names. Values: array reference with encodings.
- my %ccsenc;
- # Keys: encodings. Values: aliases list.
- my %encalias;
-
- while (next_entry ($sect, \@entry, \$lineidx))
- {
- my $encoding;
- my $ces;
- my $ccs;
- my $aliases;
-
- foreach my $l (@entry)
- {
- if ($l =~ m/^($marker_encoding):\s*(\S*)\s*$/)
- {
- err "(process_section_encodings()) More than one $marker_encoding "
- . "records found ($l)"
- if defined $encoding;
-
- $encoding = $2;
- }
- elsif ($l =~ m/^($marker_ces):\s*(\S*)\s*$/)
- {
- err "(process_section_encodings()) More than one $marker_ces "
- . "records found ($l)"
- if defined $ces;
-
- $ces = $2;
- }
- elsif ($l =~ m/^($marker_aliases):\s*(.*)\s*$/)
- {
- err "(process_section_encodings()) More than one "
- . "$marker_aliases records found ($l)"
- if defined $aliases;
-
- $aliases = $2;
- }
- elsif ($l =~ m/^($marker_ccs):\s*(.*)\s*$/)
- {
- err "(process_section_encodings()) More than one "
- . "$marker_ccs records found ($l)"
- if defined $ccs;
-
- $ccs = $2;
- }
- else
- {
- err "(process_section_encodings()) Can't parse \"$l\"";
- }
- }
-
- err "(process_section_encodings()) $encoding is defined twice"
- if (defined $encces{$encoding});
- err "(process_section_encodings()) ENCODING: field isn't found"
- if not defined $encoding;
-
- if (defined $ces)
- {
- push @{$cesenc{$ces}}, $encoding;
- $encces{$encoding} = $ces;
- }
-
- if (defined $ccs)
- {
- my @ccs = split / /, $ccs;
- push @{$ccsenc{$_}}, $encoding foreach (@ccs);
- }
- $encalias{$encoding} = $aliases;
- }
-
- # Generate cesbi.h header file
- generate_cesbi_h (\%cesenc, \%encces);
-
- # Generate encnames.h header file
- generate_encnames_h (keys %encces);
-
- # Generate aliasesbi.c file
- generate_aliasesbi_c (\%encalias);
-
- # Generate encoding.aliases file
- generate_encoding_aliases (\%encalias);
-
- # Generate ccsbi.h header file
- generate_ccsbi_h (\%ccsenc);
-
- # Generate cesbi.c file
- generate_cesbi_c (\%cesenc);
-
- # Generate ccsbi.c file
- my @ccs = keys %ccsenc;
- generate_ccsbi_c (\@ccs);
-
- # Generate ccsnames.h header file
- generate_ccsnames_h (\%ccsenc);
-
-}
-
-# ==============================================================================
-#
-# Process CES_DEPENDENCIES section.
-#
-# Parameter 1: array reference with section content.
-#
-# ==============================================================================
-sub process_section_cesdeps($)
-{
- my $sect = $_[0];
- my $lineidx = 0;
- my @entry;
- my $marker_ces = 'CES';
- my $marker_used_ces = 'USED_CES';
- my %cesdeps;
-
- while (next_entry ($sect, \@entry, \$lineidx))
- {
- my $ces;
- my $used_ces;
-
- foreach my $l (@entry)
- {
- if ($l =~ m/^($marker_ces):\s*(\S*)\s*$/)
- {
- err "(process_section_cesdeps()) More than one $marker_ces "
- . "records found ($l)"
- if $ces;
-
- $ces = $2;
- }
- elsif ($l =~ m/^($marker_used_ces):\s*(.*)\s*$/)
- {
- err "(process_section_cesdeps()) More than one $marker_used_ces "
- . "records found ($l)"
- if $used_ces;
-
- $used_ces = $2;
- }
- else
- {
- err "(process_section_cesdeps()) Can't parse \"$l\"";
- }
- }
-
- err "(process_section_esdeps()) $ces dependecties are defined twice"
- if (defined $cesdeps{$ces});
-
- # Split string
- my @used_ces = split / /, $used_ces;
-
- $cesdeps{$ces} = \@used_ces;
- }
-
- # Generate cesdeps.h header file
- generate_cesdeps_h (\%cesdeps);
-}
-
-# ==============================================================================
-#
-# Extract next entry.
-#
-# Parameter 1 (input): array reference with entries;
-# Parameter 2 (output): array reference with entry content;
-# Parameter 3 (input/output): scalar reference with line index to process.
-#
-# Returns 1 is entry was found, 0 if thee is no more entries;
-#
-# ==============================================================================
-sub next_entry($$$)
-{
- my $entries = $_[0];
- my $entry = $_[1];
- my $idx = $_[2];
- my $marker_entry = 'ENTRY';
- my $marker_entry_end = 'ENTRY END';
- my $entry_flag = 0;
-
- return 0 if not defined ${$entries}[${$idx}];
-
- undef @{$entry};
-
- for (; my $l = ${$entries}[${$idx}++];)
- {
- # Skip comments and empty lines
- next if $l =~ m/^#.*$/ or $l =~ m/^\s*$/;
-
- if ($l =~ m/^$marker_entry$/)
- {
- err "(next_entry()) $marker_entry marker appears twice"
- if ($entry_flag == 1);
- $entry_flag = 1;
- $l = ${$entries}[${$idx}++]
- }
- else
- {
- # Generate error if line isn't entry begin marker
- err "(next_entry()) Unexpected marker: \"$l\". ${marker_entry} "
- . "is expected."
- if ($entry_flag == 0)
- }
-
- last if $l =~ m/^$marker_entry_end$/;
-
- push @{$entry}, $l;
- }
-
- return 1;
-}
-
-# ==============================================================================
-#
-# Generate cesbi.h file.
-#
-# Parameter 1 (input): hash reference with keys = CES Converters names and
-# values = array references with list of supported encodings.
-# Parameter 2 (input): hash reference with keys = encodings names and
-# values = CES converter names.
-#
-# ==============================================================================
-sub generate_cesbi_h($$)
-{
- my %cesenc = %{$_[0]};
- my %encces = %{$_[1]};
- my @ces = sort keys %cesenc;
-
- print "Debug: create \"cesbi.h\" file.\n" if $verbose;
- open (CESBI_H, '>', "cesbi.h")
- or err "Can't create \"cesbi.h\" file for writing.\nSystem error message: $!.\n";
-
- print CESBI_H "$comment_automatic\n\n";
- print CESBI_H "#ifndef __CESBI_H__\n";
- print CESBI_H "#define __CESBI_H__\n\n";
- print CESBI_H "#include <newlib.h>\n";
- print CESBI_H "#include <_ansi.h>\n";
- print CESBI_H "#include \"../lib/encnames.h\"\n";
- print CESBI_H "#include \"../lib/ucsconv.h\"\n\n";
- print CESBI_H "/*\n";
- print CESBI_H " * Enable CES converter if correspondent encoding is requested.\n";
- print CESBI_H " * Defining ${macro_to_ucs_ces}XXX macro or ${macro_from_ucs_ces}XXX\n";
- print CESBI_H " * macro is needed to enable \"XXX encoding -> UCS\" or \"UCS -> XXX encoding\"\n";
- print CESBI_H " * part of UCS-based CES converter.\n";
- print CESBI_H " */\n";
-
- foreach my $ces (@ces)
- {
- my @encs = sort @{$cesenc{$ces}};
- foreach my $encoding (@encs)
- {
- print CESBI_H $encoding eq $encs[0] ? "#if " : " || ";
- print CESBI_H "defined ($macro_from_enc\U$encoding)";
- print CESBI_H " \\" if $encoding ne $encs[$#encs];
- print CESBI_H "\n";
- }
- print CESBI_H "# define $macro_to_ucs_ces\U$ces\n";
- print CESBI_H "#endif\n";
-
- foreach my $encoding (@encs)
- {
- print CESBI_H $encoding eq $encs[0] ? "#if " : " || ";
- print CESBI_H "defined ($macro_to_enc\U$encoding)";
- print CESBI_H " \\" if $encoding ne $encs[$#encs];
- print CESBI_H "\n";
- }
- print CESBI_H "# define $macro_from_ucs_ces\U$ces\n";
- print CESBI_H "#endif\n\n";
- }
-
- print CESBI_H "/*\n";
- print CESBI_H " * Some encodings require another encodings to be enabled.\n";
- print CESBI_H " * These dependencies are handled in cesdeps.h header file.\n";
- print CESBI_H " */\n";
- print CESBI_H "#include \"cesdeps.h\"\n\n";
-
- print CESBI_H "/*\n";
- print CESBI_H " * NLS uses iconv's capabilities and require one of encodings\n";
- print CESBI_H " * to be enabled for internal wchar_t representation.\n";
- print CESBI_H " */\n";
- print CESBI_H "#include \"../lib/iconvnls.h\"\n\n";
-
- print CESBI_H "/*\n";
- print CESBI_H " * Forward declarations of CES converter handlers.\n";
- print CESBI_H " * These handlers are actually defined in correspondent CES converter files.\n";
- print CESBI_H " */\n";
-
- foreach my $ces (@ces)
- {
- print CESBI_H "#ifdef $macro_to_ucs_ces\U$ces\n";
- print CESBI_H "extern _CONST iconv_to_ucs_ces_handlers_t\n";
- print CESBI_H "$var_to_ucs_handlers$ces;\n";
- print CESBI_H "#endif\n";
-
- print CESBI_H "#ifdef $macro_from_ucs_ces\U$ces\n";
- print CESBI_H "extern _CONST iconv_from_ucs_ces_handlers_t\n";
- print CESBI_H "$var_from_ucs_handlers$ces;\n";
- print CESBI_H "#endif\n\n";
- }
-
- print CESBI_H "#endif /* !__CESBI_H__ */\n\n";
- close CESBI_H or err "Error while closing cesbi.h file.";
-}
-
-# ==============================================================================
-#
-# Generate encnames.h header file.
-#
-# Parameters: array of supported encodings.
-#
-# ==============================================================================
-sub generate_encnames_h(@)
-{
- print "Debug: create \"../lib/encnames.h\" file.\n" if $verbose;
- open (ENCNAMES_H, '>', "../lib/encnames.h")
- or err "Can't create \"../lib/encnames.h\" file for writing.\nSystem error message: $!.\n";
-
- print ENCNAMES_H "$comment_automatic\n\n";
- print ENCNAMES_H "#ifndef __ENCNAMES_H__\n";
- print ENCNAMES_H "#define __ENCNAMES_H__\n\n";
-
- print ENCNAMES_H "/*\n";
- print ENCNAMES_H " * Encodings name macros.\n";
- print ENCNAMES_H " */\n";
-
- foreach my $enc (sort @_)
- {
- print ENCNAMES_H "#define $macro_enc_name\U$enc\E \"$enc\"\n";
- }
-
- print ENCNAMES_H "\n#endif /* !__ENCNAMES_H__ */\n\n";
- close ENCNAMES_H or err "Error while closing ../lib/encnames.h file.";
-}
-
-# ==============================================================================
-#
-# Generate aliasesbi.c C source file.
-#
-# Parameters: hash reference with keys = encodings and values = aliases string.
-#
-# ==============================================================================
-sub generate_aliasesbi_c($)
-{
- print "Debug: create \"../lib/aliasesbi.c\" file.\n" if $verbose;
- open (ALIASESBI_C, '>', "../lib/aliasesbi.c")
- or err "Can't create \"../lib/aliasesbi.c\" file for writing.\nSystem error message: $!.\n";
-
- print ALIASESBI_C "$comment_automatic\n\n";
- print ALIASESBI_C "#include <_ansi.h>\n";
- print ALIASESBI_C "#include \"encnames.h\"\n\n";
- print ALIASESBI_C "_CONST char *\n";
- print ALIASESBI_C "$var_aliases =\n";
- print ALIASESBI_C "{\n";
-
- foreach my $enc (sort keys %{$_[0]})
- {
- print ALIASESBI_C "#if defined ($macro_from_enc\U$enc) \\\n";
- print ALIASESBI_C " || defined ($macro_to_enc\U$enc)\n";
- print ALIASESBI_C " $macro_enc_name\U$enc\E";
- print ALIASESBI_C " \" ${$_[0]}{$enc}\\n\"" if defined ${$_[0]}{$enc};
- print ALIASESBI_C "\n";
- print ALIASESBI_C "#endif\n";
- }
- print ALIASESBI_C " \"\"\n";
- print ALIASESBI_C "};\n\n";
-
- close ALIASESBI_C or err "Error while closing ../lib/aliasesbi.c file.";
-}
-
-# ==============================================================================
-#
-# Generate encoding.aliases file.
-#
-# Parameter 1: hash reference with keys = encodings and values = aliases string.
-#
-# ==============================================================================
-sub generate_encoding_aliases($)
-{
- print "Debug: create \"../encoding.aliases\" file.\n" if $verbose;
- open (ALIASES, '>', "../encoding.aliases")
- or err "Can't create \"../encoding.aliases\" file for writing.\nSystem error message: $!.\n";
-
- print ALIASES "#\n# This file was automatically generated. Don't edit.\n#\n\n";
-
- foreach my $enc (sort keys %{$_[0]})
- {
- print ALIASES "$enc";
- print ALIASES " ${$_[0]}{$enc}" if defined ${$_[0]}{$enc};
- print ALIASES "\n";
- }
-
- print ALIASES "\n";
-
- close ALIASES or err "Error while closing ./encoding.aliases file.";
-}
-
-# ==============================================================================
-#
-# Generate cesdeps.h header file.
-#
-# Parameter 1: hash reference with keys = CES converters and values = references
-# to arrays with list of CES converters which are needed by that CES converter
-# (defined by key).
-#
-# ==============================================================================
-sub generate_cesdeps_h($)
-{
- my %cesdeps = %{$_[0]};
-
- print "Debug: create \"cesdeps.h\" file.\n" if $verbose;
- open (CESDEPS_H, '>', "cesdeps.h")
- or err "Can't create \"cesdeps.h\" file for writing.\nSystem error message: $!.\n";
-
- print CESDEPS_H "$comment_automatic\n\n";
- print CESDEPS_H "#ifndef __CESDEPS_H__\n";
- print CESDEPS_H "#define __CESDEPS_H__\n\n";
-
- print CESDEPS_H "/*\n";
- print CESDEPS_H " * Some CES converters use another CES converters and the following\n";
- print CESDEPS_H " * is such dependencies description.\n";
- print CESDEPS_H " */\n";
-
- foreach my $ces (sort keys %cesdeps)
- {
- my @deps = sort @{$cesdeps{$ces}};
-
- print CESDEPS_H "#ifdef $macro_to_ucs_ces\U$ces\n";
-
- foreach my $dep (@deps)
- {
- print CESDEPS_H "# ifndef $macro_to_ucs_ces\U$dep\n";
- print CESDEPS_H "# define $macro_to_ucs_ces\U$dep\n";
- print CESDEPS_H "# endif\n";
- }
- print CESDEPS_H "#endif\n";
-
- print CESDEPS_H "#ifdef $macro_from_ucs_ces\U$ces\n";
- foreach my $dep (@deps)
- {
- print CESDEPS_H "# ifndef $macro_from_ucs_ces\U$dep\n";
- print CESDEPS_H "# define $macro_from_ucs_ces\U$dep\n";
- print CESDEPS_H "# endif\n";
- }
- print CESDEPS_H "#endif\n";
- }
-
- print CESDEPS_H "\n#endif /* !__CESDEPS_H__ */\n\n";
- close CESDEPS_H or err "Error while closing cesdeps.h file.";
-}
-
-# ==============================================================================
-#
-# Generate ccsbi.h file.
-#
-# Parameter 1 (input): hash reference with keys = CCS tables names and
-# values = array references with list of encodings which need this CCS table.
-#
-# ==============================================================================
-sub generate_ccsbi_h($)
-{
- my %ccsenc = %{$_[0]};
- my @ccs = sort keys %ccsenc;
-
- print "Debug: create \"../ccs/ccsbi.h\" file.\n" if $verbose;
- open (CCSBI_H, '>', "../ccs/ccsbi.h")
- or err "Can't create \"../ccs/ccsbi.h\" file for writing.\nSystem error message: $!.\n";
-
- print CCSBI_H "$comment_automatic\n\n";
- print CCSBI_H "#ifndef __CCSBI_H__\n";
- print CCSBI_H "#define __CCSBI_H__\n\n";
- print CCSBI_H "#include <newlib.h>\n";
- print CCSBI_H "#include <_ansi.h>\n";
- print CCSBI_H "#include \"ccs.h\"\n\n";
- print CCSBI_H "/*\n";
- print CCSBI_H " * Enable CCS tables if encoding needs them.\n";
- print CCSBI_H " * Defining ${macro_to_ucs_ccs}XXX macro or ${macro_from_ucs_ccs}XXX\n";
- print CCSBI_H " * macro is needed to enable \"XXX encoding -> UCS\" or \"UCS -> XXX encoding\"\n";
- print CCSBI_H " * part of CCS table.\n";
- print CCSBI_H " * CCS tables aren't linked if Newlib was configuted to use external CCS tables.\n";
- print CCSBI_H " */\n";
-
- print CCSBI_H "#ifndef _ICONV_ENABLE_EXTERNAL_CCS\n\n";
-
- foreach my $ccs (@ccs)
- {
- my @encs = sort @{$ccsenc{$ccs}};
- foreach my $encoding (@encs)
- {
- print CCSBI_H $encoding eq $encs[0] ? "#if " : " || ";
- print CCSBI_H "defined ($macro_from_enc\U$encoding)";
- print CCSBI_H " \\" if $encoding ne $encs[$#encs];
- print CCSBI_H "\n";
- }
- print CCSBI_H "# define $macro_to_ucs_ccs\U$ccs\n";
- print CCSBI_H "#endif\n";
-
- foreach my $encoding (@encs)
- {
- print CCSBI_H $encoding eq $encs[0] ? "#if " : " || ";
- print CCSBI_H "defined ($macro_to_enc\U$encoding)";
- print CCSBI_H " \\" if $encoding ne $encs[$#encs];
- print CCSBI_H "\n";
- }
- print CCSBI_H "# define $macro_from_ucs_ccs\U$ccs\n";
- print CCSBI_H "#endif\n\n";
- }
-
- print CCSBI_H "/*\n";
- print CCSBI_H " * CCS table description structures forward declarations.\n";
- print CCSBI_H " */\n";
-
- foreach my $ccs (@ccs)
- {
- print CCSBI_H "#if defined ($macro_to_ucs_ccs\U$ccs) \\\n";
- print CCSBI_H " || defined ($macro_from_ucs_ccs\U$ccs)\n";
- print CCSBI_H "extern _CONST iconv_ccs_t\n";
- print CCSBI_H "$var_ccs$ccs;\n";
- print CCSBI_H "#endif\n";
- }
-
- print CCSBI_H "\n#endif /* !_ICONV_ENABLE_EXTERNAL_CCS */\n\n";
- print CCSBI_H "\n#endif /* __CCSBI_H__ */\n\n";
- close CCSBI_H or err "Error while closing ../ccs/ccsbi.h file.";
-}
-
-# ==============================================================================
-#
-# Generate cesbi.c file.
-#
-# Parameter 1 (input): hash reference with keys = CES Converters names and
-# values = array references with list of supported encodings.
-#
-# ==============================================================================
-sub generate_cesbi_c($)
-{
- my %cesenc = %{$_[0]};
- my @ces = sort keys %cesenc;
-
- print "Debug: create \"cesbi.c\" file.\n" if $verbose;
- open (CESBI_C, '>', "cesbi.c")
- or err "Can't create \"cesbi.c\" file for writing.\nSystem error message: $!.\n";
-
- print CESBI_C "$comment_automatic\n\n";
- print CESBI_C "#include <_ansi.h>\n";
- print CESBI_C "#include <newlib.h>\n";
- print CESBI_C "#include \"../lib/ucsconv.h\"\n";
- print CESBI_C "#include \"cesbi.h\"\n\n";
- print CESBI_C "/*\n";
- print CESBI_C " * Each CES converter provides the list of supported encodings.\n";
- print CESBI_C " */\n";
-
- foreach my $ces (@ces)
- {
- print CESBI_C "#if defined ($macro_to_ucs_ces\U$ces) \\\n";
- print CESBI_C " || defined ($macro_from_ucs_ces\U$ces)\n";
- print CESBI_C "static _CONST char *\n";
- print CESBI_C "$var_ces_names${ces}\[] =\n";
- print CESBI_C "{\n";
- my @encodings = sort @{$cesenc{$ces}};
- foreach my $encoding (@encodings)
- {
- print CESBI_C "# if defined ($macro_from_enc\U$encoding) \\\n";
- print CESBI_C " || defined ($macro_to_enc\U$encoding)\n";
- print CESBI_C " $macro_enc_name\U$encoding,\n";
- print CESBI_C "#endif\n";
- }
- print CESBI_C " NULL\n";
- print CESBI_C "};\n";
- print CESBI_C "#endif\n\n";
- }
-
- print CESBI_C "/*\n";
- print CESBI_C " * The following structure contains the list of \"to UCS\" linked-in CES converters.\n";
- print CESBI_C " */\n";
- print CESBI_C "_CONST iconv_to_ucs_ces_t\n";
- print CESBI_C "_iconv_to_ucs_ces[] =\n";
- print CESBI_C "{\n";
-
- foreach my $ces (@ces)
- {
- print CESBI_C "#ifdef $macro_to_ucs_ces\U$ces\n";
- print CESBI_C " {(_CONST char **)$var_ces_names$ces,\n";
- print CESBI_C " &$var_to_ucs_handlers$ces},\n";
- print CESBI_C "#endif\n";
- }
- print CESBI_C " {(_CONST char **)NULL,\n";
- print CESBI_C " (iconv_to_ucs_ces_handlers_t *)NULL}\n";
- print CESBI_C "};\n\n";
-
- print CESBI_C "/*\n";
- print CESBI_C " * The following structure contains the list of \"from UCS\" linked-in CES converters.\n";
- print CESBI_C " */\n";
- print CESBI_C "_CONST iconv_from_ucs_ces_t\n";
- print CESBI_C "_iconv_from_ucs_ces[] =\n";
- print CESBI_C "{\n";
-
- foreach my $ces (@ces)
- {
- print CESBI_C "#ifdef $macro_from_ucs_ces\U$ces\n";
- print CESBI_C " {(_CONST char **)$var_ces_names$ces,\n";
- print CESBI_C " &$var_from_ucs_handlers$ces},\n";
- print CESBI_C "#endif\n";
- }
- print CESBI_C " {(_CONST char **)NULL,\n";
- print CESBI_C " (iconv_from_ucs_ces_handlers_t *)NULL}\n";
- print CESBI_C "};\n";
-
- close CESBI_C or err "Error while closing cesbi.c file.";
-}
-
-# ==============================================================================
-#
-# Generate ccsbi.c file.
-#
-# Parameter 1 (input): array reference with CCS tables names
-#
-# ==============================================================================
-sub generate_ccsbi_c($)
-{
- my @ccs = @{$_[0]};
-
- print "Debug: create \"../ccs/ccsbi.c\" file.\n" if $verbose;
- open (CESBI_C, '>', "../ccs/ccsbi.c")
- or err "Can't create \"../ccs/ccsbi.c\" file for writing.\nSystem error message: $!.\n";
-
- print CESBI_C "$comment_automatic\n\n";
- print CESBI_C "#include <_ansi.h>\n";
- print CESBI_C "#include \"ccsbi.h\"\n\n";
- print CESBI_C "/*\n";
- print CESBI_C " * The following array contains the list of built-in CCS tables.\n";
- print CESBI_C " */\n";
-
- print CESBI_C "_CONST iconv_ccs_t *\n";
- print CESBI_C "_iconv_ccs[] =\n";
- print CESBI_C "{\n";
-
- foreach my $ccs (@ccs)
- {
- print CESBI_C "#if defined ($macro_to_ucs_ccs\U$ccs) \\\n";
- print CESBI_C " || defined ($macro_from_ucs_ccs\U$ccs)\n";
- print CESBI_C " &$var_ccs$ccs,\n";
- print CESBI_C "#endif\n";
- }
- print CESBI_C " NULL\n";
- print CESBI_C "};\n";
-
- close CESBI_C or err "Error while closing ../ccs/ccsbi.c file.";
-}
-
-# ==============================================================================
-#
-# Generate ccsnames.h file.
-#
-# Parameter 1 (input): hash reference with keys = CCS tables names and
-# values = array references with list of encodings which need this CCS table.
-#
-# ==============================================================================
-sub generate_ccsnames_h($)
-{
- my %ccsenc = %{$_[0]};
- my @ccs = sort keys %ccsenc;
-
- print "Debug: create \"../ccs/ccsnames.h\" file.\n" if $verbose;
- open (CCSNAMES_H, '>', "../ccs/ccsnames.h")
- or err "Can't create \"../ccs/ccsnames.h\" file for writing.\nSystem error message: $!.\n";
-
- print CCSNAMES_H "$comment_automatic\n\n";
- print CCSNAMES_H "#ifndef __CCSNAMES_H__\n";
- print CCSNAMES_H "#define __CCSNAMES_H__\n\n";
- print CCSNAMES_H "#include \"../lib/encnames.h\"\n\n";
- print CCSNAMES_H "/*\n";
- print CCSNAMES_H " * CCS tables names macros.\n";
- print CCSNAMES_H " */\n";
-
- foreach my $ccs (@ccs)
- {
- my @encs = @{$ccsenc{$ccs}};
- my $flag;
- foreach my $encoding (@encs)
- {
- print CCSNAMES_H "#define $macro_ccs_name\U$ccs ";
- if ($encoding eq $ccs)
- {
- $flag = 1;
- print CCSNAMES_H "$macro_enc_name\U$encoding\n";
- last;
- }
- }
- print CCSNAMES_H "\"$ccs\"\n" if !$flag;
- }
-
- print CCSNAMES_H "\n#endif /* !__CCSNAMES_H__ */\n\n";
- close CCSNAMES_H or err "Error while closing ../ccs/ccsnames.h file.";
-}
diff --git a/newlib/libc/iconv/ces/table-pcs.c b/newlib/libc/iconv/ces/table-pcs.c
deleted file mode 100644
index fc46e27f2..000000000
--- a/newlib/libc/iconv/ces/table-pcs.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (c) 2003-2004, Artem B. Bityuckiy
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * This CES converter is just an simple extension of table CES converter.
- * This CES converter is used for 16 bit CCSes which include 7bit
- * Portable Characters Set (PCS) (equivalent to ASCII) (example: BIG5).
- */
-
-#include "cesbi.h"
-
-#if defined (ICONV_TO_UCS_CES_TABLE_PCS) \
- || defined (ICONV_FROM_UCS_CES_TABLE_PCS)
-
-#include <_ansi.h>
-#include <reent.h>
-#include <sys/types.h>
-#include "../lib/local.h"
-#include "../lib/ucsconv.h"
-
-#if defined (ICONV_FROM_UCS_CES_TABLE_PCS)
-static size_t
-_DEFUN(table_pcs_convert_from_ucs, (data, in, outbuf, outbytesleft),
- _VOID_PTR data _AND
- ucs4_t in _AND
- unsigned char **outbuf _AND
- size_t *outbytesleft)
-{
- if (*outbytesleft < 1)
- return (size_t)ICONV_CES_NOSPACE;
-
- if (in < 0x80)
- {
- **outbuf = (unsigned char)in;
- *outbuf += 1;
- *outbytesleft -= 1;
- return 1;
- }
-
- return _iconv_from_ucs_ces_handlers_table.convert_from_ucs (
- data,
- in,
- outbuf,
- outbytesleft);
-}
-
-static _VOID_PTR
-_DEFUN(table_pcs_from_ucs_init, (rptr, encoding),
- struct _reent *rptr _AND
- _CONST char *encoding)
-{
- return _iconv_from_ucs_ces_handlers_table.init (rptr, encoding);
-}
-
-static size_t
-_DEFUN(table_pcs_from_ucs_close, (rptr, data),
- struct _reent *rptr _AND
- _VOID_PTR data)
-{
- return _iconv_from_ucs_ces_handlers_table.close (rptr, data);
-}
-
-static int
-_DEFUN(table_pcs_from_ucs_get_mb_cur_max, (data),
- _VOID_PTR data)
-{
- return _iconv_from_ucs_ces_handlers_table.get_mb_cur_max (data);
-}
-
-#endif /* ICONV_FROM_UCS_CES_TABLE_PCS */
-
-#if defined (ICONV_TO_UCS_CES_TABLE_PCS)
-static ucs4_t
-_DEFUN(table_pcs_convert_to_ucs, (data, inbuf, inbytesleft),
- _VOID_PTR data _AND
- _CONST unsigned char **inbuf _AND
- size_t *inbytesleft)
-{
- if (*inbytesleft < 1)
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- if (**inbuf < 0x80)
- {
- *inbytesleft -= 1;
- *inbuf += 1;
- return (ucs4_t)(*(*inbuf - 1));
- }
-
- return _iconv_to_ucs_ces_handlers_table.convert_to_ucs (
- data,
- inbuf,
- inbytesleft);
-}
-
-static _VOID_PTR
-_DEFUN(table_pcs_to_ucs_init, (rptr, encoding),
- struct _reent *rptr _AND
- _CONST char *encoding)
-{
- return _iconv_to_ucs_ces_handlers_table.init (rptr, encoding);
-}
-
-static size_t
-_DEFUN(table_pcs_to_ucs_close, (rptr, data),
- struct _reent *rptr _AND
- _VOID_PTR data)
-{
- return _iconv_to_ucs_ces_handlers_table.close (rptr, data);
-}
-
-static int
-_DEFUN(table_pcs_to_ucs_get_mb_cur_max, (data),
- _VOID_PTR data)
-{
- return _iconv_to_ucs_ces_handlers_table.get_mb_cur_max (data);
-}
-
-#endif /* ICONV_TO_UCS_CES_TABLE_PCS */
-
-#if defined (ICONV_FROM_UCS_CES_TABLE_PCS)
-_CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_table_pcs =
-{
- table_pcs_from_ucs_init,
- table_pcs_from_ucs_close,
- table_pcs_from_ucs_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- table_pcs_convert_from_ucs
-};
-#endif
-
-#if defined (ICONV_TO_UCS_CES_TABLE_PCS)
-_CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_table_pcs =
-{
- table_pcs_to_ucs_init,
- table_pcs_to_ucs_close,
- table_pcs_to_ucs_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- table_pcs_convert_to_ucs
-};
-#endif
-
-#endif /* ICONV_TO_UCS_CES_TABLE_PCS || ICONV_FROM_UCS_CES_TABLE_PCS */
-
diff --git a/newlib/libc/iconv/ces/table.c b/newlib/libc/iconv/ces/table.c
deleted file mode 100644
index e43e23faa..000000000
--- a/newlib/libc/iconv/ces/table.c
+++ /dev/null
@@ -1,594 +0,0 @@
-/*
- * Copyright (c) 2003-2004, Artem B. Bityuckiy
- * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#include "cesbi.h"
-
-#if defined (ICONV_TO_UCS_CES_TABLE) \
- || defined (ICONV_FROM_UCS_CES_TABLE)
-
-#include <_ansi.h>
-#include <reent.h>
-#include <newlib.h>
-#include <sys/types.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/iconvnls.h>
-#include "../lib/endian.h"
-#include "../lib/local.h"
-#include "../lib/ucsconv.h"
-#include "../ccs/ccs.h"
-
-/*
- * Table-based CES converter is implemented here. Table-based CES converter
- * deals with encodings with "null" CES, like KOI8-R. In this case it is
- * possible to implement one generic algorithm which works with different
- * CCS tables.
- *
- * Table-based CES converter deals with CCS tables placed into iconv/ccs
- * subdirectory. First, converter tries to find needed CCS table among
- * linked-in tables. If not found, it tries to load it from external file
- * (only if corespondent capability was enabled in Newlib configuration).
- *
- * 16 bit encodings are assumed to be Big Endian.
- */
-
-static ucs2_t
-_EXFUN(find_code_size, (ucs2_t code, _CONST __uint16_t *tblp));
-
-static __inline ucs2_t
-_EXFUN(find_code_speed, (ucs2_t code, _CONST __uint16_t *tblp));
-
-static __inline ucs2_t
-_EXFUN(find_code_speed_8bit, (ucs2_t code, _CONST unsigned char *tblp));
-
-#ifdef _ICONV_ENABLE_EXTERNAL_CCS
-static _CONST iconv_ccs_desc_t *
-_EXFUN(load_file, (struct _reent *rptr, _CONST char *name, int direction));
-#endif
-
-/*
- * Interface data and functions implementation.
- */
-static size_t
-_DEFUN(table_close, (rptr, data),
- struct _reent *rptr _AND
- _VOID_PTR data)
-{
- _CONST iconv_ccs_desc_t *ccsp = (iconv_ccs_desc_t *)data;
-
- if (ccsp->type == TABLE_EXTERNAL)
- _free_r (rptr, (_VOID_PTR)ccsp->tbl);
-
- _free_r( rptr, (_VOID_PTR)ccsp);
- return 0;
-}
-
-#if defined (ICONV_FROM_UCS_CES_TABLE)
-static _VOID_PTR
-_DEFUN(table_init_from_ucs, (rptr, encoding),
- struct _reent *rptr _AND
- _CONST char *encoding)
-{
- int i;
- _CONST iconv_ccs_t *biccsp = NULL;
- iconv_ccs_desc_t *ccsp;
-
- for (i = 0; _iconv_ccs[i] != NULL; i++)
- if (strcmp (_iconv_ccs[i]->name, encoding) == 0)
- {
- biccsp = _iconv_ccs[i];
- break;
- }
-
- if (biccsp != NULL)
- {
- if (biccsp->from_ucs == NULL
- || (ccsp = (iconv_ccs_desc_t *)
- _malloc_r (rptr, sizeof (iconv_ccs_desc_t))) == NULL)
- return NULL;
-
- ccsp->type = TABLE_BUILTIN;
- ccsp->bits = biccsp->bits;
- ccsp->optimization = biccsp->from_ucs_type;
- ccsp->tbl = biccsp->from_ucs;
-
- return (_VOID_PTR)ccsp;
- }
-
-#ifdef _ICONV_ENABLE_EXTERNAL_CCS
- return (_VOID_PTR)load_file (rptr, encoding, 1);
-#else
- return NULL;
-#endif
-}
-
-static size_t
-_DEFUN(table_convert_from_ucs, (data, in, outbuf, outbytesleft),
- _VOID_PTR data _AND
- ucs4_t in _AND
- unsigned char **outbuf _AND
- size_t *outbytesleft)
-{
- _CONST iconv_ccs_desc_t *ccsp = (iconv_ccs_desc_t *)data;
- ucs2_t code;
-
- if (in > 0xFFFF || in == INVALC)
- return (size_t)ICONV_CES_INVALID_CHARACTER;
-
- if (ccsp->bits == TABLE_8BIT)
- {
- code = find_code_speed_8bit ((ucs2_t)in,
- (_CONST unsigned char *)ccsp->tbl);
- if (code == INVALC)
- return (size_t)ICONV_CES_INVALID_CHARACTER;
- **outbuf = (unsigned char)code;
- *outbuf += 1;
- *outbytesleft -= 1;
- return 1;
- }
- else if (ccsp->optimization == TABLE_SPEED_OPTIMIZED)
- code = find_code_speed ((ucs2_t)in, ccsp->tbl);
- else
- code = find_code_size ((ucs2_t)in, ccsp->tbl);
-
- if (code == INVALC)
- return (size_t)ICONV_CES_INVALID_CHARACTER;
-
- if (*outbytesleft < 2)
- return (size_t)ICONV_CES_NOSPACE;
-
- /* We can't store whole word since **outbuf may be not 2-byte aligned */
- **outbuf = (unsigned char)((ucs2_t)code >> 8);
- *(*outbuf + 1) = (unsigned char)code;
- *outbuf += 2;
- *outbytesleft -= 2;
- return 2;
-}
-#endif /* ICONV_FROM_UCS_CES_TABLE */
-
-#if defined (ICONV_TO_UCS_CES_TABLE)
-static _VOID_PTR
-_DEFUN(table_init_to_ucs, (rptr, encoding),
- struct _reent *rptr _AND
- _CONST char *encoding)
-{
- int i;
- _CONST iconv_ccs_t *biccsp = NULL;
- iconv_ccs_desc_t *ccsp;
-
- for (i = 0; _iconv_ccs[i] != NULL; i++)
- if (strcmp (_iconv_ccs[i]->name, encoding) == 0)
- {
- biccsp = _iconv_ccs[i];
- break;
- }
-
- if (biccsp != NULL)
- {
- if (biccsp->to_ucs == NULL
- || (ccsp = (iconv_ccs_desc_t *)
- _malloc_r (rptr, sizeof (iconv_ccs_desc_t))) == NULL)
- return NULL;
-
- ccsp->type = TABLE_BUILTIN;
- ccsp->bits = biccsp->bits;
- ccsp->optimization = biccsp->to_ucs_type;
- ccsp->tbl = biccsp->to_ucs;
-
- return (_VOID_PTR)ccsp;
- }
-
-#ifdef _ICONV_ENABLE_EXTERNAL_CCS
- return (_VOID_PTR)load_file (rptr, encoding, 0);
-#else
- return NULL;
-#endif
-}
-
-static ucs4_t
-_DEFUN(table_convert_to_ucs, (data, inbuf, inbytesleft),
- _VOID_PTR data _AND
- _CONST unsigned char **inbuf _AND
- size_t *inbytesleft)
-{
- _CONST iconv_ccs_desc_t *ccsp = (iconv_ccs_desc_t *)data;
- ucs2_t ucs;
-
- if (ccsp->bits == TABLE_8BIT)
- {
- if (*inbytesleft < 1)
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- ucs = (ucs2_t)ccsp->tbl[**inbuf];
-
- if (ucs == INVALC)
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- *inbytesleft -= 1;
- *inbuf += 1;
- return (ucs4_t)ucs;
- }
-
- if (*inbytesleft < 2)
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- if (ccsp->optimization == TABLE_SIZE_OPTIMIZED)
- ucs = find_code_size((ucs2_t)**inbuf << 8 | (ucs2_t)*(*inbuf + 1),
- ccsp->tbl);
- else
- ucs = find_code_speed((ucs2_t)**inbuf << 8 | (ucs2_t)*(*inbuf + 1),
- ccsp->tbl);
-
- if (ucs == INVALC)
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- *inbuf += 2;
- *inbytesleft -= 2;
- return (ucs4_t)ucs;
-}
-#endif /* ICONV_TO_UCS_CES_TABLE */
-
-static int
-_DEFUN(table_get_mb_cur_max, (data),
- _VOID_PTR data)
-{
- return ((iconv_ccs_desc_t *)data)->bits/8;
-}
-
-
-#if defined (ICONV_TO_UCS_CES_TABLE)
-_CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_table =
-{
- table_init_to_ucs,
- table_close,
- table_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- table_convert_to_ucs
-};
-#endif /* ICONV_FROM_UCS_CES_TABLE */
-
-#if defined (ICONV_FROM_UCS_CES_TABLE)
-_CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_table =
-{
- table_init_from_ucs,
- table_close,
- table_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- table_convert_from_ucs
-};
-#endif /* ICONV_TO_UCS_CES_TABLE */
-
-/*
- * Supplementary functions.
- */
-
-/*
- * find_code_speed - find code in 16 bit speed-optimized table.
- *
- * PARAMETERS:
- * ucs2_t code - code whose mapping to find.
- * _CONST __uint16_t *tblp - table pointer.
- *
- * RETURN:
- * Code that corresponds to 'code'.
- */
-static __inline ucs2_t
-_DEFUN(find_code_speed, (code, tblp),
- ucs2_t code _AND
- _CONST __uint16_t *tblp)
-{
- int idx = tblp[code >> 8];
-
- if (idx == INVBLK)
- return (ucs2_t)INVALC;
-
- return (ucs2_t)tblp[(code & 0x00FF) + idx];
-}
-
-/*
- * find_code_speed_8bit - find code in 8 bit speed-optimized table.
- *
- * PARAMETERS:
- * ucs2_t code - code whose mapping to find.
- * _CONST __uint16_t *tblp - table pointer.
- *
- * RETURN:
- * Code that corresponds to 'code'.
- */
-static __inline ucs2_t
-_DEFUN(find_code_speed_8bit, (code, tblp),
- ucs2_t code _AND
- _CONST unsigned char *tblp)
-{
- int idx;
- unsigned char ccs;
-
- if (code == ((ucs2_t *)tblp)[0])
- return (ucs2_t)0xFF;
-
- idx = ((ucs2_t *)tblp)[1 + (code >> 8)];
-
- if (idx == INVBLK)
- return (ucs2_t)INVALC;
-
- ccs = tblp[(code & 0x00FF) + idx];
-
- return ccs == 0xFF ? (ucs2_t)INVALC : (ucs2_t)ccs;
-}
-
-/* Left range boundary */
-#define RANGE_LEFT(n) (tblp[FIRST_RANGE_INDEX + (n)*3 + 0])
-/* Right range boundary */
-#define RANGE_RIGHT(n) (tblp[FIRST_RANGE_INDEX + (n)*3 + 1])
-/* Range offset */
-#define RANGE_INDEX(n) (tblp[FIRST_RANGE_INDEX + (n)*3 + 2])
-/* Un-ranged offset */
-#define UNRANGED_INDEX(n) (tblp[FIRST_UNRANGED_INDEX_INDEX] + (n)*2)
-
-/*
- * find_code_size - find code in 16 bit size-optimized table.
- *
- * PARAMETERS:
- * ucs2_t code - code whose mapping to find.
- * _CONST __uint16_t *tblp - table pointer.
- *
- * RETURN:
- * Code that corresponds to 'code'.
- */
-static ucs2_t
-_DEFUN(find_code_size, (code, tblp),
- ucs2_t code _AND
- _CONST __uint16_t *tblp)
-{
- int first, last, cur, center;
-
- if (tblp[RANGES_NUM_INDEX] > 0)
- {
- first = 0;
- last = tblp[RANGES_NUM_INDEX] - 1;
-
- do
- {
- center = (last - first)/2;
- cur = center + first;
-
- if (code > RANGE_RIGHT (cur))
- first = cur;
- else if (code < RANGE_LEFT (cur))
- last = cur;
- else
- return (ucs2_t)tblp[RANGE_INDEX (cur) + code - RANGE_LEFT (cur)];
- } while (center > 0);
-
- if (last - first == 1)
- {
- if (code >= RANGE_LEFT (first) && code <= RANGE_RIGHT (first))
- return (ucs2_t)tblp[RANGE_INDEX (first)
- + code - RANGE_LEFT (first)];
- if (code >= RANGE_LEFT (last) && code <= RANGE_RIGHT (last))
- return (ucs2_t)tblp[RANGE_INDEX (last)
- + code - RANGE_LEFT (last)];
- }
- }
-
- if (tblp[UNRANGED_NUM_INDEX] > 0)
- {
- first = 0;
- last = tblp[UNRANGED_NUM_INDEX] - 1;
-
- do
- {
- int c;
-
- center = (last - first)/2;
- cur = center + first;
- c = tblp[UNRANGED_INDEX (cur)];
-
- if (code > c)
- first = cur;
- else if (code < c)
- last = cur;
- else
- return (ucs2_t)tblp[UNRANGED_INDEX (cur) + 1];
- } while (center > 0);
-
- if (last - first == 1)
- {
- if (code == tblp[UNRANGED_INDEX (first)])
- return (ucs2_t)tblp[UNRANGED_INDEX (first) + 1];
- if (code == tblp[UNRANGED_INDEX (last)])
- return (ucs2_t)tblp[UNRANGED_INDEX (last) + 1];
- }
- }
-
- return (ucs2_t)INVALC;
-}
-
-#ifdef _ICONV_ENABLE_EXTERNAL_CCS
-
-#define _16BIT_ELT(offset) \
- ICONV_BETOHS(*((__uint16_t *)(buf + (offset))))
-#define _32BIT_ELT(offset) \
- ICONV_BETOHL(*((__uint32_t *)(buf + (offset))))
-
-/*
- * load_file - load conversion table from external file and initialize
- * iconv_ccs_desc_t object.
- *
- * PARAMETERS:
- * struct _reent *rptr - reent structure of current thread/process.
- * _CONST char *name - encoding name.
- * int direction - conversion direction.
- *
- * DESCRIPTION:
- * Loads conversion table of appropriate endianess from external file
- * and initializes 'iconv_ccs_desc_t' table description structure.
- * If 'direction' is 0 - load "To UCS" table, else load "From UCS"
- * table.
- *
- * RETURN:
- * iconv_ccs_desc_t * pointer is success, NULL if failure.
- */
-static _CONST iconv_ccs_desc_t *
-_DEFUN(load_file, (rptr, name, direction),
- struct _reent *rptr _AND
- _CONST char *name _AND
- int direction)
-{
- int fd;
- _CONST unsigned char *buf;
- int tbllen, hdrlen;
- off_t off;
- _CONST char *fname;
- iconv_ccs_desc_t *ccsp = NULL;
- int nmlen = strlen(name);
- /* Since CCS table name length can vary - it is aligned (by adding extra
- * bytes to it's end) to 4-byte boundary. */
- int alignment = nmlen & 3 ? 4 - (nmlen & 3) : 0;
-
- nmlen = strlen(name);
-
- hdrlen = nmlen + EXTTABLE_HEADER_LEN + alignment;
-
- if ((fname = _iconv_nls_construct_filename (rptr, name, ICONV_SUBDIR,
- ICONV_DATA_EXT)) == NULL)
- return NULL;
-
- if ((fd = _open_r (rptr, fname, O_RDONLY, S_IRUSR)) == -1)
- goto error1;
-
- if ((buf = (_CONST unsigned char *)_malloc_r (rptr, hdrlen)) == NULL)
- goto error2;
-
- if (_read_r (rptr, fd, (_VOID_PTR)buf, hdrlen) != hdrlen)
- goto error3;
-
- if (_16BIT_ELT (EXTTABLE_VERSION_OFF) != TABLE_VERSION_1
- || _32BIT_ELT (EXTTABLE_CCSNAME_LEN_OFF) != nmlen
- || strncmp (buf + EXTTABLE_CCSNAME_OFF, name, nmlen) != 0)
- goto error3; /* Bad file */
-
- if ((ccsp = (iconv_ccs_desc_t *)
- _calloc_r (rptr, 1, sizeof (iconv_ccs_desc_t))) == NULL)
- goto error3;
-
- ccsp->bits = _16BIT_ELT (EXTTABLE_BITS_OFF);
- ccsp->type = TABLE_EXTERNAL;
-
- /* Add 4-byte alignment to name length */
- nmlen += alignment;
-
- if (ccsp->bits == TABLE_8BIT)
- {
- if (direction == 0) /* Load "To UCS" table */
- {
- off = (off_t)_32BIT_ELT (nmlen + EXTTABLE_TO_SPEED_OFF);
- tbllen = _32BIT_ELT (nmlen + EXTTABLE_TO_SPEED_LEN_OFF);
- }
- else /* Load "From UCS" table */
- {
- off = (off_t)_32BIT_ELT (nmlen + EXTTABLE_FROM_SPEED_OFF);
- tbllen = _32BIT_ELT (nmlen + EXTTABLE_FROM_SPEED_LEN_OFF);
- }
- }
- else if (ccsp->bits == TABLE_16BIT)
- {
- if (direction == 0) /* Load "To UCS" table */
- {
-#ifdef TABLE_USE_SIZE_OPTIMIZATION
- off = (off_t)_32BIT_ELT (nmlen + EXTTABLE_TO_SIZE_OFF);
- tbllen = _32BIT_ELT (nmlen + EXTTABLE_TO_SIZE_LEN_OFF);
-#else
- off = (off_t)_32BIT_ELT (nmlen + EXTTABLE_TO_SPEED_OFF);
- tbllen = _32BIT_ELT (nmlen + EXTTABLE_TO_SPEED_LEN_OFF);
-#endif
- }
- else /* Load "From UCS" table */
- {
-#ifdef TABLE_USE_SIZE_OPTIMIZATION
- off = (off_t)_32BIT_ELT (nmlen + EXTTABLE_FROM_SIZE_OFF);
- tbllen = _32BIT_ELT (nmlen + EXTTABLE_FROM_SIZE_LEN_OFF);
-#else
- off = (off_t)_32BIT_ELT (nmlen + EXTTABLE_FROM_SPEED_OFF);
- tbllen = _32BIT_ELT (nmlen + EXTTABLE_FROM_SPEED_LEN_OFF);
-#endif
- }
-#ifdef TABLE_USE_SIZE_OPTIMIZATION
- ccsp->optimization = TABLE_SIZE_OPTIMIZED;
-#else
- ccsp->optimization = TABLE_SPEED_OPTIMIZED;
-#endif
- }
- else
- goto error4; /* Bad file */
-
- if (off == EXTTABLE_NO_TABLE)
- goto error4; /* No correspondent table in file */
-
- if ((ccsp->tbl = (ucs2_t *)_malloc_r (rptr, tbllen)) == NULL)
- goto error4;
-
- if (_lseek_r (rptr, fd, off, SEEK_SET) == (off_t)-1
- || _read_r (rptr, fd, (_VOID_PTR)ccsp->tbl, tbllen) != tbllen)
- goto error5;
-
- goto normal_exit;
-
-error5:
- _free_r (rptr, (_VOID_PTR)ccsp->tbl);
- ccsp->tbl = NULL;
-error4:
- _free_r (rptr, (_VOID_PTR)ccsp);
- ccsp = NULL;
-error3:
-normal_exit:
- _free_r (rptr, (_VOID_PTR)buf);
-error2:
- if (_close_r (rptr, fd) == -1)
- {
- if (ccsp != NULL)
- {
- if (ccsp->tbl != NULL)
- _free_r (rptr, (_VOID_PTR)ccsp->tbl);
- _free_r (rptr, (_VOID_PTR)ccsp);
- }
- ccsp = NULL;
- }
-error1:
- _free_r (rptr, (_VOID_PTR)fname);
- return ccsp;
-}
-#endif
-
-#endif /* ICONV_TO_UCS_CES_TABLE || ICONV_FROM_UCS_CES_TABLE */
-
diff --git a/newlib/libc/iconv/ces/ucs-2-internal.c b/newlib/libc/iconv/ces/ucs-2-internal.c
deleted file mode 100644
index 893bdd429..000000000
--- a/newlib/libc/iconv/ces/ucs-2-internal.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2003-2004, Artem B. Bityuckiy
- * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#include "cesbi.h"
-
-#if defined (ICONV_TO_UCS_CES_UCS_2_INTERNAL) \
- || defined (ICONV_FROM_UCS_CES_UCS_2_INTERNAL)
-
-#include <_ansi.h>
-#include <reent.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include "../lib/local.h"
-#include "../lib/ucsconv.h"
-#include "../lib/endian.h"
-
-/*
- * Internal 2-byte representation of UCS-2 codes without restrictions and
- * without BOM support.
- */
-
-#if defined (ICONV_FROM_UCS_CES_UCS_2_INTERNAL)
-static size_t
-_DEFUN(ucs_2_internal_convert_from_ucs, (data, in, outbuf, outbytesleft),
- _VOID_PTR data _AND
- register ucs4_t in _AND
- unsigned char **outbuf _AND
- size_t *outbytesleft)
-{
- if (in > 0x0000FFFF)
- return (size_t)ICONV_CES_INVALID_CHARACTER;
-
- if (*outbytesleft < sizeof (ucs2_t))
- return (size_t)ICONV_CES_NOSPACE;
-
- *((ucs2_t *)(*outbuf)) = (ucs2_t)in;
- *outbuf += sizeof (ucs2_t);
- *outbytesleft -= sizeof (ucs2_t);
-
- return sizeof (ucs2_t);
-}
-#endif /* ICONV_FROM_UCS_CES_UCS_2_INTERNAL */
-
-#if defined (ICONV_TO_UCS_CES_UCS_2_INTERNAL)
-static ucs4_t
-_DEFUN(ucs_2_internal_convert_to_ucs, (data, inbuf, inbytesleft),
- _VOID_PTR data _AND
- _CONST unsigned char **inbuf _AND
- size_t *inbytesleft)
-{
- register ucs4_t res;
-
- if (*inbytesleft < sizeof (ucs2_t))
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- res = (ucs4_t)*((ucs2_t *)(*inbuf));
-
- if (res > 0x0000FFFF)
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- *inbuf += sizeof (ucs2_t);
- *inbytesleft -= sizeof (ucs2_t);
-
- return res;
-}
-#endif /* ICONV_TO_UCS_CES_UCS_2_INTERNAL */
-
-static int
-_DEFUN(ucs_2_internal_get_mb_cur_max, (data),
- _VOID_PTR data)
-{
- return 2;
-}
-
-#if defined (ICONV_TO_UCS_CES_UCS_2_INTERNAL)
-_CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_ucs_2_internal =
-{
- NULL,
- NULL,
- ucs_2_internal_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- ucs_2_internal_convert_to_ucs
-};
-#endif
-
-#if defined (ICONV_FROM_UCS_CES_UCS_2_INTERNAL)
-_CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_ucs_2_internal =
-{
- NULL,
- NULL,
- ucs_2_internal_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- ucs_2_internal_convert_from_ucs
-};
-#endif
-
-#endif /* ICONV_TO_UCS_CES_UCS_2_INTERNAL || ICONV_FROM_UCS_CES_UCS_2_INTERNAL */
-
diff --git a/newlib/libc/iconv/ces/ucs-2.c b/newlib/libc/iconv/ces/ucs-2.c
deleted file mode 100644
index 6f796ca54..000000000
--- a/newlib/libc/iconv/ces/ucs-2.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) 2003-2004, Artem B. Bityuckiy
- * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#include "cesbi.h"
-
-#if defined (ICONV_TO_UCS_CES_UCS_2) \
- || defined (ICONV_FROM_UCS_CES_UCS_2)
-
-#include <_ansi.h>
-#include <reent.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include "../lib/local.h"
-#include "../lib/ucsconv.h"
-#include "../lib/endian.h"
-
-/*
- * BOM isn't supported. UCS-2 is Big Endian. Bad codes are rejected.
- * Bad codes: 0xFFFF, 0xFFFE, 0xD800-0xDFFF.
- */
-
-#define UCS_2_BIG_ENDIAN 0
-#define UCS_2_LITTLE_ENDIAN 1
-
-#define UCS_2 "ucs_2"
-#define UCS_2BE "ucs_2be"
-#define UCS_2LE "ucs_2le"
-
-static _VOID_PTR
-_DEFUN(ucs_2_init, (rptr, encoding),
- struct _reent *rptr _AND
- _CONST char *encoding)
-{
- int *data;
-
- if ((data = (int *) _malloc_r(rptr, sizeof (int))) == NULL)
- return (_VOID_PTR)NULL;
-
- if (strcmp (encoding, UCS_2LE) == 0)
- *data = UCS_2_LITTLE_ENDIAN;
- else
- *data = UCS_2_BIG_ENDIAN;
-
- return (_VOID_PTR)data;
-}
-
-static size_t
-_DEFUN(ucs_2_close, (rptr, data),
- struct _reent *rptr _AND
- _VOID_PTR data)
-{
- _free_r (rptr, data);
- return 0;
-}
-
-#if defined (ICONV_FROM_UCS_CES_UCS_2)
-static size_t
-_DEFUN(ucs_2_convert_from_ucs, (data, in, outbuf, outbytesleft),
- _VOID_PTR data _AND
- ucs4_t in _AND
- unsigned char **outbuf _AND
- size_t *outbytesleft)
-{
- if ((in >= 0x0000D800 && in <= 0x0000DFFF) /* Surrogate character */
- || in >= 0x0000FFFE)
- return (size_t)ICONV_CES_INVALID_CHARACTER;
-
- if (*outbytesleft < sizeof (ucs2_t))
- return (size_t)ICONV_CES_NOSPACE;
-
- if (*((int *)data) == UCS_2_BIG_ENDIAN)
- *((ucs2_t *)(*outbuf)) = ICONV_HTOBES ((ucs2_t)in);
- else
- *((ucs2_t *)(*outbuf)) = ICONV_HTOLES ((ucs2_t)in);
-
- *outbuf += sizeof (ucs2_t);
- *outbytesleft -= sizeof (ucs2_t);
-
- return sizeof (ucs2_t);
-}
-#endif /* ICONV_FROM_UCS_CES_UCS_2 */
-
-#if defined (ICONV_TO_UCS_CES_UCS_2)
-static ucs4_t
-_DEFUN(ucs_2_convert_to_ucs, (data, inbuf, inbytesleft),
- _VOID_PTR data _AND
- _CONST unsigned char **inbuf _AND
- size_t *inbytesleft)
-{
- ucs4_t res;
-
- if (*inbytesleft < sizeof (ucs2_t))
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- if (*((int *)data) == UCS_2_BIG_ENDIAN)
- res = (ucs4_t)ICONV_BETOHS (*((ucs2_t *)(*inbuf)));
- else
- res = (ucs4_t)ICONV_LETOHS (*((ucs2_t *)(*inbuf)));
-
- if ((res >= 0x0000D800 && res <= 0x0000DFFF) /* Surrogate character */
- || res >= 0x0000FFFE)
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- *inbytesleft -= sizeof (ucs2_t);
- *inbuf += sizeof (ucs2_t);
-
- return res;
-}
-#endif /* ICONV_TO_UCS_CES_UCS_2 */
-
-static int
-_DEFUN(ucs_2_get_mb_cur_max, (data),
- _VOID_PTR data)
-{
- return 2;
-}
-
-#if defined (ICONV_TO_UCS_CES_UCS_2)
-_CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_ucs_2 =
-{
- ucs_2_init,
- ucs_2_close,
- ucs_2_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- ucs_2_convert_to_ucs
-};
-#endif
-
-#if defined (ICONV_FROM_UCS_CES_UCS_2)
-_CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_ucs_2 =
-{
- ucs_2_init,
- ucs_2_close,
- ucs_2_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- ucs_2_convert_from_ucs
-};
-#endif
-
-#endif /* ICONV_TO_UCS_CES_UCS_2 || ICONV_FROM_UCS_CES_UCS_2 */
-
diff --git a/newlib/libc/iconv/ces/ucs-4-internal.c b/newlib/libc/iconv/ces/ucs-4-internal.c
deleted file mode 100644
index d8df9b157..000000000
--- a/newlib/libc/iconv/ces/ucs-4-internal.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2003-2004, Artem B. Bityuckiy
- * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#include "cesbi.h"
-
-#if defined (ICONV_TO_UCS_CES_UCS_4_INTERNAL) \
- || defined (ICONV_FROM_UCS_CES_UCS_4_INTERNAL)
-
-#include <_ansi.h>
-#include <reent.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include "../lib/local.h"
-#include "../lib/ucsconv.h"
-#include "../lib/endian.h"
-
-/*
- * Internal 4-byte representation of UCS-2 codes without restrictions and
- * without BOM support.
- */
-
-#if defined (ICONV_FROM_UCS_CES_UCS_4_INTERNAL)
-static size_t
-_DEFUN(ucs_4_internal_convert_from_ucs, (data, in, outbuf, outbytesleft),
- _VOID_PTR data _AND
- register ucs4_t in _AND
- unsigned char **outbuf _AND
- size_t *outbytesleft)
-{
- if (in > 0x7FFFFFFF)
- return (size_t)ICONV_CES_INVALID_CHARACTER;
-
- if (*outbytesleft < sizeof (ucs4_t))
- return (size_t)ICONV_CES_NOSPACE;
-
- *((ucs4_t *)(*outbuf)) = in;
- *outbytesleft -= sizeof (ucs4_t);
- *outbuf += sizeof (ucs4_t);
-
- return sizeof (ucs4_t);
-}
-#endif /* ICONV_FROM_UCS_CES_UCS_4_INTERNAL */
-
-#if defined (ICONV_TO_UCS_CES_UCS_4_INTERNAL)
-static ucs4_t
-_DEFUN(ucs_4_internal_convert_to_ucs, (data, inbuf, inbytesleft),
- _VOID_PTR data _AND
- _CONST unsigned char **inbuf _AND
- size_t *inbytesleft)
-{
- register ucs4_t res;
-
- if (*inbytesleft < sizeof (ucs4_t))
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- res = *((ucs4_t *)(*inbuf));
-
- if (res > 0x7FFFFFFF)
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- *inbytesleft -= sizeof (ucs4_t);
- *inbuf += sizeof (ucs4_t);
-
- return res;
-}
-#endif /* ICONV_TO_UCS_CES_UCS_4_INTERNAL */
-
-static int
-_DEFUN(ucs_4_internal_get_mb_cur_max, (data),
- _VOID_PTR data)
-{
- return 2;
-}
-
-#if defined (ICONV_TO_UCS_CES_UCS_4_INTERNAL)
-_CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_ucs_4_internal =
-{
- NULL,
- NULL,
- ucs_4_internal_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- ucs_4_internal_convert_to_ucs
-};
-#endif
-
-#if defined (ICONV_FROM_UCS_CES_UCS_4_INTERNAL)
-_CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_ucs_4_internal =
-{
- NULL,
- NULL,
- ucs_4_internal_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- ucs_4_internal_convert_from_ucs
-};
-#endif
-
-#endif /* ICONV_TO_UCS_CES_UCS_4_INTERNAL || ICONV_FROM_UCS_CES_UCS_4_INTERNAL */
-
diff --git a/newlib/libc/iconv/ces/ucs-4.c b/newlib/libc/iconv/ces/ucs-4.c
deleted file mode 100644
index cfa7b367d..000000000
--- a/newlib/libc/iconv/ces/ucs-4.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (c) 2003-2004, Artem B. Bityuckiy
- * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#include "cesbi.h"
-
-#if defined (ICONV_TO_UCS_CES_UCS_4) \
- || defined (ICONV_FROM_UCS_CES_UCS_4)
-
-#include <_ansi.h>
-#include <reent.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include "../lib/local.h"
-#include "../lib/ucsconv.h"
-#include "../lib/endian.h"
-
-/*
- * BOM isn't supported. UCS-4 is Big Endian. Bad codes are rejected.
- * Bad codes: 0x0000FFFF, 0x0000FFFE, 0x0000D800-0x0000DFFF,
- * 0x7FFFFFFF-0xFFFFFFFF.
- */
-
-#define UCS_4_BIG_ENDIAN 0
-#define UCS_4_LITTLE_ENDIAN 1
-
-#define UCS_4 "ucs_4"
-#define UCS_4BE "ucs_4be"
-#define UCS_4LE "ucs_4le"
-
-static _VOID_PTR
-_DEFUN(ucs_4_init, (rptr, encoding),
- struct _reent *rptr _AND
- _CONST char *encoding)
-{
- int *data;
-
- if ((data = (int *)_malloc_r (rptr, sizeof(int))) == NULL)
- return (_VOID_PTR)NULL;
-
- if (strcmp (encoding, UCS_4LE) == 0)
- *data = UCS_4_LITTLE_ENDIAN;
- else
- *data = UCS_4_BIG_ENDIAN;
-
- return (_VOID_PTR)data;
-}
-
-static size_t
-_DEFUN(ucs_4_close, (rptr, data),
- struct _reent *rptr _AND
- _VOID_PTR data)
-{
- _free_r(rptr, data);
- return 0;
-}
-
-
-#if defined (ICONV_FROM_UCS_CES_UCS_4)
-static size_t
-_DEFUN(ucs_4_convert_from_ucs, (data, in, outbuf, outbytesleft),
- _VOID_PTR data _AND
- ucs4_t in _AND
- unsigned char **outbuf _AND
- size_t *outbytesleft)
-{
- if ((in >= 0x0000D800 && in <= 0x0000DFFF) /* Surrogate character */
- || in > 0x7FFFFFFF || in == 0x0000FFFF || in == 0x0000FFFE)
- return (size_t)ICONV_CES_INVALID_CHARACTER;
-
- if (*outbytesleft < sizeof (ucs4_t))
- return (size_t)ICONV_CES_NOSPACE;
-
- if (*((int *)data) == UCS_4_BIG_ENDIAN)
- *((ucs4_t *)(*outbuf)) = ICONV_HTOBEL (in);
- else
- *((ucs4_t *)(*outbuf)) = ICONV_HTOLEL (in);
-
- *outbuf += sizeof (ucs4_t);
- *outbytesleft -= sizeof (ucs4_t);
-
- return sizeof (ucs4_t);
-}
-#endif /* ICONV_FROM_UCS_CES_UCS_4 */
-
-#if defined (ICONV_TO_UCS_CES_UCS_4)
-static ucs4_t
-_DEFUN(ucs_4_convert_to_ucs, (data, inbuf, inbytesleft),
- _VOID_PTR data _AND
- _CONST unsigned char **inbuf _AND
- size_t *inbytesleft)
-{
- ucs4_t res;
-
- if (*inbytesleft < sizeof (ucs4_t))
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- if (*((int *)data) == UCS_4_BIG_ENDIAN)
- res = ICONV_BETOHL (*((ucs4_t *)(*inbuf)));
- else
- res = ICONV_LETOHL (*((ucs4_t *)(*inbuf)));
-
- if ((res >= 0x0000D800 && res <= 0x0000DFFF) /* Surrogate character */
- || res > 0x7FFFFFFF || res == 0x0000FFFF || res == 0x0000FFFE)
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- *inbytesleft -= sizeof (ucs4_t);
- *inbuf += sizeof(ucs4_t);
-
- return res;
-}
-#endif /* ICONV_TO_UCS_CES_UCS_4 */
-
-static int
-_DEFUN(ucs_4_get_mb_cur_max, (data),
- _VOID_PTR data)
-{
- return 4;
-}
-
-#if defined (ICONV_TO_UCS_CES_UCS_4)
-_CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_ucs_4 =
-{
- ucs_4_init,
- ucs_4_close,
- ucs_4_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- ucs_4_convert_to_ucs
-};
-#endif
-
-#if defined (ICONV_FROM_UCS_CES_UCS_4)
-_CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_ucs_4 =
-{
- ucs_4_init,
- ucs_4_close,
- ucs_4_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- ucs_4_convert_from_ucs
-};
-#endif
-
-#endif /* ICONV_TO_UCS_CES_UCS_4 || ICONV_FROM_UCS_CES_UCS_4 */
-
diff --git a/newlib/libc/iconv/ces/us-ascii.c b/newlib/libc/iconv/ces/us-ascii.c
deleted file mode 100644
index 2f213a7ed..000000000
--- a/newlib/libc/iconv/ces/us-ascii.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 2003-2004, Artem B. Bityuckiy
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#include "cesbi.h"
-
-#if defined (ICONV_TO_UCS_CES_US_ASCII) \
- || defined (ICONV_FROM_UCS_CES_US_ASCII)
-
-#include <_ansi.h>
-#include <reent.h>
-#include <sys/types.h>
-#include "../lib/local.h"
-#include "../lib/ucsconv.h"
-
-/*
- * For optimization purposes us_ascii is implemented as separate CES converter.
- * Another possible way is to add us_ascii CCS and use table-based CES converter.
- */
-
-#if defined (ICONV_FROM_UCS_CES_US_ASCII)
-static size_t
-_DEFUN(us_ascii_convert_from_ucs, (data, in, outbuf, outbytesleft),
- _VOID_PTR data _AND
- ucs4_t in _AND
- unsigned char **outbuf _AND
- size_t *outbytesleft)
-{
- if (in > 0x7F)
- return (size_t)ICONV_CES_INVALID_CHARACTER;
-
- *((char *)(*outbuf)) = (char)in;
-
- *outbuf += 1;
- *outbytesleft -= 1;
-
- return 1;
-}
-#endif /* ICONV_FROM_UCS_CES_US_ASCII */
-
-#if defined (ICONV_TO_UCS_CES_US_ASCII)
-static ucs4_t
-_DEFUN(us_ascii_convert_to_ucs, (data, inbuf, inbytesleft),
- _VOID_PTR data _AND
- _CONST unsigned char **inbuf _AND
- size_t *inbytesleft)
-{
- ucs4_t res;
-
- if (*inbytesleft < 1)
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- res = (ucs4_t)**inbuf;
-
- if (res > 0x7F)
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- *inbytesleft -= 1;
- *inbuf += 1;
-
- return res;
-}
-#endif /* ICONV_TO_UCS_CES_US_ASCII */
-
-static int
-_DEFUN(us_ascii_get_mb_cur_max, (data),
- _VOID_PTR data)
-{
- return 2;
-}
-
-#if defined (ICONV_TO_UCS_CES_US_ASCII)
-_CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_us_ascii =
-{
- NULL,
- NULL,
- us_ascii_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- us_ascii_convert_to_ucs
-};
-#endif
-
-#if defined (ICONV_FROM_UCS_CES_US_ASCII)
-_CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_us_ascii =
-{
- NULL,
- NULL,
- us_ascii_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- us_ascii_convert_from_ucs
-};
-#endif
-
-#endif /* ICONV_TO_UCS_CES_US_ASCII || ICONV_FROM_UCS_CES_US_ASCII */
-
diff --git a/newlib/libc/iconv/ces/utf-16.c b/newlib/libc/iconv/ces/utf-16.c
deleted file mode 100644
index 4b2ff77a1..000000000
--- a/newlib/libc/iconv/ces/utf-16.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Copyright (c) 2003-2004, Artem B. Bityuckiy
- * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#include "cesbi.h"
-
-#if defined (ICONV_TO_UCS_CES_UTF_16) \
- || defined (ICONV_FROM_UCS_CES_UTF_16)
-
-#include <_ansi.h>
-#include <reent.h>
-#include <sys/types.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-#include "../lib/local.h"
-#include "../lib/ucsconv.h"
-#include "../lib/endian.h"
-
-/*
- * On input UTF-16 converter interpret BOM and uses Big Endian byte order if BOM
- * is absent. UTF-16 converter outputs in System Endian and adds correspondent
- * BOM as first code. UTF-16LE and UTF-16BE converters ignore BOM on input and
- * don't output BOM.
- */
-
-#define UTF16_UNDEFINED 0x00
-#define UTF16_BIG_ENDIAN 0x01
-#define UTF16_LITTLE_ENDIAN 0x02
-#define UTF16_SYSTEM_ENDIAN 0x04
-#define UTF16_BOM_WRITTEN 0x08
-
-#define UTF16_BOM 0xFEFF
-
-#define UTF_16 "utf_16"
-#define UTF_16BE "utf_16be"
-#define UTF_16LE "utf_16le"
-
-static size_t
-_DEFUN(utf_16_close, (rptr, data),
- struct _reent *rptr _AND
- _VOID_PTR data)
-{
- _free_r(rptr, data);
- return 0;
-}
-
-#if defined (ICONV_FROM_UCS_CES_UTF_16)
-static _VOID_PTR
-_DEFUN(utf_16_init_from_ucs, (rptr, encoding),
- struct _reent *rptr _AND
- _CONST char *encoding)
-{
- int *data;
-
- if ((data = (int *)_malloc_r (rptr, sizeof (int))) == NULL)
- return (_VOID_PTR)NULL;
-
- if (strcmp (encoding, UTF_16LE) == 0)
- *data = UTF16_LITTLE_ENDIAN;
- else if (strcmp (encoding, UTF_16BE) == 0)
- *data = UTF16_BIG_ENDIAN;
- else
- *data = UTF16_SYSTEM_ENDIAN;
-
- return (_VOID_PTR)data;
-}
-
-static size_t
-_DEFUN(utf_16_convert_from_ucs, (data, in, outbuf, outbytesleft),
- _VOID_PTR data _AND
- register ucs4_t in _AND
- unsigned char **outbuf _AND
- size_t *outbytesleft)
-{
- register ucs2_t *cp;
- register size_t bytes;
- register int *state;
-
- if (in > 0x0010FFFF || (in >= 0x0000D800 && in <= 0x0000DFFF)
- || in == 0x0000FFFF || in == 0x0000FFFE)
- return (size_t)ICONV_CES_INVALID_CHARACTER;
-
- state = (int *)data;
- bytes = (*state == UTF16_SYSTEM_ENDIAN) ? sizeof (ucs2_t) * 2
- : sizeof (ucs2_t);
-
- if (in > 0x0000FFFF)
- bytes += sizeof (ucs2_t);
-
- if (*outbytesleft < bytes)
- return (size_t)ICONV_CES_NOSPACE;
-
- cp = (ucs2_t *)*outbuf;
-
- if (*state == UTF16_SYSTEM_ENDIAN)
- {
- *cp++ = UTF16_BOM;
- *state |= UTF16_BOM_WRITTEN;
- }
-
- if (in < 0x00010000)
- {
- switch (*state)
- {
- case UTF16_LITTLE_ENDIAN:
- *cp = ICONV_HTOLES ((ucs2_t)in);
- break;
- case UTF16_BIG_ENDIAN:
- *cp = ICONV_HTOBES ((ucs2_t)in);
- break;
- case (UTF16_SYSTEM_ENDIAN | UTF16_BOM_WRITTEN):
- *cp = (ucs2_t)in;
- break;
- }
- }
- else
- {
- ucs2_t w1, w2;
-
- /* Process surrogate pair */
- in -= 0x00010000;
- w1 = ((ucs2_t)((in >> 10)) & 0x03FF) | 0xD800;
- w2 = (ucs2_t)(in & 0x000003FF) | 0xDC00;
-
- switch (*state)
- {
- case UTF16_LITTLE_ENDIAN:
- *cp++ = ICONV_HTOLES (w1);
- *cp = ICONV_HTOLES (w2);
- break;
- case UTF16_BIG_ENDIAN:
- *cp++ = ICONV_HTOBES (w1);
- *cp = ICONV_HTOBES (w2);
- break;
- case (UTF16_SYSTEM_ENDIAN | UTF16_BOM_WRITTEN):
- *cp++ = w1;
- *cp = w2;
- break;
- }
- }
-
- *outbuf += bytes;
- *outbytesleft -= bytes;
-
- return bytes;
-}
-#endif /* ICONV_FROM_UCS_CES_UTF_16 */
-
-#if defined (ICONV_TO_UCS_CES_UTF_16)
-static _VOID_PTR
-_DEFUN(utf_16_init_to_ucs, (rptr, encoding),
- struct _reent *rptr _AND
- _CONST char *encoding)
-{
- int *data;
-
- if ((data = (int *)_malloc_r (rptr, sizeof (int))) == NULL)
- return (_VOID_PTR)NULL;
-
- if (strcmp (encoding, UTF_16BE) == 0)
- *data = UTF16_BIG_ENDIAN;
- else if (strcmp (encoding, UTF_16LE) == 0)
- *data = UTF16_LITTLE_ENDIAN;
- else
- *data = UTF16_UNDEFINED;
-
- return (_VOID_PTR)data;
-}
-
-static ucs4_t
-_DEFUN(utf_16_convert_to_ucs, (data, inbuf, inbytesleft),
- _VOID_PTR data _AND
- _CONST unsigned char **inbuf _AND
- size_t *inbytesleft)
-{
- register ucs2_t w1;
- register ucs2_t w2;
- register ucs2_t *cp;
- int *state;
- ucs4_t res;
- int bytes = sizeof (ucs2_t);
-
- if (*inbytesleft < bytes)
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- state = (int *)data;
- cp = ((ucs2_t *)*inbuf);
-
- if (*state == UTF16_UNDEFINED)
- {
- if (*cp == ICONV_HTOLES(UTF16_BOM))
- *state = UTF16_LITTLE_ENDIAN;
- else
- *state = UTF16_BIG_ENDIAN;
-
- if ( *cp == ICONV_HTOBES (UTF16_BOM)
- || *cp == ICONV_HTOLES (UTF16_BOM))
- {
- if (*inbytesleft < (bytes += sizeof (ucs2_t)))
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
- cp += 1;
- }
- }
-
- if (*state == UTF16_LITTLE_ENDIAN)
- w1 = ICONV_LETOHS (*cp);
- else
- w1 = ICONV_BETOHS (*cp);
-
- if (w1 < 0xD800 || w1 > 0xDFFF)
- {
- if (w1 == 0xFFFF || w1 == 0xFFFE)
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
- res = (ucs4_t)w1;
- }
- else
- {
- /* Process surrogate pair */
- if (*inbytesleft < (bytes += 2))
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- if (w1 > 0xDBFF)
- /* Broken surrogate character */
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- cp += 1;
-
- if (*state == UTF16_LITTLE_ENDIAN)
- w2 = ICONV_LETOHS (*cp);
- else
- w2 = ICONV_BETOHS (*cp);
-
- if (w2 < 0xDC00 || w2 > 0xDFFF)
- /* Broken surrogate character */
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- res = (ucs4_t)(w2 & 0x03FF) | ((ucs4_t)(w1 & 0x03FF) << 10);
- res += 0x00010000;
- }
-
- *inbuf += bytes;
- *inbytesleft -= bytes;
-
- return res;
-}
-#endif /* ICONV_TO_UCS_CES_UTF_16 */
-
-static int
-_DEFUN(utf_16_get_mb_cur_max, (data),
- _VOID_PTR data)
-{
- return 6;
-}
-
-#if defined (ICONV_TO_UCS_CES_UTF_16)
-_CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_utf_16 =
-{
- utf_16_init_to_ucs,
- utf_16_close,
- utf_16_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- utf_16_convert_to_ucs
-};
-#endif
-
-#if defined (ICONV_FROM_UCS_CES_UTF_16)
-_CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_utf_16 =
-{
- utf_16_init_from_ucs,
- utf_16_close,
- utf_16_get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- utf_16_convert_from_ucs
-};
-#endif
-
-#endif /* ICONV_TO_UCS_CES_UTF_16 || ICONV_FROM_UCS_CES_UTF_16 */
-
diff --git a/newlib/libc/iconv/ces/utf-8.c b/newlib/libc/iconv/ces/utf-8.c
deleted file mode 100644
index fda1e6e3b..000000000
--- a/newlib/libc/iconv/ces/utf-8.c
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Copyright (c) 2003-2004, Artem B. Bityuckiy
- * Copyright (c) 1999,2000, Konstantin Chuguev. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#include "cesbi.h"
-
-#if defined (ICONV_TO_UCS_CES_UTF_8) \
- || defined (ICONV_FROM_UCS_CES_UTF_8)
-
-#include <_ansi.h>
-#include <reent.h>
-#include <sys/types.h>
-#include "../lib/local.h"
-#include "../lib/ucsconv.h"
-
-#define UTF8_MB_CUR_MAX 6
-
-/*
- * UTF-8 CES converter doesn't interpret BOM. Reject overlong sequences,
- * U'FFFF, U'FFFE codes, UTF-16 surrogate codes and all codes > 0x7FFFFFFF.
- */
-
-#if defined (ICONV_FROM_UCS_CES_UTF_8)
-static size_t
-_DEFUN(convert_from_ucs, (data, in, outbuf, outbytesleft),
- _VOID_PTR data _AND
- register ucs4_t in _AND
- unsigned char **outbuf _AND
- size_t *outbytesleft)
-{
- register unsigned char *cp;
- register size_t bytes;
-
- if ((in >= 0x0000D800 && in <= 0x0000DFFF)
- || in > 0x7FFFFFFF || in == 0x0000FFFF || in == 0x0000FFFE)
- return (size_t)ICONV_CES_INVALID_CHARACTER;
-
- if (in < 0x80)
- bytes = 1;
- else if (in < 0x800)
- bytes = 2;
- else if (in < 0x10000)
- bytes = 3;
- else if (in < 0x200000)
- bytes = 4;
- else if (in < 0x4000000)
- bytes = 5;
- else
- bytes = 6;
-
- if (*outbytesleft < bytes)
- return (size_t)ICONV_CES_NOSPACE;
-
- cp = *outbuf;
-
- switch (bytes)
- {
- case 1:
- *cp = (unsigned char)in;
- break;
-
- case 2:
- *cp++ = (unsigned char)((in >> 6) | 0x000000C0);
- *cp++ = (unsigned char)((in & 0x0000003F) | 0x00000080);
- break;
-
- case 3:
- *cp++ = (unsigned char)((in >> 12) | 0x000000E0);
- *cp++ = (unsigned char)(((in >> 6) & 0x0000003F) | 0x00000080);
- *cp++ = (unsigned char)((in & 0x0000003F) | 0x00000080);
- break;
-
- case 4:
- *cp++ = (unsigned char)((in >> 18) | 0x000000F0);
- *cp++ = (unsigned char)(((in >> 12) & 0x0000003F) | 0x00000080);
- *cp++ = (unsigned char)(((in >> 6) & 0x0000003F) | 0x00000080);
- *cp++ = (unsigned char)((in & 0x0000003F) | 0x00000080);
- break;
-
- case 5:
- *cp++ = (unsigned char)((in >> 24) | 0x000000F8);
- *cp++ = (unsigned char)(((in >> 18) & 0x0000003F) | 0x00000080);
- *cp++ = (unsigned char)(((in >> 12) & 0x0000003F) | 0x00000080);
- *cp++ = (unsigned char)(((in >> 6) & 0x0000003F) | 0x00000080);
- *cp++ = (unsigned char)((in & 0x0000003F) | 0x00000080);
- break;
-
- case 6:
- *cp++ = (unsigned char)((in >> 30) | 0x000000FC);
- *cp++ = (unsigned char)(((in >> 24) & 0x0000003F) | 0x00000080);
- *cp++ = (unsigned char)(((in >> 18) & 0x0000003F) | 0x00000080);
- *cp++ = (unsigned char)(((in >> 12) & 0x0000003F) | 0x00000080);
- *cp++ = (unsigned char)(((in >> 6) & 0x0000003F) | 0x00000080);
- *cp++ = (unsigned char)((in & 0x0000003F) | 0x00000080);
- break;
- }
-
- *outbytesleft -= bytes;
- *outbuf += bytes;
-
- return bytes;
-}
-#endif /* ICONV_FROM_UCS_CES_UTF_8 */
-
-#if defined (ICONV_TO_UCS_CES_UTF_8)
-static ucs4_t
-_DEFUN(convert_to_ucs, (data, inbuf, inbytesleft),
- _VOID_PTR data _AND
- _CONST unsigned char **inbuf _AND
- size_t *inbytesleft)
-{
- register _CONST unsigned char *in = *inbuf;
- register size_t bytes;
- ucs4_t res;
-
- if (in[0] >= 0xC0)
- {
- if (in[0] < 0xE0)
- {
- if (*inbytesleft < (bytes = 2))
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- if ( ((in[0] & ~0x1F) == 0xC0)
- && ((in[1] & 0xC0) == 0x80))
- res = ((ucs4_t)(in[0] & 0x1F) << 6)
- | ((ucs4_t)(in[1] & 0x3F));
- else
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- if (res < 0x00000080) /* Overlong sequence */
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
- }
-
- else if (in[0] < 0xF0)
- {
- if (*inbytesleft < (bytes = 3))
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- if ( ((in[0] & ~0x0F) == 0xE0)
- && ((in[1] & 0xC0) == 0x80)
- && ((in[2] & 0xC0) == 0x80))
- res = ((ucs4_t)(in[0] & 0x0F) << 12)
- | ((ucs4_t)(in[1] & 0x3F) << 6)
- | ((ucs4_t)(in[2] & 0x3F));
- else
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- if (res < 0x00000800) /* Overlong sequence */
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
- }
-
- else if (in[0] < 0xF8)
- {
- if (*inbytesleft < (bytes = 4))
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- if ( ((in[0] & ~0x07) == 0xF0)
- && ((in[1] & 0xC0) == 0x80)
- && ((in[2] & 0xC0) == 0x80)
- && ((in[3] & 0xC0) == 0x80))
- res = ((ucs4_t)(in[0] & 0x07) << 18)
- | ((ucs4_t)(in[1] & 0x3F) << 12)
- | ((ucs4_t)(in[2] & 0x3F) << 6)
- | ((ucs4_t)(in[3] & 0x3F));
- else
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- if (res < 0x00010000) /* Overlong sequence */
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
- }
-
- else if (in[0] < 0xFC)
- {
- if (*inbytesleft < (bytes = 5))
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- if ( ((in[0] & ~0x03) == 0xF8)
- && ((in[1] & 0xC0) == 0x80)
- && ((in[2] & 0xC0) == 0x80)
- && ((in[3] & 0xC0) == 0x80)
- && ((in[4] & 0xC0) == 0x80))
- res = ((ucs4_t)(in[0] & 0x03) << 24)
- | ((ucs4_t)(in[1] & 0x3F) << 18)
- | ((ucs4_t)(in[2] & 0x3F) << 12)
- | ((ucs4_t)(in[3] & 0x3F) << 6)
- | ((ucs4_t)(in[4] & 0x3F));
- else
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- if (res < 0x00200000) /* Overlong sequence */
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
- }
-
- else if (in[0] <= 0xFD)
- {
- if (*inbytesleft < (bytes = 6))
- return (ucs4_t)ICONV_CES_BAD_SEQUENCE;
-
- if ( ((in[0] & ~0x01) == 0xFC)
- && ((in[1] & 0xC0) == 0x80)
- && ((in[2] & 0xC0) == 0x80)
- && ((in[3] & 0xC0) == 0x80)
- && ((in[4] & 0xC0) == 0x80)
- && ((in[5] & 0xC0) == 0x80))
- res = ((ucs4_t)(in[0] & 0x1) << 30)
- | ((ucs4_t)(in[1] & 0x3F) << 24)
- | ((ucs4_t)(in[2] & 0x3F) << 18)
- | ((ucs4_t)(in[3] & 0x3F) << 12)
- | ((ucs4_t)(in[4] & 0x3F) << 6)
- | ((ucs4_t)(in[5] & 0x3F));
- else
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- if (res < 0x04000000) /* Overlong sequence */
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
- }
-
- else
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
- }
- else if (in[0] & 0x80)
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
- else
- {
- res = (ucs4_t)in[0];
- bytes = 1;
- }
-
- if ( (res >= 0x0000D800 && res <= 0x0000DFFF)
- || res > 0x7FFFFFFF || res == 0x0000FFFF || res == 0x0000FFFE)
- return (ucs4_t)ICONV_CES_INVALID_CHARACTER;
-
- *inbytesleft -= bytes;
- *inbuf += bytes;
-
- return res;
-}
-#endif /* ICONV_TO_UCS_CES_UTF_8 */
-
-static int
-_DEFUN(get_mb_cur_max, (data),
- _VOID_PTR data)
-{
- return UTF8_MB_CUR_MAX;
-}
-
-#if defined (ICONV_TO_UCS_CES_UTF_8)
-_CONST iconv_to_ucs_ces_handlers_t
-_iconv_to_ucs_ces_handlers_utf_8 =
-{
- NULL,
- NULL,
- get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- convert_to_ucs
-};
-#endif
-
-#if defined (ICONV_FROM_UCS_CES_UTF_8)
-_CONST iconv_from_ucs_ces_handlers_t
-_iconv_from_ucs_ces_handlers_utf_8 =
-{
- NULL,
- NULL,
- get_mb_cur_max,
- NULL,
- NULL,
- NULL,
- convert_from_ucs
-};
-#endif
-
-#endif /* ICONV_TO_UCS_CES_UTF_8 || ICONV_FROM_UCS_CES_UTF_8 */
-