diff --git a/COPYING.LIB b/COPYING.LIB index 778d0bb5..4362b491 100644 --- a/COPYING.LIB +++ b/COPYING.LIB @@ -1,112 +1,125 @@ - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 - Copyright (C) 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. -[This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] - Preamble + Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. - This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. - Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. - Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - - Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - - The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - - Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - - However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. - - Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. - GNU LIBRARY GENERAL PUBLIC LICENSE + GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - 0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs @@ -133,7 +146,7 @@ such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. - + 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an @@ -255,7 +268,7 @@ distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. - 6. As an exception to the Sections above, you may also compile or + 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit @@ -282,23 +295,31 @@ of these things: Library will not necessarily be able to recompile the application to use the modified definitions.) - b) Accompany the work with a written offer, valid for at + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. - c) If distribution of the work is made by offering access to copy + d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. - d) Verify that the user has already received a copy of these + e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. @@ -347,7 +368,7 @@ Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to +You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent @@ -390,7 +411,7 @@ excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new -versions of the Library General Public License from time to time. +versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. @@ -411,7 +432,7 @@ decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - NO WARRANTY + NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. @@ -434,9 +455,9 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - END OF TERMS AND CONDITIONS + END OF TERMS AND CONDITIONS - Appendix: How to Apply These Terms to Your New Libraries + How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that @@ -453,19 +474,18 @@ convey the exclusion of warranty; and each file should have at least the Copyright (C) This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public + modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. + version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - MA 02110-1301, USA + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. diff --git a/ChangeLog b/ChangeLog index 8a3b5549..ca0b68a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,262 @@ +2022-05-15 Bruno Haible + + Switch to libtool 2.4.7. + * m4/libtool.m4: Update from libtool-2.4.7, with modifications: + 2008-04-06 Bruno Haible + * m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use + CONFIG_SHELL; don't assume that the Makefile.in will set SHELL + to ${CONFIG_SHELL}. + * m4/ltoptions.m4: Likewise. + * m4/ltsugar.m4: Likewise. + * m4/ltversion.m4: Likewise. + * m4/lt~obsolete.m4: Likewise. + * build-aux/ltmain.sh: Update from libtool-2.4.7, with modifications: + 2017-07-15 Bruno Haible + Allow building statically linked binaries, through + LDFLAGS="-static". Apply patch from + . + * build-aux/ltmain.sh (func_mode_help, func_mode_link): In the + link mode, accept option '-static-uninstalled-libs' in place of + '-static', and make '-static' an equivalent of '-all-static'. + +2022-04-13 Bruno Haible + + Fix undefined behaviour. + * tests/test-shiftseq.c (main2): Make input array larger. + +2022-02-12 Bruno Haible + + Update translations. + * po/ro.po: Update Romanian translations. + * po/wa.po: Update Walloon translations. + +2022-02-12 Bruno Haible + + Prepare for version 1.17. + * configure.ac: Bump version number to 1.17. + * include/iconv.h.in (_LIBICONV_VERSION): Likewise. + * lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 9:0:7. + * src/iconv.c (print_version): Update copyright year. + * windows/iconv.rc: Likewise. + * windows/libiconv.rc: Likewise. + * README: Update download link. + +2022-02-12 Bruno Haible + + Update source file list (regression 2022-01-23). + * lib/Makefile.in (SOURCE_FILES): Add encodings_zos.def, ebcdic*.h. + (GENERATED_FILES): Add aliases_zos.h, canonical_zos.h. + * tests/Makefile.in (SOURCE_FILES): Add IBM-*.TXT. + +2022-01-23 Bruno Haible + + Update NEWS. + * NEWS: Mention the EBCDIC encodings. + +2022-01-23 Bruno Haible + + Optimize the EBCDIC table sizes. + * lib/converters.h (DEDUPLICATE_TABLES): New macro. + * lib/ebcdic1025.h: Deduplicate tables with ebcdic880.h. + * lib/ebcdic1123.h: Deduplicate tables with ebcdic1025.h. + * lib/ebcdic1132.h: Deduplicate tables with ebcdic838.h. + * lib/ebcdic1153.h: Deduplicate tables with ebcdic870.h. + * lib/ebcdic1154.h: Deduplicate tables with ebcdic880.h. + * lib/ebcdic1155.h: Deduplicate tables with ebcdic1026.h. + * lib/ebcdic1156.h: Deduplicate tables with ebcdic1112.h. + * lib/ebcdic1157.h: Deduplicate tables with ebcdic1122.h. + * lib/ebcdic1158.h: Deduplicate tables with ebcdic1154.h, ebcdic1123.h. + * lib/ebcdic1160.h: Deduplicate tables with ebcdic838.h. + * lib/ebcdic1164.h: Deduplicate tables with ebcdic1130.h. + * lib/ebcdic1165.h: Deduplicate tables with ebcdic870.h. + * lib/ebcdic1166.h: Deduplicate tables with ebcdic1154.h. + * lib/ebcdic4971.h: Deduplicate tables with ebcdic875.h. + * lib/ebcdic12712.h: Deduplicate tables with ebcdic424.h. + +2022-01-23 Bruno Haible + + New EBCDIC encodings. + Reported by Ulrich Schwab and Calvin Buckley via Jack Woehr. + * NOTES: Mention how to enable EBCDIC encodings. + * tests/IBM-*.TXT: New files. + * tools/8bit_tab_to_h.c (main): Emit copyright header with year 2022. + * tools/Makefile: Add rules for generating ebcdic*.h. + * lib/ebcdic*.h: New files, automatically generated by tools/Makefile. + * lib/ebcdic838.h: Tweak reverse mapping manually. + * lib/ebcdic1160.h: Likewise. + * lib/converters.h: Include all ebcdic*.h. + * lib/encodings_zos.def: New file. + * lib/genaliases2.c: Include encodings_zos.def. + * lib/genflags.c: Likewise. + * Makefile.devel (lib/aliases_zos.h lib/canonical_zos.h): New rule. + (lib/flags.h, totally-clean): Update. + * lib/aliases2.h: Include aliases_zos.h. + * lib/iconv.c (USE_ZOS): New macro. + Include encodings_zos.def, canonical_zos.h. + * README, man/iconv_open.3: Document the IBM-* encodings. + * tests/Makefile.in (check-extra-yes): Also test the EBCDIC encodings. + +2022-01-04 Bruno Haible + + Update after gnulib changed. + * gnulib-local/m4/alloca.m4 (gl_FUNC_ALLOCA): Set GL_GENERATE_ALLOCA_H + instead of ALLOCA_H. Drop AC_SUBST and AM_CONDITIONAL invocations. + +2021-09-19 Bruno Haible + + tests: Avoid check-subst failures in QEMU user-mode environments. + * Makefile.devel (GNULIB_MODULES): Add stdbool. + (gnulib-imported-files): Copy also tests/qemu.h. + * tests/is-native.c: New file. + * tests/Makefile.in (is-native, is-native.@OBJEXT@): New targets. + (clean): Remove the 'is-native' program. + (SOURCE_FILES): Add is-native.c. + (IMPORTED_FILES): Add qemu.h. + * tests/check-subst: Invoke 'locale charmap' only in native + environments. + +2021-06-27 Bruno Haible + + README: Update. + Reported at . + * README: Overhaul the paragraph that mentions iconv.m4. + +2021-06-06 Bruno Haible + + gnulib-local: Put real license notice into the source files. + * gnulib-local/lib/alloca.in.h: Use an LGPLv2+ notice. + +2021-02-28 Bruno Haible + + Update DEPENDENCIES. + * DEPENDENCIES: List the normal dependencies of a package with an + Autoconf-generated configure file. + +2021-02-07 Bruno Haible + + Support creating shared libraries on MidnightBSD. + Patch from . + * m4/libtool.m4: Treat MidnightBSD like FreeBSD. + * build-aux/ltmain.sh: Likewise. + +2021-01-31 Bruno Haible + + Update after gnulib changed on 2020-08-26. + * configure.ac: Test $iconv_arg1, not $am_cv_proto_iconv_arg1. + +2021-01-31 Bruno Haible + + Switch to autoconf 2.71. + * autogen.sh: Update comment. + * configure.ac: Use AS_HELP_STRING instead of AC_HELP_STRING. Invoke + AC_C_BIGENDIAN instead of CL_WORDS_LITTLEENDIAN. + * m4/eilseq.m4: Require Autoconf >= 2.61. + (AC_EILSEQ): Improve quoting. Use AC_COMPUTE_INT instead of + _AC_COMPUTE_INT. + * m4/endian.m4: Remove file. + * Makefile.in (SOURCE_FILES): Remove it. + +2020-12-08 Bruno Haible + + Switch to autoconf 2.70. + * Makefile.devel (AUTOCONF, AUTOHEADER): Remove '-2.69' suffix. + * HACKING: Remove sentence about symbolic links. + * autogen.sh: Update comment. + +2020-08-31 Bruno Haible + + Fix some -Wcast-qual warning, reported by clang. + * lib/iconv.c (compare_by_name): Add more 'const'. + (iconv_canonicalize): Cast value to 'unsigned char', not pointer to 'unsigned char *'. + * lib/iconv_open1.h: Likewise. + +2020-08-30 Bruno Haible + + Make sure that build-aux/compile is in the tarball. + * autogen.sh: Fetch also 'build-aux/compile' through gnulib-tool. + * Makefile.devel (srclib/Makefile.in): Don't fetch nor delete + 'build-aux/compile'. + * Makefile.in (AUTOMAKE_IMPORTED_FILES): Remove build-aux/compile. + (IMPORTED_FILES): Add build-aux/compile. + +2020-08-29 Bruno Haible + + Update after gnulib changed. + * configure.ac (AC_PREREQ): Bump minimum Autoconf version to 2.64. + +2020-08-06 Bruno Haible + + Avoid a GCC warning with GCC >= 7. + Reported by Reini Urban + in . + * lib/gentranslit.c (main): Reset i to 0 each time p gets a new value. + Add assertion about i's possible values. + +2020-04-05 Bruno Haible + + Fix an autogen.sh failure (regression from 2016-12-04). + Reported by Petr Ovtchenkov in + . + * autogen.sh: Invoke also the Makefile target srclib/Makefile.in, so as + to get build-aux/install-sh. Finish the "copy files" phase before recursing + through the subpackages tree through Makefile.devel. + * Makefile.devel: Reorder targets. + +2020-04-04 Bruno Haible + + Don't use LGPLv3. + * gnulib-local/modules/mbstate (License): Set to LGPLv2+. + +2020-04-04 Bruno Haible + + Change the license of the library from LGPL 2.0 to LGPL 2.1. + * COPYING.LIB: Upgrade to LGPL 2.1. + +2019-12-23 Bruno Haible + + Do export the symbol 'locale_charset' (needed by GNU bash). + * lib/Makefile.in (DEFS): Define also BUILDING_LIBCHARSET. + +2019-09-01 Bruno Haible + + build: Add support for shallow-cloning of subdirectories. + * gitsub.sh (func_usage): Document allowed git options with 'git pull'. + (func_pull): Accept GIT_OPTIONS argument. + (pull): Parse git options before complaining about too many arguments. + Pass the git options to func_pull. + +2019-07-05 Bruno Haible + + Don't export the symbol 'aliases_lookup' on non-ELF platforms. + * Makefile.devel (lib/aliases.h, lib/aliases_sysaix.h, + lib/aliases_syshpux.h, lib/aliases_sysosf1.h, lib/aliases_syssolaris.h): + Add a 'static' keyword in front of the declaration of aliases_lookup. + +2019-07-02 Bruno Haible + + Update to current gnulib. + * Makefile.devel (GNULIB_MODULES): Add lib-symbol-visibility. + (srclib/Makefile.gnulib): Copy codeset.m4. + * srclib/Makefile.am (AM_CFLAGS): Initialize. + +2019-07-02 Bruno Haible + + Drop unused macro gl_GLIBC21. + * autogen.sh: Don't copy glibc21.m4. + +2019-05-22 Bruno Haible + + Fix comment. + Reported by Paul Hardy . + * lib/jisx0213.h: Fix comment about the underlying standard version. + +2019-05-11 Bruno Haible + + Update bug reporting instructions. + * README: Tell users to report bugs in the bug tracker or by email. + * src/iconv.c (usage): Likewise. + (print_version): Move URL out of translatable string. + 2019-04-26 Bruno Haible Update translations. @@ -17,7 +276,7 @@ 2019-04-26 Bruno Haible Prepare for version 1.16. - * configure.ac: Bump version number to 1.15. + * configure.ac: Bump version number to 1.16. * include/iconv.h.in (_LIBICONV_VERSION): Likewise. * lib/Makefile.in (LIBICONV_VERSION_INFO): Bump to 8:1:6. * src/iconv.c (print_version): Update copyright year. diff --git a/NEWS b/NEWS new file mode 100644 index 00000000..9d3cdfb1 --- /dev/null +++ b/NEWS @@ -0,0 +1,204 @@ +New in 1.17: +* The libiconv library is now licensed under the LGPL version 2.1, instead of + the LGPL version 2.0. The iconv program continues to be licensed under GPL + version 3. +* Added converters for many single-byte EBCDIC encodings: + IBM-{037,273,277,278,280,282,284,285,297,423,424,425,500,838,870,871,875}, + IBM-{880,905,924,1025,1026,1047,1097,1112,1122,1123,1130,1132,1137,1140}, + IBM-{1141,1142,1143,1144,1145,1146,1147,1148,1149,1153,1154,1155,1156,1157}, + IBM-{1158,1160,1164,1165,1166,4971,12712,16804}. + They are available through the configure option '--enable-extra-encodings'. + +New in 1.16: +* The preloadable library has been removed. + +New in 1.15: +* The UTF-8 converter now rejects surrogates and out-of-range code points. +* Added ISO-2022-JP-MS converter. +* Updated the CP1255 converter to map one more character. +* The functions now support strings longer than 2 GB. + +New in 1.14: +* The 'iconv' program now produces its output as soon as it can. It no longer + unnecessarily waits for more input. +* Updated the GB18030 converter to map 25 characters to code points that have + been to Unicode since 2000, rather than to code points in the Private Use + Area. +* Updated the BIG5-HKSCS converter. The old BIG5-HKSCS converter is renamed to + BIG5-HKSCS:2004. A new converter BIG5-HKSCS:2008 is added. BIG5-HKSCS is now + an alias for BIG5-HKSCS:2008. +* Fixed a bug in the conversion to wchar_t. +* Fixed a small bug in the CP1258 converter. + +New in 1.13: +* The library and the iconv program now understand platform dependent aliases, + for better compatibility with the platform's own iconv_open function. + Examples: "646" on Solaris, "iso88591" on HP-UX, "IBM-1252" on AIX. +* For stateful encodings, when the input ends with a shift sequence followed + by invalid input, the iconv function now increments the input pointer past + the shift sequence before returning (size_t)(-1) with errno = EILSEQ. This + is also like GNU libc's iconv() behaves. +* The library exports a new function iconv_open_into() that stores the + conversion descriptor in pre-allocated memory, rather than allocating fresh + memory for it. +* Added CP1131 converter. + +New in 1.12: +* The iconv program is now licensed under the GPL version 3, instead of the + GPL version 2. The libiconv library continues to be licensed under LGPL. +* Added RK1048 converter. +* On AIX, an existing system libiconv no longer causes setlocale() to fail. +* Upgraded EUC-KR, JOHAB to include the Korean postal code sign. + +New in 1.11: +* The iconv program has new options --unicode-subst, --byte-subst, + --widechar-subst that allow to specify substitutions for characters that + cannot be converted. +* The iconv program now understands long options: + long option equivalent to + --from-code -f + --to-code -t + --list -l + --silent -s +* The CP936 converter is now different from the GBK converter: it has changed + to include the Euro sign and private area characters. CP936 is no longer an + alias of GBK. +* Updated GB18030 converter to include all private area characters. +* Updated CP950 converter to include the Euro sign and private area characters. +* Updated CP949 converter to include private area characters. +* Updated the BIG5-HKSCS converter. The old BIG5-HKSCS converter is renamed to + BIG5-HKSCS:1999 and updated to Unicode 4. New converters BIG5-HKSCS:2001 and + BIG5-HKSCS:2004 are added. BIG5-HKSCS is now an alias for BIG5-HKSCS:2004. +* Added a few irreversible mappings to the CP932 converter. +* Tidy up the list of symbols exported from libiconv (assumes gcc >= 4.0). + +New in 1.10: +* Added ISO-8859-11 converter. +* Updated the ISO-8859-7 converter. +* Added ATARIST converter, available through --enable-extra-encodings. +* Added BIG5-2003 converter (experimental), available through + --enable-extra-encodings. +* Updated EUC-TW converter to include the Euro sign. +* The preloadable library has been renamed from libiconv_plug.so to + preloadable_libiconv.so. +* Portability to mingw. + +New in 1.9: +* Many more transliterations. +* New configuration option --enable-relocatable. See the INSTALL.generic file + for details. + +New in 1.8: +* The iconv program has new options -l, -c, -s. +* The iconv program is internationalized. +* Added C99 converter. +* Added KOI8-T converter. +* New configuration option --enable-extra-encodings that enables a bunch of + additional encodings; see the README for details. +* Updated the ISO-8859-16 converter. +* Upgraded BIG5-HKSCS, EUC-TW, ISO-2022-CN, ISO-2022-CN-EXT converters to + Unicode 3.2. +* Upgraded EUC-KR, CP949, JOHAB converters to include the Euro sign. +* Changed the ARMSCII-8 converter. +* Extended the EUC-JP encoder so that YEN SIGN characters don't cause failures + in Shift_JIS to EUC-JP conversion. +* The JAVA converter now handles characters outside the Unicode BMP correctly. +* Fixed a bug in the CP1255, CP1258, TCVN decoders: The base characters of + combining characters could be dropped at the end of the conversion buffer. +* Fixed a bug in the transliteration that could lead to excessive memory + allocations in libintl when transliteration was needed. +* Portability to BSD/OS and SCO 3.2.5. + +New in 1.7: +* Added UTF-32, UTF-32BE, UTF-32LE converters. +* Changed CP1255, CP1258 and TCVN converters to handle combining characters. +* Changed EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1 + converters to use fullwidth Yen sign instead of halfwidth Yen sign, and + fullwidth tilde instead of halfwidth tilde. +* Upgraded EUC-TW, ISO-2022-CN, ISO-2022-CN-EXT converters to Unicode 3.1. +* Changed the GB18030 converter to not reject unassigned and private-use + Unicode characters. +* Fixed a bug in the byte order mark treatment of the UCS-4 decoder. +* The manual pages are now distributed also in HTML format. + +New in 1.6: +* The iconv program's -f and -t options are now optional. +* Many more transliterations. +* Added CP862 converter. +* Changed the GB18030 converter. +* Portability to DOS with DJGPP. + +New in 1.5: +* Added an iconv(1) program. +* New locale dependent encodings "char", "wchar_t". +* Transliteration is now off by default. Use a //TRANSLIT suffix to enable it. +* The JOHAB encoding is documented again. +* Changed a few mappings in the CP950 converter. + +New in 1.4: +* Added GB18030, BIG5HKSCS converters. +* Portability to OS/2 with emx+gcc. + +New in 1.3: +* Added UCS-2BE, UCS-2LE, UCS-4BE, UCS-4LE converters. +* Fixed the definition of EILSEQ on SunOS4. +* Fixed a build problem on OSF/1. +* Support for building as a shared library on Woe32. + +New in 1.2: +* Added UTF-16BE and UTF-16LE converters. +* Changed the UTF-16 encoder. +* Fixed the treatment of tab characters in the UTF-7 converter. +* Fixed an internal error when output buffer was not large enough. + +New in 1.1: +* Added ISO-8859-16 converter. +* Added CP932 converter, a variant of SHIFT_JIS. +* Added CP949 converter, a variant of EUC-KR. +* Improved the ISO-2022-CN-EXT converter: It now covers the ISO-IR-165 range. +* Updated the ISO-8859-8 conversion table. +* The JOHAB encoding is deprecated and not documented any more. +* Fixed two build problems: 1. "make -n check" failed. 2. When libiconv was + already installed, "make" failed. + +New in 1.0: +* Added transliteration facilities. +* Added a test suite. +* Fixed the iconv(3) manual page and function: the return value was not + described correctly. +* Fixed a bug in the CP1258 decoder: invalid bytes now yield EILSEQ instead of + U+FFFD. +* Fixed a bug in the Georgian-PS encoder: accept U+00E6. +* Fixed a bug in the EUC-JP encoder: reject 0x8E5C and 0x8E7E. +* Fixed a bug in the KSC5601 and JOHAB converters: they recognized some Hangul + characters at some invalid code positions. +* Fixed a bug in the EUC-TW decoder; it was severely broken. +* Fixed a bug in the CP950 converter: it recognized a dubious BIG5 range. + +New in 0.3: +* Reduced the size of the tables needed for the JOHAB converter. +* Portability to Woe32. + +New in 0.2: +* Added KOI8-RU, CP850, CP866, CP874, CP950, ISO-2022-CN-EXT, GBK and + ISO-2022-JP-1 converters. +* Added MACINTOSH as an alias for MAC-ROMAN. +* Added ASMO-708 as an alias for ISO-8859-6. +* Added ELOT_928 as an alias for ISO-8859-7. +* Improved the EUC-TW converter: Treat CNS 11643 plane 3. +* Improved the ISO-2022-KR and EUC-KR converters: Hangul characters are + decomposed into Jamo when needed. +* Improved the CP932 converter. +* Updated the CP1133, MULELAO-1 and ARMSCII-8 mappings. +* The EUC-JP and SHIFT_JIS converters now cover the user-defined range. +* Fixed a possible buffer overrun in the JOHAB converter. +* Fixed a bug in the UTF-7, ISO-2022-*, HZ decoders: a shift sequence a the + end of the input no longer gives an error. +* The HZ encoder now always terminates its output in the ASCII state. +* Use a perfect hash table for looking up the aliases. + +New in 0.1: +* Portability to Linux/glibc-2.0.x, Linux/libc5, OSF/1, FreeBSD. +* Fixed a bug in the EUC-JP decoder. Extended the ISO-2022-JP-2 converter. +* Made TIS-620 mapping consistent with glibc-2.1. + diff --git a/NOTES b/NOTES index eb1c0e15..b3103f5c 100644 --- a/NOTES +++ b/NOTES @@ -328,7 +328,9 @@ A: No, they are not in use any more. Supporting ISO-646 variants is pointless since ISO-8859-* have been adopted. Q: Support EBCDIC ? -A: No! +A: Available through --enable-extra-encodings. + Why? Because several people (Ulrich Schwab, Calvin Buckley) have shown + interest in these encodings, by preparing forks of GNU libiconv. Q: How do I add a new character set? A: 1. Explain the "why" in this file, above. diff --git a/README.libiconv b/README.libiconv index 7ed51eb3..e7375cb0 100644 --- a/README.libiconv +++ b/README.libiconv @@ -72,6 +72,24 @@ support for a few extra encodings: TDS565 Platform specifics ATARIST, RISCOS-LATIN1 + EBCDIC compatible (not ASCII compatible, very rarely used) + European languages + IBM-{037,273,277,278,280,282,284,285,297,423,500,870,871,875,880}, + IBM-{905,924,1025,1026,1047,1112,1122,1123,1140,1141,1142,1143}, + IBM-{1144,1145,1146,1147,1148,1149,1153,1154,1155,1156,1157,1158}, + IBM-{1165,1166,4971} + Semitic languages + IBM-{424,425,12712,16804} + Persian + IBM-1097 + Thai + IBM-{838,1160} + Laotian + IBM-1132 + Vietnamese + IBM-{1130,1164} + Indic languages + IBM-1137 It can convert from any of these encodings to any other, through Unicode conversion. @@ -115,16 +133,14 @@ This library installs: To use it, simply #include and use the functions. -To use it in an autoconfiguring package: - - If you don't use automake, append m4/iconv.m4 to your aclocal.m4 - file. - - If you do use automake, add m4/iconv.m4 to your m4 macro repository. +To use it in a package that uses GNU autoconf and GNU automake: + - Use gnulib-tool to import the Gnulib module 'iconv'. It consists + of a couple of *.m4 files (iconv.m4 and its dependencies) and a + file 'build-aux/config.rpath'. - Add to the link command line of libraries and executables that use the functions the placeholder @LIBICONV@ (or, if using libtool for - the link, @LTLIBICONV@). If you use automake, the right place for + the link, @LTLIBICONV@). In Makefile.am files, the right place for these additions are the *_LDADD variables. -Note that 'iconv.m4' is also part of GNU gnulib, available through -the gnulib module 'iconv'. Copyright @@ -139,17 +155,19 @@ The iconv _program_ and the documentation are under GPL, see file COPYING. Download -------- - https://ftp.gnu.org/gnu/libiconv/libiconv-1.16.tar.gz + https://ftp.gnu.org/gnu/libiconv/libiconv-1.17.tar.gz Homepage -------- https://www.gnu.org/software/libiconv/ -Bug reports to --------------- +Bug reports +----------- - +Report bugs + - in the bug tracker at + - or by email to . Bruno Haible diff --git a/README.md b/README.md index 9546f641..a9da1452 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ libiconv Windows build with Visual Studio. -This version is libiconv-1.16. +This version is libiconv-1.17. To build, simply open the required solution file, and you know how to use Visual Studio, right? diff --git a/THIS_VERSION_IS_1.16 b/THIS_VERSION_IS_1.17 similarity index 100% rename from THIS_VERSION_IS_1.16 rename to THIS_VERSION_IS_1.17 diff --git a/build-VS2008/libiconv.sln b/build-VS2008/libiconv.sln index 2caadd87..778e8013 100644 --- a/build-VS2008/libiconv.sln +++ b/build-VS2008/libiconv.sln @@ -107,6 +107,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u-stat {1743F19F-41A4-4B32-98F7-58C39C10ECD3} = {1743F19F-41A4-4B32-98F7-58C39C10ECD3} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {30942F60-C13E-4CD2-83A5-41E4FB55FA2C} = {30942F60-C13E-4CD2-83A5-41E4FB55FA2C} + {1743F19F-41A4-4B32-98F7-58C39C10ECD3} = {1743F19F-41A4-4B32-98F7-58C39C10ECD3} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {040A5529-5EB7-44A6-ADE4-50684001F426} = {040A5529-5EB7-44A6-ADE4-50684001F426} + {98FEAF3E-982B-4683-A92B-EE6946155968} = {98FEAF3E-982B-4683-A92B-EE6946155968} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -259,6 +271,22 @@ Global {84EE4DBC-27C4-464B-9F8D-D7356425031D}.Release|Win32.Build.0 = Release|Win32 {84EE4DBC-27C4-464B-9F8D-D7356425031D}.Release|x64.ActiveCfg = Release|x64 {84EE4DBC-27C4-464B-9F8D-D7356425031D}.Release|x64.Build.0 = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.Build.0 = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.ActiveCfg = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.Build.0 = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.ActiveCfg = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.Build.0 = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.ActiveCfg = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.Build.0 = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.Build.0 = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.ActiveCfg = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.Build.0 = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.ActiveCfg = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.Build.0 = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.ActiveCfg = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -277,6 +305,7 @@ Global {248DC551-9F59-4B0A-A8AF-FDF588CEBED2} = {101EDA9A-849A-4B5D-B760-BE1A050C2A3C} {27A58FBA-4A84-4B76-BA0D-FB5C178ABB67} = {101EDA9A-849A-4B5D-B760-BE1A050C2A3C} {D2717875-CF69-423E-93D0-9B40052B9CD0} = {101EDA9A-849A-4B5D-B760-BE1A050C2A3C} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {101EDA9A-849A-4B5D-B760-BE1A050C2A3C} {2012A027-14EE-49F8-9166-C3B5025F368D} = {95FD2AF1-A439-438F-90EF-CC4D168E3D93} {6B2E33F5-56FF-419D-B592-433CF54E4DDC} = {95FD2AF1-A439-438F-90EF-CC4D168E3D93} {C6A80EFD-A4FE-448C-A141-7FE522FA8F9B} = {95FD2AF1-A439-438F-90EF-CC4D168E3D93} @@ -284,5 +313,6 @@ Global {786DA14A-2EA3-4BA8-AB24-52D5751BF1D0} = {95FD2AF1-A439-438F-90EF-CC4D168E3D93} {C1478417-6737-43C8-8E52-2F05C57488A3} = {95FD2AF1-A439-438F-90EF-CC4D168E3D93} {84EE4DBC-27C4-464B-9F8D-D7356425031D} = {95FD2AF1-A439-438F-90EF-CC4D168E3D93} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {95FD2AF1-A439-438F-90EF-CC4D168E3D93} EndGlobalSection EndGlobal diff --git a/build-VS2008/tests/is-native-static/is-native-static.vcproj b/build-VS2008/tests/is-native-static/is-native-static.vcproj new file mode 100644 index 00000000..71840706 --- /dev/null +++ b/build-VS2008/tests/is-native-static/is-native-static.vcproj @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build-VS2008/tests/is-native/is-native.vcproj b/build-VS2008/tests/is-native/is-native.vcproj new file mode 100644 index 00000000..95e47a9e --- /dev/null +++ b/build-VS2008/tests/is-native/is-native.vcproj @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build-VS2010-MT/libiconv.sln b/build-VS2010-MT/libiconv.sln index ddf26248..3b32a3e0 100644 --- a/build-VS2010-MT/libiconv.sln +++ b/build-VS2010-MT/libiconv.sln @@ -12,44 +12,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -107,6 +107,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -259,6 +271,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|Win32.Build.0 = Release|Win32 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.ActiveCfg = Release|x64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.Build.0 = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.Build.0 = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.ActiveCfg = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.Build.0 = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.ActiveCfg = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.Build.0 = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.ActiveCfg = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.Build.0 = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.Build.0 = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.ActiveCfg = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.Build.0 = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.ActiveCfg = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.Build.0 = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.ActiveCfg = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -284,5 +312,7 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection EndGlobal diff --git a/build-VS2010-MT/tests/is-native-static/is-native-static.vcxproj b/build-VS2010-MT/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..108e5a90 --- /dev/null +++ b/build-VS2010-MT/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,107 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + + + Application + true + + + Application + false + true + + + Application + false + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2010-MT/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2010-MT/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2010-MT/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2010-MT/tests/is-native/is-native.vcxproj b/build-VS2010-MT/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..b7ecb262 --- /dev/null +++ b/build-VS2010-MT/tests/is-native/is-native.vcxproj @@ -0,0 +1,95 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + + + Application + true + + + Application + false + true + + + Application + false + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2010-MT/tests/is-native/is-native.vcxproj.filters b/build-VS2010-MT/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2010-MT/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2010/libiconv.sln b/build-VS2010/libiconv.sln index ddf26248..3b32a3e0 100644 --- a/build-VS2010/libiconv.sln +++ b/build-VS2010/libiconv.sln @@ -12,44 +12,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -107,6 +107,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -259,6 +271,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|Win32.Build.0 = Release|Win32 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.ActiveCfg = Release|x64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.Build.0 = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.Build.0 = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.ActiveCfg = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.Build.0 = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.ActiveCfg = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.Build.0 = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.ActiveCfg = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.Build.0 = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.Build.0 = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.ActiveCfg = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.Build.0 = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.ActiveCfg = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.Build.0 = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.ActiveCfg = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -284,5 +312,7 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection EndGlobal diff --git a/build-VS2010/tests/is-native-static/is-native-static.vcxproj b/build-VS2010/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..108e5a90 --- /dev/null +++ b/build-VS2010/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,107 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + + + Application + true + + + Application + false + true + + + Application + false + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2010/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2010/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2010/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2010/tests/is-native/is-native.vcxproj b/build-VS2010/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..b7ecb262 --- /dev/null +++ b/build-VS2010/tests/is-native/is-native.vcxproj @@ -0,0 +1,95 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + + + Application + true + + + Application + false + true + + + Application + false + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2010/tests/is-native/is-native.vcxproj.filters b/build-VS2010/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2010/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2013-MT/libiconv.sln b/build-VS2013-MT/libiconv.sln index 3227ddc1..c2748bce 100644 --- a/build-VS2013-MT/libiconv.sln +++ b/build-VS2013-MT/libiconv.sln @@ -14,44 +14,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -109,6 +109,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -261,6 +273,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|Win32.Build.0 = Release|Win32 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.ActiveCfg = Release|x64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.Build.0 = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.Build.0 = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.ActiveCfg = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.Build.0 = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.ActiveCfg = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.Build.0 = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.ActiveCfg = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.Build.0 = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.Build.0 = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.ActiveCfg = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.Build.0 = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.ActiveCfg = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.Build.0 = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.ActiveCfg = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -286,5 +314,7 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection EndGlobal diff --git a/build-VS2013-MT/tests/is-native-static/is-native-static.vcxproj b/build-VS2013-MT/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..5e8651c2 --- /dev/null +++ b/build-VS2013-MT/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + v120 + + + Application + true + v120 + + + Application + false + v120 + true + + + Application + false + v120 + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2013-MT/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2013-MT/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2013-MT/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2013-MT/tests/is-native/is-native.vcxproj b/build-VS2013-MT/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..91ef9972 --- /dev/null +++ b/build-VS2013-MT/tests/is-native/is-native.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + v120 + + + Application + true + v120 + + + Application + false + v120 + true + + + Application + false + v120 + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2013-MT/tests/is-native/is-native.vcxproj.filters b/build-VS2013-MT/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2013-MT/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2013/libiconv.sln b/build-VS2013/libiconv.sln index 3227ddc1..c2748bce 100644 --- a/build-VS2013/libiconv.sln +++ b/build-VS2013/libiconv.sln @@ -14,44 +14,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -109,6 +109,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -261,6 +273,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|Win32.Build.0 = Release|Win32 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.ActiveCfg = Release|x64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.Build.0 = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.Build.0 = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.ActiveCfg = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.Build.0 = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.ActiveCfg = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.Build.0 = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.ActiveCfg = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.Build.0 = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.Build.0 = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.ActiveCfg = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.Build.0 = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.ActiveCfg = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.Build.0 = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.ActiveCfg = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -286,5 +314,7 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection EndGlobal diff --git a/build-VS2013/tests/is-native-static/is-native-static.vcxproj b/build-VS2013/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..5e8651c2 --- /dev/null +++ b/build-VS2013/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + v120 + + + Application + true + v120 + + + Application + false + v120 + true + + + Application + false + v120 + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2013/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2013/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2013/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2013/tests/is-native/is-native.vcxproj b/build-VS2013/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..91ef9972 --- /dev/null +++ b/build-VS2013/tests/is-native/is-native.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + v120 + + + Application + true + v120 + + + Application + false + v120 + true + + + Application + false + v120 + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2013/tests/is-native/is-native.vcxproj.filters b/build-VS2013/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2013/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2015-MT/libiconv.sln b/build-VS2015-MT/libiconv.sln index c5740dc0..4bdf5779 100644 --- a/build-VS2015-MT/libiconv.sln +++ b/build-VS2015-MT/libiconv.sln @@ -14,44 +14,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -109,6 +109,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -261,6 +273,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|Win32.Build.0 = Release|Win32 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.ActiveCfg = Release|x64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.Build.0 = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.Build.0 = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.ActiveCfg = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.Build.0 = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.ActiveCfg = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.Build.0 = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.ActiveCfg = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.Build.0 = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.Build.0 = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.ActiveCfg = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.Build.0 = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.ActiveCfg = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.Build.0 = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.ActiveCfg = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -286,5 +314,7 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection EndGlobal diff --git a/build-VS2015-MT/tests/is-native-static/is-native-static.vcxproj b/build-VS2015-MT/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..cdd757a6 --- /dev/null +++ b/build-VS2015-MT/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + v140 + + + Application + true + v140 + + + Application + false + v140 + true + + + Application + false + v140 + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2015-MT/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2015-MT/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2015-MT/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2015-MT/tests/is-native/is-native.vcxproj b/build-VS2015-MT/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..31a04b22 --- /dev/null +++ b/build-VS2015-MT/tests/is-native/is-native.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + v140 + + + Application + true + v140 + + + Application + false + v140 + true + + + Application + false + v140 + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2015-MT/tests/is-native/is-native.vcxproj.filters b/build-VS2015-MT/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2015-MT/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2015/libiconv.sln b/build-VS2015/libiconv.sln index c5740dc0..4bdf5779 100644 --- a/build-VS2015/libiconv.sln +++ b/build-VS2015/libiconv.sln @@ -14,44 +14,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -109,6 +109,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -261,6 +273,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|Win32.Build.0 = Release|Win32 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.ActiveCfg = Release|x64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.Build.0 = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.Build.0 = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.ActiveCfg = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.Build.0 = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.ActiveCfg = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.Build.0 = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.ActiveCfg = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.Build.0 = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.Build.0 = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.ActiveCfg = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.Build.0 = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.ActiveCfg = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.Build.0 = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.ActiveCfg = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -286,5 +314,7 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection EndGlobal diff --git a/build-VS2015/tests/is-native-static/is-native-static.vcxproj b/build-VS2015/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..cdd757a6 --- /dev/null +++ b/build-VS2015/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + v140 + + + Application + true + v140 + + + Application + false + v140 + true + + + Application + false + v140 + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2015/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2015/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2015/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2015/tests/is-native/is-native.vcxproj b/build-VS2015/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..31a04b22 --- /dev/null +++ b/build-VS2015/tests/is-native/is-native.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + v140 + + + Application + true + v140 + + + Application + false + v140 + true + + + Application + false + v140 + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2015/tests/is-native/is-native.vcxproj.filters b/build-VS2015/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2015/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2017-MT/libiconv.sln b/build-VS2017-MT/libiconv.sln index f16b9b2b..b2d49d46 100644 --- a/build-VS2017-MT/libiconv.sln +++ b/build-VS2017-MT/libiconv.sln @@ -14,44 +14,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -109,6 +109,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -261,6 +273,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|Win32.Build.0 = Release|Win32 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.ActiveCfg = Release|x64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.Build.0 = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.Build.0 = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.ActiveCfg = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.Build.0 = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.ActiveCfg = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.Build.0 = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.ActiveCfg = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.Build.0 = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.Build.0 = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.ActiveCfg = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.Build.0 = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.ActiveCfg = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.Build.0 = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.ActiveCfg = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -286,5 +314,7 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection EndGlobal diff --git a/build-VS2017-MT/tests/is-native-static/is-native-static.vcxproj b/build-VS2017-MT/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..82334bbd --- /dev/null +++ b/build-VS2017-MT/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + v141 + + + Application + true + v141 + + + Application + false + v141 + true + + + Application + false + v141 + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2017-MT/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2017-MT/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2017-MT/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2017-MT/tests/is-native/is-native.vcxproj b/build-VS2017-MT/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..1321ea5a --- /dev/null +++ b/build-VS2017-MT/tests/is-native/is-native.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + v141 + + + Application + true + v141 + + + Application + false + v141 + true + + + Application + false + v141 + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2017-MT/tests/is-native/is-native.vcxproj.filters b/build-VS2017-MT/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2017-MT/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2017/libiconv.sln b/build-VS2017/libiconv.sln index f16b9b2b..b2d49d46 100644 --- a/build-VS2017/libiconv.sln +++ b/build-VS2017/libiconv.sln @@ -14,44 +14,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -109,6 +109,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -261,6 +273,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|Win32.Build.0 = Release|Win32 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.ActiveCfg = Release|x64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.Build.0 = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.Build.0 = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.ActiveCfg = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.Build.0 = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.ActiveCfg = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.Build.0 = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.ActiveCfg = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.Build.0 = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.Build.0 = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.ActiveCfg = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.Build.0 = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.ActiveCfg = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.Build.0 = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.ActiveCfg = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -286,5 +314,7 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection EndGlobal diff --git a/build-VS2017/tests/is-native-static/is-native-static.vcxproj b/build-VS2017/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..82334bbd --- /dev/null +++ b/build-VS2017/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + v141 + + + Application + true + v141 + + + Application + false + v141 + true + + + Application + false + v141 + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2017/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2017/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2017/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2017/tests/is-native/is-native.vcxproj b/build-VS2017/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..1321ea5a --- /dev/null +++ b/build-VS2017/tests/is-native/is-native.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + v141 + + + Application + true + v141 + + + Application + false + v141 + true + + + Application + false + v141 + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2017/tests/is-native/is-native.vcxproj.filters b/build-VS2017/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2017/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2019-MT/libiconv.sln b/build-VS2019-MT/libiconv.sln index dbc27bb9..ef068537 100644 --- a/build-VS2019-MT/libiconv.sln +++ b/build-VS2019-MT/libiconv.sln @@ -14,44 +14,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -109,6 +109,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -261,6 +273,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|Win32.Build.0 = Release|Win32 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.ActiveCfg = Release|x64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.Build.0 = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.Build.0 = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.ActiveCfg = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.Build.0 = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.ActiveCfg = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.Build.0 = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.ActiveCfg = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.Build.0 = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.Build.0 = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.ActiveCfg = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.Build.0 = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.ActiveCfg = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.Build.0 = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.ActiveCfg = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -286,6 +314,8 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {53412D85-73CE-4353-9F4D-EFA64C4EB473} diff --git a/build-VS2019-MT/tests/is-native-static/is-native-static.vcxproj b/build-VS2019-MT/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..bc0379b7 --- /dev/null +++ b/build-VS2019-MT/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + v142 + + + Application + true + v142 + + + Application + false + v142 + true + + + Application + false + v142 + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2019-MT/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2019-MT/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2019-MT/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2019-MT/tests/is-native/is-native.vcxproj b/build-VS2019-MT/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..feea89b9 --- /dev/null +++ b/build-VS2019-MT/tests/is-native/is-native.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + v142 + + + Application + true + v142 + + + Application + false + v142 + true + + + Application + false + v142 + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2019-MT/tests/is-native/is-native.vcxproj.filters b/build-VS2019-MT/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2019-MT/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2019-arm/libiconv.sln b/build-VS2019-arm/libiconv.sln index 622e7b41..46afd2c9 100644 --- a/build-VS2019-arm/libiconv.sln +++ b/build-VS2019-arm/libiconv.sln @@ -14,44 +14,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -109,6 +109,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM = Debug|ARM @@ -261,6 +273,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|ARM.Build.0 = Release|ARM {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|ARM64.ActiveCfg = Release|ARM64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|ARM64.Build.0 = Release|ARM64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|ARM.ActiveCfg = Debug|ARM + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|ARM.Build.0 = Debug|ARM + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|ARM64.Build.0 = Debug|ARM64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|ARM.ActiveCfg = Release|ARM + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|ARM.Build.0 = Release|ARM + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|ARM64.ActiveCfg = Release|ARM64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|ARM64.Build.0 = Release|ARM64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|ARM.ActiveCfg = Debug|ARM + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|ARM.Build.0 = Debug|ARM + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|ARM64.Build.0 = Debug|ARM64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|ARM.ActiveCfg = Release|ARM + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|ARM.Build.0 = Release|ARM + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|ARM64.ActiveCfg = Release|ARM64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|ARM64.Build.0 = Release|ARM64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -286,6 +314,8 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {53412D85-73CE-4353-9F4D-EFA64C4EB473} diff --git a/build-VS2019-arm/tests/is-native-static/is-native-static.vcxproj b/build-VS2019-arm/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..31897c69 --- /dev/null +++ b/build-VS2019-arm/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + ARM + + + Debug + ARM64 + + + Release + ARM + + + Release + ARM64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + v142 + + + Application + true + v142 + + + Application + false + v142 + true + + + Application + false + v142 + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2019-arm/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2019-arm/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2019-arm/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2019-arm/tests/is-native/is-native.vcxproj b/build-VS2019-arm/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..9fb22932 --- /dev/null +++ b/build-VS2019-arm/tests/is-native/is-native.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + ARM + + + Debug + ARM64 + + + Release + ARM + + + Release + ARM64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + v142 + + + Application + true + v142 + + + Application + false + v142 + true + + + Application + false + v142 + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2019-arm/tests/is-native/is-native.vcxproj.filters b/build-VS2019-arm/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2019-arm/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2019/libiconv.sln b/build-VS2019/libiconv.sln index dbc27bb9..ef068537 100644 --- a/build-VS2019/libiconv.sln +++ b/build-VS2019/libiconv.sln @@ -14,44 +14,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -109,6 +109,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -261,6 +273,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|Win32.Build.0 = Release|Win32 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.ActiveCfg = Release|x64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.Build.0 = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.Build.0 = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.ActiveCfg = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.Build.0 = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.ActiveCfg = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.Build.0 = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.ActiveCfg = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.Build.0 = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.Build.0 = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.ActiveCfg = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.Build.0 = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.ActiveCfg = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.Build.0 = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.ActiveCfg = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -286,6 +314,8 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {53412D85-73CE-4353-9F4D-EFA64C4EB473} diff --git a/build-VS2019/tests/is-native-static/is-native-static.vcxproj b/build-VS2019/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..bc0379b7 --- /dev/null +++ b/build-VS2019/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + v142 + + + Application + true + v142 + + + Application + false + v142 + true + + + Application + false + v142 + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2019/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2019/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2019/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2019/tests/is-native/is-native.vcxproj b/build-VS2019/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..feea89b9 --- /dev/null +++ b/build-VS2019/tests/is-native/is-native.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + v142 + + + Application + true + v142 + + + Application + false + v142 + true + + + Application + false + v142 + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2019/tests/is-native/is-native.vcxproj.filters b/build-VS2019/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2019/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2022-MT/libiconv.sln b/build-VS2022-MT/libiconv.sln index d98c3342..4726cd0d 100644 --- a/build-VS2022-MT/libiconv.sln +++ b/build-VS2022-MT/libiconv.sln @@ -14,44 +14,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -109,6 +109,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -261,6 +273,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|Win32.Build.0 = Release|Win32 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.ActiveCfg = Release|x64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.Build.0 = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.Build.0 = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.ActiveCfg = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.Build.0 = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.ActiveCfg = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.Build.0 = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.ActiveCfg = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.Build.0 = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.Build.0 = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.ActiveCfg = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.Build.0 = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.ActiveCfg = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.Build.0 = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.ActiveCfg = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -286,6 +314,8 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {53412D85-73CE-4353-9F4D-EFA64C4EB473} diff --git a/build-VS2022-MT/tests/is-native-static/is-native-static.vcxproj b/build-VS2022-MT/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..04c2bd72 --- /dev/null +++ b/build-VS2022-MT/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + v143 + + + Application + true + v143 + + + Application + false + v143 + true + + + Application + false + v143 + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2022-MT/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2022-MT/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2022-MT/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2022-MT/tests/is-native/is-native.vcxproj b/build-VS2022-MT/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..81a26a20 --- /dev/null +++ b/build-VS2022-MT/tests/is-native/is-native.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + v143 + + + Application + true + v143 + + + Application + false + v143 + true + + + Application + false + v143 + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2022-MT/tests/is-native/is-native.vcxproj.filters b/build-VS2022-MT/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2022-MT/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2022-arm/libiconv.sln b/build-VS2022-arm/libiconv.sln index 2e4c1829..f88db1b9 100644 --- a/build-VS2022-arm/libiconv.sln +++ b/build-VS2022-arm/libiconv.sln @@ -14,44 +14,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -109,6 +109,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM = Debug|ARM @@ -261,6 +273,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|ARM.Build.0 = Release|ARM {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|ARM64.ActiveCfg = Release|ARM64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|ARM64.Build.0 = Release|ARM64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|ARM.ActiveCfg = Debug|ARM + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|ARM.Build.0 = Debug|ARM + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|ARM64.Build.0 = Debug|ARM64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|ARM.ActiveCfg = Release|ARM + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|ARM.Build.0 = Release|ARM + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|ARM64.ActiveCfg = Release|ARM64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|ARM64.Build.0 = Release|ARM64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|ARM.ActiveCfg = Debug|ARM + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|ARM.Build.0 = Debug|ARM + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|ARM64.Build.0 = Debug|ARM64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|ARM.ActiveCfg = Release|ARM + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|ARM.Build.0 = Release|ARM + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|ARM64.ActiveCfg = Release|ARM64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|ARM64.Build.0 = Release|ARM64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -286,6 +314,8 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {53412D85-73CE-4353-9F4D-EFA64C4EB473} diff --git a/build-VS2022-arm/tests/is-native-static/is-native-static.vcxproj b/build-VS2022-arm/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..437d332e --- /dev/null +++ b/build-VS2022-arm/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + ARM + + + Debug + ARM64 + + + Release + ARM + + + Release + ARM64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + v143 + + + Application + true + v143 + + + Application + false + v143 + true + + + Application + false + v143 + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2022-arm/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2022-arm/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2022-arm/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2022-arm/tests/is-native/is-native.vcxproj b/build-VS2022-arm/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..c85dd0da --- /dev/null +++ b/build-VS2022-arm/tests/is-native/is-native.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + ARM + + + Debug + ARM64 + + + Release + ARM + + + Release + ARM64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + v143 + + + Application + true + v143 + + + Application + false + v143 + true + + + Application + false + v143 + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2022-arm/tests/is-native/is-native.vcxproj.filters b/build-VS2022-arm/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2022-arm/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2022/libiconv.sln b/build-VS2022/libiconv.sln index d98c3342..4726cd0d 100644 --- a/build-VS2022/libiconv.sln +++ b/build-VS2022/libiconv.sln @@ -14,44 +14,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0E702AAB EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genutf8", "tests\genutf8\genutf8.vcxproj", "{2586F31B-7198-4ACE-A520-DEBA605EA950}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gengb18030z", "tests\gengb18030z\gengb18030z.vcxproj", "{1D14F393-E0B8-4756-AF30-5D598ABC4627}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-from", "tests\table-from\table-from.vcxproj", "{6C71A57D-396C-4D34-91D1-BB821ACC4FB4}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "table-to", "tests\table-to\table-to.vcxproj", "{CE6F83E5-3689-45C4-A6B8-A29222FA9D61}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-shiftseq", "tests\test-shiftseq\test-shiftseq.vcxproj", "{750848EC-7EC1-4942-B704-5C818BFD78DA}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test-to-wchar", "tests\test-to-wchar\test-to-wchar.vcxproj", "{B10B7610-435F-4B34-9CC0-4C23FEA8A8DB}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uniq-u", "tests\uniq-u\uniq-u.vcxproj", "{22C32C52-A7D5-4DAD-86BA-D45600168126}" ProjectSection(ProjectDependencies) = postProject - {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iconv", "iconv\iconv.vcxproj", "{2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6}" @@ -109,6 +109,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "static", "static", "{9F51CC EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dll", "dll", "{3378FF8A-CB60-47B8-B39C-17C546061DA2}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native-static\is-native-static.vcxproj", "{8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}" + ProjectSection(ProjectDependencies) = postProject + {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} = {0F27FE31-A7DB-4CB2-9682-0B7869B47DED} + {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} = {46CAFE4A-B5BD-4422-ACC6-117D4AD041E2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "is-native", "tests\is-native\is-native.vcxproj", "{F2D66145-F020-4067-9900-F0DA526A88FC}" + ProjectSection(ProjectDependencies) = postProject + {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} = {2D7BAD64-83CF-4F80-9F0A-8CEAC546EAD6} + {F2A64E15-0313-4421-ACB3-82FBCDA936B4} = {F2A64E15-0313-4421-ACB3-82FBCDA936B4} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -261,6 +273,22 @@ Global {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|Win32.Build.0 = Release|Win32 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.ActiveCfg = Release|x64 {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E}.Release|x64.Build.0 = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|Win32.Build.0 = Debug|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.ActiveCfg = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Debug|x64.Build.0 = Debug|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.ActiveCfg = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|Win32.Build.0 = Release|Win32 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.ActiveCfg = Release|x64 + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B}.Release|x64.Build.0 = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|Win32.Build.0 = Debug|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.ActiveCfg = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Debug|x64.Build.0 = Debug|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.ActiveCfg = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|Win32.Build.0 = Release|Win32 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.ActiveCfg = Release|x64 + {F2D66145-F020-4067-9900-F0DA526A88FC}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -286,6 +314,8 @@ Global {E900C1E1-1353-4C02-B076-66D9794F8488} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {910AA767-B5CC-47B9-BAFB-9ADCB80937BE} = {865CA47C-46EB-4031-AEC7-3081D8C54205} {203E6E8E-1082-45BA-A6A0-92D20AFB0C6E} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} = {865CA47C-46EB-4031-AEC7-3081D8C54205} + {F2D66145-F020-4067-9900-F0DA526A88FC} = {0E702AAB-2F5B-480C-9032-DFD8B300BCCF} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {53412D85-73CE-4353-9F4D-EFA64C4EB473} diff --git a/build-VS2022/tests/is-native-static/is-native-static.vcxproj b/build-VS2022/tests/is-native-static/is-native-static.vcxproj new file mode 100644 index 00000000..04c2bd72 --- /dev/null +++ b/build-VS2022/tests/is-native-static/is-native-static.vcxproj @@ -0,0 +1,111 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8C27F0EE-A7CB-4970-9EFD-1001F9748F1B} + is-native-static + is-native + + + + Application + true + v143 + + + Application + true + v143 + + + Application + false + v143 + true + + + Application + false + v143 + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + $(SolutionDir)$(Platform)\$(Configuration)\static\ + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2022/tests/is-native-static/is-native-static.vcxproj.filters b/build-VS2022/tests/is-native-static/is-native-static.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2022/tests/is-native-static/is-native-static.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/build-VS2022/tests/is-native/is-native.vcxproj b/build-VS2022/tests/is-native/is-native.vcxproj new file mode 100644 index 00000000..81a26a20 --- /dev/null +++ b/build-VS2022/tests/is-native/is-native.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F2D66145-F020-4067-9900-F0DA526A88FC} + is-native + + + + Application + true + v143 + + + Application + true + v143 + + + Application + false + v143 + true + + + Application + false + v143 + true + + + + + + + + + + + + + + + + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + \ No newline at end of file diff --git a/build-VS2022/tests/is-native/is-native.vcxproj.filters b/build-VS2022/tests/is-native/is-native.vcxproj.filters new file mode 100644 index 00000000..70e38524 --- /dev/null +++ b/build-VS2022/tests/is-native/is-native.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/distfiles/config_for_vs.sh b/distfiles/config_for_vs.sh index cdfd4cbe..ceb11397 100755 --- a/distfiles/config_for_vs.sh +++ b/distfiles/config_for_vs.sh @@ -1,7 +1,7 @@ #!/bin/sh # Derived from INSTALL.windows in the original source -# to support VS2008/2010/2013/2015/2017/2019. +# to support VS2008/2010/2013/2015/2017/2019/2022. # Set environment variables for using MSVC 10/11/12/14, # for creating native Windows executables. @@ -12,6 +12,7 @@ _VS2013=${_VS2013:=0} _VS2015=${_VS2015:=1} # default _VS2017=${_VS2017:=0} _VS2019=${_VS2019:=0} +_VS2022=${_VS2022:=0} _TARGET_X64=${_TARGET_X64:=0} _DO_CONFIG=${_DO_CONFIG:=1} _DO_MAKE=${_DO_MAKE:=0} @@ -59,7 +60,13 @@ INCLUDE="${WindowsSdkIncludeDir}um;${WindowsSdkIncludeDir}shared;${INCLUDE}" LIB="${WindowsSdkLibDir}${ARCH};${LIB}" # Visual C++ tools, headers and libraries. -if [ "${_VS2019}" -eq 1 ]; then +if [ "${_VS2022}" -eq 1 ]; then + _ARCH_PATH_W="\\${ARCH}" + VSINSTALLDIR='C:\Program Files\Microsoft Visual Studio\2022\Community\' + _VCVER=`( cd "/c/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC" && ls -1rd [1-9]* | head -1 )` + VCINSTALLDIR="${VSINSTALLDIR}"'VC\Tools\MSVC\'"${_VCVER}"'\' + _VCBINDIR=`cygpath -u "${VCINSTALLDIR}"`"/bin/Host${ARCH_U}/${ARCH}" +elif [ "${_VS2019}" -eq 1 ]; then _ARCH_PATH_W="\\${ARCH}" VSINSTALLDIR='C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\' _VCVER=`( cd "/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC" && ls -1rd [1-9]* | head -1 )` diff --git a/distfiles/download.url b/distfiles/download.url index 9e9e462c..6094018a 100644 --- a/distfiles/download.url +++ b/distfiles/download.url @@ -1,2 +1,2 @@ -https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz -https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz.sig +https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz +https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz.sig diff --git a/distfiles/libiconv-1.16.tar.gz b/distfiles/libiconv-1.16.tar.gz deleted file mode 100644 index e8509616..00000000 Binary files a/distfiles/libiconv-1.16.tar.gz and /dev/null differ diff --git a/distfiles/libiconv-1.16.tar.gz.sig b/distfiles/libiconv-1.16.tar.gz.sig deleted file mode 100644 index da092368..00000000 --- a/distfiles/libiconv-1.16.tar.gz.sig +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2 - -iQIcBAABCAAGBQJcw13GAAoJEE9JSpQuRhbCsPcP/juXTZbxcEN1ibGTbBS789hd -yB+KnKzEQYeooJW+2Ao1UGgAl2s3VBWSfkoG5cFo73/LIhj2R1OyMH3nhEpE1mVb -fkURz5d5KYPU0WlVUAOSjVhHjbchrYbvobM0O0vidFZSTZQH1jHYLDGMm3bLO3DD -duGaallqw+nPtYmG/dsGCfwxskjsz6VBWCLKiH6c5gXneILVQqFy3VP1w6LNq0NS -VeMCK0W6CExRr8OwORA/YK4XdnNtosUNx+K/8zaRR2oR+i23APnE9EvkG4/qnuLB -m6CodUC4MCGNNEry8r6eaXMXA5mwutFOfI60kIyl/kMoabVdDOgm+myJ2odDJ3QQ -YhB6w7J1XVppSrQJFAkT/7RImX1J1tBbrRm+feUIkAWBA9oN9+5LQqbg/K3a/4w0 -8pZucyz6LqYUIwYqDgfwyfLttSdmSElmta20S0KiQg5wKZAqvCMqBzj7kIfLPhu7 -jVXt16/+Dh5zIJV5L4KITxUBRNtBhxoxvqD4V5mSqgXsjBAIkarGFdi+ejdB9n5m -yLwwhC1alDBjdqAPG3fH4maOL3+n0tVUmwrsPPUZnSU1NRk0iI6kwPO23ump2LuC -EfpWo2mBVclEfLf5FPxwhgNpS/DjE4sdAf3nMUwZC94ZLGkY8Q2DQbySVbJaNeHM -n7irt5JlnMGGBERckTB5 -=eVEi ------END PGP SIGNATURE----- diff --git a/distfiles/libiconv-1.17.tar.gz b/distfiles/libiconv-1.17.tar.gz new file mode 100644 index 00000000..12b0cd73 Binary files /dev/null and b/distfiles/libiconv-1.17.tar.gz differ diff --git a/distfiles/libiconv-1.17.tar.gz.sig b/distfiles/libiconv-1.17.tar.gz.sig new file mode 100644 index 00000000..31daa0d9 --- /dev/null +++ b/distfiles/libiconv-1.17.tar.gz.sig @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEkAG4WvnhuD3xvalC9b6LJnxqQG0FAmKBG7IACgkQ9b6LJnxq +QG11Sg//XpnxJ1fYOKbFMvdcPRFf7vsJaQ+ZUNWcQTdaeHGpN3IsppDXseuSBksR +PhCCT/cfYI9O46Lu4O32ufZxHXemrMAkO0B6yMDk2qDi5w593nwGZAyf2saegiDx +1EkYwEv72Gi3JVp45RHZnho8bXVDWpi4Tag6ngvJ7S/xcNQWyF30JVmqF3+w60jj +uJKklm7u46+2+WzHdFlLLyA8sps6nsE0uIQqrUGOXEdt7axPk6eU2Iv8QwLdEvXB +nJaWb+2KSnjgBxnLE3BAlNyNdeuT9OupTylHEI6cUSDzdqESlK56qSvWquUqPvgj +rROlVftR9lySaPGFSVtYKk9gcw8qjxO4VVwVYlDksOk6wYpPzF0ozC3EkS1VsbVX +RtYC29EJOWSAQmeX1eyzX6Ab8n0kNP1/S4bBef7ZFOX477mjY7Z78gstc2JdXoGH +oMPq3pDdrOANzYMBaFtvf/G12SWaNv+KvoQ77LRkfMPFAJ5YW+5swrBnD/E/qBqE +82u7xdLhc/+33IckwqnacLS+xVRkKcyAE24LS3MVHSQR33oqKsUdypsqUM4D3shU +4Np5A4mc0qVq7LmysLmKKiA1QNRi7RTMb9sjHkwIEAfKK+6GjKuR5cl4Y6kshexs +mbIz7UnIHOW2aAq0hTlWz08NUHdpFt55+q1+bfL/f5s4qZ2ts8o= +=F8da +-----END PGP SIGNATURE----- diff --git a/include/iconv.h b/include/iconv.h index e786eea1..0640424d 100644 --- a/include/iconv.h +++ b/include/iconv.h @@ -1,17 +1,17 @@ -/* Copyright (C) 1999-2019 Free Software Foundation, Inc. +/* Copyright (C) 1999-2022 Free Software Foundation, Inc. This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ @@ -20,19 +20,19 @@ #ifndef _LIBICONV_H #define _LIBICONV_H -#define _LIBICONV_VERSION 0x0110 /* version number: (major<<8) + minor */ +#define _LIBICONV_VERSION 0x0111 /* version number: (major<<8) + minor */ #if defined(LIBICONV_DLL) && !defined(LIBICONV_STATIC) #ifdef BUILDING_LIBICONV -#define LIBICONV_API __declspec(dllexport) +#define LIBICONV_DLL_EXPORTED __declspec(dllexport) #else -#define LIBICONV_API __declspec(dllimport) +#define LIBICONV_DLL_EXPORTED __declspec(dllimport) #endif #else -#define LIBICONV_API +#define LIBICONV_DLL_EXPORTED #endif -extern LIBICONV_API int _libiconv_version; /* Likewise */ +extern LIBICONV_DLL_EXPORTED int _libiconv_version; /* Likewise */ /* We would like to #include any system header file which could define iconv_t, 1. in order to eliminate the risk that the user gets compilation @@ -80,7 +80,7 @@ extern "C" { #ifndef LIBICONV_PLUG #define iconv_open libiconv_open #endif -extern LIBICONV_API iconv_t iconv_open (const char* tocode, const char* fromcode); +extern LIBICONV_DLL_EXPORTED iconv_t iconv_open (const char* tocode, const char* fromcode); /* Converts, using conversion descriptor 'cd', at most '*inbytesleft' bytes starting at '*inbuf', writing at most '*outbytesleft' bytes starting at @@ -90,13 +90,13 @@ extern LIBICONV_API iconv_t iconv_open (const char* tocode, const char* fromcode #ifndef LIBICONV_PLUG #define iconv libiconv #endif -extern LIBICONV_API size_t iconv (iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); +extern LIBICONV_DLL_EXPORTED size_t iconv (iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); /* Frees resources allocated for conversion descriptor 'cd'. */ #ifndef LIBICONV_PLUG #define iconv_close libiconv_close #endif -extern LIBICONV_API int iconv_close (iconv_t cd); +extern LIBICONV_DLL_EXPORTED int iconv_close (iconv_t cd); #ifdef __cplusplus @@ -138,12 +138,12 @@ typedef struct { encoding 'tocode' into preallocated memory. Returns an error indicator (0 or -1 with errno set). */ #define iconv_open_into libiconv_open_into -extern LIBICONV_API int iconv_open_into (const char* tocode, const char* fromcode, - iconv_allocation_t* resultp); +extern LIBICONV_DLL_EXPORTED int iconv_open_into (const char* tocode, const char* fromcode, + iconv_allocation_t* resultp); /* Control of attributes. */ #define iconvctl libiconvctl -extern LIBICONV_API int iconvctl (iconv_t cd, int request, void* argument); +extern LIBICONV_DLL_EXPORTED int iconvctl (iconv_t cd, int request, void* argument); /* Hook performed after every successful conversion of a Unicode character. */ typedef void (*iconv_unicode_char_hook) (unsigned int uc, void* data); @@ -223,14 +223,14 @@ struct iconv_fallbacks { /* Listing of locale independent encodings. */ #define iconvlist libiconvlist -extern LIBICONV_API void iconvlist (int (*do_one) (unsigned int namescount, - const char * const * names, - void* data), - void* data); +extern LIBICONV_DLL_EXPORTED void iconvlist (int (*do_one) (unsigned int namescount, + const char * const * names, + void* data), + void* data); /* Canonicalize an encoding name. The result is either a canonical encoding name, or name itself. */ -extern LIBICONV_API const char * iconv_canonicalize (const char * name); +extern LIBICONV_DLL_EXPORTED const char * iconv_canonicalize (const char * name); /* Support for relocatable packages. */ @@ -240,8 +240,8 @@ extern LIBICONV_API const char * iconv_canonicalize (const char * name); by the corresponding pathname with the current prefix instead. Both prefixes should be directory names without trailing slash (i.e. use "" instead of "/"). */ -extern LIBICONV_API void libiconv_set_relocation_prefix (const char *orig_prefix, - const char *curr_prefix); +extern LIBICONV_DLL_EXPORTED void libiconv_set_relocation_prefix (const char *orig_prefix, + const char *curr_prefix); #endif #ifdef __cplusplus diff --git a/lib/aliases.h b/lib/aliases.h index ee7adf60..6d3039cd 100644 --- a/lib/aliases.h +++ b/lib/aliases.h @@ -1,4 +1,4 @@ -/* ANSI-C code produced by gperf version 3.1 */ +/* ANSI-C code produced by gperf version 3.2 */ /* Command-line: gperf -m 10 lib/aliases.gperf */ /* Computed positions: -k'1,3-11,$' */ @@ -71,30 +71,75 @@ aliases_hash (register const char *str, register size_t len) { default: hval += asso_values[(unsigned char)str[10]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 10: hval += asso_values[(unsigned char)str[9]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 9: hval += asso_values[(unsigned char)str[8]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 8: hval += asso_values[(unsigned char)str[7]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 7: hval += asso_values[(unsigned char)str[6]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 6: hval += asso_values[(unsigned char)str[5]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 5: hval += asso_values[(unsigned char)str[4]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 4: hval += asso_values[(unsigned char)str[3]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 3: hval += asso_values[(unsigned char)str[2]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 2: case 1: @@ -1709,7 +1754,7 @@ static const struct alias aliases[] = {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str921, ei_jisx0201} }; -const struct alias * +static const struct alias * aliases_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) diff --git a/lib/aliases2.h b/lib/aliases2.h index 01de93aa..6a65c42a 100644 --- a/lib/aliases2.h +++ b/lib/aliases2.h @@ -1,18 +1,18 @@ /* - * Copyright (C) 1999-2003, 2008 Free Software Foundation, Inc. + * Copyright (C) 1999-2003, 2008, 2022 Free Software Foundation, Inc. * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ @@ -34,6 +34,9 @@ #ifdef USE_DOS # include "aliases_dos.h" #endif +#ifdef USE_ZOS +# include "aliases_zos.h" +#endif #ifdef USE_EXTRA # include "aliases_extra.h" #endif diff --git a/lib/aliases_sysaix.h b/lib/aliases_sysaix.h index 9027c13c..56e6d7e8 100644 --- a/lib/aliases_sysaix.h +++ b/lib/aliases_sysaix.h @@ -1,4 +1,4 @@ -/* ANSI-C code produced by gperf version 3.1 */ +/* ANSI-C code produced by gperf version 3.2 */ /* Command-line: gperf -m 10 lib/aliases_sysaix.gperf */ /* Computed positions: -k'1,3-11,$' */ @@ -71,30 +71,75 @@ aliases_hash (register const char *str, register size_t len) { default: hval += asso_values[(unsigned char)str[10]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 10: hval += asso_values[(unsigned char)str[9]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 9: hval += asso_values[(unsigned char)str[8]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 8: hval += asso_values[(unsigned char)str[7]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 7: hval += asso_values[(unsigned char)str[6]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 6: hval += asso_values[(unsigned char)str[5]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 5: hval += asso_values[(unsigned char)str[4]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 4: hval += asso_values[(unsigned char)str[3]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 3: hval += asso_values[(unsigned char)str[2]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 2: case 1: @@ -1746,7 +1791,7 @@ static const struct alias aliases[] = {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str1039, ei_jisx0208} }; -const struct alias * +static const struct alias * aliases_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) diff --git a/lib/aliases_syshpux.h b/lib/aliases_syshpux.h index ca0579ef..b54cc7c5 100644 --- a/lib/aliases_syshpux.h +++ b/lib/aliases_syshpux.h @@ -1,4 +1,4 @@ -/* ANSI-C code produced by gperf version 3.1 */ +/* ANSI-C code produced by gperf version 3.2 */ /* Command-line: gperf -m 10 lib/aliases_syshpux.gperf */ /* Computed positions: -k'1,3-11,$' */ @@ -71,30 +71,75 @@ aliases_hash (register const char *str, register size_t len) { default: hval += asso_values[(unsigned char)str[10]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 10: hval += asso_values[(unsigned char)str[9]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 9: hval += asso_values[(unsigned char)str[8]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 8: hval += asso_values[(unsigned char)str[7]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 7: hval += asso_values[(unsigned char)str[6]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 6: hval += asso_values[(unsigned char)str[5]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 5: hval += asso_values[(unsigned char)str[4]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 4: hval += asso_values[(unsigned char)str[3]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 3: hval += asso_values[(unsigned char)str[2]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 2: case 1: @@ -1751,7 +1796,7 @@ static const struct alias aliases[] = {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str1033, ei_mac_turkish} }; -const struct alias * +static const struct alias * aliases_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) diff --git a/lib/aliases_sysosf1.h b/lib/aliases_sysosf1.h index f17505d6..035e8404 100644 --- a/lib/aliases_sysosf1.h +++ b/lib/aliases_sysosf1.h @@ -1,4 +1,4 @@ -/* ANSI-C code produced by gperf version 3.1 */ +/* ANSI-C code produced by gperf version 3.2 */ /* Command-line: gperf -m 10 lib/aliases_sysosf1.gperf */ /* Computed positions: -k'1,3-11,$' */ @@ -71,30 +71,75 @@ aliases_hash (register const char *str, register size_t len) { default: hval += asso_values[(unsigned char)str[10]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 10: hval += asso_values[(unsigned char)str[9]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 9: hval += asso_values[(unsigned char)str[8]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 8: hval += asso_values[(unsigned char)str[7]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 7: hval += asso_values[(unsigned char)str[6]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 6: hval += asso_values[(unsigned char)str[5]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 5: hval += asso_values[(unsigned char)str[4]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 4: hval += asso_values[(unsigned char)str[3]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 3: hval += asso_values[(unsigned char)str[2]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 2: case 1: @@ -1721,7 +1766,7 @@ static const struct alias aliases[] = {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str981, ei_cp1256} }; -const struct alias * +static const struct alias * aliases_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) diff --git a/lib/aliases_syssolaris.h b/lib/aliases_syssolaris.h index e9072b6d..d1123054 100644 --- a/lib/aliases_syssolaris.h +++ b/lib/aliases_syssolaris.h @@ -1,4 +1,4 @@ -/* ANSI-C code produced by gperf version 3.1 */ +/* ANSI-C code produced by gperf version 3.2 */ /* Command-line: gperf -m 10 lib/aliases_syssolaris.gperf */ /* Computed positions: -k'1,3-11,$' */ @@ -71,30 +71,75 @@ aliases_hash (register const char *str, register size_t len) { default: hval += asso_values[(unsigned char)str[10]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 10: hval += asso_values[(unsigned char)str[9]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 9: hval += asso_values[(unsigned char)str[8]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 8: hval += asso_values[(unsigned char)str[7]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 7: hval += asso_values[(unsigned char)str[6]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 6: hval += asso_values[(unsigned char)str[5]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 5: hval += asso_values[(unsigned char)str[4]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 4: hval += asso_values[(unsigned char)str[3]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 3: hval += asso_values[(unsigned char)str[2]]; +#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) + [[fallthrough]]; +#elif defined __GNUC__ && __GNUC__ >= 7 + __attribute__ ((__fallthrough__)); +#endif /*FALLTHROUGH*/ case 2: case 1: @@ -1731,7 +1776,7 @@ static const struct alias aliases[] = {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str956, ei_mac_hebrew} }; -const struct alias * +static const struct alias * aliases_lookup (register const char *str, register size_t len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) diff --git a/lib/aliases_zos.h b/lib/aliases_zos.h new file mode 100644 index 00000000..9143ea16 --- /dev/null +++ b/lib/aliases_zos.h @@ -0,0 +1,241 @@ + S(zos_0, "IBM-037", ei_ebcdic037 ) + S(zos_1, "IBM037", ei_ebcdic037 ) + S(zos_2, "CP037", ei_ebcdic037 ) + S(zos_3, "EBCDIC-CP-US", ei_ebcdic037 ) + S(zos_4, "EBCDIC-CP-CA", ei_ebcdic037 ) + S(zos_5, "EBCDIC-CP-WT", ei_ebcdic037 ) + S(zos_6, "EBCDIC-CP-NL", ei_ebcdic037 ) + S(zos_7, "CSIBM037", ei_ebcdic037 ) + S(zos_8, "IBM-273", ei_ebcdic273 ) + S(zos_9, "IBM273", ei_ebcdic273 ) + S(zos_10, "CP273", ei_ebcdic273 ) + S(zos_11, "CSIBM273", ei_ebcdic273 ) + S(zos_12, "IBM-277", ei_ebcdic277 ) + S(zos_13, "IBM277", ei_ebcdic277 ) + S(zos_14, "EBCDIC-CP-DK", ei_ebcdic277 ) + S(zos_15, "EBCDIC-CP-NO", ei_ebcdic277 ) + S(zos_16, "CSIBM277", ei_ebcdic277 ) + S(zos_17, "IBM-278", ei_ebcdic278 ) + S(zos_18, "IBM278", ei_ebcdic278 ) + S(zos_19, "CP278", ei_ebcdic278 ) + S(zos_20, "EBCDIC-CP-FI", ei_ebcdic278 ) + S(zos_21, "EBCDIC-CP-SE", ei_ebcdic278 ) + S(zos_22, "CSIBM278", ei_ebcdic278 ) + S(zos_23, "IBM-280", ei_ebcdic280 ) + S(zos_24, "IBM280", ei_ebcdic280 ) + S(zos_25, "CP280", ei_ebcdic280 ) + S(zos_26, "EBCDIC-CP-IT", ei_ebcdic280 ) + S(zos_27, "CSIBM280", ei_ebcdic280 ) + S(zos_28, "IBM-282", ei_ebcdic282 ) + S(zos_29, "IBM282", ei_ebcdic282 ) + S(zos_30, "IBM-284", ei_ebcdic284 ) + S(zos_31, "IBM284", ei_ebcdic284 ) + S(zos_32, "CP284", ei_ebcdic284 ) + S(zos_33, "EBCDIC-CP-ES", ei_ebcdic284 ) + S(zos_34, "CSIBM284", ei_ebcdic284 ) + S(zos_35, "IBM-285", ei_ebcdic285 ) + S(zos_36, "IBM285", ei_ebcdic285 ) + S(zos_37, "CP285", ei_ebcdic285 ) + S(zos_38, "EBCDIC-CP-GB", ei_ebcdic285 ) + S(zos_39, "CSIBM285", ei_ebcdic285 ) + S(zos_40, "IBM-297", ei_ebcdic297 ) + S(zos_41, "IBM297", ei_ebcdic297 ) + S(zos_42, "CP297", ei_ebcdic297 ) + S(zos_43, "EBCDIC-CP-FR", ei_ebcdic297 ) + S(zos_44, "CSIBM297", ei_ebcdic297 ) + S(zos_45, "IBM-423", ei_ebcdic423 ) + S(zos_46, "IBM423", ei_ebcdic423 ) + S(zos_47, "CP423", ei_ebcdic423 ) + S(zos_48, "EBCDIC-CP-GR", ei_ebcdic423 ) + S(zos_49, "CSIBM423", ei_ebcdic423 ) + S(zos_50, "IBM-424", ei_ebcdic424 ) + S(zos_51, "IBM424", ei_ebcdic424 ) + S(zos_52, "CP424", ei_ebcdic424 ) + S(zos_53, "EBCDIC-CP-HE", ei_ebcdic424 ) + S(zos_54, "CSIBM424", ei_ebcdic424 ) + S(zos_55, "IBM-425", ei_ebcdic425 ) + S(zos_56, "IBM425", ei_ebcdic425 ) + S(zos_57, "IBM-500", ei_ebcdic500 ) + S(zos_58, "IBM500", ei_ebcdic500 ) + S(zos_59, "CP500", ei_ebcdic500 ) + S(zos_60, "EBCDIC-CP-BE", ei_ebcdic500 ) + S(zos_61, "EBCDIC-CP-CH", ei_ebcdic500 ) + S(zos_62, "CSIBM500", ei_ebcdic500 ) + S(zos_63, "IBM-838", ei_ebcdic838 ) + S(zos_64, "IBM838", ei_ebcdic838 ) + S(zos_65, "IBM-THAI", ei_ebcdic838 ) + S(zos_66, "CSIBMTHAI", ei_ebcdic838 ) + S(zos_67, "IBM-870", ei_ebcdic870 ) + S(zos_68, "IBM870", ei_ebcdic870 ) + S(zos_69, "CP870", ei_ebcdic870 ) + S(zos_70, "EBCDIC-CP-ROECE", ei_ebcdic870 ) + S(zos_71, "EBCDIC-CP-YU", ei_ebcdic870 ) + S(zos_72, "CSIBM870", ei_ebcdic870 ) + S(zos_73, "IBM-871", ei_ebcdic871 ) + S(zos_74, "IBM871", ei_ebcdic871 ) + S(zos_75, "CP871", ei_ebcdic871 ) + S(zos_76, "EBCDIC-CP-IS", ei_ebcdic871 ) + S(zos_77, "CSIBM871", ei_ebcdic871 ) + S(zos_78, "IBM-875", ei_ebcdic875 ) + S(zos_79, "IBM875", ei_ebcdic875 ) + S(zos_80, "CP875", ei_ebcdic875 ) + S(zos_81, "EBCDIC-GREEK", ei_ebcdic875 ) + S(zos_82, "IBM-880", ei_ebcdic880 ) + S(zos_83, "IBM880", ei_ebcdic880 ) + S(zos_84, "CP880", ei_ebcdic880 ) + S(zos_85, "EBCDIC-CYRILLIC", ei_ebcdic880 ) + S(zos_86, "CSIBM880", ei_ebcdic880 ) + S(zos_87, "IBM-905", ei_ebcdic905 ) + S(zos_88, "IBM905", ei_ebcdic905 ) + S(zos_89, "CP905", ei_ebcdic905 ) + S(zos_90, "EBCDIC-CP-TR", ei_ebcdic905 ) + S(zos_91, "CSIBM905", ei_ebcdic905 ) + S(zos_92, "IBM-924", ei_ebcdic924 ) + S(zos_93, "IBM924", ei_ebcdic924 ) + S(zos_94, "IBM00924", ei_ebcdic924 ) + S(zos_95, "CCSID00924", ei_ebcdic924 ) + S(zos_96, "CP00924", ei_ebcdic924 ) + S(zos_97, "EBCDIC-LATIN9-EURO", ei_ebcdic924 ) + S(zos_98, "CSIBM00924", ei_ebcdic924 ) + S(zos_99, "IBM-1025", ei_ebcdic1025 ) + S(zos_100, "IBM1025", ei_ebcdic1025 ) + S(zos_101, "CP1025", ei_ebcdic1025 ) + S(zos_102, "IBM-1026", ei_ebcdic1026 ) + S(zos_103, "IBM1026", ei_ebcdic1026 ) + S(zos_104, "CP1026", ei_ebcdic1026 ) + S(zos_105, "CSIBM1026", ei_ebcdic1026 ) + S(zos_106, "IBM-1047", ei_ebcdic1047 ) + S(zos_107, "IBM1047", ei_ebcdic1047 ) + S(zos_108, "CP1047", ei_ebcdic1047 ) + S(zos_109, "CSIBM1047", ei_ebcdic1047 ) + S(zos_110, "IBM-1097", ei_ebcdic1097 ) + S(zos_111, "IBM1097", ei_ebcdic1097 ) + S(zos_112, "CP1097", ei_ebcdic1097 ) + S(zos_113, "IBM-1112", ei_ebcdic1112 ) + S(zos_114, "IBM1112", ei_ebcdic1112 ) + S(zos_115, "CP1112", ei_ebcdic1112 ) + S(zos_116, "IBM-1122", ei_ebcdic1122 ) + S(zos_117, "IBM1122", ei_ebcdic1122 ) + S(zos_118, "CP1122", ei_ebcdic1122 ) + S(zos_119, "IBM-1123", ei_ebcdic1123 ) + S(zos_120, "IBM1123", ei_ebcdic1123 ) + S(zos_121, "CP1123", ei_ebcdic1123 ) + S(zos_122, "IBM-1130", ei_ebcdic1130 ) + S(zos_123, "IBM1130", ei_ebcdic1130 ) + S(zos_124, "CP1130", ei_ebcdic1130 ) + S(zos_125, "IBM-1132", ei_ebcdic1132 ) + S(zos_126, "IBM1132", ei_ebcdic1132 ) + S(zos_127, "CP1132", ei_ebcdic1132 ) + S(zos_128, "IBM-1137", ei_ebcdic1137 ) + S(zos_129, "IBM1137", ei_ebcdic1137 ) + S(zos_130, "CP1137", ei_ebcdic1137 ) + S(zos_131, "IBM-1140", ei_ebcdic1140 ) + S(zos_132, "IBM1140", ei_ebcdic1140 ) + S(zos_133, "IBM01140", ei_ebcdic1140 ) + S(zos_134, "CCSID01140", ei_ebcdic1140 ) + S(zos_135, "CP01140", ei_ebcdic1140 ) + S(zos_136, "EBCDIC-US-37+EURO", ei_ebcdic1140 ) + S(zos_137, "CSIBM01140", ei_ebcdic1140 ) + S(zos_138, "IBM-1141", ei_ebcdic1141 ) + S(zos_139, "IBM1141", ei_ebcdic1141 ) + S(zos_140, "IBM01141", ei_ebcdic1141 ) + S(zos_141, "CCSID01141", ei_ebcdic1141 ) + S(zos_142, "CP01141", ei_ebcdic1141 ) + S(zos_143, "EBCDIC-DE-273+EURO", ei_ebcdic1141 ) + S(zos_144, "CSIBM01141", ei_ebcdic1141 ) + S(zos_145, "IBM-1142", ei_ebcdic1142 ) + S(zos_146, "IBM1142", ei_ebcdic1142 ) + S(zos_147, "IBM01142", ei_ebcdic1142 ) + S(zos_148, "CCSID01142", ei_ebcdic1142 ) + S(zos_149, "CP01142", ei_ebcdic1142 ) + S(zos_150, "EBCDIC-DK-277+EURO", ei_ebcdic1142 ) + S(zos_151, "EBCDIC-NO-277+EURO", ei_ebcdic1142 ) + S(zos_152, "CSIBM01142", ei_ebcdic1142 ) + S(zos_153, "IBM-1143", ei_ebcdic1143 ) + S(zos_154, "IBM1143", ei_ebcdic1143 ) + S(zos_155, "IBM01143", ei_ebcdic1143 ) + S(zos_156, "CCSID01143", ei_ebcdic1143 ) + S(zos_157, "CP01143", ei_ebcdic1143 ) + S(zos_158, "EBCDIC-FI-278+EURO", ei_ebcdic1143 ) + S(zos_159, "EBCDIC-SE-278+EURO", ei_ebcdic1143 ) + S(zos_160, "CSIBM01143", ei_ebcdic1143 ) + S(zos_161, "IBM-1144", ei_ebcdic1144 ) + S(zos_162, "IBM1144", ei_ebcdic1144 ) + S(zos_163, "IBM01144", ei_ebcdic1144 ) + S(zos_164, "CCSID01144", ei_ebcdic1144 ) + S(zos_165, "CP01144", ei_ebcdic1144 ) + S(zos_166, "EBCDIC-IT-280+EURO", ei_ebcdic1144 ) + S(zos_167, "CSPC8CODEPAGE1144", ei_ebcdic1144 ) + S(zos_168, "IBM-1145", ei_ebcdic1145 ) + S(zos_169, "IBM1145", ei_ebcdic1145 ) + S(zos_170, "IBM01145", ei_ebcdic1145 ) + S(zos_171, "CCSID01145", ei_ebcdic1145 ) + S(zos_172, "CP01145", ei_ebcdic1145 ) + S(zos_173, "EBCDIC-ES-284+EURO", ei_ebcdic1145 ) + S(zos_174, "CSIBM01145", ei_ebcdic1145 ) + S(zos_175, "IBM-1146", ei_ebcdic1146 ) + S(zos_176, "IBM1146", ei_ebcdic1146 ) + S(zos_177, "IBM01146", ei_ebcdic1146 ) + S(zos_178, "CCSID01146", ei_ebcdic1146 ) + S(zos_179, "CP01146", ei_ebcdic1146 ) + S(zos_180, "EBCDIC-GB-285+EURO", ei_ebcdic1146 ) + S(zos_181, "CSPC8CODEPAGE1146", ei_ebcdic1146 ) + S(zos_182, "IBM-1147", ei_ebcdic1147 ) + S(zos_183, "IBM1147", ei_ebcdic1147 ) + S(zos_184, "IBM01147", ei_ebcdic1147 ) + S(zos_185, "CCSID01147", ei_ebcdic1147 ) + S(zos_186, "CP01147", ei_ebcdic1147 ) + S(zos_187, "EBCDIC-FR-297+EURO", ei_ebcdic1147 ) + S(zos_188, "CSIBM01147", ei_ebcdic1147 ) + S(zos_189, "IBM-1148", ei_ebcdic1148 ) + S(zos_190, "IBM1148", ei_ebcdic1148 ) + S(zos_191, "IBM01148", ei_ebcdic1148 ) + S(zos_192, "CCSID01148", ei_ebcdic1148 ) + S(zos_193, "CP01148", ei_ebcdic1148 ) + S(zos_194, "EBCDIC-INTERNATIONAL-500+EURO", ei_ebcdic1148 ) + S(zos_195, "CSIBM01148", ei_ebcdic1148 ) + S(zos_196, "IBM-1149", ei_ebcdic1149 ) + S(zos_197, "IBM1149", ei_ebcdic1149 ) + S(zos_198, "IBM01149", ei_ebcdic1149 ) + S(zos_199, "CCSID01149", ei_ebcdic1149 ) + S(zos_200, "CP01149", ei_ebcdic1149 ) + S(zos_201, "EBCDIC-IS-871+EURO", ei_ebcdic1149 ) + S(zos_202, "CSIBM01149", ei_ebcdic1149 ) + S(zos_203, "IBM-1153", ei_ebcdic1153 ) + S(zos_204, "IBM1153", ei_ebcdic1153 ) + S(zos_205, "CP1153", ei_ebcdic1153 ) + S(zos_206, "IBM-1154", ei_ebcdic1154 ) + S(zos_207, "IBM1154", ei_ebcdic1154 ) + S(zos_208, "CP1154", ei_ebcdic1154 ) + S(zos_209, "IBM-1155", ei_ebcdic1155 ) + S(zos_210, "IBM1155", ei_ebcdic1155 ) + S(zos_211, "CP1155", ei_ebcdic1155 ) + S(zos_212, "IBM-1156", ei_ebcdic1156 ) + S(zos_213, "IBM1156", ei_ebcdic1156 ) + S(zos_214, "CP1156", ei_ebcdic1156 ) + S(zos_215, "IBM-1157", ei_ebcdic1157 ) + S(zos_216, "IBM1157", ei_ebcdic1157 ) + S(zos_217, "CP1157", ei_ebcdic1157 ) + S(zos_218, "IBM-1158", ei_ebcdic1158 ) + S(zos_219, "IBM1158", ei_ebcdic1158 ) + S(zos_220, "CP1158", ei_ebcdic1158 ) + S(zos_221, "IBM-1160", ei_ebcdic1160 ) + S(zos_222, "IBM1160", ei_ebcdic1160 ) + S(zos_223, "CP1160", ei_ebcdic1160 ) + S(zos_224, "IBM-1164", ei_ebcdic1164 ) + S(zos_225, "IBM1164", ei_ebcdic1164 ) + S(zos_226, "CP1164", ei_ebcdic1164 ) + S(zos_227, "IBM-1165", ei_ebcdic1165 ) + S(zos_228, "IBM1165", ei_ebcdic1165 ) + S(zos_229, "IBM-1166", ei_ebcdic1166 ) + S(zos_230, "IBM1166", ei_ebcdic1166 ) + S(zos_231, "CP1166", ei_ebcdic1166 ) + S(zos_232, "IBM-4971", ei_ebcdic4971 ) + S(zos_233, "IBM4971", ei_ebcdic4971 ) + S(zos_234, "CP4971", ei_ebcdic4971 ) + S(zos_235, "IBM-12712", ei_ebcdic12712 ) + S(zos_236, "IBM12712", ei_ebcdic12712 ) + S(zos_237, "CP12712", ei_ebcdic12712 ) + S(zos_238, "IBM-16804", ei_ebcdic16804 ) + S(zos_239, "IBM16804", ei_ebcdic16804 ) + S(zos_240, "CP16804", ei_ebcdic16804 ) diff --git a/lib/armscii_8.h b/lib/armscii_8.h index 5d5744d1..6acee334 100644 --- a/lib/armscii_8.h +++ b/lib/armscii_8.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/ascii.h b/lib/ascii.h index 0c22903d..ec3da6c0 100644 --- a/lib/ascii.h +++ b/lib/ascii.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/atarist.h b/lib/atarist.h index c0a9d841..f7286641 100644 --- a/lib/atarist.h +++ b/lib/atarist.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/big5.h b/lib/big5.h index 68bfaeac..2b60acae 100644 --- a/lib/big5.h +++ b/lib/big5.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/big5_2003.h b/lib/big5_2003.h index 37b1f5d0..a42e1cd8 100644 --- a/lib/big5_2003.h +++ b/lib/big5_2003.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/big5hkscs1999.h b/lib/big5hkscs1999.h index 85bd804c..cd563c06 100644 --- a/lib/big5hkscs1999.h +++ b/lib/big5hkscs1999.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/big5hkscs2001.h b/lib/big5hkscs2001.h index cd2f83ab..89c97cdd 100644 --- a/lib/big5hkscs2001.h +++ b/lib/big5hkscs2001.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/big5hkscs2004.h b/lib/big5hkscs2004.h index 4fe9f522..87d8ae08 100644 --- a/lib/big5hkscs2004.h +++ b/lib/big5hkscs2004.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/big5hkscs2008.h b/lib/big5hkscs2008.h index 9390dc94..c9818e4d 100644 --- a/lib/big5hkscs2008.h +++ b/lib/big5hkscs2008.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/c99.h b/lib/c99.h index d9b8f15a..290dd9ac 100644 --- a/lib/c99.h +++ b/lib/c99.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/canonical_zos.h b/lib/canonical_zos.h new file mode 100644 index 00000000..bb9ff7ee --- /dev/null +++ b/lib/canonical_zos.h @@ -0,0 +1,53 @@ + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_0, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_8, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_12, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_17, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_23, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_28, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_30, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_35, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_40, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_45, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_50, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_55, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_57, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_63, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_67, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_73, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_78, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_82, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_87, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_92, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_99, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_102, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_106, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_110, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_113, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_116, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_119, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_122, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_125, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_128, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_131, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_138, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_145, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_153, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_161, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_168, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_175, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_182, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_189, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_196, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_203, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_206, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_209, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_212, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_215, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_218, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_221, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_224, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_227, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_229, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_232, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_235, + (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_238, diff --git a/lib/ces_big5.h b/lib/ces_big5.h index 14c8ea97..7a29204d 100644 --- a/lib/ces_big5.h +++ b/lib/ces_big5.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/ces_gbk.h b/lib/ces_gbk.h index 15e720d8..02e658da 100644 --- a/lib/ces_gbk.h +++ b/lib/ces_gbk.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cjk_variants.h b/lib/cjk_variants.h index 62f89ddc..3a30840d 100644 --- a/lib/cjk_variants.h +++ b/lib/cjk_variants.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cns11643.h b/lib/cns11643.h index 6c6e74be..044bf9da 100644 --- a/lib/cns11643.h +++ b/lib/cns11643.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cns11643_1.h b/lib/cns11643_1.h index 08419fb2..a6673ef1 100644 --- a/lib/cns11643_1.h +++ b/lib/cns11643_1.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cns11643_15.h b/lib/cns11643_15.h index 89af3ae2..672406b5 100644 --- a/lib/cns11643_15.h +++ b/lib/cns11643_15.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cns11643_2.h b/lib/cns11643_2.h index ea666747..535051a3 100644 --- a/lib/cns11643_2.h +++ b/lib/cns11643_2.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cns11643_3.h b/lib/cns11643_3.h index 94ed6691..79d9dbd6 100644 --- a/lib/cns11643_3.h +++ b/lib/cns11643_3.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cns11643_4.h b/lib/cns11643_4.h index 9edabebb..5aa04a05 100644 --- a/lib/cns11643_4.h +++ b/lib/cns11643_4.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cns11643_4a.h b/lib/cns11643_4a.h index 1962d39d..779685cd 100644 --- a/lib/cns11643_4a.h +++ b/lib/cns11643_4a.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cns11643_4b.h b/lib/cns11643_4b.h index 810908fb..b2090917 100644 --- a/lib/cns11643_4b.h +++ b/lib/cns11643_4b.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cns11643_5.h b/lib/cns11643_5.h index 0d30eb98..7002dfa6 100644 --- a/lib/cns11643_5.h +++ b/lib/cns11643_5.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cns11643_6.h b/lib/cns11643_6.h index 4ff11993..acfafafc 100644 --- a/lib/cns11643_6.h +++ b/lib/cns11643_6.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cns11643_7.h b/lib/cns11643_7.h index eb9891c9..2d23fdad 100644 --- a/lib/cns11643_7.h +++ b/lib/cns11643_7.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cns11643_inv.h b/lib/cns11643_inv.h index 8ad8d98c..665d30e7 100644 --- a/lib/cns11643_inv.h +++ b/lib/cns11643_inv.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/config.h b/lib/config.h index cf104802..38a06c84 100644 --- a/lib/config.h +++ b/lib/config.h @@ -3,16 +3,16 @@ This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ diff --git a/lib/converters.h b/lib/converters.h index 4ddeed23..e2e2227f 100644 --- a/lib/converters.h +++ b/lib/converters.h @@ -1,18 +1,18 @@ /* - * Copyright (C) 1999-2002, 2004-2011, 2016 Free Software Foundation, Inc. + * Copyright (C) 1999-2002, 2004-2011, 2016, 2022 Free Software Foundation, Inc. * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ @@ -290,6 +290,63 @@ typedef struct { #include "cp1125.h" #endif +#ifdef USE_ZOS +#define DEDUPLICATE_TABLES 1 +#include "ebcdic037.h" +#include "ebcdic273.h" +#include "ebcdic277.h" +#include "ebcdic278.h" +#include "ebcdic280.h" +#include "ebcdic282.h" +#include "ebcdic284.h" +#include "ebcdic285.h" +#include "ebcdic297.h" +#include "ebcdic423.h" +#include "ebcdic424.h" +#include "ebcdic425.h" +#include "ebcdic500.h" +#include "ebcdic838.h" +#include "ebcdic870.h" +#include "ebcdic871.h" +#include "ebcdic875.h" +#include "ebcdic880.h" +#include "ebcdic905.h" +#include "ebcdic924.h" +#include "ebcdic1025.h" +#include "ebcdic1026.h" +#include "ebcdic1047.h" +#include "ebcdic1097.h" +#include "ebcdic1112.h" +#include "ebcdic1122.h" +#include "ebcdic1123.h" +#include "ebcdic1130.h" +#include "ebcdic1132.h" +#include "ebcdic1137.h" +#include "ebcdic1140.h" +#include "ebcdic1141.h" +#include "ebcdic1142.h" +#include "ebcdic1143.h" +#include "ebcdic1144.h" +#include "ebcdic1145.h" +#include "ebcdic1146.h" +#include "ebcdic1147.h" +#include "ebcdic1148.h" +#include "ebcdic1149.h" +#include "ebcdic1153.h" +#include "ebcdic1154.h" +#include "ebcdic1155.h" +#include "ebcdic1156.h" +#include "ebcdic1157.h" +#include "ebcdic1158.h" +#include "ebcdic1160.h" +#include "ebcdic1164.h" +#include "ebcdic1165.h" +#include "ebcdic1166.h" +#include "ebcdic4971.h" +#include "ebcdic12712.h" +#include "ebcdic16804.h" +#endif + #ifdef USE_EXTRA #include "euc_jisx0213.h" #include "shift_jisx0213.h" diff --git a/lib/cp1046.h b/lib/cp1046.h index 51fa595c..7ea291fb 100644 --- a/lib/cp1046.h +++ b/lib/cp1046.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1124.h b/lib/cp1124.h index 72f9f039..80f14326 100644 --- a/lib/cp1124.h +++ b/lib/cp1124.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1125.h b/lib/cp1125.h index 9d18cc1b..ddafbf41 100644 --- a/lib/cp1125.h +++ b/lib/cp1125.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1129.h b/lib/cp1129.h index 4ab52e5d..54944ea5 100644 --- a/lib/cp1129.h +++ b/lib/cp1129.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1131.h b/lib/cp1131.h index e554a176..40623947 100644 --- a/lib/cp1131.h +++ b/lib/cp1131.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1133.h b/lib/cp1133.h index 36940dd7..5e69f281 100644 --- a/lib/cp1133.h +++ b/lib/cp1133.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1161.h b/lib/cp1161.h index 5d2c74fa..50166489 100644 --- a/lib/cp1161.h +++ b/lib/cp1161.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1162.h b/lib/cp1162.h index f8e1f1be..e7c0eb17 100644 --- a/lib/cp1162.h +++ b/lib/cp1162.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1163.h b/lib/cp1163.h index 05af3cd0..6c563655 100644 --- a/lib/cp1163.h +++ b/lib/cp1163.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1250.h b/lib/cp1250.h index 95f7f6f1..3b6f7b12 100644 --- a/lib/cp1250.h +++ b/lib/cp1250.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1251.h b/lib/cp1251.h index 2e5aa005..c7e3a29e 100644 --- a/lib/cp1251.h +++ b/lib/cp1251.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1252.h b/lib/cp1252.h index d4c819d1..b4c23b7c 100644 --- a/lib/cp1252.h +++ b/lib/cp1252.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1253.h b/lib/cp1253.h index 14079cfc..e5b36ca3 100644 --- a/lib/cp1253.h +++ b/lib/cp1253.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1254.h b/lib/cp1254.h index ba3aaee6..15bbc153 100644 --- a/lib/cp1254.h +++ b/lib/cp1254.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1255.h b/lib/cp1255.h index ee487b7a..213daa2c 100644 --- a/lib/cp1255.h +++ b/lib/cp1255.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1256.h b/lib/cp1256.h index 8a54b73c..51fc13af 100644 --- a/lib/cp1256.h +++ b/lib/cp1256.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1257.h b/lib/cp1257.h index ef9a27b1..dc5716ec 100644 --- a/lib/cp1257.h +++ b/lib/cp1257.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp1258.h b/lib/cp1258.h index d4aef9ac..b56557f3 100644 --- a/lib/cp1258.h +++ b/lib/cp1258.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp437.h b/lib/cp437.h index 95829461..fb1d8180 100644 --- a/lib/cp437.h +++ b/lib/cp437.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp50221_0208_ext.h b/lib/cp50221_0208_ext.h index 640871cb..9519223a 100644 --- a/lib/cp50221_0208_ext.h +++ b/lib/cp50221_0208_ext.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp50221_0212_ext.h b/lib/cp50221_0212_ext.h index 28cf087b..78d48396 100644 --- a/lib/cp50221_0212_ext.h +++ b/lib/cp50221_0212_ext.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp737.h b/lib/cp737.h index 24ff7fcd..32ef6809 100644 --- a/lib/cp737.h +++ b/lib/cp737.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp775.h b/lib/cp775.h index 8417413e..ada10bd0 100644 --- a/lib/cp775.h +++ b/lib/cp775.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp850.h b/lib/cp850.h index 2ecf426d..794e72be 100644 --- a/lib/cp850.h +++ b/lib/cp850.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp852.h b/lib/cp852.h index e0d457e7..c6707bdb 100644 --- a/lib/cp852.h +++ b/lib/cp852.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp853.h b/lib/cp853.h index 980b83d1..3af252bb 100644 --- a/lib/cp853.h +++ b/lib/cp853.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp855.h b/lib/cp855.h index 3cf0f958..9fc109a7 100644 --- a/lib/cp855.h +++ b/lib/cp855.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp856.h b/lib/cp856.h index 83cde029..9cce5759 100644 --- a/lib/cp856.h +++ b/lib/cp856.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp857.h b/lib/cp857.h index efa2b6d1..3a191a20 100644 --- a/lib/cp857.h +++ b/lib/cp857.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp858.h b/lib/cp858.h index 89722f1d..c7bddb29 100644 --- a/lib/cp858.h +++ b/lib/cp858.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp860.h b/lib/cp860.h index ceabf56f..afa25fb8 100644 --- a/lib/cp860.h +++ b/lib/cp860.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp861.h b/lib/cp861.h index 0c3332f0..b1315700 100644 --- a/lib/cp861.h +++ b/lib/cp861.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp862.h b/lib/cp862.h index 4d87e7c6..9aaeca38 100644 --- a/lib/cp862.h +++ b/lib/cp862.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp863.h b/lib/cp863.h index 1c1115f7..03f8ac64 100644 --- a/lib/cp863.h +++ b/lib/cp863.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp864.h b/lib/cp864.h index 3e813df1..c20a8556 100644 --- a/lib/cp864.h +++ b/lib/cp864.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp865.h b/lib/cp865.h index a1b78ce6..d0476e16 100644 --- a/lib/cp865.h +++ b/lib/cp865.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp866.h b/lib/cp866.h index 18b2931e..71548cb3 100644 --- a/lib/cp866.h +++ b/lib/cp866.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp869.h b/lib/cp869.h index bf6ec582..4df05a17 100644 --- a/lib/cp869.h +++ b/lib/cp869.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp874.h b/lib/cp874.h index ef6e0744..0655337a 100644 --- a/lib/cp874.h +++ b/lib/cp874.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp922.h b/lib/cp922.h index b390639a..3f4c1433 100644 --- a/lib/cp922.h +++ b/lib/cp922.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp932.h b/lib/cp932.h index ba564acf..24c258f5 100644 --- a/lib/cp932.h +++ b/lib/cp932.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp932ext.h b/lib/cp932ext.h index 772437f7..854572c6 100644 --- a/lib/cp932ext.h +++ b/lib/cp932ext.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp936.h b/lib/cp936.h index 716d5abe..e99129e3 100644 --- a/lib/cp936.h +++ b/lib/cp936.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp936ext.h b/lib/cp936ext.h index 1a08bb09..6e0eae01 100644 --- a/lib/cp936ext.h +++ b/lib/cp936ext.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp943.h b/lib/cp943.h index 79f55263..8fad5b17 100644 --- a/lib/cp943.h +++ b/lib/cp943.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp949.h b/lib/cp949.h index c2191059..685ad74d 100644 --- a/lib/cp949.h +++ b/lib/cp949.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp950.h b/lib/cp950.h index 7cc1ed99..f7452a81 100644 --- a/lib/cp950.h +++ b/lib/cp950.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/cp950ext.h b/lib/cp950ext.h index d96d755a..bf5a6259 100644 --- a/lib/cp950ext.h +++ b/lib/cp950ext.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/dec_hanyu.h b/lib/dec_hanyu.h index d186f6e0..10dd1088 100644 --- a/lib/dec_hanyu.h +++ b/lib/dec_hanyu.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/dec_kanji.h b/lib/dec_kanji.h index 2a2066c3..522b798c 100644 --- a/lib/dec_kanji.h +++ b/lib/dec_kanji.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/ebcdic037.h b/lib/ebcdic037.h new file mode 100644 index 00000000..2de98057 --- /dev/null +++ b/lib/ebcdic037.h @@ -0,0 +1,129 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-037 + */ + +static const unsigned short ebcdic037_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic037_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic037_2uni[c]; + return 1; +} + +static const unsigned char ebcdic037_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic037_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic037_page00[wc]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1025.h b/lib/ebcdic1025.h new file mode 100644 index 00000000..28dcb2bc --- /dev/null +++ b/lib/ebcdic1025.h @@ -0,0 +1,141 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1025 + */ + +static const unsigned short ebcdic1025_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x0452, 0x0453, 0x0451, 0x0454, 0x0455, 0x0456, + 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f, 0x042a, + 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x0403, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, + 0x0408, 0x0409, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, 0x044e, 0x0430, + 0x0431, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, + /* 0x90 */ + 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xa0 */ + 0x044f, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + /* 0xb0 */ + 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, + 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, + /* 0xe0 */ + 0x005c, 0x00a7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x009f, +}; + +static int +ebcdic1025_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1025_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1025_page00[176] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, /* 0xa8-0xaf */ +}; +#if DEDUPLICATE_TABLES +#define ebcdic1025_page04 ebcdic880_page04 +#else /* Unoptimized */ +static const unsigned char ebcdic1025_page04[96] = { + 0x00, 0x63, 0x59, 0x62, 0x64, 0x65, 0x66, 0x67, /* 0x00-0x07 */ + 0x68, 0x69, 0x70, 0x71, 0x72, 0x00, 0x74, 0x75, /* 0x08-0x0f */ + 0xb9, 0xba, 0xed, 0xbf, 0xbc, 0xbd, 0xec, 0xfa, /* 0x10-0x17 */ + 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, 0xdc, /* 0x18-0x1f */ + 0xde, 0xdf, 0xea, 0xeb, 0xbe, 0xca, 0xbb, 0xfe, /* 0x20-0x27 */ + 0xfb, 0xfd, 0x57, 0xef, 0xee, 0xfc, 0xb8, 0xdd, /* 0x28-0x2f */ + 0x77, 0x78, 0xaf, 0x8d, 0x8a, 0x8b, 0xae, 0xb2, /* 0x30-0x37 */ + 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x38-0x3f */ + 0xaa, 0xab, 0xac, 0xad, 0x8c, 0x8e, 0x80, 0xb6, /* 0x40-0x47 */ + 0xb3, 0xb5, 0xb7, 0xb1, 0xb0, 0xb4, 0x76, 0xa0, /* 0x48-0x4f */ + 0x00, 0x44, 0x42, 0x43, 0x45, 0x46, 0x47, 0x48, /* 0x50-0x57 */ + 0x49, 0x51, 0x52, 0x53, 0x54, 0x00, 0x55, 0x56, /* 0x58-0x5f */ +}; +#endif + +static int +ebcdic1025_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00b0) + c = ebcdic1025_page00[wc]; + else if (wc >= 0x0400 && wc < 0x0460) + c = ebcdic1025_page04[wc-0x0400]; + else if (wc == 0x2116) + c = 0x58; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1026.h b/lib/ebcdic1026.h new file mode 100644 index 00000000..b4f2dc06 --- /dev/null +++ b/lib/ebcdic1026.h @@ -0,0 +1,142 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1026 + */ + +static const unsigned short ebcdic1026_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1026_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1026_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1026_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0xfc, 0xec, 0xad, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xae, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x68, 0xdc, 0xac, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x8d, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x48, 0xbb, 0x8c, 0xcc, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x8e, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x4a, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0x00, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7b, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0x7f, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xc0, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x00, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xa1, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xe0, 0x00, 0x00, 0xdf, /* 0xf8-0xff */ +}; +static const unsigned char ebcdic1026_page01[72] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd0, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x5b, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x6a, /* 0x58-0x5f */ +}; + +static int +ebcdic1026_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1026_page00[wc]; + else if (wc >= 0x0118 && wc < 0x0160) + c = ebcdic1026_page01[wc-0x0118]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1047.h b/lib/ebcdic1047.h new file mode 100644 index 00000000..1c9bc95d --- /dev/null +++ b/lib/ebcdic1047.h @@ -0,0 +1,129 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1047 + */ + +static const unsigned short ebcdic1047_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00ac, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1047_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1047_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1047_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0xbb, 0xb4, 0x9a, 0x8a, 0xb0, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xba, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic1047_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1047_page00[wc]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1097.h b/lib/ebcdic1097.h new file mode 100644 index 00000000..cb23176e --- /dev/null +++ b/lib/ebcdic1097.h @@ -0,0 +1,186 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1097 + */ + +static const unsigned short ebcdic1097_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x060c, 0x064b, 0xfe81, 0xfe82, 0xf8fa, 0xfe8d, + 0xfe8e, 0xf8fb, 0x00a4, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0xfe80, 0xfe83, 0xfe84, 0xf8f9, 0xfe85, 0xfe8b, 0xfe8f, + 0xfe91, 0xfb56, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0xfb58, 0xfe95, 0xfe97, 0xfe99, 0xfe9b, 0xfe9d, + 0xfe9f, 0xfb7a, 0x061b, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0xfb7c, 0xfea1, 0xfea3, 0xfea5, 0xfea7, 0xfea9, 0xfeab, 0xfead, + 0xfeaf, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0xfb8a, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0xfeb1, 0xfeb3, 0xfeb5, 0xfeb7, + /* 0x90 */ + 0xfeb9, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0xfebb, 0xfebd, 0xfebf, 0xfec1, 0xfec3, 0xfec5, + /* 0xa0 */ + 0xfec7, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0xfec9, 0xfeca, 0xfecb, 0xfecc, 0xfecd, 0xfece, + /* 0xb0 */ + 0xfecf, 0xfed0, 0xfed1, 0xfed3, 0xfed5, 0xfed7, 0xfb8e, 0xfedb, + 0xfb92, 0xfb94, 0x005b, 0x005d, 0xfedd, 0xfedf, 0xfee1, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0xfee3, 0xfee5, 0xfee7, 0xfeed, 0xfee9, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0xfeeb, 0xfeec, 0xfba4, 0xfbfc, 0xfbfd, 0xfbfe, + /* 0xe0 */ + 0x005c, 0x061f, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x0640, 0x06f0, 0x06f1, 0x06f2, 0x06f3, 0x06f4, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x06f5, 0x06f6, 0x06f7, 0x06f8, 0x06f9, 0x009f, +}; + +static int +ebcdic1097_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1097_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1097_page00[216] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0x00, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x8a, 0x5f, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, /* 0xd0-0xd7 */ +}; +static const unsigned char ebcdic1097_page06[72] = { + 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xe1, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ +}; +static const unsigned char ebcdic1097_page06_1[16] = { + 0xeb, 0xec, 0xed, 0xee, 0xef, 0xfa, 0xfb, 0xfc, /* 0xf0-0xf7 */ + 0xfd, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char ebcdic1097_pagef8[8] = { + 0x00, 0x54, 0x46, 0x49, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char ebcdic1097_pagefb[88] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x00, /* 0x50-0x57 */ + 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x69, 0x00, 0x70, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xb6, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0xb8, 0x00, 0xb9, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; +static const unsigned char ebcdic1097_pagefb_2[8] = { + 0x00, 0x00, 0x00, 0x00, 0xdd, 0xde, 0xdf, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char ebcdic1097_pagefe[112] = { + 0x51, 0x44, 0x45, 0x52, 0x53, 0x55, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x56, 0x00, 0x47, 0x48, 0x57, /* 0x88-0x8f */ + 0x00, 0x58, 0x00, 0x00, 0x00, 0x63, 0x00, 0x64, /* 0x90-0x97 */ + 0x00, 0x65, 0x00, 0x66, 0x00, 0x67, 0x00, 0x68, /* 0x98-0x9f */ + 0x00, 0x71, 0x00, 0x72, 0x00, 0x73, 0x00, 0x74, /* 0xa0-0xa7 */ + 0x00, 0x75, 0x00, 0x76, 0x00, 0x77, 0x00, 0x78, /* 0xa8-0xaf */ + 0x00, 0x8c, 0x00, 0x8d, 0x00, 0x8e, 0x00, 0x8f, /* 0xb0-0xb7 */ + 0x00, 0x90, 0x00, 0x9a, 0x00, 0x9b, 0x00, 0x9c, /* 0xb8-0xbf */ + 0x00, 0x9d, 0x00, 0x9e, 0x00, 0x9f, 0x00, 0xa0, /* 0xc0-0xc7 */ + 0x00, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, /* 0xc8-0xcf */ + 0xb1, 0xb2, 0x00, 0xb3, 0x00, 0xb4, 0x00, 0xb5, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0xb7, 0x00, 0xbc, 0x00, 0xbd, /* 0xd8-0xdf */ + 0x00, 0xbe, 0x00, 0xcb, 0x00, 0xcc, 0x00, 0xcd, /* 0xe0-0xe7 */ + 0x00, 0xcf, 0x00, 0xda, 0xdb, 0xce, 0x00, 0x00, /* 0xe8-0xef */ +}; + +static int +ebcdic1097_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00d8) + c = ebcdic1097_page00[wc]; + else if (wc >= 0x0608 && wc < 0x0650) + c = ebcdic1097_page06[wc-0x0608]; + else if (wc >= 0x06f0 && wc < 0x0700) + c = ebcdic1097_page06_1[wc-0x06f0]; + else if (wc >= 0xf8f8 && wc < 0xf900) + c = ebcdic1097_pagef8[wc-0xf8f8]; + else if (wc >= 0xfb50 && wc < 0xfba8) + c = ebcdic1097_pagefb[wc-0xfb50]; + else if (wc >= 0xfbf8 && wc < 0xfc00) + c = ebcdic1097_pagefb_2[wc-0xfbf8]; + else if (wc >= 0xfe80 && wc < 0xfef0) + c = ebcdic1097_pagefe[wc-0xfe80]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1112.h b/lib/ebcdic1112.h new file mode 100644 index 00000000..7ee8e4ae --- /dev/null +++ b/lib/ebcdic1112.h @@ -0,0 +1,151 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1112 + */ + +static const unsigned short ebcdic1112_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x0161, 0x00e4, 0x0105, 0x012f, 0x016b, 0x00e5, + 0x0113, 0x017e, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x00e9, 0x0119, 0x0117, 0x010d, 0x0173, 0x201e, 0x201c, + 0x0123, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x0160, 0x00c4, 0x0104, 0x012e, 0x016a, 0x00c5, + 0x0112, 0x017d, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x0118, 0x0116, 0x010c, 0x0172, 0x012a, 0x013b, + 0x0122, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0101, 0x017c, 0x0144, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x0156, 0x0157, 0x00e6, 0x0137, 0x00c6, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x201d, 0x017a, 0x0100, 0x017b, 0x0143, 0x00ae, + /* 0xb0 */ + 0x005e, 0x00a3, 0x012b, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x005b, 0x005d, 0x0179, 0x0136, 0x013c, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x014d, 0x00f6, 0x0146, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x0107, 0x00fc, 0x0142, 0x015b, 0x2019, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x014c, 0x00d6, 0x0145, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x0106, 0x00dc, 0x0141, 0x015a, 0x009f, +}; + +static int +ebcdic1112_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1112_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1112_page00[384] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x4a, 0xb1, 0x9f, 0x00, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0x00, 0xb4, 0x00, 0x8a, 0x5f, 0xca, 0xaf, 0x00, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0x00, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x00, 0xda, 0x00, 0x8b, 0xb7, 0xb8, 0xb9, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x9e, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0xee, 0x00, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x43, 0x47, 0x9c, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0xce, 0x00, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0xac, 0x8c, 0x00, 0x00, 0x64, 0x44, 0xfb, 0xdb, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x74, 0x54, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x68, 0x48, 0x00, 0x00, 0x73, 0x53, /* 0x10-0x17 */ + 0x72, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x78, 0x58, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x76, 0xb2, 0x00, 0x00, 0x65, 0x45, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x9d, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x77, 0xbe, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0xfd, 0xdd, 0xae, 0x8e, 0xed, 0xcd, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0xeb, 0xcb, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x9b, /* 0x50-0x57 */ + 0x00, 0x00, 0xfe, 0xde, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x62, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x66, 0x46, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x75, 0x55, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0xbc, 0xab, 0xad, 0x8d, 0x69, 0x49, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char ebcdic1112_page20[8] = { + 0x00, 0xdf, 0x00, 0x00, 0x57, 0xaa, 0x56, 0x00, /* 0x18-0x1f */ +}; + +static int +ebcdic1112_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0180) + c = ebcdic1112_page00[wc]; + else if (wc >= 0x2018 && wc < 0x2020) + c = ebcdic1112_page20[wc-0x2018]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1122.h b/lib/ebcdic1122.h new file mode 100644 index 00000000..2b97ac3d --- /dev/null +++ b/lib/ebcdic1122.h @@ -0,0 +1,137 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1122 + */ + +static const unsigned short ebcdic1122_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, + 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, + 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0161, 0x00fd, 0x017e, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, + /* 0xa0 */ + 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0160, 0x00dd, 0x017d, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1122_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1122_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1122_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x63, 0x67, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xec, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xb5, 0x71, 0x9f, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x51, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x43, 0xbb, 0x47, 0xdc, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x5a, 0xb2, 0xcc, 0x4a, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x7b, 0x5b, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0xe0, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0x00, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7c, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0x00, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0xc0, 0xd0, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x79, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x00, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0x6a, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xa1, 0x8d, 0x00, 0xdf, /* 0xf8-0xff */ +}; +static const unsigned char ebcdic1122_page01[32] = { + 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x8e, 0x00, /* 0x78-0x7f */ +}; + +static int +ebcdic1122_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1122_page00[wc]; + else if (wc >= 0x0160 && wc < 0x0180) + c = ebcdic1122_page01[wc-0x0160]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1123.h b/lib/ebcdic1123.h new file mode 100644 index 00000000..bcd19521 --- /dev/null +++ b/lib/ebcdic1123.h @@ -0,0 +1,148 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1123 + */ + +static const unsigned short ebcdic1123_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x0452, 0x0491, 0x0451, 0x0454, 0x0455, 0x0456, + 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f, 0x042a, + 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x0490, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, + 0x0408, 0x0409, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, 0x044e, 0x0430, + 0x0431, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, + /* 0x90 */ + 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xa0 */ + 0x044f, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + /* 0xb0 */ + 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, + 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, + /* 0xe0 */ + 0x005c, 0x00a7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x009f, +}; + +static int +ebcdic1123_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1123_2uni[c]; + return 1; +} + +#if DEDUPLICATE_TABLES +#define ebcdic1123_page00 ebcdic1025_page00 +#else /* Unoptimized */ +static const unsigned char ebcdic1123_page00[176] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, /* 0xa8-0xaf */ +}; +#endif +static const unsigned char ebcdic1123_page04[152] = { + 0x00, 0x63, 0x59, 0x00, 0x64, 0x65, 0x66, 0x67, /* 0x00-0x07 */ + 0x68, 0x69, 0x70, 0x71, 0x72, 0x00, 0x74, 0x75, /* 0x08-0x0f */ + 0xb9, 0xba, 0xed, 0xbf, 0xbc, 0xbd, 0xec, 0xfa, /* 0x10-0x17 */ + 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, 0xdc, /* 0x18-0x1f */ + 0xde, 0xdf, 0xea, 0xeb, 0xbe, 0xca, 0xbb, 0xfe, /* 0x20-0x27 */ + 0xfb, 0xfd, 0x57, 0xef, 0xee, 0xfc, 0xb8, 0xdd, /* 0x28-0x2f */ + 0x77, 0x78, 0xaf, 0x8d, 0x8a, 0x8b, 0xae, 0xb2, /* 0x30-0x37 */ + 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x38-0x3f */ + 0xaa, 0xab, 0xac, 0xad, 0x8c, 0x8e, 0x80, 0xb6, /* 0x40-0x47 */ + 0xb3, 0xb5, 0xb7, 0xb1, 0xb0, 0xb4, 0x76, 0xa0, /* 0x48-0x4f */ + 0x00, 0x44, 0x42, 0x00, 0x45, 0x46, 0x47, 0x48, /* 0x50-0x57 */ + 0x49, 0x51, 0x52, 0x53, 0x54, 0x00, 0x55, 0x56, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x62, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; + +static int +ebcdic1123_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00b0) + c = ebcdic1123_page00[wc]; + else if (wc >= 0x0400 && wc < 0x0498) + c = ebcdic1123_page04[wc-0x0400]; + else if (wc == 0x2116) + c = 0x58; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1130.h b/lib/ebcdic1130.h new file mode 100644 index 00000000..ad9c8b48 --- /dev/null +++ b/lib/ebcdic1130.h @@ -0,0 +1,164 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1130 + */ + +static const unsigned short ebcdic1130_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x0103, 0x00e5, + 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x0303, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x0102, 0x00c5, + 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x20ab, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0111, 0x0309, 0x0300, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x0152, 0x00c6, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0110, 0x0323, 0x0301, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x0153, 0x0178, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x01b0, 0x00f3, 0x01a1, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x01af, 0x00d3, 0x01a0, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1130_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1130_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1130_page00[440] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0xbb, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0x00, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0x00, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x00, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x00, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x00, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0x00, 0x69, 0x00, 0xee, 0xeb, 0x00, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x00, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x00, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x00, 0x49, 0x00, 0xce, 0xcb, 0x00, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0x66, 0x46, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x9d, 0xbd, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xef, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, /* 0xa8-0xaf */ + 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ +}; +static const unsigned char ebcdic1130_page03[40] = { + 0x8e, 0xae, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; + +static int +ebcdic1130_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x01b8) + c = ebcdic1130_page00[wc]; + else if (wc >= 0x0300 && wc < 0x0328) + c = ebcdic1130_page03[wc-0x0300]; + else if (wc == 0x20ab) + c = 0x78; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1132.h b/lib/ebcdic1132.h new file mode 100644 index 00000000..1a6e91c6 --- /dev/null +++ b/lib/ebcdic1132.h @@ -0,0 +1,145 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1132 + */ + +static const unsigned short ebcdic1132_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x0e81, 0x0e82, 0x0e84, 0x0e87, 0x0e88, 0x0eaa, + 0x0e8a, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0xfffd, 0x0e8d, 0x0e94, 0x0e95, 0x0e96, 0x0e97, 0x0e99, + 0x0e9a, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x0e9b, 0x0e9c, 0x0e9d, 0x0e9e, 0x0e9f, 0x0ea1, + 0x0ea2, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x20ad, 0xfffd, 0x0ea3, 0x0ea5, 0x0ea7, 0x0eab, 0x0ead, 0x0eae, + 0xfffd, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0xfffd, 0xfffd, 0x0eaf, 0x0eb0, 0x0eb2, 0x0eb3, + /* 0x90 */ + 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x0eb4, 0x0eb5, 0x0eb6, 0x0eb7, 0x0eb8, 0x0eb9, + /* 0xa0 */ + 0xfffd, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x0ebc, 0x0eb1, 0x0ebb, 0x0ebd, 0xfffd, 0xfffd, + /* 0xb0 */ + 0x0ed0, 0x0ed1, 0x0ed2, 0x0ed3, 0x0ed4, 0x0ed5, 0x0ed6, 0x0ed7, + 0x0ed8, 0x0ed9, 0xfffd, 0x0ec0, 0x0ec1, 0x0ec2, 0x0ec3, 0x0ec4, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0xfffd, 0x0ec8, 0x0ec9, 0x0eca, 0x0ecb, 0x0ecc, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x0ecd, 0x0ec6, 0xfffd, 0x0edc, 0x0edd, 0xfffd, + /* 0xe0 */ + 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, +}; + +static int +ebcdic1132_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + unsigned short wc = ebcdic1132_2uni[c]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + return RET_ILSEQ; +} + +#if DEDUPLICATE_TABLES +#define ebcdic1132_page00 ebcdic838_page00 +#else /* Unoptimized */ +static const unsigned char ebcdic1132_page00[176] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x49, 0xe0, 0x59, 0x69, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x6a, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ +}; +#endif +static const unsigned char ebcdic1132_page0e[96] = { + 0x00, 0x42, 0x43, 0x00, 0x44, 0x00, 0x00, 0x45, /* 0x80-0x87 */ + 0x46, 0x00, 0x48, 0x00, 0x00, 0x52, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x00, 0x00, 0x53, 0x54, 0x55, 0x56, /* 0x90-0x97 */ + 0x00, 0x57, 0x58, 0x62, 0x63, 0x64, 0x65, 0x66, /* 0x98-0x9f */ + 0x00, 0x67, 0x68, 0x72, 0x00, 0x73, 0x00, 0x74, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x47, 0x75, 0x00, 0x76, 0x77, 0x8c, /* 0xa8-0xaf */ + 0x8d, 0xab, 0x8e, 0x8f, 0x9a, 0x9b, 0x9c, 0x9d, /* 0xb0-0xb7 */ + 0x9e, 0x9f, 0x00, 0xac, 0xaa, 0xad, 0x00, 0x00, /* 0xb8-0xbf */ + 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0x00, 0xdb, 0x00, /* 0xc0-0xc7 */ + 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0x00, 0x00, /* 0xc8-0xcf */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xd0-0xd7 */ + 0xb8, 0xb9, 0x00, 0x00, 0xdd, 0xde, 0x00, 0x00, /* 0xd8-0xdf */ +}; + +static int +ebcdic1132_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00b0) + c = ebcdic1132_page00[wc]; + else if (wc >= 0x0e80 && wc < 0x0ee0) + c = ebcdic1132_page0e[wc-0x0e80]; + else if (wc == 0x20ad) + c = 0x70; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1137.h b/lib/ebcdic1137.h new file mode 100644 index 00000000..19b28a79 --- /dev/null +++ b/lib/ebcdic1137.h @@ -0,0 +1,146 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1137 + */ + +static const unsigned short ebcdic1137_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x0901, 0x0902, 0x0903, 0x0905, 0x0906, 0x0907, + 0x0908, 0x0909, 0x090a, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x090b, 0x090c, 0x090d, 0x090e, 0x090f, 0x0910, 0x0911, + 0x0912, 0x0913, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x0914, 0x0915, 0x0916, 0x0917, 0x0918, 0x0919, + 0x091a, 0x091b, 0x091c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x091d, 0x091e, 0x091f, 0x0920, 0x0921, 0x0922, 0x0923, 0x0924, + 0x0925, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0926, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x0927, 0x0928, 0x092a, 0x092b, 0x092c, 0x092d, + /* 0x90 */ + 0x092e, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x092f, 0x0930, 0x0932, 0x0933, 0x0935, 0x0936, + /* 0xa0 */ + 0x200c, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x0937, 0x0938, 0x0939, 0x005b, 0x093c, 0x093d, + /* 0xb0 */ + 0x093e, 0x093f, 0x0940, 0x0941, 0x0942, 0x0943, 0x0944, 0x0945, + 0x0946, 0x0947, 0x0948, 0x0949, 0x094a, 0x005d, 0x094b, 0x094c, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x094d, 0x0950, 0x0951, 0x0952, 0xfffd, 0xfffd, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x0960, 0x0961, 0x0962, 0x0963, 0x0964, 0x0965, + /* 0xe0 */ + 0x005c, 0x200d, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x0966, 0x0967, 0x0968, 0x0969, 0x096a, 0x096b, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x096c, 0x096d, 0x096e, 0x096f, 0x0970, 0x009f, +}; + +static int +ebcdic1137_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + unsigned short wc = ebcdic1137_2uni[c]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + return RET_ILSEQ; +} + +static const unsigned char ebcdic1137_page00[168] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; +static const unsigned char ebcdic1137_page09[120] = { + 0x00, 0x42, 0x43, 0x44, 0x00, 0x45, 0x46, 0x47, /* 0x00-0x07 */ + 0x48, 0x49, 0x4a, 0x51, 0x52, 0x53, 0x54, 0x55, /* 0x08-0x0f */ + 0x56, 0x57, 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, /* 0x10-0x17 */ + 0x66, 0x67, 0x68, 0x69, 0x6a, 0x70, 0x71, 0x72, /* 0x18-0x1f */ + 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x80, 0x8a, /* 0x20-0x27 */ + 0x8b, 0x00, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x9a, /* 0x28-0x2f */ + 0x9b, 0x00, 0x9c, 0x9d, 0x00, 0x9e, 0x9f, 0xaa, /* 0x30-0x37 */ + 0xab, 0xac, 0x00, 0x00, 0xae, 0xaf, 0xb0, 0xb1, /* 0x38-0x3f */ + 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, /* 0x40-0x47 */ + 0xba, 0xbb, 0xbc, 0xbe, 0xbf, 0xca, 0x00, 0x00, /* 0x48-0x4f */ + 0xcb, 0xcc, 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xea, 0xeb, /* 0x60-0x67 */ + 0xec, 0xed, 0xee, 0xef, 0xfa, 0xfb, 0xfc, 0xfd, /* 0x68-0x6f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ +}; +static const unsigned char ebcdic1137_page20[8] = { + 0x00, 0x00, 0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, /* 0x08-0x0f */ +}; + +static int +ebcdic1137_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00a8) + c = ebcdic1137_page00[wc]; + else if (wc >= 0x0900 && wc < 0x0978) + c = ebcdic1137_page09[wc-0x0900]; + else if (wc >= 0x2008 && wc < 0x2010) + c = ebcdic1137_page20[wc-0x2008]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1140.h b/lib/ebcdic1140.h new file mode 100644 index 00000000..f10c1cf9 --- /dev/null +++ b/lib/ebcdic1140.h @@ -0,0 +1,131 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1140 + */ + +static const unsigned short ebcdic1140_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, + /* 0xa0 */ + 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1140_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1140_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1140_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0x4a, 0xb1, 0x00, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic1140_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1140_page00[wc]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1141.h b/lib/ebcdic1141.h new file mode 100644 index 00000000..94a1bbae --- /dev/null +++ b/lib/ebcdic1141.h @@ -0,0 +1,131 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1141 + */ + +static const unsigned short ebcdic1141_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, + /* 0xa0 */ + 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1141_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1141_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1141_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xb5, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x63, 0xec, 0xfc, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x43, 0xbb, 0xdc, 0x59, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0xcc, 0x7c, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x4a, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xe0, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0x5a, 0xad, 0xae, 0xa1, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0xc0, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0x6a, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xd0, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic1141_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1141_page00[wc]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1142.h b/lib/ebcdic1142.h new file mode 100644 index 00000000..4676d667 --- /dev/null +++ b/lib/ebcdic1142.h @@ -0,0 +1,131 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1142 + */ + +static const unsigned short ebcdic1142_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, + 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, + 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, + /* 0xa0 */ + 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1142_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1142_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1142_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x4a, 0x67, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x80, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x9e, 0xe0, 0x9f, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x9c, 0xbb, 0x47, 0xdc, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x70, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x5b, 0x7b, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x7c, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0xd0, 0xc0, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x6a, 0xdd, 0xde, 0xdb, 0xa1, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic1142_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1142_page00[wc]; + else if (wc == 0x20ac) + c = 0x5a; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1143.h b/lib/ebcdic1143.h new file mode 100644 index 00000000..e6024665 --- /dev/null +++ b/lib/ebcdic1143.h @@ -0,0 +1,131 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1143 + */ + +static const unsigned short ebcdic1143_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, + 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, + 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, + /* 0xa0 */ + 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1143_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1143_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1143_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x63, 0x67, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xec, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xb5, 0x71, 0x9f, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x51, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x43, 0xbb, 0x47, 0xdc, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0xcc, 0x4a, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x7b, 0x5b, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0xe0, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7c, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0xc0, 0xd0, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x79, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0x6a, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xa1, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic1143_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1143_page00[wc]; + else if (wc == 0x20ac) + c = 0x5a; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1144.h b/lib/ebcdic1144.h new file mode 100644 index 00000000..5d63eb81 --- /dev/null +++ b/lib/ebcdic1144.h @@ -0,0 +1,131 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1144 + */ + +static const unsigned short ebcdic1144_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, + 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, + 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, + /* 0xa0 */ + 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1144_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1144_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1144_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0xb1, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xb5, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x90, 0x48, 0x51, 0x5f, 0x6d, /* 0x58-0x5f */ + 0xdd, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x44, 0xbb, 0x54, 0x58, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0x7b, 0x00, 0xb2, 0xcd, 0x7c, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x4a, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0xc0, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xe0, /* 0xe0-0xe7 */ + 0xd0, 0x5a, 0x52, 0x53, 0xa1, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0x6a, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0x79, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic1144_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1144_page00[wc]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1145.h b/lib/ebcdic1145.h new file mode 100644 index 00000000..23788d5d --- /dev/null +++ b/lib/ebcdic1145.h @@ -0,0 +1,131 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1145 + */ + +static const unsigned short ebcdic1145_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, + /* 0xa0 */ + 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1145_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1145_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1145_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0xbb, 0x7f, 0x69, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0xba, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xbd, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x49, 0xb5, /* 0xa0-0xa7 */ + 0xa1, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x7b, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x6a, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic1145_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1145_page00[wc]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1146.h b/lib/ebcdic1146.h new file mode 100644 index 00000000..46a60b5c --- /dev/null +++ b/lib/ebcdic1146.h @@ -0,0 +1,131 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1146 + */ + +static const unsigned short ebcdic1146_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, + /* 0xa0 */ + 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1146_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1146_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1146_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x4a, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xb1, 0xe0, 0xbb, 0xba, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xbc, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0x5b, 0x00, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xa1, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic1146_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1146_page00[wc]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1147.h b/lib/ebcdic1147.h new file mode 100644 index 00000000..34e3645a --- /dev/null +++ b/lib/ebcdic1147.h @@ -0,0 +1,131 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1147 + */ + +static const unsigned short ebcdic1147_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, + 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, + /* 0xa0 */ + 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1147_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1147_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1147_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0xb1, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x44, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x90, 0x48, 0xb5, 0x5f, 0x6d, /* 0x58-0x5f */ + 0xa0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x51, 0xbb, 0x54, 0xbd, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0x7b, 0x00, 0xb2, 0xdd, 0x5a, /* 0xa0-0xa7 */ + 0xa1, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x4a, 0x8f, 0xea, 0xfa, 0xbe, 0x79, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x7c, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xe0, /* 0xe0-0xe7 */ + 0xd0, 0xc0, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0x6a, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic1147_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1147_page00[wc]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1148.h b/lib/ebcdic1148.h new file mode 100644 index 00000000..fc51e270 --- /dev/null +++ b/lib/ebcdic1148.h @@ -0,0 +1,131 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1148 + */ + +static const unsigned short ebcdic1148_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, + /* 0xa0 */ + 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1148_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1148_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1148_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0xbb, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic1148_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1148_page00[wc]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1149.h b/lib/ebcdic1149.h new file mode 100644 index 00000000..027844e7 --- /dev/null +++ b/lib/ebcdic1149.h @@ -0,0 +1,131 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1149 + */ + +static const unsigned short ebcdic1149_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00f1, 0x00de, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x20ac, + /* 0xa0 */ + 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, + /* 0xc0 */ + 0x00fe, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1149_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1149_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1149_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xac, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xae, 0xbe, 0x9e, 0xec, 0x6d, /* 0x58-0x5f */ + 0x8c, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x8e, 0xbb, 0x9c, 0xcc, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xe0, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x5a, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0x7c, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x5f, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0x4a, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0xd0, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x79, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xa1, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0xc0, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic1149_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1149_page00[wc]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1153.h b/lib/ebcdic1153.h new file mode 100644 index 00000000..590e5489 --- /dev/null +++ b/lib/ebcdic1153.h @@ -0,0 +1,160 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1153 + */ + +static const unsigned short ebcdic1153_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, + 0x00e7, 0x0107, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, + 0x013a, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, + 0x00c7, 0x0106, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, + 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x20ac, + /* 0xa0 */ + 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x00dd, 0x0158, 0x015e, + /* 0xb0 */ + 0x02d9, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, + 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da, 0x009f, +}; + +static int +ebcdic1153_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1153_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1153_page00[384] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ + 0x90, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x65, 0x62, 0x00, 0x63, 0x00, 0x00, 0x68, /* 0xc0-0xc7 */ + 0x00, 0x71, 0x00, 0x73, 0x00, 0x75, 0x76, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0xee, 0xeb, 0x00, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x00, 0x00, 0xfe, 0x00, 0xfc, 0xad, 0x00, 0x59, /* 0xd8-0xdf */ + 0x00, 0x45, 0x42, 0x00, 0x43, 0x00, 0x00, 0x48, /* 0xe0-0xe7 */ + 0x00, 0x51, 0x00, 0x53, 0x00, 0x55, 0x56, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0xce, 0xcb, 0x00, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x00, 0x00, 0xde, 0x00, 0xdc, 0x8d, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0x66, 0x46, 0xb1, 0xa0, 0x69, 0x49, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x67, 0x47, 0xfa, 0xea, /* 0x08-0x0f */ + 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x72, 0x52, 0xda, 0xdf, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x78, 0x58, 0x00, 0x00, 0x77, 0x57, 0x00, /* 0x38-0x3f */ + 0x00, 0xba, 0x9a, 0xbb, 0x9b, 0x00, 0x00, 0xab, /* 0x40-0x47 */ + 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xef, 0xcf, 0x00, 0x00, 0xed, 0xcd, 0x00, 0x00, /* 0x50-0x57 */ + 0xae, 0x8e, 0xaa, 0x8a, 0x00, 0x00, 0xaf, 0x8f, /* 0x58-0x5f */ + 0xbc, 0x9c, 0xb3, 0x44, 0xfd, 0xdd, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x54, /* 0x68-0x6f */ + 0xfb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0xb9, 0xb7, 0xb4, 0xb2, 0xb8, 0xb6, 0x00, /* 0x78-0x7f */ +}; +#if DEDUPLICATE_TABLES +#define ebcdic1153_page02 ebcdic870_page02 +#else /* Unoptimized */ +static const unsigned char ebcdic1153_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x80, 0xb0, 0x00, 0x9e, 0x00, 0x64, 0x00, 0x00, /* 0xd8-0xdf */ +}; +#endif + +static int +ebcdic1153_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0180) + c = ebcdic1153_page00[wc]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = ebcdic1153_page02[wc-0x02c0]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1154.h b/lib/ebcdic1154.h new file mode 100644 index 00000000..52095a92 --- /dev/null +++ b/lib/ebcdic1154.h @@ -0,0 +1,143 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1154 + */ + +static const unsigned short ebcdic1154_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x0452, 0x0453, 0x0451, 0x0454, 0x0455, 0x0456, + 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f, 0x042a, + 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x0403, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, + 0x0408, 0x0409, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, 0x044e, 0x0430, + 0x0431, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, + /* 0x90 */ + 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xa0 */ + 0x044f, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + /* 0xb0 */ + 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, + 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, + /* 0xe0 */ + 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x009f, +}; + +static int +ebcdic1154_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1154_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1154_page00[176] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, /* 0xa8-0xaf */ +}; +#if DEDUPLICATE_TABLES +#define ebcdic1154_page04 ebcdic880_page04 +#else /* Unoptimized */ +static const unsigned char ebcdic1154_page04[96] = { + 0x00, 0x63, 0x59, 0x62, 0x64, 0x65, 0x66, 0x67, /* 0x00-0x07 */ + 0x68, 0x69, 0x70, 0x71, 0x72, 0x00, 0x74, 0x75, /* 0x08-0x0f */ + 0xb9, 0xba, 0xed, 0xbf, 0xbc, 0xbd, 0xec, 0xfa, /* 0x10-0x17 */ + 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, 0xdc, /* 0x18-0x1f */ + 0xde, 0xdf, 0xea, 0xeb, 0xbe, 0xca, 0xbb, 0xfe, /* 0x20-0x27 */ + 0xfb, 0xfd, 0x57, 0xef, 0xee, 0xfc, 0xb8, 0xdd, /* 0x28-0x2f */ + 0x77, 0x78, 0xaf, 0x8d, 0x8a, 0x8b, 0xae, 0xb2, /* 0x30-0x37 */ + 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x38-0x3f */ + 0xaa, 0xab, 0xac, 0xad, 0x8c, 0x8e, 0x80, 0xb6, /* 0x40-0x47 */ + 0xb3, 0xb5, 0xb7, 0xb1, 0xb0, 0xb4, 0x76, 0xa0, /* 0x48-0x4f */ + 0x00, 0x44, 0x42, 0x43, 0x45, 0x46, 0x47, 0x48, /* 0x50-0x57 */ + 0x49, 0x51, 0x52, 0x53, 0x54, 0x00, 0x55, 0x56, /* 0x58-0x5f */ +}; +#endif + +static int +ebcdic1154_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00b0) + c = ebcdic1154_page00[wc]; + else if (wc >= 0x0400 && wc < 0x0460) + c = ebcdic1154_page04[wc-0x0400]; + else if (wc == 0x20ac) + c = 0xe1; + else if (wc == 0x2116) + c = 0x58; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1155.h b/lib/ebcdic1155.h new file mode 100644 index 00000000..0638a318 --- /dev/null +++ b/lib/ebcdic1155.h @@ -0,0 +1,148 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1155 + */ + +static const unsigned short ebcdic1155_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, + /* 0xa0 */ + 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1155_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1155_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1155_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0xfc, 0xec, 0xad, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xae, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x68, 0xdc, 0xac, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x8d, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x48, 0xbb, 0x8c, 0xcc, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x8e, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x4a, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0x00, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7b, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0x7f, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xc0, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x00, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xa1, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xe0, 0x00, 0x00, 0xdf, /* 0xf8-0xff */ +}; +#if DEDUPLICATE_TABLES +#define ebcdic1155_page01 ebcdic1026_page01 +#else /* Unoptimized */ +static const unsigned char ebcdic1155_page01[72] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd0, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x5b, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x6a, /* 0x58-0x5f */ +}; +#endif + +static int +ebcdic1155_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1155_page00[wc]; + else if (wc >= 0x0118 && wc < 0x0160) + c = ebcdic1155_page01[wc-0x0118]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1156.h b/lib/ebcdic1156.h new file mode 100644 index 00000000..20ca3480 --- /dev/null +++ b/lib/ebcdic1156.h @@ -0,0 +1,157 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1156 + */ + +static const unsigned short ebcdic1156_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x0161, 0x00e4, 0x0105, 0x012f, 0x016b, 0x00e5, + 0x0113, 0x017e, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x00e9, 0x0119, 0x0117, 0x010d, 0x0173, 0x201e, 0x201c, + 0x0123, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x0160, 0x00c4, 0x0104, 0x012e, 0x016a, 0x00c5, + 0x0112, 0x017d, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x0118, 0x0116, 0x010c, 0x0172, 0x012a, 0x013b, + 0x0122, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0101, 0x017c, 0x0144, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x0156, 0x0157, 0x00e6, 0x0137, 0x00c6, 0x20ac, + /* 0xa0 */ + 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x201d, 0x017a, 0x0100, 0x017b, 0x0143, 0x00ae, + /* 0xb0 */ + 0x005e, 0x00a3, 0x012b, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x005b, 0x005d, 0x0179, 0x0136, 0x013c, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x014d, 0x00f6, 0x0146, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x0107, 0x00fc, 0x0142, 0x015b, 0x2019, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x014c, 0x00d6, 0x0145, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x0106, 0x00dc, 0x0141, 0x015a, 0x009f, +}; + +static int +ebcdic1156_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1156_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1156_page00[384] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x4a, 0xb1, 0x00, 0x00, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0x00, 0xb4, 0x00, 0x8a, 0x5f, 0xca, 0xaf, 0x00, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0x00, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x00, 0xda, 0x00, 0x8b, 0xb7, 0xb8, 0xb9, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x9e, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0xee, 0x00, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x43, 0x47, 0x9c, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0xce, 0x00, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0xac, 0x8c, 0x00, 0x00, 0x64, 0x44, 0xfb, 0xdb, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x74, 0x54, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x68, 0x48, 0x00, 0x00, 0x73, 0x53, /* 0x10-0x17 */ + 0x72, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x78, 0x58, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x76, 0xb2, 0x00, 0x00, 0x65, 0x45, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x9d, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x77, 0xbe, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0xfd, 0xdd, 0xae, 0x8e, 0xed, 0xcd, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0xeb, 0xcb, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x9b, /* 0x50-0x57 */ + 0x00, 0x00, 0xfe, 0xde, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x62, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x66, 0x46, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x75, 0x55, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0xbc, 0xab, 0xad, 0x8d, 0x69, 0x49, 0x00, /* 0x78-0x7f */ +}; +#if DEDUPLICATE_TABLES +#define ebcdic1156_page20 ebcdic1112_page20 +#else /* Unoptimized */ +static const unsigned char ebcdic1156_page20[8] = { + 0x00, 0xdf, 0x00, 0x00, 0x57, 0xaa, 0x56, 0x00, /* 0x18-0x1f */ +}; +#endif + +static int +ebcdic1156_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0180) + c = ebcdic1156_page00[wc]; + else if (wc >= 0x2018 && wc < 0x2020) + c = ebcdic1156_page20[wc-0x2018]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1157.h b/lib/ebcdic1157.h new file mode 100644 index 00000000..3a79ecf6 --- /dev/null +++ b/lib/ebcdic1157.h @@ -0,0 +1,143 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1157 + */ + +static const unsigned short ebcdic1157_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, + 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, + 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0161, 0x00fd, 0x017e, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, + /* 0xa0 */ + 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0160, 0x00dd, 0x017d, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1157_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1157_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1157_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x63, 0x67, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xec, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xb5, 0x71, 0x9f, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x51, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x43, 0xbb, 0x47, 0xdc, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0xcc, 0x4a, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x7b, 0x5b, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0xe0, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0x00, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7c, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0x00, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0xc0, 0xd0, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x79, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x00, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0x6a, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xa1, 0x8d, 0x00, 0xdf, /* 0xf8-0xff */ +}; +#if DEDUPLICATE_TABLES +#define ebcdic1157_page01 ebcdic1122_page01 +#else /* Unoptimized */ +static const unsigned char ebcdic1157_page01[32] = { + 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x8e, 0x00, /* 0x78-0x7f */ +}; +#endif + +static int +ebcdic1157_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic1157_page00[wc]; + else if (wc >= 0x0160 && wc < 0x0180) + c = ebcdic1157_page01[wc-0x0160]; + else if (wc == 0x20ac) + c = 0x5a; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1158.h b/lib/ebcdic1158.h new file mode 100644 index 00000000..0d82b2ad --- /dev/null +++ b/lib/ebcdic1158.h @@ -0,0 +1,154 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1158 + */ + +static const unsigned short ebcdic1158_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x0452, 0x0491, 0x0451, 0x0454, 0x0455, 0x0456, + 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f, 0x042a, + 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x0490, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, + 0x0408, 0x0409, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, 0x044e, 0x0430, + 0x0431, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, + /* 0x90 */ + 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xa0 */ + 0x044f, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + /* 0xb0 */ + 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, + 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, + /* 0xe0 */ + 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x009f, +}; + +static int +ebcdic1158_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1158_2uni[c]; + return 1; +} + +#if DEDUPLICATE_TABLES +#define ebcdic1158_page00 ebcdic1154_page00 +#else /* Unoptimized */ +static const unsigned char ebcdic1158_page00[176] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, /* 0xa8-0xaf */ +}; +#endif +#if DEDUPLICATE_TABLES +#define ebcdic1158_page04 ebcdic1123_page04 +#else /* Unoptimized */ +static const unsigned char ebcdic1158_page04[152] = { + 0x00, 0x63, 0x59, 0x00, 0x64, 0x65, 0x66, 0x67, /* 0x00-0x07 */ + 0x68, 0x69, 0x70, 0x71, 0x72, 0x00, 0x74, 0x75, /* 0x08-0x0f */ + 0xb9, 0xba, 0xed, 0xbf, 0xbc, 0xbd, 0xec, 0xfa, /* 0x10-0x17 */ + 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, 0xdc, /* 0x18-0x1f */ + 0xde, 0xdf, 0xea, 0xeb, 0xbe, 0xca, 0xbb, 0xfe, /* 0x20-0x27 */ + 0xfb, 0xfd, 0x57, 0xef, 0xee, 0xfc, 0xb8, 0xdd, /* 0x28-0x2f */ + 0x77, 0x78, 0xaf, 0x8d, 0x8a, 0x8b, 0xae, 0xb2, /* 0x30-0x37 */ + 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x38-0x3f */ + 0xaa, 0xab, 0xac, 0xad, 0x8c, 0x8e, 0x80, 0xb6, /* 0x40-0x47 */ + 0xb3, 0xb5, 0xb7, 0xb1, 0xb0, 0xb4, 0x76, 0xa0, /* 0x48-0x4f */ + 0x00, 0x44, 0x42, 0x00, 0x45, 0x46, 0x47, 0x48, /* 0x50-0x57 */ + 0x49, 0x51, 0x52, 0x53, 0x54, 0x00, 0x55, 0x56, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x62, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +#endif + +static int +ebcdic1158_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00b0) + c = ebcdic1158_page00[wc]; + else if (wc >= 0x0400 && wc < 0x0498) + c = ebcdic1158_page04[wc-0x0400]; + else if (wc == 0x20ac) + c = 0xe1; + else if (wc == 0x2116) + c = 0x58; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1160.h b/lib/ebcdic1160.h new file mode 100644 index 00000000..480bd8c5 --- /dev/null +++ b/lib/ebcdic1160.h @@ -0,0 +1,145 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1160 + */ + +static const unsigned short ebcdic1160_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, + 0x0e07, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x0e48, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, + 0x0e0e, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, + 0x0e15, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x0e3f, 0x0e4e, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, + 0x0e1c, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0e4f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, + /* 0x90 */ + 0x0e5a, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, + /* 0xa0 */ + 0x0e5b, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, + /* 0xb0 */ + 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, + 0x0e58, 0x0e59, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x0e49, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x0e3a, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, + /* 0xe0 */ + 0x005c, 0x0e4a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4b, 0x20ac, 0x009f, +}; + +static int +ebcdic1160_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1160_2uni[c]; + return 1; +} + +#if DEDUPLICATE_TABLES +#define ebcdic1160_page00 ebcdic838_page00 +#else /* Unoptimized */ +static const unsigned char ebcdic1160_page00[176] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x49, 0xe0, 0x59, 0x69, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x6a, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ +}; +#endif +#if DEDUPLICATE_TABLES +#define ebcdic1160_page0e ebcdic838_page0e +#else /* Unoptimized */ +static const unsigned char ebcdic1160_page0e[96] = { + 0x00, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, /* 0x00-0x07 */ + 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x62, /* 0x08-0x0f */ + 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x72, 0x73, /* 0x10-0x17 */ + 0x74, 0x75, 0x76, 0x77, 0x78, 0x8a, 0x8b, 0x8c, /* 0x18-0x1f */ + 0x8d, 0x8e, 0x8f, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, /* 0x20-0x27 */ + 0x9f, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xba, /* 0x28-0x2f */ + 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xcb, 0xcc, 0xcd, /* 0x30-0x37 */ + 0xce, 0xcf, 0xda, 0x00, 0x00, 0x00, 0x00, 0x70, /* 0x38-0x3f */ + 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xea, 0xeb, 0xec, /* 0x40-0x47 */ + 0xed, 0xee, 0xef, 0xfa, 0xfb, 0xfc, 0x71, 0x80, /* 0x48-0x4f */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x50-0x57 */ + 0xb8, 0xb9, 0x90, 0xa0, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ +}; +#endif + +static int +ebcdic1160_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00b0) + c = ebcdic1160_page00[wc]; + else if (wc >= 0x0e00 && wc < 0x0e60) + c = ebcdic1160_page0e[wc-0x0e00]; + else if (wc == 0x20ac) + c = 0xfe; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1164.h b/lib/ebcdic1164.h new file mode 100644 index 00000000..d7f38fbb --- /dev/null +++ b/lib/ebcdic1164.h @@ -0,0 +1,171 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1164 + */ + +static const unsigned short ebcdic1164_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x0103, 0x00e5, + 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x0303, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x0102, 0x00c5, + 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x20ab, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0111, 0x0309, 0x0300, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x0152, 0x00c6, 0x20ac, + /* 0xa0 */ + 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0110, 0x0323, 0x0301, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x0153, 0x0178, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x01b0, 0x00f3, 0x01a1, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x01af, 0x00d3, 0x01a0, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic1164_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1164_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1164_page00[440] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0xbb, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0x00, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0x00, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x00, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x00, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x00, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0x00, 0x69, 0x00, 0xee, 0xeb, 0x00, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x00, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x00, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x00, 0x49, 0x00, 0xce, 0xcb, 0x00, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0x66, 0x46, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x9d, 0xbd, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xef, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, /* 0xa8-0xaf */ + 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ +}; +#if DEDUPLICATE_TABLES +#define ebcdic1164_page03 ebcdic1130_page03 +#else /* Unoptimized */ +static const unsigned char ebcdic1164_page03[40] = { + 0x8e, 0xae, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; +#endif +static const unsigned char ebcdic1164_page20[8] = { + 0x00, 0x00, 0x00, 0x78, 0x9f, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ +}; + +static int +ebcdic1164_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x01b8) + c = ebcdic1164_page00[wc]; + else if (wc >= 0x0300 && wc < 0x0328) + c = ebcdic1164_page03[wc-0x0300]; + else if (wc >= 0x20a8 && wc < 0x20b0) + c = ebcdic1164_page20[wc-0x20a8]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1165.h b/lib/ebcdic1165.h new file mode 100644 index 00000000..79e99b73 --- /dev/null +++ b/lib/ebcdic1165.h @@ -0,0 +1,160 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1165 + */ + +static const unsigned short ebcdic1165_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, + 0x00e7, 0x0107, 0x00dd, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, + 0x013a, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, + 0x00c7, 0x0106, 0x00a8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, + 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x20ac, + /* 0xa0 */ + 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x005b, 0x0158, 0x015e, + /* 0xb0 */ + 0x02d9, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, + 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x005d, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da, 0x009f, +}; + +static int +ebcdic1165_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1165_2uni[c]; + return 1; +} + +static const unsigned char ebcdic1165_page00[384] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, /* 0xa0-0xa7 */ + 0x6a, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ + 0x90, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x65, 0x62, 0x00, 0x63, 0x00, 0x00, 0x68, /* 0xc0-0xc7 */ + 0x00, 0x71, 0x00, 0x73, 0x00, 0x75, 0x76, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0xee, 0xeb, 0x00, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x00, 0x00, 0xfe, 0x00, 0xfc, 0x4a, 0x00, 0x59, /* 0xd8-0xdf */ + 0x00, 0x45, 0x42, 0x00, 0x43, 0x00, 0x00, 0x48, /* 0xe0-0xe7 */ + 0x00, 0x51, 0x00, 0x53, 0x00, 0x55, 0x56, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0xce, 0xcb, 0x00, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x00, 0x00, 0xde, 0x00, 0xdc, 0x8d, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0x66, 0x46, 0xb1, 0xa0, 0x69, 0x49, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x67, 0x47, 0xfa, 0xea, /* 0x08-0x0f */ + 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x72, 0x52, 0xda, 0xdf, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x78, 0x58, 0x00, 0x00, 0x77, 0x57, 0x00, /* 0x38-0x3f */ + 0x00, 0xba, 0x9a, 0xbb, 0x9b, 0x00, 0x00, 0xab, /* 0x40-0x47 */ + 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xef, 0xcf, 0x00, 0x00, 0xed, 0xcd, 0x00, 0x00, /* 0x50-0x57 */ + 0xae, 0x8e, 0xaa, 0x8a, 0x00, 0x00, 0xaf, 0x8f, /* 0x58-0x5f */ + 0xbc, 0x9c, 0xb3, 0x44, 0xfd, 0xdd, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x54, /* 0x68-0x6f */ + 0xfb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0xb9, 0xb7, 0xb4, 0xb2, 0xb8, 0xb6, 0x00, /* 0x78-0x7f */ +}; +#if DEDUPLICATE_TABLES +#define ebcdic1165_page02 ebcdic870_page02 +#else /* Unoptimized */ +static const unsigned char ebcdic1165_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x80, 0xb0, 0x00, 0x9e, 0x00, 0x64, 0x00, 0x00, /* 0xd8-0xdf */ +}; +#endif + +static int +ebcdic1165_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0180) + c = ebcdic1165_page00[wc]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = ebcdic1165_page02[wc-0x02c0]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic1166.h b/lib/ebcdic1166.h new file mode 100644 index 00000000..e7aa22d7 --- /dev/null +++ b/lib/ebcdic1166.h @@ -0,0 +1,161 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-1166 + */ + +static const unsigned short ebcdic1166_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x04d9, 0x0493, 0x0451, 0x0454, 0x0455, 0x0456, + 0x049b, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x04a3, 0x04e9, 0x04b1, 0x04af, 0x045e, 0x04bb, 0x042a, + 0x2116, 0x04d8, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x0492, 0x0401, 0x0404, 0x0405, 0x0406, 0x049a, + 0x0408, 0x04a2, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x04e8, 0x04b0, 0x04ae, 0x00ad, 0x040e, 0x04ba, 0x044e, 0x0430, + 0x0431, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, + /* 0x90 */ + 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xa0 */ + 0x044f, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + /* 0xb0 */ + 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, + 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, + /* 0xe0 */ + 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x009f, +}; + +static int +ebcdic1166_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic1166_2uni[c]; + return 1; +} + +#if DEDUPLICATE_TABLES +#define ebcdic1166_page00 ebcdic1154_page00 +#else /* Unoptimized */ +static const unsigned char ebcdic1166_page00[176] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, /* 0xa8-0xaf */ +}; +#endif +static const unsigned char ebcdic1166_page04[240] = { + 0x00, 0x63, 0x00, 0x00, 0x64, 0x65, 0x66, 0x00, /* 0x00-0x07 */ + 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, /* 0x08-0x0f */ + 0xb9, 0xba, 0xed, 0xbf, 0xbc, 0xbd, 0xec, 0xfa, /* 0x10-0x17 */ + 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, 0xdc, /* 0x18-0x1f */ + 0xde, 0xdf, 0xea, 0xeb, 0xbe, 0xca, 0xbb, 0xfe, /* 0x20-0x27 */ + 0xfb, 0xfd, 0x57, 0xef, 0xee, 0xfc, 0xb8, 0xdd, /* 0x28-0x2f */ + 0x77, 0x78, 0xaf, 0x8d, 0x8a, 0x8b, 0xae, 0xb2, /* 0x30-0x37 */ + 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x38-0x3f */ + 0xaa, 0xab, 0xac, 0xad, 0x8c, 0x8e, 0x80, 0xb6, /* 0x40-0x47 */ + 0xb3, 0xb5, 0xb7, 0xb1, 0xb0, 0xb4, 0x76, 0xa0, /* 0x48-0x4f */ + 0x00, 0x44, 0x00, 0x00, 0x45, 0x46, 0x47, 0x00, /* 0x50-0x57 */ + 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x62, 0x43, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x67, 0x48, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0x69, 0x51, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x54, /* 0xa8-0xaf */ + 0x71, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x75, 0x56, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x59, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x70, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ +}; + +static int +ebcdic1166_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00b0) + c = ebcdic1166_page00[wc]; + else if (wc >= 0x0400 && wc < 0x04f0) + c = ebcdic1166_page04[wc-0x0400]; + else if (wc == 0x20ac) + c = 0xe1; + else if (wc == 0x2116) + c = 0x58; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic12712.h b/lib/ebcdic12712.h new file mode 100644 index 00000000..42d9d33b --- /dev/null +++ b/lib/ebcdic12712.h @@ -0,0 +1,164 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-12712 + */ + +static const unsigned short ebcdic12712_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, + 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, + 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, + 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0xfffd, 0x05ea, 0xfffd, 0xfffd, 0x00a0, 0xfffd, 0xfffd, 0xfffd, + 0x2017, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0xfffd, 0xfffd, 0xfffd, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0xfffd, 0xfffd, 0x20ac, 0x00b8, 0x20aa, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00ae, + /* 0xb0 */ + 0x005e, 0x00a3, 0x00a5, 0x2022, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x005b, 0x005d, 0x203e, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x202d, 0x202e, 0x202c, 0xfffd, 0xfffd, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x202a, 0x202b, 0x200e, 0x200f, 0x009f, +}; + +static int +ebcdic12712_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + unsigned short wc = ebcdic12712_2uni[c]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + return RET_ILSEQ; +} + +#if DEDUPLICATE_TABLES +#define ebcdic12712_page00 ebcdic424_page00 +#else /* Unoptimized */ +static const unsigned char ebcdic12712_page00[248] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x74, 0x00, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x00, 0x8a, 0x5f, 0xca, 0xaf, 0x00, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0x00, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x00, 0x8b, 0xb7, 0xb8, 0xb9, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, /* 0xf0-0xf7 */ +}; +#endif +#if DEDUPLICATE_TABLES +#define ebcdic12712_page05 ebcdic424_page05 +#else /* Unoptimized */ +static const unsigned char ebcdic12712_page05[32] = { + 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, /* 0xd0-0xd7 */ + 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0xd8-0xdf */ + 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0xe0-0xe7 */ + 0x68, 0x69, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ +}; +#endif +static const unsigned char ebcdic12712_page20[56] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfe, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0xfb, 0xfc, 0xdd, 0xdb, 0xdc, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x00, /* 0x38-0x3f */ +}; +static const unsigned char ebcdic12712_page20_1[8] = { + 0x00, 0x00, 0x9e, 0x00, 0x9c, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ +}; + +static int +ebcdic12712_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00f8) + c = ebcdic12712_page00[wc]; + else if (wc >= 0x05d0 && wc < 0x05f0) + c = ebcdic12712_page05[wc-0x05d0]; + else if (wc >= 0x2008 && wc < 0x2040) + c = ebcdic12712_page20[wc-0x2008]; + else if (wc >= 0x20a8 && wc < 0x20b0) + c = ebcdic12712_page20_1[wc-0x20a8]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic16804.h b/lib/ebcdic16804.h new file mode 100644 index 00000000..fd7af59a --- /dev/null +++ b/lib/ebcdic16804.h @@ -0,0 +1,178 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-16804 + */ + +static const unsigned short ebcdic16804_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x0651, 0xfe7d, 0x0640, 0x200b, 0x0621, 0x0622, + 0xfe82, 0x0623, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0xfe84, 0x0624, 0xfffd, 0xfffd, 0x0626, 0x0627, 0xfe8e, + 0x0628, 0xfe91, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x0629, 0x062a, 0xfe97, 0x062b, 0xfe9b, 0x062c, + 0xfe9f, 0x062d, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0xfea3, 0x062e, 0xfea7, 0x062f, 0x0630, 0x0631, 0x0632, 0x0633, + 0xfeb3, 0x060c, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0634, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0xfeb7, 0x0635, 0xfebb, 0x0636, 0xfebf, 0x0637, + /* 0x90 */ + 0x0638, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x0639, 0xfeca, 0xfecb, 0xfecc, 0x063a, 0xfece, + /* 0xa0 */ + 0xfecf, 0x00f7, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0xfed0, 0x0641, 0xfed3, 0x0642, 0xfed7, 0x0643, + /* 0xb0 */ + 0xfedb, 0x0644, 0xfef5, 0xfef6, 0xfef7, 0xfef8, 0xfffd, 0xfffd, + 0xfefb, 0xfefc, 0xfedf, 0x0645, 0xfee3, 0x0646, 0xfee7, 0x0647, + /* 0xc0 */ + 0x061b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0xfeeb, 0xfffd, 0xfeec, 0xfffd, 0x0648, + /* 0xd0 */ + 0x061f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x0649, 0xfef0, 0x064a, 0xfef2, 0xfef3, 0x0660, + /* 0xe0 */ + 0x00d7, 0x2007, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x0661, 0x0662, 0xfffd, 0x0663, 0x0664, 0x0665, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x20ac, 0x0666, 0x0667, 0x0668, 0x0669, 0x009f, +}; + +static int +ebcdic16804_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + unsigned short wc = ebcdic16804_2uni[c]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + return RET_ILSEQ; +} + +static const unsigned char ebcdic16804_page00[248] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x6d, /* 0x58-0x5f */ + 0x00, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x00, 0x4f, 0x00, 0x00, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x6a, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x5f, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, /* 0xf0-0xf7 */ +}; +static const unsigned char ebcdic16804_page06[104] = { + 0x00, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xd0, /* 0x18-0x1f */ + 0x00, 0x46, 0x47, 0x49, 0x52, 0x00, 0x55, 0x56, /* 0x20-0x27 */ + 0x58, 0x62, 0x63, 0x65, 0x67, 0x69, 0x71, 0x73, /* 0x28-0x2f */ + 0x74, 0x75, 0x76, 0x77, 0x80, 0x8b, 0x8d, 0x8f, /* 0x30-0x37 */ + 0x90, 0x9a, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x44, 0xab, 0xad, 0xaf, 0xb1, 0xbb, 0xbd, 0xbf, /* 0x40-0x47 */ + 0xcf, 0xda, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xdf, 0xea, 0xeb, 0xed, 0xee, 0xef, 0xfb, 0xfc, /* 0x60-0x67 */ + 0xfd, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ +}; +static const unsigned char ebcdic16804_page20[16] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ +}; +static const unsigned char ebcdic16804_pagefe[136] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x48, 0x00, 0x51, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, /* 0x88-0x8f */ + 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x68, /* 0x98-0x9f */ + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x72, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x8a, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x8e, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x9b, 0x9c, 0x9d, 0x00, 0x9f, 0xa0, /* 0xc8-0xcf */ + 0xaa, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xae, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0xba, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xbe, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0xcb, 0xcd, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0xdb, 0x00, 0xdd, 0xde, 0x00, 0xb2, 0xb3, 0xb4, /* 0xf0-0xf7 */ + 0xb5, 0x00, 0x00, 0xb8, 0xb9, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; + +static int +ebcdic16804_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00f8) + c = ebcdic16804_page00[wc]; + else if (wc >= 0x0608 && wc < 0x0670) + c = ebcdic16804_page06[wc-0x0608]; + else if (wc >= 0x2000 && wc < 0x2010) + c = ebcdic16804_page20[wc-0x2000]; + else if (wc == 0x20ac) + c = 0xfa; + else if (wc >= 0xfe78 && wc < 0xff00) + c = ebcdic16804_pagefe[wc-0xfe78]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic273.h b/lib/ebcdic273.h new file mode 100644 index 00000000..6dc48f49 --- /dev/null +++ b/lib/ebcdic273.h @@ -0,0 +1,129 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-273 + */ + +static const unsigned short ebcdic273_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic273_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic273_2uni[c]; + return 1; +} + +static const unsigned char ebcdic273_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xb5, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x63, 0xec, 0xfc, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x43, 0xbb, 0xdc, 0x59, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0xcc, 0x7c, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x4a, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xe0, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0x5a, 0xad, 0xae, 0xa1, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0xc0, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0x6a, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xd0, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic273_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic273_page00[wc]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic277.h b/lib/ebcdic277.h new file mode 100644 index 00000000..c21cfe28 --- /dev/null +++ b/lib/ebcdic277.h @@ -0,0 +1,129 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-277 + */ + +static const unsigned short ebcdic277_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, + 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, + 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, + /* 0xa0 */ + 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic277_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic277_2uni[c]; + return 1; +} + +static const unsigned char ebcdic277_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x4a, 0x67, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x80, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x9e, 0xe0, 0x9f, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x9c, 0xbb, 0x47, 0xdc, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x5a, 0xb2, 0x70, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x5b, 0x7b, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x7c, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0xd0, 0xc0, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x6a, 0xdd, 0xde, 0xdb, 0xa1, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic277_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic277_page00[wc]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic278.h b/lib/ebcdic278.h new file mode 100644 index 00000000..37b06d4f --- /dev/null +++ b/lib/ebcdic278.h @@ -0,0 +1,129 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-278 + */ + +static const unsigned short ebcdic278_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, + 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, + 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, + /* 0xa0 */ + 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic278_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic278_2uni[c]; + return 1; +} + +static const unsigned char ebcdic278_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x63, 0x67, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xec, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xb5, 0x71, 0x9f, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x51, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x43, 0xbb, 0x47, 0xdc, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x5a, 0xb2, 0xcc, 0x4a, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x7b, 0x5b, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0xe0, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7c, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0xc0, 0xd0, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x79, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0x6a, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xa1, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic278_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic278_page00[wc]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic280.h b/lib/ebcdic280.h new file mode 100644 index 00000000..2102f15b --- /dev/null +++ b/lib/ebcdic280.h @@ -0,0 +1,129 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-280 + */ + +static const unsigned short ebcdic280_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, + 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, + 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic280_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic280_2uni[c]; + return 1; +} + +static const unsigned char ebcdic280_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0xb1, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xb5, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x90, 0x48, 0x51, 0x5f, 0x6d, /* 0x58-0x5f */ + 0xdd, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x44, 0xbb, 0x54, 0x58, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0x7b, 0x9f, 0xb2, 0xcd, 0x7c, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x4a, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0xc0, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xe0, /* 0xe0-0xe7 */ + 0xd0, 0x5a, 0x52, 0x53, 0xa1, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0x6a, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0x79, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic280_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic280_page00[wc]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic282.h b/lib/ebcdic282.h new file mode 100644 index 00000000..3779bc14 --- /dev/null +++ b/lib/ebcdic282.h @@ -0,0 +1,129 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-282 + */ + +static const unsigned short ebcdic282_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x007b, 0x00e5, + 0x007e, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x0023, 0x00c5, + 0x005c, 0x00d1, 0x00f5, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x00c3, 0x00d5, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x00e7, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x007d, 0x00d7, + /* 0xc0 */ + 0x00e3, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00a6, + /* 0xd0 */ + 0x00b4, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00c7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x0040, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic282_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic282_2uni[c]; + return 1; +} + +static const unsigned char ebcdic282_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x66, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xef, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0x68, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x46, 0xbb, 0xbe, 0x48, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0xcf, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xd0, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x7b, 0x63, 0x67, 0x9e, 0xe0, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0x7c, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0xc0, 0x43, 0x47, 0x9c, 0xa1, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0x6a, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic282_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic282_page00[wc]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic284.h b/lib/ebcdic284.h new file mode 100644 index 00000000..368a7de4 --- /dev/null +++ b/lib/ebcdic284.h @@ -0,0 +1,129 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-284 + */ + +static const unsigned short ebcdic284_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic284_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic284_2uni[c]; + return 1; +} + +static const unsigned char ebcdic284_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0xbb, 0x7f, 0x69, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0xba, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xbd, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x49, 0xb5, /* 0xa0-0xa7 */ + 0xa1, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x7b, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x6a, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic284_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic284_page00[wc]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic285.h b/lib/ebcdic285.h new file mode 100644 index 00000000..feb65a86 --- /dev/null +++ b/lib/ebcdic285.h @@ -0,0 +1,129 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-285 + */ + +static const unsigned short ebcdic285_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic285_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic285_2uni[c]; + return 1; +} + +static const unsigned char ebcdic285_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x4a, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xb1, 0xe0, 0xbb, 0xba, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xbc, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0x5b, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xa1, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic285_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic285_page00[wc]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic297.h b/lib/ebcdic297.h new file mode 100644 index 00000000..391dff32 --- /dev/null +++ b/lib/ebcdic297.h @@ -0,0 +1,129 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-297 + */ + +static const unsigned short ebcdic297_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, + 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, + /* 0xa0 */ + 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic297_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic297_2uni[c]; + return 1; +} + +static const unsigned char ebcdic297_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0xb1, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x44, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x90, 0x48, 0xb5, 0x5f, 0x6d, /* 0x58-0x5f */ + 0xa0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x51, 0xbb, 0x54, 0xbd, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0x7b, 0x9f, 0xb2, 0xdd, 0x5a, /* 0xa0-0xa7 */ + 0xa1, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x4a, 0x8f, 0xea, 0xfa, 0xbe, 0x79, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x7c, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xe0, /* 0xe0-0xe7 */ + 0xd0, 0xc0, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0x6a, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic297_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic297_page00[wc]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic423.h b/lib/ebcdic423.h new file mode 100644 index 00000000..6dd63885 --- /dev/null +++ b/lib/ebcdic423.h @@ -0,0 +1,147 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-423 + */ + +static const unsigned short ebcdic423_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, + 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, + 0xfffd, 0xfffd, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0xfffd, 0x0386, 0x0388, 0x0389, 0x00a0, 0x038a, 0x038c, 0x038e, + 0x038f, 0x0060, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00c4, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, + /* 0x90 */ + 0x00d6, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, + /* 0xa0 */ + 0x00dc, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, + /* 0xb0 */ + 0xfffd, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, + 0x03cb, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, + /* 0xc0 */ + 0x00b8, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x03c9, 0x00e2, 0x00e0, 0x00e4, 0x00ea, + /* 0xd0 */ + 0x00b4, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b1, 0x00e9, 0x00e8, 0x00eb, 0x00ee, 0x00ef, + /* 0xe0 */ + 0x00b0, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00bd, 0x00f6, 0x00f4, 0x00fb, 0x00f9, 0x00fc, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00ff, 0x00e7, 0x00c7, 0xfffd, 0xfffd, 0x009f, +}; + +static int +ebcdic423_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + unsigned short wc = ebcdic423_2uni[c]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + return RET_ILSEQ; +} + +static const unsigned char ebcdic423_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x00, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0x00, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x00, 0x6a, 0x00, 0x00, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x74, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x7c, /* 0xa0-0xa7 */ + 0xa1, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ + 0xe0, 0xda, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0xc0, 0x00, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xfc, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0xcd, 0x00, 0xcc, 0x00, 0xce, 0x00, 0x00, 0xfb, /* 0xe0-0xe7 */ + 0xdc, 0xdb, 0xcf, 0xdd, 0x00, 0x00, 0xde, 0xdf, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0xec, 0x00, 0xeb, 0x00, /* 0xf0-0xf7 */ + 0x00, 0xee, 0x00, 0xed, 0xef, 0x00, 0x00, 0xfa, /* 0xf8-0xff */ +}; +static const unsigned char ebcdic423_page03[80] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x00, /* 0x80-0x87 */ + 0x72, 0x73, 0x75, 0x00, 0x76, 0x00, 0x77, 0x78, /* 0x88-0x8f */ + 0x00, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x90-0x97 */ + 0x48, 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, /* 0x98-0x9f */ + 0x57, 0x58, 0x00, 0x59, 0x62, 0x63, 0x64, 0x65, /* 0xa0-0xa7 */ + 0x66, 0x67, 0x00, 0x00, 0xb1, 0xb2, 0xb3, 0xb5, /* 0xa8-0xaf */ + 0x00, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x9a, /* 0xb0-0xb7 */ + 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xaa, 0xab, 0xac, /* 0xb8-0xbf */ + 0xad, 0xae, 0xba, 0xaf, 0xbb, 0xbc, 0xbd, 0xbe, /* 0xc0-0xc7 */ + 0xbf, 0xcb, 0xb4, 0xb8, 0xb6, 0xb7, 0xb9, 0x00, /* 0xc8-0xcf */ +}; + +static int +ebcdic423_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic423_page00[wc]; + else if (wc >= 0x0380 && wc < 0x03d0) + c = ebcdic423_page03[wc-0x0380]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic424.h b/lib/ebcdic424.h new file mode 100644 index 00000000..f426e891 --- /dev/null +++ b/lib/ebcdic424.h @@ -0,0 +1,150 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-424 + */ + +static const unsigned short ebcdic424_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, + 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, + 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, + 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0xfffd, 0x05ea, 0xfffd, 0xfffd, 0x00a0, 0xfffd, 0xfffd, 0xfffd, + 0x2017, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0xfffd, 0xfffd, 0xfffd, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0x00b8, 0xfffd, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00ae, + /* 0xb0 */ + 0x005e, 0x00a3, 0x00a5, 0x2022, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x005b, 0x005d, 0x203e, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, +}; + +static int +ebcdic424_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + unsigned short wc = ebcdic424_2uni[c]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + return RET_ILSEQ; +} + +static const unsigned char ebcdic424_page00[248] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x74, 0x00, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x00, 0x8a, 0x5f, 0xca, 0xaf, 0x00, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0x00, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x00, 0x8b, 0xb7, 0xb8, 0xb9, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, /* 0xf0-0xf7 */ +}; +static const unsigned char ebcdic424_page05[32] = { + 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, /* 0xd0-0xd7 */ + 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0xd8-0xdf */ + 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0xe0-0xe7 */ + 0x68, 0x69, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ +}; +static const unsigned char ebcdic424_page20[48] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x00, /* 0x38-0x3f */ +}; + +static int +ebcdic424_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00f8) + c = ebcdic424_page00[wc]; + else if (wc >= 0x05d0 && wc < 0x05f0) + c = ebcdic424_page05[wc-0x05d0]; + else if (wc >= 0x2010 && wc < 0x2040) + c = ebcdic424_page20[wc-0x2010]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic425.h b/lib/ebcdic425.h new file mode 100644 index 00000000..d2f04b11 --- /dev/null +++ b/lib/ebcdic425.h @@ -0,0 +1,164 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-425 + */ + +static const unsigned short ebcdic425_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x060c, 0x00e0, 0x061b, 0x0640, 0x061f, + 0x00e7, 0x0621, 0x0622, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x0623, 0x00ee, 0x00ef, + 0x0624, 0x0625, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x0626, 0x00c0, 0x0627, 0x0628, 0x0629, + 0x00c7, 0x062a, 0x062b, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x062c, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x062d, 0x00ce, 0x00cf, + 0x062e, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x062f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0630, 0x0631, 0x0632, 0x0633, + /* 0x90 */ + 0x0634, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x0635, 0x0636, 0x00e6, 0x0637, 0x00c6, 0x20ac, + /* 0xa0 */ + 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x0638, 0x0639, 0x063a, 0x005b, 0x0641, 0x0642, + /* 0xb0 */ + 0x0643, 0x0644, 0x0645, 0x0646, 0x00a9, 0x00a7, 0x0647, 0x0152, + 0x0153, 0x0178, 0x0648, 0x0649, 0x064a, 0x005d, 0x064b, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x064c, 0x064d, 0x064e, 0x064f, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x0650, 0x00fb, 0x00fc, 0x00f9, 0x0651, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x0652, 0x00d4, 0x200c, 0x200d, 0x200e, 0x200f, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0xfffd, 0x00db, 0x00dc, 0x00d9, 0x00a4, 0x009f, +}; + +static int +ebcdic425_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + unsigned short wc = ebcdic425_2uni[c]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + return RET_ILSEQ; +} + +static const unsigned char ebcdic425_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xb5, /* 0xa0-0xa7 */ + 0x00, 0xb4, 0x00, 0x8a, 0x00, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x64, 0x00, 0x62, 0x00, 0x00, 0x00, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x00, 0x00, 0x76, 0x77, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0xbf, /* 0xd0-0xd7 */ + 0x00, 0xfd, 0x00, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x44, 0x00, 0x42, 0x00, 0x00, 0x00, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x00, 0x00, 0x56, 0x57, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0xe1, /* 0xf0-0xf7 */ + 0x00, 0xdd, 0x00, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xf8-0xff */ +}; +static const unsigned char ebcdic425_page01[48] = { + 0x00, 0x00, 0xb7, 0xb8, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char ebcdic425_page06[80] = { + 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x47, /* 0x18-0x1f */ + 0x00, 0x49, 0x4a, 0x55, 0x58, 0x59, 0x63, 0x65, /* 0x20-0x27 */ + 0x66, 0x67, 0x69, 0x6a, 0x70, 0x75, 0x78, 0x80, /* 0x28-0x2f */ + 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x9a, 0x9b, 0x9d, /* 0x30-0x37 */ + 0xaa, 0xab, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x46, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb6, /* 0x40-0x47 */ + 0xba, 0xbb, 0xbc, 0xbe, 0xcc, 0xcd, 0xce, 0xcf, /* 0x48-0x4f */ + 0xda, 0xde, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ +}; +static const unsigned char ebcdic425_page20[8] = { + 0x00, 0x00, 0x00, 0x00, 0xec, 0xed, 0xee, 0xef, /* 0x08-0x0f */ +}; + +static int +ebcdic425_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic425_page00[wc]; + else if (wc >= 0x0150 && wc < 0x0180) + c = ebcdic425_page01[wc-0x0150]; + else if (wc >= 0x0608 && wc < 0x0658) + c = ebcdic425_page06[wc-0x0608]; + else if (wc >= 0x2008 && wc < 0x2010) + c = ebcdic425_page20[wc-0x2008]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic4971.h b/lib/ebcdic4971.h new file mode 100644 index 00000000..63e23d9d --- /dev/null +++ b/lib/ebcdic4971.h @@ -0,0 +1,159 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-4971 + */ + +static const unsigned short ebcdic4971_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, + 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, + 0x03aa, 0x03ab, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00a8, 0x0386, 0x0388, 0x0389, 0x00a0, 0x038a, 0x038c, 0x038e, + 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, + /* 0xa0 */ + 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, + /* 0xb0 */ + 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, + 0x03cb, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x03c9, 0x0390, 0x03b0, 0x2018, 0x2015, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b1, 0x00bd, 0xfffd, 0x0387, 0x2019, 0x00a6, + /* 0xe0 */ + 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00a7, 0xfffd, 0xfffd, 0x00ab, 0x00ac, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00a9, 0x20ac, 0xfffd, 0x00bb, 0x009f, +}; + +static int +ebcdic4971_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + unsigned short wc = ebcdic4971_2uni[c]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + return RET_ILSEQ; +} + +#if DEDUPLICATE_TABLES +#define ebcdic4971_page00 ebcdic875_page00 +#else /* Unoptimized */ +static const unsigned char ebcdic4971_page00[192] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x74, 0x00, 0x00, 0xb0, 0x00, 0x00, 0xdf, 0xeb, /* 0xa0-0xa7 */ + 0x70, 0xfb, 0x00, 0xee, 0xef, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ + 0x90, 0xda, 0xea, 0xfa, 0xa0, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xfe, 0x00, 0xdb, 0x00, 0x00, /* 0xb8-0xbf */ +}; +#endif +#if DEDUPLICATE_TABLES +#define ebcdic4971_page03 ebcdic875_page03 +#else /* Unoptimized */ +static const unsigned char ebcdic4971_page03[80] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x71, 0xdd, /* 0x80-0x87 */ + 0x72, 0x73, 0x75, 0x00, 0x76, 0x00, 0x77, 0x78, /* 0x88-0x8f */ + 0xcc, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x90-0x97 */ + 0x48, 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, /* 0x98-0x9f */ + 0x57, 0x58, 0x00, 0x59, 0x62, 0x63, 0x64, 0x65, /* 0xa0-0xa7 */ + 0x66, 0x67, 0x68, 0x69, 0xb1, 0xb2, 0xb3, 0xb5, /* 0xa8-0xaf */ + 0xcd, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x9a, /* 0xb0-0xb7 */ + 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xaa, 0xab, 0xac, /* 0xb8-0xbf */ + 0xad, 0xae, 0xba, 0xaf, 0xbb, 0xbc, 0xbd, 0xbe, /* 0xc0-0xc7 */ + 0xbf, 0xcb, 0xb4, 0xb8, 0xb6, 0xb7, 0xb9, 0x00, /* 0xc8-0xcf */ +}; +#endif +#if DEDUPLICATE_TABLES +#define ebcdic4971_page20 ebcdic875_page20 +#else /* Unoptimized */ +static const unsigned char ebcdic4971_page20[16] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, /* 0x10-0x17 */ + 0xce, 0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ +}; +#endif + +static int +ebcdic4971_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00c0) + c = ebcdic4971_page00[wc]; + else if (wc >= 0x0380 && wc < 0x03d0) + c = ebcdic4971_page03[wc-0x0380]; + else if (wc >= 0x2010 && wc < 0x2020) + c = ebcdic4971_page20[wc-0x2010]; + else if (wc == 0x20ac) + c = 0xfc; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic500.h b/lib/ebcdic500.h new file mode 100644 index 00000000..4270513c --- /dev/null +++ b/lib/ebcdic500.h @@ -0,0 +1,129 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-500 + */ + +static const unsigned short ebcdic500_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic500_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic500_2uni[c]; + return 1; +} + +static const unsigned char ebcdic500_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0xbb, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic500_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic500_page00[wc]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic838.h b/lib/ebcdic838.h new file mode 100644 index 00000000..99911bd6 --- /dev/null +++ b/lib/ebcdic838.h @@ -0,0 +1,135 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-838 + */ + +static const unsigned short ebcdic838_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, + 0x0e07, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x0e48, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, + 0x0e0e, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, + /* 0x60 */ + 0x002d, 0x002f, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, + 0x0e15, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x0e3f, 0x0e4e, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, + 0x0e1c, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0e4f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, + /* 0x90 */ + 0x0e5a, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, + /* 0xa0 */ + 0x0e5b, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, + /* 0xb0 */ + 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, + 0x0e58, 0x0e59, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x0e49, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x0e3a, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, + /* 0xe0 */ + 0x005c, 0x0e4a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4b, 0x0e4c, 0x009f, +}; + +static int +ebcdic838_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic838_2uni[c]; + return 1; +} + +static const unsigned char ebcdic838_page00[176] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x49, 0xe0, 0x59, 0x69, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x6a, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ +}; +static const unsigned char ebcdic838_page0e[96] = { + 0x00, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, /* 0x00-0x07 */ + 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x62, /* 0x08-0x0f */ + 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x72, 0x73, /* 0x10-0x17 */ + 0x74, 0x75, 0x76, 0x77, 0x78, 0x8a, 0x8b, 0x8c, /* 0x18-0x1f */ + 0x8d, 0x8e, 0x8f, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, /* 0x20-0x27 */ + 0x9f, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xba, /* 0x28-0x2f */ + 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xcb, 0xcc, 0xcd, /* 0x30-0x37 */ + 0xce, 0xcf, 0xda, 0x00, 0x00, 0x00, 0x00, 0x70, /* 0x38-0x3f */ + 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xea, 0xeb, 0xec, /* 0x40-0x47 */ + 0xed, 0xee, 0xef, 0xfa, 0xfb, 0xfc, 0x71, 0x80, /* 0x48-0x4f */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x50-0x57 */ + 0xb8, 0xb9, 0x90, 0xa0, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ +}; + +static int +ebcdic838_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00b0) + c = ebcdic838_page00[wc]; + else if (wc >= 0x0e00 && wc < 0x0e60) + c = ebcdic838_page0e[wc-0x0e00]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic870.h b/lib/ebcdic870.h new file mode 100644 index 00000000..8b14f835 --- /dev/null +++ b/lib/ebcdic870.h @@ -0,0 +1,154 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-870 + */ + +static const unsigned short ebcdic870_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, + 0x00e7, 0x0107, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, + 0x013a, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, + 0x00c7, 0x0106, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, + 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x00a4, + /* 0xa0 */ + 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x00dd, 0x0158, 0x015e, + /* 0xb0 */ + 0x02d9, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, + 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da, 0x009f, +}; + +static int +ebcdic870_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic870_2uni[c]; + return 1; +} + +static const unsigned char ebcdic870_page00[384] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ + 0x90, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x65, 0x62, 0x00, 0x63, 0x00, 0x00, 0x68, /* 0xc0-0xc7 */ + 0x00, 0x71, 0x00, 0x73, 0x00, 0x75, 0x76, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0xee, 0xeb, 0x00, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x00, 0x00, 0xfe, 0x00, 0xfc, 0xad, 0x00, 0x59, /* 0xd8-0xdf */ + 0x00, 0x45, 0x42, 0x00, 0x43, 0x00, 0x00, 0x48, /* 0xe0-0xe7 */ + 0x00, 0x51, 0x00, 0x53, 0x00, 0x55, 0x56, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0xce, 0xcb, 0x00, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x00, 0x00, 0xde, 0x00, 0xdc, 0x8d, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0x66, 0x46, 0xb1, 0xa0, 0x69, 0x49, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x67, 0x47, 0xfa, 0xea, /* 0x08-0x0f */ + 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x72, 0x52, 0xda, 0xdf, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x78, 0x58, 0x00, 0x00, 0x77, 0x57, 0x00, /* 0x38-0x3f */ + 0x00, 0xba, 0x9a, 0xbb, 0x9b, 0x00, 0x00, 0xab, /* 0x40-0x47 */ + 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xef, 0xcf, 0x00, 0x00, 0xed, 0xcd, 0x00, 0x00, /* 0x50-0x57 */ + 0xae, 0x8e, 0xaa, 0x8a, 0x00, 0x00, 0xaf, 0x8f, /* 0x58-0x5f */ + 0xbc, 0x9c, 0xb3, 0x44, 0xfd, 0xdd, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x54, /* 0x68-0x6f */ + 0xfb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0xb9, 0xb7, 0xb4, 0xb2, 0xb8, 0xb6, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char ebcdic870_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x80, 0xb0, 0x00, 0x9e, 0x00, 0x64, 0x00, 0x00, /* 0xd8-0xdf */ +}; + +static int +ebcdic870_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0180) + c = ebcdic870_page00[wc]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = ebcdic870_page02[wc-0x02c0]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic871.h b/lib/ebcdic871.h new file mode 100644 index 00000000..0e091cd6 --- /dev/null +++ b/lib/ebcdic871.h @@ -0,0 +1,129 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-871 + */ + +static const unsigned short ebcdic871_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00f1, 0x00de, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, + 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, + /* 0xc0 */ + 0x00fe, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic871_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic871_2uni[c]; + return 1; +} + +static const unsigned char ebcdic871_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xac, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xae, 0xbe, 0x9e, 0xec, 0x6d, /* 0x58-0x5f */ + 0x8c, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x8e, 0xbb, 0x9c, 0xcc, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0xe0, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x5a, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0x7c, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x5f, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0x4a, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0xd0, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x79, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xa1, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0xc0, 0xdf, /* 0xf8-0xff */ +}; + +static int +ebcdic871_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic871_page00[wc]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic875.h b/lib/ebcdic875.h new file mode 100644 index 00000000..dee3f461 --- /dev/null +++ b/lib/ebcdic875.h @@ -0,0 +1,145 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-875 + */ + +static const unsigned short ebcdic875_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, + 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, + 0x03aa, 0x03ab, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00a8, 0x0386, 0x0388, 0x0389, 0x00a0, 0x038a, 0x038c, 0x038e, + 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, + /* 0xa0 */ + 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, + /* 0xb0 */ + 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, + 0x03cb, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x03c9, 0x0390, 0x03b0, 0x2018, 0x2015, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b1, 0x00bd, 0xfffd, 0x0387, 0x2019, 0x00a6, + /* 0xe0 */ + 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00a7, 0xfffd, 0xfffd, 0x00ab, 0x00ac, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00a9, 0xfffd, 0xfffd, 0x00bb, 0x009f, +}; + +static int +ebcdic875_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + unsigned short wc = ebcdic875_2uni[c]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + return RET_ILSEQ; +} + +static const unsigned char ebcdic875_page00[192] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x74, 0x00, 0x00, 0xb0, 0x00, 0x00, 0xdf, 0xeb, /* 0xa0-0xa7 */ + 0x70, 0xfb, 0x00, 0xee, 0xef, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ + 0x90, 0xda, 0xea, 0xfa, 0xa0, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xfe, 0x00, 0xdb, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char ebcdic875_page03[80] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x71, 0xdd, /* 0x80-0x87 */ + 0x72, 0x73, 0x75, 0x00, 0x76, 0x00, 0x77, 0x78, /* 0x88-0x8f */ + 0xcc, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x90-0x97 */ + 0x48, 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, /* 0x98-0x9f */ + 0x57, 0x58, 0x00, 0x59, 0x62, 0x63, 0x64, 0x65, /* 0xa0-0xa7 */ + 0x66, 0x67, 0x68, 0x69, 0xb1, 0xb2, 0xb3, 0xb5, /* 0xa8-0xaf */ + 0xcd, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x9a, /* 0xb0-0xb7 */ + 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xaa, 0xab, 0xac, /* 0xb8-0xbf */ + 0xad, 0xae, 0xba, 0xaf, 0xbb, 0xbc, 0xbd, 0xbe, /* 0xc0-0xc7 */ + 0xbf, 0xcb, 0xb4, 0xb8, 0xb6, 0xb7, 0xb9, 0x00, /* 0xc8-0xcf */ +}; +static const unsigned char ebcdic875_page20[16] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, /* 0x10-0x17 */ + 0xce, 0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ +}; + +static int +ebcdic875_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00c0) + c = ebcdic875_page00[wc]; + else if (wc >= 0x0380 && wc < 0x03d0) + c = ebcdic875_page03[wc-0x0380]; + else if (wc >= 0x2010 && wc < 0x2020) + c = ebcdic875_page20[wc-0x2010]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic880.h b/lib/ebcdic880.h new file mode 100644 index 00000000..bcadc521 --- /dev/null +++ b/lib/ebcdic880.h @@ -0,0 +1,137 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-880 + */ + +static const unsigned short ebcdic880_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x0452, 0x0453, 0x0451, 0x0454, 0x0455, 0x0456, + 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f, 0x042a, + 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x0403, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, + 0x0408, 0x0409, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, 0x044e, 0x0430, + 0x0431, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, + /* 0x90 */ + 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xa0 */ + 0x044f, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + /* 0xb0 */ + 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, + 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, + /* 0xe0 */ + 0x005c, 0x00a4, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x009f, +}; + +static int +ebcdic880_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic880_2uni[c]; + return 1; +} + +static const unsigned char ebcdic880_page00[176] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, /* 0xa8-0xaf */ +}; +static const unsigned char ebcdic880_page04[96] = { + 0x00, 0x63, 0x59, 0x62, 0x64, 0x65, 0x66, 0x67, /* 0x00-0x07 */ + 0x68, 0x69, 0x70, 0x71, 0x72, 0x00, 0x74, 0x75, /* 0x08-0x0f */ + 0xb9, 0xba, 0xed, 0xbf, 0xbc, 0xbd, 0xec, 0xfa, /* 0x10-0x17 */ + 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, 0xdc, /* 0x18-0x1f */ + 0xde, 0xdf, 0xea, 0xeb, 0xbe, 0xca, 0xbb, 0xfe, /* 0x20-0x27 */ + 0xfb, 0xfd, 0x57, 0xef, 0xee, 0xfc, 0xb8, 0xdd, /* 0x28-0x2f */ + 0x77, 0x78, 0xaf, 0x8d, 0x8a, 0x8b, 0xae, 0xb2, /* 0x30-0x37 */ + 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x38-0x3f */ + 0xaa, 0xab, 0xac, 0xad, 0x8c, 0x8e, 0x80, 0xb6, /* 0x40-0x47 */ + 0xb3, 0xb5, 0xb7, 0xb1, 0xb0, 0xb4, 0x76, 0xa0, /* 0x48-0x4f */ + 0x00, 0x44, 0x42, 0x43, 0x45, 0x46, 0x47, 0x48, /* 0x50-0x57 */ + 0x49, 0x51, 0x52, 0x53, 0x54, 0x00, 0x55, 0x56, /* 0x58-0x5f */ +}; + +static int +ebcdic880_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x00b0) + c = ebcdic880_page00[wc]; + else if (wc >= 0x0400 && wc < 0x0460) + c = ebcdic880_page04[wc-0x0400]; + else if (wc == 0x2116) + c = 0x58; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic905.h b/lib/ebcdic905.h new file mode 100644 index 00000000..6041c990 --- /dev/null +++ b/lib/ebcdic905.h @@ -0,0 +1,157 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-905 + */ + +static const unsigned short ebcdic905_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0xfffd, 0x010b, + 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0xfffd, 0x010a, + 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0xfffd, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, + /* 0x80 */ + 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x0127, 0x0109, 0x015d, 0x016d, 0xfffd, 0x007c, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x0125, 0x011d, 0x0135, 0x00b8, 0xfffd, 0x00a4, + /* 0xa0 */ + 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x0126, 0x0108, 0x015c, 0x016c, 0xfffd, 0x0040, + /* 0xb0 */ + 0x02d9, 0x00a3, 0x017c, 0x007d, 0x017b, 0x00a7, 0x005d, 0x00b7, + 0x00bd, 0x0024, 0x0124, 0x011c, 0x0134, 0x00a8, 0x00b4, 0x00d7, + /* 0xc0 */ + 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x0121, + /* 0xd0 */ + 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x0060, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0xfffd, + /* 0xe0 */ + 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x0120, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic905_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + unsigned short wc = ebcdic905_2uni[c]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + return RET_ILSEQ; +} + +static const unsigned char ebcdic905_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x4f, 0xfc, 0xec, 0xb9, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0xaf, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0x68, 0xdc, 0xb6, 0x5f, 0x6d, /* 0x58-0x5f */ + 0xda, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0x48, 0x8f, 0xb3, 0xcc, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0x00, 0x00, 0xb1, 0x9f, 0x00, 0x00, 0xb5, /* 0xa0-0xa7 */ + 0xbd, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ + 0x90, 0x00, 0xea, 0xfa, 0xbe, 0xa0, 0x00, 0xb7, /* 0xb0-0xb7 */ + 0x9d, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x00, 0x63, 0x00, 0x00, 0x4a, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0x00, 0x69, 0xed, 0xee, 0xeb, 0x00, 0x7b, 0xbf, /* 0xd0-0xd7 */ + 0x00, 0xfd, 0xfe, 0xfb, 0x7f, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x00, 0x43, 0x00, 0x00, 0xc0, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x00, 0x49, 0xcd, 0xce, 0xcb, 0x00, 0xa1, 0xe1, /* 0xf0-0xf7 */ + 0x00, 0xdd, 0xde, 0xdb, 0xe0, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char ebcdic905_page01[120] = { + 0xab, 0x8b, 0x67, 0x47, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0xbb, 0x9b, 0x5a, 0xd0, /* 0x18-0x1f */ + 0xef, 0xcf, 0x00, 0x00, 0xba, 0x9a, 0xaa, 0x8a, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x5b, 0x79, 0x00, 0x00, 0xbc, 0x9c, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0xac, 0x8c, 0x7c, 0x6a, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0xad, 0x8d, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0xb4, 0xb2, 0x00, 0x00, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char ebcdic905_page02[8] = { + 0x80, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ +}; + +static int +ebcdic905_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic905_page00[wc]; + else if (wc >= 0x0108 && wc < 0x0180) + c = ebcdic905_page01[wc-0x0108]; + else if (wc >= 0x02d8 && wc < 0x02e0) + c = ebcdic905_page02[wc-0x02d8]; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/ebcdic924.h b/lib/ebcdic924.h new file mode 100644 index 00000000..cc7cd7cd --- /dev/null +++ b/lib/ebcdic924.h @@ -0,0 +1,141 @@ +/* + * Copyright (C) 1999-2022 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, see . + */ + +/* + * IBM-924 + */ + +static const unsigned short ebcdic924_2uni[256] = { + /* 0x00 */ + 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, + 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, + /* 0x20 */ + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, + 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, + /* 0x30 */ + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, + /* 0x40 */ + 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, + 0x00e7, 0x00f1, 0x00dd, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, + /* 0x50 */ + 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, + 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, + /* 0x60 */ + 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, + 0x00c7, 0x00d1, 0x0160, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, + /* 0x70 */ + 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, + 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, + /* 0x80 */ + 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, + /* 0x90 */ + 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, + 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x017e, 0x00c6, 0x20ac, + /* 0xa0 */ + 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, + /* 0xb0 */ + 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x0152, + 0x0153, 0x0178, 0x00ac, 0x0161, 0x00af, 0x005d, 0x017d, 0x00d7, + /* 0xc0 */ + 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, + /* 0xd0 */ + 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, + /* 0xe0 */ + 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, + /* 0xf0 */ + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, +}; + +static int +ebcdic924_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) ebcdic924_2uni[c]; + return 1; +} + +static const unsigned char ebcdic924_page00[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ + 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ + 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* 0x58-0x5f */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ + 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ + 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ + 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x00, 0xb5, /* 0xa0-0xa7 */ + 0x00, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ + 0x90, 0x8f, 0xea, 0xfa, 0x00, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ + 0x00, 0xda, 0x9b, 0x8b, 0x00, 0x00, 0x00, 0xab, /* 0xb8-0xbf */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0x4a, 0xae, 0x59, /* 0xd8-0xdf */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ +}; +static const unsigned char ebcdic924_page01[48] = { + 0x00, 0x00, 0xb7, 0xb8, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x6a, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0xb9, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x9d, 0x00, /* 0x78-0x7f */ +}; + +static int +ebcdic924_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) +{ + unsigned char c = 0; + if (wc < 0x0100) + c = ebcdic924_page00[wc]; + else if (wc >= 0x0150 && wc < 0x0180) + c = ebcdic924_page01[wc-0x0150]; + else if (wc == 0x20ac) + c = 0x9f; + if (c != 0 || wc == 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/lib/encodings.def b/lib/encodings.def index 402b5e35..41d8063e 100644 --- a/lib/encodings.def +++ b/lib/encodings.def @@ -2,16 +2,16 @@ This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ diff --git a/lib/encodings_aix.def b/lib/encodings_aix.def index e53b565a..0a065f78 100644 --- a/lib/encodings_aix.def +++ b/lib/encodings_aix.def @@ -2,16 +2,16 @@ This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ diff --git a/lib/encodings_dos.def b/lib/encodings_dos.def index 595c9858..ae8cc556 100644 --- a/lib/encodings_dos.def +++ b/lib/encodings_dos.def @@ -2,16 +2,16 @@ This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ diff --git a/lib/encodings_extra.def b/lib/encodings_extra.def index 75e37a89..a72f6907 100644 --- a/lib/encodings_extra.def +++ b/lib/encodings_extra.def @@ -2,16 +2,16 @@ This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ diff --git a/lib/encodings_local.def b/lib/encodings_local.def index 04844777..4cbff9ee 100644 --- a/lib/encodings_local.def +++ b/lib/encodings_local.def @@ -2,16 +2,16 @@ This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ diff --git a/lib/encodings_osf1.def b/lib/encodings_osf1.def index d791a960..0ca581a5 100644 --- a/lib/encodings_osf1.def +++ b/lib/encodings_osf1.def @@ -2,16 +2,16 @@ This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ diff --git a/lib/encodings_zos.def b/lib/encodings_zos.def new file mode 100644 index 00000000..838b6bec --- /dev/null +++ b/lib/encodings_zos.def @@ -0,0 +1,471 @@ +/* Copyright (C) 2022 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 + of the License, or (at your option) any later version. + + The GNU LIBICONV Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU LIBICONV Library; see the file COPYING.LIB. + If not, see . */ + +/* Encodings used by system dependent locales on z/OS. */ + +DEFENCODING(( "IBM-037", + "IBM037", /* IANA */ + "CP037", /* IANA */ + "EBCDIC-CP-US", /* IANA */ + "EBCDIC-CP-CA", /* IANA */ + "EBCDIC-CP-WT", /* IANA */ + "EBCDIC-CP-NL", /* IANA */ + "csIBM037", /* IANA */ + ), + ebcdic037, + { ebcdic037_mbtowc, NULL }, { ebcdic037_wctomb, NULL }) + +DEFENCODING(( "IBM-273", + "IBM273", /* IANA */ + "CP273", /* IANA */ + "csIBM273", /* IANA */ + ), + ebcdic273, + { ebcdic273_mbtowc, NULL }, { ebcdic273_wctomb, NULL }) + +DEFENCODING(( "IBM-277", + "IBM277", /* IANA */ + "EBCDIC-CP-DK", /* IANA */ + "EBCDIC-CP-NO", /* IANA */ + "csIBM277", /* IANA */ + ), + ebcdic277, + { ebcdic277_mbtowc, NULL }, { ebcdic277_wctomb, NULL }) + +DEFENCODING(( "IBM-278", + "IBM278", /* IANA */ + "CP278", /* IANA */ + "EBCDIC-CP-FI", /* IANA */ + "EBCDIC-CP-SE", /* IANA */ + "csIBM278", /* IANA */ + ), + ebcdic278, + { ebcdic278_mbtowc, NULL }, { ebcdic278_wctomb, NULL }) + +DEFENCODING(( "IBM-280", + "IBM280", /* IANA */ + "CP280", /* IANA */ + "EBCDIC-CP-IT", /* IANA */ + "csIBM280", /* IANA */ + ), + ebcdic280, + { ebcdic280_mbtowc, NULL }, { ebcdic280_wctomb, NULL }) + +DEFENCODING(( "IBM-282", + "IBM282", + ), + ebcdic282, + { ebcdic282_mbtowc, NULL }, { ebcdic282_wctomb, NULL }) + +DEFENCODING(( "IBM-284", + "IBM284", /* IANA */ + "CP284", /* IANA */ + "EBCDIC-CP-ES", /* IANA */ + "csIBM284", /* IANA */ + ), + ebcdic284, + { ebcdic284_mbtowc, NULL }, { ebcdic284_wctomb, NULL }) + +DEFENCODING(( "IBM-285", + "IBM285", /* IANA */ + "CP285", /* IANA */ + "EBCDIC-CP-GB", /* IANA */ + "csIBM285", /* IANA */ + ), + ebcdic285, + { ebcdic285_mbtowc, NULL }, { ebcdic285_wctomb, NULL }) + +DEFENCODING(( "IBM-297", + "IBM297", /* IANA */ + "CP297", /* IANA */ + "EBCDIC-CP-FR", /* IANA */ + "csIBM297", /* IANA */ + ), + ebcdic297, + { ebcdic297_mbtowc, NULL }, { ebcdic297_wctomb, NULL }) + +DEFENCODING(( "IBM-423", + "IBM423", /* IANA */ + "CP423", /* IANA */ + "EBCDIC-CP-GR", /* IANA */ + "csIBM423", /* IANA */ + ), + ebcdic423, + { ebcdic423_mbtowc, NULL }, { ebcdic423_wctomb, NULL }) + +DEFENCODING(( "IBM-424", + "IBM424", /* IANA */ + "CP424", /* IANA */ + "EBCDIC-CP-HE", /* IANA */ + "csIBM424", /* IANA */ + ), + ebcdic424, + { ebcdic424_mbtowc, NULL }, { ebcdic424_wctomb, NULL }) + +DEFENCODING(( "IBM-425", + "IBM425", + ), + ebcdic425, + { ebcdic425_mbtowc, NULL }, { ebcdic425_wctomb, NULL }) + +DEFENCODING(( "IBM-500", + "IBM500", /* IANA */ + "CP500", /* IANA */ + "EBCDIC-CP-BE", /* IANA */ + "EBCDIC-CP-CH", /* IANA */ + "csIBM500", /* IANA */ + ), + ebcdic500, + { ebcdic500_mbtowc, NULL }, { ebcdic500_wctomb, NULL }) + +DEFENCODING(( "IBM-838", + "IBM838", + "IBM-THAI", /* IANA */ + "csIBMThai", /* IANA */ + ), + ebcdic838, + { ebcdic838_mbtowc, NULL }, { ebcdic838_wctomb, NULL }) + +DEFENCODING(( "IBM-870", + "IBM870", /* IANA */ + "CP870", /* IANA */ + "EBCDIC-CP-ROECE", /* IANA */ + "EBCDIC-CP-YU", /* IANA */ + "csIBM870", /* IANA */ + ), + ebcdic870, + { ebcdic870_mbtowc, NULL }, { ebcdic870_wctomb, NULL }) + +DEFENCODING(( "IBM-871", + "IBM871", /* IANA */ + "CP871", /* IANA */ + "EBCDIC-CP-IS", /* IANA */ + "csIBM871", /* IANA */ + ), + ebcdic871, + { ebcdic871_mbtowc, NULL }, { ebcdic871_wctomb, NULL }) + +DEFENCODING(( "IBM-875", + "IBM875", /* glibc */ + "CP875", /* glibc */ + "EBCDIC-GREEK", /* glibc */ + ), + ebcdic875, + { ebcdic875_mbtowc, NULL }, { ebcdic875_wctomb, NULL }) + +DEFENCODING(( "IBM-880", + "IBM880", /* IANA */ + "CP880", /* IANA */ + "EBCDIC-CYRILLIC", /* IANA */ + "csIBM880", /* IANA */ + ), + ebcdic880, + { ebcdic880_mbtowc, NULL }, { ebcdic880_wctomb, NULL }) + +DEFENCODING(( "IBM-905", + "IBM905", /* IANA */ + "CP905", /* IANA */ + "EBCDIC-CP-TR", /* IANA */ + "csIBM905", /* IANA */ + ), + ebcdic905, + { ebcdic905_mbtowc, NULL }, { ebcdic905_wctomb, NULL }) + +DEFENCODING(( "IBM-924", + "IBM924", + "IBM00924", /* IANA */ + "CCSID00924", /* IANA */ + "CP00924", /* IANA */ + "EBCDIC-LATIN9-EURO", /* IANA */ + "csIBM00924", /* IANA */ + ), + ebcdic924, + { ebcdic924_mbtowc, NULL }, { ebcdic924_wctomb, NULL }) + +DEFENCODING(( "IBM-1025", + "IBM1025", /* glibc */ + "CP1025", /* glibc */ + ), + ebcdic1025, + { ebcdic1025_mbtowc, NULL }, { ebcdic1025_wctomb, NULL }) + +DEFENCODING(( "IBM-1026", + "IBM1026", /* IANA */ + "CP1026", /* IANA */ + "csIBM1026", /* IANA */ + ), + ebcdic1026, + { ebcdic1026_mbtowc, NULL }, { ebcdic1026_wctomb, NULL }) + +DEFENCODING(( "IBM-1047", /* IANA */ + "IBM1047", /* IANA */ + "CP1047", /* glibc */ + "csIBM1047", /* IANA */ + ), + ebcdic1047, + { ebcdic1047_mbtowc, NULL }, { ebcdic1047_wctomb, NULL }) + +DEFENCODING(( "IBM-1097", + "IBM1097", /* glibc */ + "CP1097", /* glibc */ + ), + ebcdic1097, + { ebcdic1097_mbtowc, NULL }, { ebcdic1097_wctomb, NULL }) + +DEFENCODING(( "IBM-1112", + "IBM1112", /* glibc */ + "CP1112", /* glibc */ + ), + ebcdic1112, + { ebcdic1112_mbtowc, NULL }, { ebcdic1112_wctomb, NULL }) + +DEFENCODING(( "IBM-1122", + "IBM1122", /* glibc */ + "CP1122", /* glibc */ + ), + ebcdic1122, + { ebcdic1122_mbtowc, NULL }, { ebcdic1122_wctomb, NULL }) + +DEFENCODING(( "IBM-1123", + "IBM1123", /* glibc */ + "CP1123", /* glibc */ + ), + ebcdic1123, + { ebcdic1123_mbtowc, NULL }, { ebcdic1123_wctomb, NULL }) + +DEFENCODING(( "IBM-1130", + "IBM1130", /* glibc */ + "CP1130", /* glibc */ + ), + ebcdic1130, + { ebcdic1130_mbtowc, NULL }, { ebcdic1130_wctomb, NULL }) + +DEFENCODING(( "IBM-1132", + "IBM1132", /* glibc */ + "CP1132", /* glibc */ + ), + ebcdic1132, + { ebcdic1132_mbtowc, NULL }, { ebcdic1132_wctomb, NULL }) + +DEFENCODING(( "IBM-1137", + "IBM1137", /* glibc */ + "CP1137", /* glibc */ + ), + ebcdic1137, + { ebcdic1137_mbtowc, NULL }, { ebcdic1137_wctomb, NULL }) + +DEFENCODING(( "IBM-1140", + "IBM1140", + "IBM01140", /* IANA */ + "CCSID01140", /* IANA */ + "CP01140", /* IANA */ + "EBCDIC-US-37+EURO", /* IANA */ + "csIBM01140", /* IANA */ + ), + ebcdic1140, + { ebcdic1140_mbtowc, NULL }, { ebcdic1140_wctomb, NULL }) + +DEFENCODING(( "IBM-1141", + "IBM1141", + "IBM01141", /* IANA */ + "CCSID01141", /* IANA */ + "CP01141", /* IANA */ + "EBCDIC-DE-273+EURO", /* IANA */ + "csIBM01141", /* IANA */ + ), + ebcdic1141, + { ebcdic1141_mbtowc, NULL }, { ebcdic1141_wctomb, NULL }) + +DEFENCODING(( "IBM-1142", + "IBM1142", + "IBM01142", /* IANA */ + "CCSID01142", /* IANA */ + "CP01142", /* IANA */ + "EBCDIC-DK-277+EURO", /* IANA */ + "EBCDIC-NO-277+EURO", /* IANA */ + "csIBM01142", /* IANA */ + ), + ebcdic1142, + { ebcdic1142_mbtowc, NULL }, { ebcdic1142_wctomb, NULL }) + +DEFENCODING(( "IBM-1143", + "IBM1143", + "IBM01143", /* IANA */ + "CCSID01143", /* IANA */ + "CP01143", /* IANA */ + "EBCDIC-FI-278+EURO", /* IANA */ + "EBCDIC-SE-278+EURO", /* IANA */ + "csIBM01143", /* IANA */ + ), + ebcdic1143, + { ebcdic1143_mbtowc, NULL }, { ebcdic1143_wctomb, NULL }) + +DEFENCODING(( "IBM-1144", + "IBM1144", + "IBM01144", /* IANA */ + "CCSID01144", /* IANA */ + "CP01144", /* IANA */ + "EBCDIC-IT-280+EURO", /* IANA */ + "csPC8CodePage1144", /* IANA */ + ), + ebcdic1144, + { ebcdic1144_mbtowc, NULL }, { ebcdic1144_wctomb, NULL }) + +DEFENCODING(( "IBM-1145", + "IBM1145", + "IBM01145", /* IANA */ + "CCSID01145", /* IANA */ + "CP01145", /* IANA */ + "EBCDIC-ES-284+EURO", /* IANA */ + "csIBM01145", /* IANA */ + ), + ebcdic1145, + { ebcdic1145_mbtowc, NULL }, { ebcdic1145_wctomb, NULL }) + +DEFENCODING(( "IBM-1146", + "IBM1146", + "IBM01146", /* IANA */ + "CCSID01146", /* IANA */ + "CP01146", /* IANA */ + "EBCDIC-GB-285+EURO", /* IANA */ + "csPC8CodePage1146", /* IANA */ + ), + ebcdic1146, + { ebcdic1146_mbtowc, NULL }, { ebcdic1146_wctomb, NULL }) + +DEFENCODING(( "IBM-1147", + "IBM1147", + "IBM01147", /* IANA */ + "CCSID01147", /* IANA */ + "CP01147", /* IANA */ + "EBCDIC-FR-297+EURO", /* IANA */ + "csIBM01147", /* IANA */ + ), + ebcdic1147, + { ebcdic1147_mbtowc, NULL }, { ebcdic1147_wctomb, NULL }) + +DEFENCODING(( "IBM-1148", + "IBM1148", + "IBM01148", /* IANA */ + "CCSID01148", /* IANA */ + "CP01148", /* IANA */ + "EBCDIC-INTERNATIONAL-500+EURO", /* IANA */ + "csIBM01148", /* IANA */ + ), + ebcdic1148, + { ebcdic1148_mbtowc, NULL }, { ebcdic1148_wctomb, NULL }) + +DEFENCODING(( "IBM-1149", + "IBM1149", + "IBM01149", /* IANA */ + "CCSID01149", /* IANA */ + "CP01149", /* IANA */ + "EBCDIC-IS-871+EURO", /* IANA */ + "csIBM01149", /* IANA */ + ), + ebcdic1149, + { ebcdic1149_mbtowc, NULL }, { ebcdic1149_wctomb, NULL }) + +DEFENCODING(( "IBM-1153", + "IBM1153", /* glibc */ + "CP1153", /* glibc */ + ), + ebcdic1153, + { ebcdic1153_mbtowc, NULL }, { ebcdic1153_wctomb, NULL }) + +DEFENCODING(( "IBM-1154", + "IBM1154", /* glibc */ + "CP1154", /* glibc */ + ), + ebcdic1154, + { ebcdic1154_mbtowc, NULL }, { ebcdic1154_wctomb, NULL }) + +DEFENCODING(( "IBM-1155", + "IBM1155", /* glibc */ + "CP1155", /* glibc */ + ), + ebcdic1155, + { ebcdic1155_mbtowc, NULL }, { ebcdic1155_wctomb, NULL }) + +DEFENCODING(( "IBM-1156", + "IBM1156", /* glibc */ + "CP1156", /* glibc */ + ), + ebcdic1156, + { ebcdic1156_mbtowc, NULL }, { ebcdic1156_wctomb, NULL }) + +DEFENCODING(( "IBM-1157", + "IBM1157", /* glibc */ + "CP1157", /* glibc */ + ), + ebcdic1157, + { ebcdic1157_mbtowc, NULL }, { ebcdic1157_wctomb, NULL }) + +DEFENCODING(( "IBM-1158", + "IBM1158", /* glibc */ + "CP1158", /* glibc */ + ), + ebcdic1158, + { ebcdic1158_mbtowc, NULL }, { ebcdic1158_wctomb, NULL }) + +DEFENCODING(( "IBM-1160", + "IBM1160", /* glibc */ + "CP1160", /* glibc */ + ), + ebcdic1160, + { ebcdic1160_mbtowc, NULL }, { ebcdic1160_wctomb, NULL }) + +DEFENCODING(( "IBM-1164", + "IBM1164", /* glibc */ + "CP1164", /* glibc */ + ), + ebcdic1164, + { ebcdic1164_mbtowc, NULL }, { ebcdic1164_wctomb, NULL }) + +DEFENCODING(( "IBM-1165", + "IBM1165", + ), + ebcdic1165, + { ebcdic1165_mbtowc, NULL }, { ebcdic1165_wctomb, NULL }) + +DEFENCODING(( "IBM-1166", + "IBM1166", /* glibc */ + "CP1166", /* glibc */ + ), + ebcdic1166, + { ebcdic1166_mbtowc, NULL }, { ebcdic1166_wctomb, NULL }) + +DEFENCODING(( "IBM-4971", + "IBM4971", /* glibc */ + "CP4971", /* glibc */ + ), + ebcdic4971, + { ebcdic4971_mbtowc, NULL }, { ebcdic4971_wctomb, NULL }) + +DEFENCODING(( "IBM-12712", + "IBM12712", /* glibc */ + "CP12712", /* glibc */ + ), + ebcdic12712, + { ebcdic12712_mbtowc, NULL }, { ebcdic12712_wctomb, NULL }) + +DEFENCODING(( "IBM-16804", + "IBM16804", /* glibc */ + "CP16804", /* glibc */ + ), + ebcdic16804, + { ebcdic16804_mbtowc, NULL }, { ebcdic16804_wctomb, NULL }) diff --git a/lib/euc_cn.h b/lib/euc_cn.h index b37a9969..d698617d 100644 --- a/lib/euc_cn.h +++ b/lib/euc_cn.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/euc_jisx0213.h b/lib/euc_jisx0213.h index fa8f654e..49becad9 100644 --- a/lib/euc_jisx0213.h +++ b/lib/euc_jisx0213.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/euc_jp.h b/lib/euc_jp.h index 66c9098f..f147c47a 100644 --- a/lib/euc_jp.h +++ b/lib/euc_jp.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/euc_kr.h b/lib/euc_kr.h index 5771fe55..2687f887 100644 --- a/lib/euc_kr.h +++ b/lib/euc_kr.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/euc_tw.h b/lib/euc_tw.h index e35f7f28..4fd4e14f 100644 --- a/lib/euc_tw.h +++ b/lib/euc_tw.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/flags.h b/lib/flags.h index 19de6388..2bb03884 100644 --- a/lib/flags.h +++ b/lib/flags.h @@ -149,6 +149,59 @@ #define ei_cp865_oflags (0) #define ei_cp869_oflags (HAVE_QUOTATION_MARKS) #define ei_cp1125_oflags (0) +#define ei_ebcdic037_oflags (HAVE_ACCENTS) +#define ei_ebcdic273_oflags (HAVE_ACCENTS) +#define ei_ebcdic277_oflags (HAVE_ACCENTS) +#define ei_ebcdic278_oflags (HAVE_ACCENTS) +#define ei_ebcdic280_oflags (HAVE_ACCENTS) +#define ei_ebcdic282_oflags (HAVE_ACCENTS) +#define ei_ebcdic284_oflags (HAVE_ACCENTS) +#define ei_ebcdic285_oflags (HAVE_ACCENTS) +#define ei_ebcdic297_oflags (HAVE_ACCENTS) +#define ei_ebcdic423_oflags (HAVE_ACCENTS) +#define ei_ebcdic424_oflags (HAVE_ACCENTS) +#define ei_ebcdic425_oflags (0) +#define ei_ebcdic500_oflags (HAVE_ACCENTS) +#define ei_ebcdic838_oflags (0) +#define ei_ebcdic870_oflags (HAVE_ACCENTS) +#define ei_ebcdic871_oflags (HAVE_ACCENTS) +#define ei_ebcdic875_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_ebcdic880_oflags (0) +#define ei_ebcdic905_oflags (HAVE_ACCENTS) +#define ei_ebcdic924_oflags (0) +#define ei_ebcdic1025_oflags (0) +#define ei_ebcdic1026_oflags (HAVE_ACCENTS) +#define ei_ebcdic1047_oflags (HAVE_ACCENTS) +#define ei_ebcdic1097_oflags (0) +#define ei_ebcdic1112_oflags (0) +#define ei_ebcdic1122_oflags (HAVE_ACCENTS) +#define ei_ebcdic1123_oflags (0) +#define ei_ebcdic1130_oflags (0) +#define ei_ebcdic1132_oflags (0) +#define ei_ebcdic1137_oflags (0) +#define ei_ebcdic1140_oflags (HAVE_ACCENTS) +#define ei_ebcdic1141_oflags (HAVE_ACCENTS) +#define ei_ebcdic1142_oflags (HAVE_ACCENTS) +#define ei_ebcdic1143_oflags (HAVE_ACCENTS) +#define ei_ebcdic1144_oflags (HAVE_ACCENTS) +#define ei_ebcdic1145_oflags (HAVE_ACCENTS) +#define ei_ebcdic1146_oflags (HAVE_ACCENTS) +#define ei_ebcdic1147_oflags (HAVE_ACCENTS) +#define ei_ebcdic1148_oflags (HAVE_ACCENTS) +#define ei_ebcdic1149_oflags (HAVE_ACCENTS) +#define ei_ebcdic1153_oflags (HAVE_ACCENTS) +#define ei_ebcdic1154_oflags (0) +#define ei_ebcdic1155_oflags (HAVE_ACCENTS) +#define ei_ebcdic1156_oflags (0) +#define ei_ebcdic1157_oflags (HAVE_ACCENTS) +#define ei_ebcdic1158_oflags (0) +#define ei_ebcdic1160_oflags (0) +#define ei_ebcdic1164_oflags (0) +#define ei_ebcdic1165_oflags (HAVE_ACCENTS) +#define ei_ebcdic1166_oflags (0) +#define ei_ebcdic4971_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_ebcdic12712_oflags (HAVE_ACCENTS) +#define ei_ebcdic16804_oflags (0) #define ei_euc_jisx0213_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) #define ei_shift_jisx0213_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) #define ei_iso2022_jp3_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) diff --git a/lib/flushwc.h b/lib/flushwc.h index 35f192ac..ec47fee7 100644 --- a/lib/flushwc.h +++ b/lib/flushwc.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/gb12345.h b/lib/gb12345.h index 53f46d35..b8d1eb62 100644 --- a/lib/gb12345.h +++ b/lib/gb12345.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/gb12345ext.h b/lib/gb12345ext.h index 53ec0e14..1e9e2fdd 100644 --- a/lib/gb12345ext.h +++ b/lib/gb12345ext.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/gb18030.h b/lib/gb18030.h index c58042d2..fc08b365 100644 --- a/lib/gb18030.h +++ b/lib/gb18030.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/gb18030ext.h b/lib/gb18030ext.h index 0469e5e2..62d9a279 100644 --- a/lib/gb18030ext.h +++ b/lib/gb18030ext.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/gb18030uni.h b/lib/gb18030uni.h index d79e143e..c61ae890 100644 --- a/lib/gb18030uni.h +++ b/lib/gb18030uni.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/gb2312.h b/lib/gb2312.h index 0fc7fba2..fb0621a7 100644 --- a/lib/gb2312.h +++ b/lib/gb2312.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/gbk.h b/lib/gbk.h index a0658d47..7ed3509b 100644 --- a/lib/gbk.h +++ b/lib/gbk.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/gbkext1.h b/lib/gbkext1.h index c6f33b12..7aac6c74 100644 --- a/lib/gbkext1.h +++ b/lib/gbkext1.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/gbkext2.h b/lib/gbkext2.h index 8f5c4626..af19aa5b 100644 --- a/lib/gbkext2.h +++ b/lib/gbkext2.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/gbkext_inv.h b/lib/gbkext_inv.h index 40d26577..eeb76e4a 100644 --- a/lib/gbkext_inv.h +++ b/lib/gbkext_inv.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/georgian_academy.h b/lib/georgian_academy.h index fa283a09..ff00fd39 100644 --- a/lib/georgian_academy.h +++ b/lib/georgian_academy.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/georgian_ps.h b/lib/georgian_ps.h index 0ad8b823..2809f94e 100644 --- a/lib/georgian_ps.h +++ b/lib/georgian_ps.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/hkscs1999.h b/lib/hkscs1999.h index 8e1d39d4..91607d7f 100644 --- a/lib/hkscs1999.h +++ b/lib/hkscs1999.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/hkscs2001.h b/lib/hkscs2001.h index c8054154..6cfd3d5a 100644 --- a/lib/hkscs2001.h +++ b/lib/hkscs2001.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/hkscs2004.h b/lib/hkscs2004.h index fa1a1bf6..943a0b7f 100644 --- a/lib/hkscs2004.h +++ b/lib/hkscs2004.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/hkscs2008.h b/lib/hkscs2008.h index 58ebb2a2..656b778c 100644 --- a/lib/hkscs2008.h +++ b/lib/hkscs2008.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/hp_roman8.h b/lib/hp_roman8.h index 6ff16394..671a166b 100644 --- a/lib/hp_roman8.h +++ b/lib/hp_roman8.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/hz.h b/lib/hz.h index a6191905..9e78518c 100644 --- a/lib/hz.h +++ b/lib/hz.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iconv.c b/lib/iconv.c index e7f81af5..8e94b6f8 100644 --- a/lib/iconv.c +++ b/lib/iconv.c @@ -1,18 +1,18 @@ /* - * Copyright (C) 1999-2008, 2011, 2016, 2018 Free Software Foundation, Inc. + * Copyright (C) 1999-2008, 2011, 2016, 2018, 2020, 2022 Free Software Foundation, Inc. * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ @@ -37,6 +37,7 @@ #define USE_AIX #define USE_OSF1 #define USE_DOS +#define USE_ZOS #define USE_EXTRA #else /* @@ -52,6 +53,11 @@ #if defined(__DJGPP__) || (defined(_WIN32) && (defined(_MSC_VER) || defined(__MINGW32__))) #define USE_DOS #endif +/* Enable the EBCDIC encodings not only on z/OS but also on Linux/s390, for + easier interoperability between z/OS and Linux/s390. */ +#if defined(__MVS__) || (defined(__linux__) && (defined(__s390__) || defined(__s390x__))) +#define USE_ZOS +#endif #endif /* @@ -98,6 +104,9 @@ enum { #ifdef USE_DOS # include "encodings_dos.def" #endif +#ifdef USE_ZOS +# include "encodings_zos.def" +#endif #ifdef USE_EXTRA # include "encodings_extra.def" #endif @@ -119,6 +128,9 @@ static struct encoding const all_encodings[] = { #ifdef USE_DOS # include "encodings_dos.def" #endif +#ifdef USE_ZOS +# include "encodings_zos.def" +#endif #ifdef USE_EXTRA # include "encodings_extra.def" #endif @@ -159,7 +171,7 @@ static struct encoding const all_encodings[] = { * Defines * const struct alias * aliases2_lookup (const char *str); */ -#if defined(USE_AIX) || defined(USE_OSF1) || defined(USE_DOS) || defined(USE_EXTRA) /* || ... */ +#if defined(USE_AIX) || defined(USE_OSF1) || defined(USE_DOS) || defined(USE_ZOS) || defined(USE_EXTRA) /* || ... */ struct stringpool2_t { #define S(tag,name,encoding_index) char stringpool_##tag[sizeof(name)]; #include "aliases2.h" @@ -364,8 +376,8 @@ static int compare_by_index (const void * arg1, const void * arg2) static int compare_by_name (const void * arg1, const void * arg2) { - const char * name1 = *(const char **)arg1; - const char * name2 = *(const char **)arg2; + const char * name1 = *(const char * const *)arg1; + const char * name2 = *(const char * const *)arg2; /* Compare alphabetically, but put "CS" names at the end. */ int sign = strcmp(name1,name2); if (sign != 0) { @@ -472,6 +484,9 @@ static const unsigned short all_canonical[] = { #ifdef USE_DOS # include "canonical_dos.h" #endif +#ifdef USE_ZOS +# include "canonical_zos.h" +#endif #ifdef USE_EXTRA # include "canonical_extra.h" #endif @@ -507,7 +522,7 @@ const char * iconv_canonicalize (const char * name) for (code = name;;) { /* Search code in the table. */ for (cp = code, bp = buf, count = MAX_WORD_LENGTH+10+1; ; cp++, bp++) { - unsigned char c = * (unsigned char *) cp; + unsigned char c = (unsigned char) *cp; if (c >= 0x80) goto invalid; if (c >= 'a' && c <= 'z') @@ -595,7 +610,7 @@ const char * iconv_canonicalize (const char * name) return name; } -LIBICONV_API int _libiconv_version = _LIBICONV_VERSION; +LIBICONV_DLL_EXPORTED int _libiconv_version = _LIBICONV_VERSION; #if defined __FreeBSD__ && !defined __gnu_freebsd__ /* GNU libiconv is the native FreeBSD iconv implementation since 2002. diff --git a/lib/iconv_open1.h b/lib/iconv_open1.h index 93b8419c..c6b24efd 100644 --- a/lib/iconv_open1.h +++ b/lib/iconv_open1.h @@ -1,18 +1,18 @@ /* - * Copyright (C) 1999-2008, 2011, 2018 Free Software Foundation, Inc. + * Copyright (C) 1999-2008, 2011, 2018, 2020 Free Software Foundation, Inc. * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ @@ -46,7 +46,7 @@ for (to_wchar = 0;;) { /* Search tocode in the table. */ for (cp = tocode, bp = buf, count = MAX_WORD_LENGTH+10+1; ; cp++, bp++) { - unsigned char c = * (unsigned char *) cp; + unsigned char c = (unsigned char) *cp; if (c >= 0x80) goto invalid; if (c >= 'a' && c <= 'z') @@ -138,7 +138,7 @@ for (from_wchar = 0;;) { /* Search fromcode in the table. */ for (cp = fromcode, bp = buf, count = MAX_WORD_LENGTH+10+1; ; cp++, bp++) { - unsigned char c = * (unsigned char *) cp; + unsigned char c = (unsigned char) *cp; if (c >= 0x80) goto invalid; if (c >= 'a' && c <= 'z') diff --git a/lib/iconv_open2.h b/lib/iconv_open2.h index e3a566fe..aaac547c 100644 --- a/lib/iconv_open2.h +++ b/lib/iconv_open2.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso2022_cn.h b/lib/iso2022_cn.h index 4ac4131a..800863cc 100644 --- a/lib/iso2022_cn.h +++ b/lib/iso2022_cn.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso2022_cnext.h b/lib/iso2022_cnext.h index 7d31864b..8e6d3090 100644 --- a/lib/iso2022_cnext.h +++ b/lib/iso2022_cnext.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso2022_jp.h b/lib/iso2022_jp.h index 351dc16b..cdc04960 100644 --- a/lib/iso2022_jp.h +++ b/lib/iso2022_jp.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso2022_jp1.h b/lib/iso2022_jp1.h index d00fe7e4..050184e1 100644 --- a/lib/iso2022_jp1.h +++ b/lib/iso2022_jp1.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso2022_jp2.h b/lib/iso2022_jp2.h index 69ad9282..2090cc0d 100644 --- a/lib/iso2022_jp2.h +++ b/lib/iso2022_jp2.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso2022_jp3.h b/lib/iso2022_jp3.h index e7219a00..9b38f16a 100644 --- a/lib/iso2022_jp3.h +++ b/lib/iso2022_jp3.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso2022_jpms.h b/lib/iso2022_jpms.h index 5cc54896..2c424054 100644 --- a/lib/iso2022_jpms.h +++ b/lib/iso2022_jpms.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso2022_kr.h b/lib/iso2022_kr.h index 9aeeacbd..0256505d 100644 --- a/lib/iso2022_kr.h +++ b/lib/iso2022_kr.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso646_cn.h b/lib/iso646_cn.h index 2f85ea97..3e7e2a0d 100644 --- a/lib/iso646_cn.h +++ b/lib/iso646_cn.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso646_jp.h b/lib/iso646_jp.h index f6b52812..189dc730 100644 --- a/lib/iso646_jp.h +++ b/lib/iso646_jp.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_1.h b/lib/iso8859_1.h index a04c0494..d6251d96 100644 --- a/lib/iso8859_1.h +++ b/lib/iso8859_1.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_10.h b/lib/iso8859_10.h index 6737c1e8..5d47195a 100644 --- a/lib/iso8859_10.h +++ b/lib/iso8859_10.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_11.h b/lib/iso8859_11.h index fec42b34..d42de9eb 100644 --- a/lib/iso8859_11.h +++ b/lib/iso8859_11.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_13.h b/lib/iso8859_13.h index 061a6afc..98df56a3 100644 --- a/lib/iso8859_13.h +++ b/lib/iso8859_13.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_14.h b/lib/iso8859_14.h index f88b8978..16630d7a 100644 --- a/lib/iso8859_14.h +++ b/lib/iso8859_14.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_15.h b/lib/iso8859_15.h index 4a99c246..d3feb896 100644 --- a/lib/iso8859_15.h +++ b/lib/iso8859_15.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_16.h b/lib/iso8859_16.h index 0bd7a2d6..cbb112ae 100644 --- a/lib/iso8859_16.h +++ b/lib/iso8859_16.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_2.h b/lib/iso8859_2.h index ecd225a2..2744bc6a 100644 --- a/lib/iso8859_2.h +++ b/lib/iso8859_2.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_3.h b/lib/iso8859_3.h index 5c526317..85dde030 100644 --- a/lib/iso8859_3.h +++ b/lib/iso8859_3.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_4.h b/lib/iso8859_4.h index 8d0af490..50c777c9 100644 --- a/lib/iso8859_4.h +++ b/lib/iso8859_4.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_5.h b/lib/iso8859_5.h index 3fdddb49..e56347fd 100644 --- a/lib/iso8859_5.h +++ b/lib/iso8859_5.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_6.h b/lib/iso8859_6.h index d0836cf4..bbe93701 100644 --- a/lib/iso8859_6.h +++ b/lib/iso8859_6.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_7.h b/lib/iso8859_7.h index c879dd8c..3d9b7241 100644 --- a/lib/iso8859_7.h +++ b/lib/iso8859_7.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_8.h b/lib/iso8859_8.h index 5a7a6380..7e3ba96b 100644 --- a/lib/iso8859_8.h +++ b/lib/iso8859_8.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/iso8859_9.h b/lib/iso8859_9.h index 4759c9ba..eb09c583 100644 --- a/lib/iso8859_9.h +++ b/lib/iso8859_9.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/isoir165.h b/lib/isoir165.h index 3b173028..28f47e3c 100644 --- a/lib/isoir165.h +++ b/lib/isoir165.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/isoir165ext.h b/lib/isoir165ext.h index c00898d6..c92cc408 100644 --- a/lib/isoir165ext.h +++ b/lib/isoir165ext.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/java.h b/lib/java.h index e37f28e4..841bfa9e 100644 --- a/lib/java.h +++ b/lib/java.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/jisx0201.h b/lib/jisx0201.h index 5d2cdf55..739fae66 100644 --- a/lib/jisx0201.h +++ b/lib/jisx0201.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/jisx0208.h b/lib/jisx0208.h index e6fd421b..262cd405 100644 --- a/lib/jisx0208.h +++ b/lib/jisx0208.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/jisx0212.h b/lib/jisx0212.h index f78de1b2..05fbdc85 100644 --- a/lib/jisx0212.h +++ b/lib/jisx0212.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/jisx0213.h b/lib/jisx0213.h index 455f281f..9c0016a0 100644 --- a/lib/jisx0213.h +++ b/lib/jisx0213.h @@ -3,22 +3,22 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ /* - * JISX0213:2000 + * JISX0213:2004 */ #ifndef _JISX0213_H diff --git a/lib/johab.h b/lib/johab.h index e5b8d3a5..6ac624d4 100644 --- a/lib/johab.h +++ b/lib/johab.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/johab_hangul.h b/lib/johab_hangul.h index f64792db..1a9bc734 100644 --- a/lib/johab_hangul.h +++ b/lib/johab_hangul.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/koi8_r.h b/lib/koi8_r.h index 46c04731..a60c5fa0 100644 --- a/lib/koi8_r.h +++ b/lib/koi8_r.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/koi8_ru.h b/lib/koi8_ru.h index 1120f2be..ee0b0331 100644 --- a/lib/koi8_ru.h +++ b/lib/koi8_ru.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/koi8_t.h b/lib/koi8_t.h index 49bb11d7..a2e9bf50 100644 --- a/lib/koi8_t.h +++ b/lib/koi8_t.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/koi8_u.h b/lib/koi8_u.h index 6fb2c687..f035b30c 100644 --- a/lib/koi8_u.h +++ b/lib/koi8_u.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/ksc5601.h b/lib/ksc5601.h index 7de72239..0a0b7489 100644 --- a/lib/ksc5601.h +++ b/lib/ksc5601.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/loop_unicode.h b/lib/loop_unicode.h index 82322ebe..973e8b74 100644 --- a/lib/loop_unicode.h +++ b/lib/loop_unicode.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/loop_wchar.h b/lib/loop_wchar.h index bb8672f4..ff643d33 100644 --- a/lib/loop_wchar.h +++ b/lib/loop_wchar.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/loops.h b/lib/loops.h index ec0943d5..8125c365 100644 --- a/lib/loops.h +++ b/lib/loops.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/mac_arabic.h b/lib/mac_arabic.h index d7e45838..43ea38bd 100644 --- a/lib/mac_arabic.h +++ b/lib/mac_arabic.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/mac_centraleurope.h b/lib/mac_centraleurope.h index ba7373a1..f38cf870 100644 --- a/lib/mac_centraleurope.h +++ b/lib/mac_centraleurope.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/mac_croatian.h b/lib/mac_croatian.h index c7f1c662..2b023e29 100644 --- a/lib/mac_croatian.h +++ b/lib/mac_croatian.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/mac_cyrillic.h b/lib/mac_cyrillic.h index c2091124..41111b03 100644 --- a/lib/mac_cyrillic.h +++ b/lib/mac_cyrillic.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/mac_greek.h b/lib/mac_greek.h index 00b4adeb..98e92062 100644 --- a/lib/mac_greek.h +++ b/lib/mac_greek.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/mac_hebrew.h b/lib/mac_hebrew.h index 4a06f529..d66bd9cb 100644 --- a/lib/mac_hebrew.h +++ b/lib/mac_hebrew.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/mac_iceland.h b/lib/mac_iceland.h index beac5a3e..9a45bbf0 100644 --- a/lib/mac_iceland.h +++ b/lib/mac_iceland.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/mac_roman.h b/lib/mac_roman.h index d27ee5ad..cb126bc8 100644 --- a/lib/mac_roman.h +++ b/lib/mac_roman.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/mac_romania.h b/lib/mac_romania.h index fd06a976..ac03b1d9 100644 --- a/lib/mac_romania.h +++ b/lib/mac_romania.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/mac_thai.h b/lib/mac_thai.h index 04b288fd..804cc3cc 100644 --- a/lib/mac_thai.h +++ b/lib/mac_thai.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/mac_turkish.h b/lib/mac_turkish.h index 589640bf..b61ed59d 100644 --- a/lib/mac_turkish.h +++ b/lib/mac_turkish.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/mac_ukraine.h b/lib/mac_ukraine.h index d7bb14f7..b83444a5 100644 --- a/lib/mac_ukraine.h +++ b/lib/mac_ukraine.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/mulelao.h b/lib/mulelao.h index c3ffbd47..8b92855f 100644 --- a/lib/mulelao.h +++ b/lib/mulelao.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/nextstep.h b/lib/nextstep.h index 917fddb3..481e621d 100644 --- a/lib/nextstep.h +++ b/lib/nextstep.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/pt154.h b/lib/pt154.h index fa3f29b5..9e9cec8c 100644 --- a/lib/pt154.h +++ b/lib/pt154.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/riscos1.h b/lib/riscos1.h index beda916f..0613d899 100644 --- a/lib/riscos1.h +++ b/lib/riscos1.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/rk1048.h b/lib/rk1048.h index 008ca26c..4ffb8901 100644 --- a/lib/rk1048.h +++ b/lib/rk1048.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/shift_jisx0213.h b/lib/shift_jisx0213.h index 8e41243a..f67dbfc1 100644 --- a/lib/shift_jisx0213.h +++ b/lib/shift_jisx0213.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/sjis.h b/lib/sjis.h index fa7dc2ad..0dba78c1 100644 --- a/lib/sjis.h +++ b/lib/sjis.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/tcvn.h b/lib/tcvn.h index 87a64d79..dd981c44 100644 --- a/lib/tcvn.h +++ b/lib/tcvn.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/tds565.h b/lib/tds565.h index ac89cd8b..acb59a99 100644 --- a/lib/tds565.h +++ b/lib/tds565.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/tis620.h b/lib/tis620.h index 56d60c37..b22fa1ca 100644 --- a/lib/tis620.h +++ b/lib/tis620.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/translit.def b/lib/translit.def index 4c26959d..15a9412f 100644 --- a/lib/translit.def +++ b/lib/translit.def @@ -2,16 +2,16 @@ # This file is part of the GNU LIBICONV Library. # # The GNU LIBICONV Library is free software; you can redistribute it -# and/or modify it under the terms of the GNU Library General Public -# License as published by the Free Software Foundation; either version 2 +# and/or modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either version 2.1 # of the License, or (at your option) any later version. # # The GNU LIBICONV Library is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. +# Lesser General Public License for more details. # -# You should have received a copy of the GNU Library General Public +# You should have received a copy of the GNU Lesser General Public # License along with the GNU LIBICONV Library; see the file COPYING.LIB. # If not, see . # diff --git a/lib/translit.h b/lib/translit.h index 2880f182..a60863a0 100644 --- a/lib/translit.h +++ b/lib/translit.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public + * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ @@ -3805,7 +3805,7 @@ static const short translit_page1e[160] = { -1, -1, -1, -1, -1, -1, -1, -1, /* 0x90-0x97 */ -1, -1, 742, -1, -1, -1, -1, -1, /* 0x98-0x9f */ }; -static const short translit_page1e_2[8] = { +static const short translit_page1e_1[8] = { -1, -1, 745, 748, -1, -1, -1, -1, /* 0xf0-0xf7 */ }; static const short translit_page20[88] = { @@ -3821,7 +3821,7 @@ static const short translit_page20[88] = { 841, 844, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ -1, -1, -1, -1, -1, -1, -1, 847, /* 0x50-0x57 */ }; -static const short translit_page20_3[8] = { +static const short translit_page20_1[8] = { 852, -1, -1, 855, 860, -1, -1, -1, /* 0xa8-0xaf */ }; static const short translit_page21[216] = { @@ -3867,7 +3867,7 @@ static const short translit_page22[96] = { 1210, -1, -1, -1, 1213, 1216, -1, -1, /* 0x60-0x67 */ -1, -1, 1219, 1222, -1, -1, -1, -1, /* 0x68-0x6f */ }; -static const short translit_page22_4[48] = { +static const short translit_page22_1[48] = { -1, -1, -1, -1, -1, 1225, -1, -1, /* 0xc0-0xc7 */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */ @@ -3996,7 +3996,7 @@ static const short translit_page31[96] = { 2699, 2701, 2703, 2705, 2707, 2709, 2711, 2713, /* 0x80-0x87 */ 2715, 2717, 2719, 2721, 2723, 2725, 2727, -1, /* 0x88-0x8f */ }; -static const short translit_page31_5[528] = { +static const short translit_page31_1[528] = { 2729, 2731, 2733, 2735, 2737, 2739, 2741, 2743, /* 0xf0-0xf7 */ 2745, 2747, 2749, 2751, 2753, 2755, 2757, 2759, /* 0xf8-0xff */ /* 0x3200 */ @@ -4384,12 +4384,12 @@ static const short translit_page2f8[544] = { wc >= 0x0eb0 && wc < 0x0ee0 ? translit_page0e[wc-0x0eb0] : \ wc >= 0x0f70 && wc < 0x0f80 ? translit_page0f[wc-0x0f70] : \ wc >= 0x1e00 && wc < 0x1ea0 ? translit_page1e[wc-0x1e00] : \ - wc >= 0x1ef0 && wc < 0x1ef8 ? translit_page1e_2[wc-0x1ef0] : \ + wc >= 0x1ef0 && wc < 0x1ef8 ? translit_page1e_1[wc-0x1ef0] : \ wc >= 0x2000 && wc < 0x2058 ? translit_page20[wc-0x2000] : \ - wc >= 0x20a8 && wc < 0x20b0 ? translit_page20_3[wc-0x20a8] : \ + wc >= 0x20a8 && wc < 0x20b0 ? translit_page20_1[wc-0x20a8] : \ wc >= 0x2100 && wc < 0x21d8 ? translit_page21[wc-0x2100] : \ wc >= 0x2210 && wc < 0x2270 ? translit_page22[wc-0x2210] : \ - wc >= 0x22c0 && wc < 0x22f0 ? translit_page22_4[wc-0x22c0] : \ + wc >= 0x22c0 && wc < 0x22f0 ? translit_page22_1[wc-0x22c0] : \ wc >= 0x2400 && wc < 0x24f0 ? translit_page24[wc-0x2400] : \ wc >= 0x2500 && wc < 0x2540 ? translit_page25[wc-0x2500] : \ wc == 0x25e6 ? 2025 : \ @@ -4400,7 +4400,7 @@ static const short translit_page2f8[544] = { wc >= 0x2f00 && wc < 0x2fd8 ? translit_page2f[wc-0x2f00] : \ wc >= 0x3000 && wc < 0x30f8 ? translit_page30[wc-0x3000] : \ wc >= 0x3130 && wc < 0x3190 ? translit_page31[wc-0x3130] : \ - wc >= 0x31f0 && wc < 0x3400 ? translit_page31_5[wc-0x31f0] : \ + wc >= 0x31f0 && wc < 0x3400 ? translit_page31_1[wc-0x31f0] : \ wc >= 0xf900 && wc < 0xfa70 ? translit_pagef9[wc-0xf900] : \ wc >= 0xfb00 && wc < 0xfb50 ? translit_pagefb[wc-0xfb00] : \ wc >= 0xfe48 && wc < 0xfe70 ? translit_pagefe[wc-0xfe48] : \ diff --git a/lib/ucs2.h b/lib/ucs2.h index 65b04b0b..68769b15 100644 --- a/lib/ucs2.h +++ b/lib/ucs2.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/ucs2be.h b/lib/ucs2be.h index 889845c0..f11062f8 100644 --- a/lib/ucs2be.h +++ b/lib/ucs2be.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/ucs2internal.h b/lib/ucs2internal.h index 7b53be1d..ffb565f5 100644 --- a/lib/ucs2internal.h +++ b/lib/ucs2internal.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/ucs2le.h b/lib/ucs2le.h index 4db18c46..51e9e42f 100644 --- a/lib/ucs2le.h +++ b/lib/ucs2le.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/ucs2swapped.h b/lib/ucs2swapped.h index bf36ee74..ace7e2c4 100644 --- a/lib/ucs2swapped.h +++ b/lib/ucs2swapped.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/ucs4.h b/lib/ucs4.h index 9ca913d9..e7a0c377 100644 --- a/lib/ucs4.h +++ b/lib/ucs4.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/ucs4be.h b/lib/ucs4be.h index ba6ea8d6..2bbd8cf6 100644 --- a/lib/ucs4be.h +++ b/lib/ucs4be.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/ucs4internal.h b/lib/ucs4internal.h index 8e6347c5..c5bf3e2b 100644 --- a/lib/ucs4internal.h +++ b/lib/ucs4internal.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/ucs4le.h b/lib/ucs4le.h index 8888a39d..e1627c93 100644 --- a/lib/ucs4le.h +++ b/lib/ucs4le.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/ucs4swapped.h b/lib/ucs4swapped.h index cf515653..8ce7c5b9 100644 --- a/lib/ucs4swapped.h +++ b/lib/ucs4swapped.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/uhc_1.h b/lib/uhc_1.h index 9cf92d60..1a464774 100644 --- a/lib/uhc_1.h +++ b/lib/uhc_1.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/uhc_2.h b/lib/uhc_2.h index b262cb54..3dd03e6e 100644 --- a/lib/uhc_2.h +++ b/lib/uhc_2.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/utf16.h b/lib/utf16.h index 607629b5..463c7ab5 100644 --- a/lib/utf16.h +++ b/lib/utf16.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/utf16be.h b/lib/utf16be.h index b8a55203..2cfab52d 100644 --- a/lib/utf16be.h +++ b/lib/utf16be.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/utf16le.h b/lib/utf16le.h index e7b7ca2b..97e94bc5 100644 --- a/lib/utf16le.h +++ b/lib/utf16le.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/utf32.h b/lib/utf32.h index 86f410a0..9ed54544 100644 --- a/lib/utf32.h +++ b/lib/utf32.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/utf32be.h b/lib/utf32be.h index 1caf45cf..1d33772e 100644 --- a/lib/utf32be.h +++ b/lib/utf32be.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/utf32le.h b/lib/utf32le.h index 0f907e00..41cf550c 100644 --- a/lib/utf32le.h +++ b/lib/utf32le.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/utf7.h b/lib/utf7.h index 62c2b977..6f237ed7 100644 --- a/lib/utf7.h +++ b/lib/utf7.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/utf8.h b/lib/utf8.h index 8a487166..43727ea7 100644 --- a/lib/utf8.h +++ b/lib/utf8.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/vietcomb.h b/lib/vietcomb.h index c5b0316d..ed06d9d7 100644 --- a/lib/vietcomb.h +++ b/lib/vietcomb.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/lib/viscii.h b/lib/viscii.h index a298e99b..e0802f85 100644 --- a/lib/viscii.h +++ b/lib/viscii.h @@ -3,16 +3,16 @@ * This file is part of the GNU LIBICONV Library. * * The GNU LIBICONV Library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either version 2 + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * The GNU LIBICONV Library is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public + * You should have received a copy of the GNU Lesser General Public * License along with the GNU LIBICONV Library; see the file COPYING.LIB. * If not, see . */ diff --git a/libcharset/lib/localcharset.c b/libcharset/lib/localcharset.c index 3effe1df..dbcd3846 100644 --- a/libcharset/lib/localcharset.c +++ b/libcharset/lib/localcharset.c @@ -1,18 +1,18 @@ /* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2006, 2008-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2006, 2008-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published + under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public License + You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Bruno Haible . */ @@ -58,6 +58,9 @@ #elif defined WINDOWS_NATIVE # define WIN32_LEAN_AND_MEAN # include + /* For the use of setlocale() below, the Gnulib override in setlocale.c is + not needed; see the platform lists in setlocale_null.m4. */ +# undef setlocale #endif #if defined OS2 # define INCL_DOS @@ -150,7 +153,8 @@ static const struct table_entry alias_table[] = { "ISO8859-2", "ISO-8859-2" }, { "ISO8859-4", "ISO-8859-4" }, { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" } + { "ISO8859-7", "ISO-8859-7" }, + { "US-ASCII", "ASCII" } # define alias_table_defined # endif # if defined __APPLE__ && defined __MACH__ /* Mac OS X */ @@ -377,27 +381,164 @@ static const struct table_entry alias_table[] = /* The list of encodings is taken from "List of OS/2 Codepages" by Alex Taylor: . - See also "IBM Globalization - Code page identifiers": - . */ - { "CP1089", "ISO-8859-6" }, - { "CP1208", "UTF-8" }, - { "CP1381", "GB2312" }, - { "CP1386", "GBK" }, - { "CP3372", "EUC-JP" }, - { "CP813", "ISO-8859-7" }, - { "CP819", "ISO-8859-1" }, - { "CP878", "KOI8-R" }, - { "CP912", "ISO-8859-2" }, - { "CP913", "ISO-8859-3" }, - { "CP914", "ISO-8859-4" }, - { "CP915", "ISO-8859-5" }, - { "CP916", "ISO-8859-8" }, - { "CP920", "ISO-8859-9" }, - { "CP921", "ISO-8859-13" }, - { "CP923", "ISO-8859-15" }, - { "CP954", "EUC-JP" }, - { "CP964", "EUC-TW" }, - { "CP970", "EUC-KR" } + See also "__convcp() of kLIBC": + . */ + { "CP1004", "CP1252" }, + /*{ "CP1041", "CP943" },*/ + /*{ "CP1088", "CP949" },*/ + { "CP1089", "ISO-8859-6" }, + /*{ "CP1114", "CP950" },*/ + /*{ "CP1115", "GB2312" },*/ + { "CP1208", "UTF-8" }, + /*{ "CP1380", "GB2312" },*/ + { "CP1381", "GB2312" }, + { "CP1383", "GB2312" }, + { "CP1386", "GBK" }, + /*{ "CP301", "CP943" },*/ + { "CP3372", "EUC-JP" }, + { "CP4946", "CP850" }, + /*{ "CP5048", "JIS_X0208-1990" },*/ + /*{ "CP5049", "JIS_X0212-1990" },*/ + /*{ "CP5067", "KS_C_5601-1987" },*/ + { "CP813", "ISO-8859-7" }, + { "CP819", "ISO-8859-1" }, + { "CP878", "KOI8-R" }, + /*{ "CP897", "CP943" },*/ + { "CP912", "ISO-8859-2" }, + { "CP913", "ISO-8859-3" }, + { "CP914", "ISO-8859-4" }, + { "CP915", "ISO-8859-5" }, + { "CP916", "ISO-8859-8" }, + { "CP920", "ISO-8859-9" }, + { "CP921", "ISO-8859-13" }, + { "CP923", "ISO-8859-15" }, + /*{ "CP941", "CP943" },*/ + /*{ "CP947", "CP950" },*/ + /*{ "CP951", "CP949" },*/ + /*{ "CP952", "JIS_X0208-1990" },*/ + /*{ "CP953", "JIS_X0212-1990" },*/ + { "CP954", "EUC-JP" }, + { "CP964", "EUC-TW" }, + { "CP970", "EUC-KR" }, + /*{ "CP971", "KS_C_5601-1987" },*/ + { "IBM-1004", "CP1252" }, + /*{ "IBM-1006", "?" },*/ + /*{ "IBM-1008", "?" },*/ + /*{ "IBM-1041", "CP943" },*/ + /*{ "IBM-1051", "?" },*/ + /*{ "IBM-1088", "CP949" },*/ + { "IBM-1089", "ISO-8859-6" }, + /*{ "IBM-1098", "?" },*/ + /*{ "IBM-1114", "CP950" },*/ + /*{ "IBM-1115", "GB2312" },*/ + /*{ "IBM-1116", "?" },*/ + /*{ "IBM-1117", "?" },*/ + /*{ "IBM-1118", "?" },*/ + /*{ "IBM-1119", "?" },*/ + { "IBM-1124", "CP1124" }, + { "IBM-1125", "CP1125" }, + { "IBM-1131", "CP1131" }, + { "IBM-1208", "UTF-8" }, + { "IBM-1250", "CP1250" }, + { "IBM-1251", "CP1251" }, + { "IBM-1252", "CP1252" }, + { "IBM-1253", "CP1253" }, + { "IBM-1254", "CP1254" }, + { "IBM-1255", "CP1255" }, + { "IBM-1256", "CP1256" }, + { "IBM-1257", "CP1257" }, + /*{ "IBM-1275", "?" },*/ + /*{ "IBM-1276", "?" },*/ + /*{ "IBM-1277", "?" },*/ + /*{ "IBM-1280", "?" },*/ + /*{ "IBM-1281", "?" },*/ + /*{ "IBM-1282", "?" },*/ + /*{ "IBM-1283", "?" },*/ + /*{ "IBM-1380", "GB2312" },*/ + { "IBM-1381", "GB2312" }, + { "IBM-1383", "GB2312" }, + { "IBM-1386", "GBK" }, + /*{ "IBM-301", "CP943" },*/ + { "IBM-3372", "EUC-JP" }, + { "IBM-367", "ASCII" }, + { "IBM-437", "CP437" }, + { "IBM-4946", "CP850" }, + /*{ "IBM-5048", "JIS_X0208-1990" },*/ + /*{ "IBM-5049", "JIS_X0212-1990" },*/ + /*{ "IBM-5067", "KS_C_5601-1987" },*/ + { "IBM-813", "ISO-8859-7" }, + { "IBM-819", "ISO-8859-1" }, + { "IBM-850", "CP850" }, + /*{ "IBM-851", "?" },*/ + { "IBM-852", "CP852" }, + { "IBM-855", "CP855" }, + { "IBM-856", "CP856" }, + { "IBM-857", "CP857" }, + /*{ "IBM-859", "?" },*/ + { "IBM-860", "CP860" }, + { "IBM-861", "CP861" }, + { "IBM-862", "CP862" }, + { "IBM-863", "CP863" }, + { "IBM-864", "CP864" }, + { "IBM-865", "CP865" }, + { "IBM-866", "CP866" }, + /*{ "IBM-868", "?" },*/ + { "IBM-869", "CP869" }, + { "IBM-874", "CP874" }, + { "IBM-878", "KOI8-R" }, + /*{ "IBM-895", "?" },*/ + /*{ "IBM-897", "CP943" },*/ + /*{ "IBM-907", "?" },*/ + /*{ "IBM-909", "?" },*/ + { "IBM-912", "ISO-8859-2" }, + { "IBM-913", "ISO-8859-3" }, + { "IBM-914", "ISO-8859-4" }, + { "IBM-915", "ISO-8859-5" }, + { "IBM-916", "ISO-8859-8" }, + { "IBM-920", "ISO-8859-9" }, + { "IBM-921", "ISO-8859-13" }, + { "IBM-922", "CP922" }, + { "IBM-923", "ISO-8859-15" }, + { "IBM-932", "CP932" }, + /*{ "IBM-941", "CP943" },*/ + /*{ "IBM-942", "?" },*/ + { "IBM-943", "CP943" }, + /*{ "IBM-947", "CP950" },*/ + { "IBM-949", "CP949" }, + { "IBM-950", "CP950" }, + /*{ "IBM-951", "CP949" },*/ + /*{ "IBM-952", "JIS_X0208-1990" },*/ + /*{ "IBM-953", "JIS_X0212-1990" },*/ + { "IBM-954", "EUC-JP" }, + /*{ "IBM-955", "?" },*/ + { "IBM-964", "EUC-TW" }, + { "IBM-970", "EUC-KR" }, + /*{ "IBM-971", "KS_C_5601-1987" },*/ + { "IBM-eucCN", "GB2312" }, + { "IBM-eucJP", "EUC-JP" }, + { "IBM-eucKR", "EUC-KR" }, + { "IBM-eucTW", "EUC-TW" }, + { "IBM33722", "EUC-JP" }, + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-3", "ISO-8859-3" }, + { "ISO8859-4", "ISO-8859-4" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-6", "ISO-8859-6" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-8", "ISO-8859-8" }, + { "ISO8859-9", "ISO-8859-9" }, + /*{ "JISX0201-1976", "JISX0201-1976" },*/ + /*{ "JISX0208-1978", "?" },*/ + /*{ "JISX0208-1983", "JIS_X0208-1983" },*/ + /*{ "JISX0208-1990", "JIS_X0208-1990" },*/ + /*{ "JISX0212-1990", "JIS_X0212-1990" },*/ + /*{ "KSC5601-1987", "KS_C_5601-1987" },*/ + { "SJIS-1", "CP943" }, + { "SJIS-2", "CP943" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" }, + { "eucTW-1993", "EUC-TW" } # define alias_table_defined # endif # if defined VMS /* OpenVMS */ @@ -675,8 +816,11 @@ static const struct table_entry locale_table[] = /* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed in localcharset.h. - The result must not be freed; it is statically allocated. + into one of the canonical names listed below. + The result must not be freed; it is statically allocated. The result + becomes invalid when setlocale() is used to change the global locale, or + when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG + is changed; threads in multithreaded programs should not do this. If the canonical name cannot be determined, the result is a non-canonical name. */ @@ -688,6 +832,13 @@ locale_charset (void) { const char *codeset; + /* This function must be multithread-safe. To achieve this without using + thread-local storage, we use a simple strcpy or memcpy to fill this static + buffer. Filling it through, for example, strcpy + strcat would not be + guaranteed to leave the buffer's contents intact if another thread is + currently accessing it. If necessary, the contents is first assembled in + a stack-allocated buffer. */ + #if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 # if HAVE_LANGINFO_CODESET @@ -702,7 +853,7 @@ locale_charset (void) if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0) { const char *locale; - static char buf[2 + 10 + 1]; + static char resultbuf[2 + 10 + 1]; locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') @@ -726,11 +877,12 @@ locale_charset (void) modifier = strchr (dot, '@'); if (modifier == NULL) return dot; - if (modifier - dot < sizeof (buf)) + if (modifier - dot < sizeof (resultbuf)) { - memcpy (buf, dot, modifier - dot); - buf [modifier - dot] = '\0'; - return buf; + /* This way of filling resultbuf is multithread-safe. */ + memcpy (resultbuf, dot, modifier - dot); + resultbuf [modifier - dot] = '\0'; + return resultbuf; } } } @@ -746,8 +898,13 @@ locale_charset (void) converting to GetConsoleOutputCP(). This leads to correct results, except when SetConsoleOutputCP has been called and a raster font is in use. */ - sprintf (buf, "CP%u", GetACP ()); - codeset = buf; + { + char buf[2 + 10 + 1]; + + sprintf (buf, "CP%u", GetACP ()); + strcpy (resultbuf, buf); + codeset = resultbuf; + } } # endif @@ -757,42 +914,44 @@ locale_charset (void) # elif defined WINDOWS_NATIVE - static char buf[2 + 10 + 1]; + char buf[2 + 10 + 1]; + static char resultbuf[2 + 10 + 1]; /* The Windows API has a function returning the locale's codepage as a number, but the value doesn't change according to what the 'setlocale' call specified. So we use it as a last resort, in case the string returned by 'setlocale' doesn't specify the codepage. */ - char *current_locale = setlocale (LC_ALL, NULL); - char *pdot; + char *current_locale = setlocale (LC_CTYPE, NULL); + char *pdot = strrchr (current_locale, '.'); - /* If they set different locales for different categories, - 'setlocale' will return a semi-colon separated list of locale - values. To make sure we use the correct one, we choose LC_CTYPE. */ - if (strchr (current_locale, ';')) - current_locale = setlocale (LC_CTYPE, NULL); - - pdot = strrchr (current_locale, '.'); if (pdot && 2 + strlen (pdot + 1) + 1 <= sizeof (buf)) sprintf (buf, "CP%s", pdot + 1); else { /* The Windows API has a function returning the locale's codepage as a - number: GetACP(). - When the output goes to a console window, it needs to be provided in - GetOEMCP() encoding if the console is using a raster font, or in - GetConsoleOutputCP() encoding if it is using a TrueType font. - But in GUI programs and for output sent to files and pipes, GetACP() - encoding is the best bet. */ + number: GetACP(). + When the output goes to a console window, it needs to be provided in + GetOEMCP() encoding if the console is using a raster font, or in + GetConsoleOutputCP() encoding if it is using a TrueType font. + But in GUI programs and for output sent to files and pipes, GetACP() + encoding is the best bet. */ sprintf (buf, "CP%u", GetACP ()); } - codeset = buf; + /* For a locale name such as "French_France.65001", in Windows 10, + setlocale now returns "French_France.utf8" instead. */ + if (strcmp (buf + 2, "65001") == 0 || strcmp (buf + 2, "utf8") == 0) + codeset = "UTF-8"; + else + { + strcpy (resultbuf, buf); + codeset = resultbuf; + } # elif defined OS2 const char *locale; - static char buf[2 + 10 + 1]; + static char resultbuf[2 + 10 + 1]; ULONG cp[3]; ULONG cplen; @@ -821,11 +980,12 @@ locale_charset (void) modifier = strchr (dot, '@'); if (modifier == NULL) return dot; - if (modifier - dot < sizeof (buf)) + if (modifier - dot < sizeof (resultbuf)) { - memcpy (buf, dot, modifier - dot); - buf [modifier - dot] = '\0'; - return buf; + /* This way of filling resultbuf is multithread-safe. */ + memcpy (resultbuf, dot, modifier - dot); + resultbuf [modifier - dot] = '\0'; + return resultbuf; } } @@ -841,8 +1001,11 @@ locale_charset (void) codeset = ""; else { + char buf[2 + 10 + 1]; + sprintf (buf, "CP%u", cp[0]); - codeset = buf; + strcpy (resultbuf, buf); + codeset = resultbuf; } } diff --git a/src/config.h b/src/config.h index 40d99bc6..5ba4075e 100644 --- a/src/config.h +++ b/src/config.h @@ -1,6 +1,9 @@ /* config.h. Generated from config.h.in by configure. */ /* config.h.in. Generated from configure.ac by autoheader. */ +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + /* Define to the number of bits in type 'ptrdiff_t'. */ /* #undef BITSIZEOF_PTRDIFF_T */ @@ -16,12 +19,7 @@ /* Define to the number of bits in type 'wint_t'. */ /* #undef BITSIZEOF_WINT_T */ -/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c' support on those systems. - */ -/* #undef CRAY_STACKSEG_END */ - -/* Define to 1 if using `alloca.c'. */ +/* Define to 1 if using 'alloca.c'. */ /* #undef C_ALLOCA */ /* Define to 1 if // is a file system root distinct from /. */ @@ -40,8 +38,15 @@ /* Define to 1 if the package shall run at any location in the file system. */ /* #undef ENABLE_RELOCATABLE */ +/* Define this to 1 if F_DUPFD behavior does not match POSIX */ +/* #undef FCNTL_DUPFD_BUGGY */ + /* Define to 1 if realpath() can malloc memory, always gives an absolute path, - and handles trailing slash correctly. */ + and handles a trailing slash correctly. */ +/* #undef FUNC_REALPATH_NEARLY_WORKS */ + +/* Define to 1 if realpath() can malloc memory, always gives an absolute path, + and handles leading slashes and a trailing slash correctly. */ /* #undef FUNC_REALPATH_WORKS */ /* Define to a C preprocessor expression that evaluates to 1 or 0, depending @@ -68,6 +73,14 @@ whether the gnulib module sigpipe shall be considered present. */ #define GNULIB_SIGPIPE 1 +/* Define to 1 if you want the FILE stream functions getc, putc, etc. to use + unlocked I/O if available, throughout the package. Unlocked I/O can improve + performance, sometimes dramatically. But unlocked I/O is safe only in + single-threaded programs, as well as in multithreaded programs for which + you can guarantee that every FILE stream, including stdin, stdout, stderr, + is used only in a single thread. */ +#define GNULIB_STDIO_SINGLE_THREAD 1 + /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module strerror shall be considered present. */ #define GNULIB_STRERROR 1 @@ -76,27 +89,102 @@ */ #define GNULIB_TEST_CANONICALIZE_FILE_NAME 1 +/* Define to 1 when the gnulib module cloexec should be tested. */ +#define GNULIB_TEST_CLOEXEC 1 + +/* Define to 1 when the gnulib module close should be tested. */ +#define GNULIB_TEST_CLOSE 1 + +/* Define to 1 when the gnulib module dup2 should be tested. */ +#define GNULIB_TEST_DUP2 1 + /* Define to 1 when the gnulib module environ should be tested. */ #define GNULIB_TEST_ENVIRON 1 -/* Define to 1 when the gnulib module lstat should be tested. */ -#define GNULIB_TEST_LSTAT 1 +/* Define to 1 when the gnulib module fcntl should be tested. */ +#define GNULIB_TEST_FCNTL 1 + +/* Define to 1 when the gnulib module fgetc should be tested. */ +#define GNULIB_TEST_FGETC 1 + +/* Define to 1 when the gnulib module fgets should be tested. */ +#define GNULIB_TEST_FGETS 1 + +/* Define to 1 when the gnulib module fprintf should be tested. */ +#define GNULIB_TEST_FPRINTF 1 + +/* Define to 1 when the gnulib module fputc should be tested. */ +#define GNULIB_TEST_FPUTC 1 + +/* Define to 1 when the gnulib module fputs should be tested. */ +#define GNULIB_TEST_FPUTS 1 + +/* Define to 1 when the gnulib module fread should be tested. */ +#define GNULIB_TEST_FREAD 1 + +/* Define to 1 when the gnulib module free-posix should be tested. */ +#define GNULIB_TEST_FREE_POSIX 1 + +/* Define to 1 when the gnulib module fscanf should be tested. */ +#define GNULIB_TEST_FSCANF 1 + +/* Define to 1 when the gnulib module fstat should be tested. */ +#define GNULIB_TEST_FSTAT 1 + +/* Define to 1 when the gnulib module fwrite should be tested. */ +#define GNULIB_TEST_FWRITE 1 + +/* Define to 1 when the gnulib module getc should be tested. */ +#define GNULIB_TEST_GETC 1 + +/* Define to 1 when the gnulib module getchar should be tested. */ +#define GNULIB_TEST_GETCHAR 1 + +/* Define to 1 when the gnulib module getdtablesize should be tested. */ +#define GNULIB_TEST_GETDTABLESIZE 1 /* Define to 1 when the gnulib module malloc-posix should be tested. */ #define GNULIB_TEST_MALLOC_POSIX 1 +/* Define to 1 when the gnulib module mempcpy should be tested. */ +#define GNULIB_TEST_MEMPCPY 1 + +/* Define to 1 when the gnulib module open should be tested. */ +#define GNULIB_TEST_OPEN 1 + +/* Define to 1 when the gnulib module printf should be tested. */ +#define GNULIB_TEST_PRINTF 1 + +/* Define to 1 when the gnulib module putc should be tested. */ +#define GNULIB_TEST_PUTC 1 + +/* Define to 1 when the gnulib module putchar should be tested. */ +#define GNULIB_TEST_PUTCHAR 1 + +/* Define to 1 when the gnulib module puts should be tested. */ +#define GNULIB_TEST_PUTS 1 + /* Define to 1 when the gnulib module raise should be tested. */ #define GNULIB_TEST_RAISE 1 +/* Define to 1 when the gnulib module rawmemchr should be tested. */ +#define GNULIB_TEST_RAWMEMCHR 1 + /* Define to 1 when the gnulib module read should be tested. */ #define GNULIB_TEST_READ 1 /* Define to 1 when the gnulib module readlink should be tested. */ #define GNULIB_TEST_READLINK 1 +/* Define to 1 when the gnulib module realloc-posix should be tested. */ +#define GNULIB_TEST_REALLOC_POSIX 1 + /* Define to 1 when the gnulib module realpath should be tested. */ #define GNULIB_TEST_REALPATH 1 +/* Define to 1 when the gnulib module scanf should be tested. */ +#define GNULIB_TEST_SCANF 1 + /* Define to 1 when the gnulib module sigprocmask should be tested. */ #define GNULIB_TEST_SIGPROCMASK 1 @@ -106,20 +194,21 @@ /* Define to 1 when the gnulib module strerror should be tested. */ #define GNULIB_TEST_STRERROR 1 -/* Define to 1 if you have `alloca', as a function or macro. */ +/* Define to 1 when the gnulib module vfprintf should be tested. */ +#define GNULIB_TEST_VFPRINTF 1 + +/* Define to 1 when the gnulib module vprintf should be tested. */ +#define GNULIB_TEST_VPRINTF 1 + +/* Define to 1 if you have 'alloca', as a function or macro. */ #define HAVE_ALLOCA 1 -/* Define to 1 if you have and it should be used (not on Ultrix). - */ +/* Define to 1 if works. */ /* #undef HAVE_ALLOCA_H */ /* Define to 1 if you have the `canonicalize_file_name' function. */ /* #undef HAVE_CANONICALIZE_FILE_NAME */ -/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the - CoreFoundation framework. */ -/* #undef HAVE_CFLOCALECOPYCURRENT */ - /* Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ /* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ @@ -131,6 +220,12 @@ /* Define to 1 if you have the `copy_file_range' function. */ /* #undef HAVE_COPY_FILE_RANGE */ +/* Define to 1 if you have the header file. */ +#define HAVE_CRTDEFS_H 1 + +/* Define to 1 if C supports variable-length arrays. */ +/* #undef HAVE_C_VARARRAYS */ + /* Define if the GNU dcgettext() function is already present or preinstalled. */ /* #undef HAVE_DCGETTEXT */ @@ -139,6 +234,22 @@ you don't. */ #define HAVE_DECL_CLEARERR_UNLOCKED 0 +/* Define to 1 if you have the declaration of `ecvt', and to 0 if you don't. + */ +#define HAVE_DECL_ECVT 1 + +/* Define to 1 if you have the declaration of `execvpe', and to 0 if you + don't. */ +#define HAVE_DECL_EXECVPE 0 + +/* Define to 1 if you have the declaration of `fcloseall', and to 0 if you + don't. */ +#define HAVE_DECL_FCLOSEALL 1 + +/* Define to 1 if you have the declaration of `fcvt', and to 0 if you don't. + */ +#define HAVE_DECL_FCVT 1 + /* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you don't. */ #define HAVE_DECL_FEOF_UNLOCKED 0 @@ -171,6 +282,10 @@ you don't. */ #define HAVE_DECL_FWRITE_UNLOCKED 0 +/* Define to 1 if you have the declaration of `gcvt', and to 0 if you don't. + */ +#define HAVE_DECL_GCVT 1 + /* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if you don't. */ #define HAVE_DECL_GETCHAR_UNLOCKED 0 @@ -179,6 +294,10 @@ don't. */ #define HAVE_DECL_GETC_UNLOCKED 0 +/* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you + don't. */ +#define HAVE_DECL_GETDTABLESIZE 0 + /* Define to 1 if you have the declaration of `program_invocation_name', and to 0 if you don't. */ #define HAVE_DECL_PROGRAM_INVOCATION_NAME 0 @@ -203,6 +322,10 @@ don't. */ #define HAVE_DECL_STRERROR_R 0 +/* Define to 1 if you have the declaration of `wcsdup', and to 0 if you don't. + */ +#define HAVE_DECL_WCSDUP 1 + /* Define to 1 if you have the declaration of `__argv', and to 0 if you don't. */ #define HAVE_DECL___ARGV 1 @@ -213,12 +336,27 @@ /* Define if you have the declaration of environ. */ #define HAVE_ENVIRON_DECL 1 +/* Define to 1 if you have the `faccessat' function. */ +/* #undef HAVE_FACCESSAT */ + +/* Define to 1 if you have the `fcntl' function. */ +/* #undef HAVE_FCNTL */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_FEATURES_H */ + +/* Define if the 'free' function is guaranteed to preserve errno. */ +/* #undef HAVE_FREE_POSIX */ + /* Define to 1 if you have the `getcwd' function. */ -#define HAVE_GETCWD 1 +/* #undef HAVE_GETCWD */ /* Define to 1 if you have the `getc_unlocked' function. */ /* #undef HAVE_GETC_UNLOCKED */ +/* Define to 1 if you have the `getdtablesize' function. */ +/* #undef HAVE_GETDTABLESIZE */ + /* Define to 1 if you have the `getexecname' function. */ /* #undef HAVE_GETEXECNAME */ @@ -249,7 +387,7 @@ /* Define to 1 if you have the header file. */ /* #undef HAVE_MACH_O_DYLD_H */ -/* Define if the 'malloc' function is POSIX compliant. */ +/* Define if malloc, realloc, and calloc set errno on allocation failure. */ /* #undef HAVE_MALLOC_POSIX */ /* Define to 1 if you have the `mbrtowc' function. */ @@ -264,8 +402,17 @@ /* Define to 1 if you have the `memmove' function. */ #define HAVE_MEMMOVE 1 -/* Define to 1 if you have the header file. */ -#define HAVE_MEMORY_H 1 +/* Define to 1 if you have the `mempcpy' function. */ +/* #undef HAVE_MEMPCPY */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MINIX_CONFIG_H */ + +/* Define to 1 if defines the MIN and MAX macros. */ +/* #undef HAVE_MINMAX_IN_LIMITS_H */ + +/* Define to 1 if defines the MIN and MAX macros. */ +/* #undef HAVE_MINMAX_IN_SYS_PARAM_H */ /* Define to 1 on MSVC platforms that have the "invalid parameter handler" concept. */ @@ -274,6 +421,9 @@ /* Define to 1 if you have the `raise' function. */ #define HAVE_RAISE 1 +/* Define to 1 if you have the `rawmemchr' function. */ +/* #undef HAVE_RAWMEMCHR */ + /* Define to 1 if you have the `readlink' function. */ /* #undef HAVE_READLINK */ @@ -283,9 +433,15 @@ /* Define to 1 if you have the `realpath' function. */ /* #undef HAVE_REALPATH */ +/* Define to 1 if you have the header file. */ +#define HAVE_SDKDDKVER_H 1 + /* Define to 1 if you have the header file. */ #define HAVE_SEARCH_H 1 +/* Define to 1 if you have the `setdtablesize' function. */ +/* #undef HAVE_SETDTABLESIZE */ + /* Define to 1 if you have the `setenv' function. */ /* #undef HAVE_SETENV */ @@ -307,10 +463,13 @@ /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 -/* Define to 1 if you have the `strerror_r' function. */ +/* Define if you have `strerror_r'. */ /* #undef HAVE_STRERROR_R */ /* Define to 1 if you have the header file. */ @@ -410,6 +569,127 @@ /* Define to 1 if you have the `_set_invalid_parameter_handler' function. */ #define HAVE__SET_INVALID_PARAMETER_HANDLER 1 +/* Define to 1 if the compiler supports __builtin_expect, + and to 2 if does. */ +/* #undef HAVE___BUILTIN_EXPECT */ +#ifndef HAVE___BUILTIN_EXPECT +# define __builtin_expect(e, c) (e) +#elif HAVE___BUILTIN_EXPECT == 2 +# include +#endif + + +/* Define to 1 if ctype.h defines __header_inline. */ +/* #undef HAVE___HEADER_INLINE */ + +/* Please see the Gnulib manual for how to use these macros. + + Suppress extern inline with HP-UX cc, as it appears to be broken; see + . + + Suppress extern inline with Sun C in standards-conformance mode, as it + mishandles inline functions that call each other. E.g., for 'inline void f + (void) { } inline void g (void) { f (); }', c99 incorrectly complains + 'reference to static identifier "f" in extern inline function'. + This bug was observed with Oracle Developer Studio 12.6 + (Sun C 5.15 SunOS_sparc 2017/05/30). + + Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) + on configurations that mistakenly use 'static inline' to implement + functions or macros in standard C headers like . For example, + if isdigit is mistakenly implemented via a static inline function, + a program containing an extern inline function that calls isdigit + may not work since the C standard prohibits extern inline functions + from calling static functions (ISO C 99 section 6.7.4.(3). + This bug is known to occur on: + + OS X 10.8 and earlier; see: + https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html + + DragonFly; see + http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log + + FreeBSD; see: + https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html + + OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and + for clang but remains for g++; see . + Assume DragonFly and FreeBSD will be similar. + + GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. It defines a macro + __GNUC_STDC_INLINE__ to indicate this situation or a macro + __GNUC_GNU_INLINE__ to indicate the opposite situation. + GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline + semantics but warns, unless -fgnu89-inline is used: + warning: C99 inline functions are not supported; using GNU89 + warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute + It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. + */ +#if (((defined __APPLE__ && defined __MACH__) \ + || defined __DragonFly__ || defined __FreeBSD__) \ + && (defined HAVE___HEADER_INLINE \ + ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ + && ! defined __clang__) \ + : ((! defined _DONT_USE_CTYPE_INLINE_ \ + && (defined __GNUC__ || defined __cplusplus)) \ + || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ + && defined __GNUC__ && ! defined __cplusplus)))) +# define _GL_EXTERN_INLINE_STDHEADER_BUG +#endif +#if ((__GNUC__ \ + ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ + : (199901L <= __STDC_VERSION__ \ + && !defined __HP_cc \ + && !defined __PGI \ + && !(defined __SUNPRO_C && __STDC__))) \ + && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) +# define _GL_INLINE inline +# define _GL_EXTERN_INLINE extern inline +# define _GL_EXTERN_INLINE_IN_USE +#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ + && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) +# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ + /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ +# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) +# else +# define _GL_INLINE extern inline +# endif +# define _GL_EXTERN_INLINE extern +# define _GL_EXTERN_INLINE_IN_USE +#else +# define _GL_INLINE _GL_UNUSED static +# define _GL_EXTERN_INLINE _GL_UNUSED static +#endif + +/* In GCC 4.6 (inclusive) to 5.1 (exclusive), + suppress bogus "no previous prototype for 'FOO'" + and "no previous declaration for 'FOO'" diagnostics, + when FOO is an inline function in the header; see + and + . */ +#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ +# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ +# define _GL_INLINE_HEADER_CONST_PRAGMA +# else +# define _GL_INLINE_HEADER_CONST_PRAGMA \ + _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") +# endif +# define _GL_INLINE_HEADER_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ + _GL_INLINE_HEADER_CONST_PRAGMA +# define _GL_INLINE_HEADER_END \ + _Pragma ("GCC diagnostic pop") +#else +# define _GL_INLINE_HEADER_BEGIN +# define _GL_INLINE_HEADER_END +#endif + +/* Define to 1 if the compiler supports the keyword '__inline'. */ +#define HAVE___INLINE 1 + /* Define as const if the declaration of iconv() needs const. */ #define ICONV_CONST const @@ -432,6 +712,9 @@ #endif +/* Define to 1 if open() fails to recognize a trailing slash. */ +/* #undef OPEN_TRAILING_SLASH_BUG */ + /* Name of package */ #define PACKAGE "libiconv" @@ -442,7 +725,7 @@ #define PACKAGE_NAME "libiconv" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libiconv 1.16" +#define PACKAGE_STRING "libiconv 1.17" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "libiconv" @@ -451,7 +734,11 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.16" +#define PACKAGE_VERSION "1.17" + +/* Define to the type that is the result of default argument promotions of + type mode_t. */ +#define PROMOTED_MODE_T mode_t /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'ptrdiff_t'. */ @@ -460,6 +747,10 @@ /* Define to 1 if readlink fails to recognize a trailing slash. */ /* #undef READLINK_TRAILING_SLASH_BUG */ +/* Define to 1 if readlink sets errno instead of truncating a too-long link. + */ +/* #undef READLINK_TRUNCATE_BUG */ + /* Define to 1 if stat needs help when passed a file name with a trailing slash */ /* #undef REPLACE_FUNC_STAT_FILE */ @@ -486,7 +777,9 @@ /* Define to 1 if the `S_IS*' macros in do not work properly. */ /* #undef STAT_MACROS_BROKEN */ -/* Define to 1 if you have the ANSI C header files. */ +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ #define STDC_HEADERS 1 /* Define to 1 if strerror_r returns char *. */ @@ -499,7 +792,7 @@ /* Define to the prefix of C symbols at the assembler and linker level, either an underscore or empty. */ #ifdef _WIN64 -#define USER_LABEL_PREFIX +#define USER_LABEL_PREFIX #else #define USER_LABEL_PREFIX _ #endif @@ -512,19 +805,44 @@ #ifndef _DARWIN_C_SOURCE # define _DARWIN_C_SOURCE 1 #endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif -/* Enable NetBSD extensions on NetBSD. */ +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# define _HPUX_ALT_XOPEN_SOCKET_API 1 +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +/* # undef _MINIX */ +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ #ifndef _NETBSD_SOURCE # define _NETBSD_SOURCE 1 #endif -/* Enable OpenBSD extensions on NetBSD. */ +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ #ifndef _OPENBSD_SOURCE # define _OPENBSD_SOURCE 1 #endif -/* Enable threading extensions on Solaris. */ +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +/* # undef _POSIX_SOURCE */ +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +/* # undef _POSIX_1_SOURCE */ +#endif +/* Enable POSIX-compatible threading on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # define _POSIX_PTHREAD_SEMANTICS 1 #endif @@ -560,30 +878,18 @@ #ifndef _TANDEM_SOURCE # define _TANDEM_SOURCE 1 #endif -/* Enable X/Open extensions if necessary. HP-UX 11.11 defines - mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of - whether compiling with -Ae or -D_HPUX_SOURCE=1. */ +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ #ifndef _XOPEN_SOURCE /* # undef _XOPEN_SOURCE */ #endif -/* Enable X/Open compliant socket functions that do not require linking - with -lxnet on HP-UX 11.11. */ -#ifndef _HPUX_ALT_XOPEN_SOCKET_API -# define _HPUX_ALT_XOPEN_SOCKET_API 1 -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# define __EXTENSIONS__ 1 -#endif -/* Define to 1 if you want getc etc. to use unlocked I/O if available. - Unlocked I/O can improve performance in unithreaded apps, but it is not - safe for multithreaded apps. */ -#define USE_UNLOCKED_IO 1 +/* An alias of GNULIB_STDIO_SINGLE_THREAD. */ +#define USE_UNLOCKED_IO GNULIB_STDIO_SINGLE_THREAD /* Version number of package */ -#define VERSION "1.16" +#define VERSION "1.17" /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wchar_t'. */ @@ -593,35 +899,61 @@ 'wint_t'. */ /* #undef WINT_T_SUFFIX */ +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + /* Define if the machine's byte ordering is little endian. */ #define WORDS_LITTLEENDIAN 1 -/* Enable large inode numbers on Mac OS X 10.5. */ -#define _DARWIN_USE_64_BIT_INODE 1 - /* Number of bits in a file offset, on hosts where this is settable. */ /* #undef _FILE_OFFSET_BITS */ -/* Define for large files, on AIX-style hosts. */ -/* #undef _LARGE_FILES */ +/* True if the compiler says it groks GNU C version MAJOR.MINOR. */ +#if defined __GNUC__ && defined __GNUC_MINOR__ +# define _GL_GNUC_PREREQ(major, minor) \ + ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__)) +#else +# define _GL_GNUC_PREREQ(major, minor) 0 +#endif -/* Define to 1 if on MINIX. */ -/* #undef _MINIX */ -/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */ -#define _NETBSD_SOURCE 1 +/* Define to enable the declarations of ISO C 11 types and functions. */ +/* #undef _ISOC11_SOURCE */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ /* The _Noreturn keyword of C11. */ #ifndef _Noreturn # if (defined __cplusplus \ && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ - || (defined _MSC_VER && 1900 <= _MSC_VER))) + || (defined _MSC_VER && 1900 <= _MSC_VER)) \ + && 0) + /* [[noreturn]] is not practically usable, because with it the syntax + extern _Noreturn void func (...); + would not be valid; such a declaration would only be valid with 'extern' + and '_Noreturn' swapped, or without the 'extern' keyword. However, some + AIX system header files and several gnulib header files use precisely + this syntax with 'extern'. */ # define _Noreturn [[noreturn]] # elif ((!defined __cplusplus || defined __clang__) \ - && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ - || 4 < __GNUC__ + (7 <= __GNUC_MINOR__))) + && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ + || (!defined __STRICT_ANSI__ \ + && (_GL_GNUC_PREREQ (4, 7) \ + || (defined __apple_build_version__ \ + ? 6000000 <= __apple_build_version__ \ + : 3 < __clang_major__ + (5 <= __clang_minor__)))))) /* _Noreturn works as-is. */ -# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C +# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C # define _Noreturn __attribute__ ((__noreturn__)) # elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) @@ -631,28 +963,31 @@ #endif -/* Define to 2 if the system does not provide POSIX.1 features except with - this defined. */ -/* #undef _POSIX_1_SOURCE */ - -/* Define to 1 if you need to in order for 'stat' and other things to work. */ -/* #undef _POSIX_SOURCE */ +/* Number of bits in a timestamp, on hosts where this is settable. */ +/* #undef _TIME_BITS */ /* For standard stat data types on VMS. */ #define _USE_STD_STAT 1 +/* For 64-bit time_t on 32-bit mingw. */ +#define __MINGW_USE_VC2005_COMPAT 1 + /* Define to 1 if the system predates C++11. */ /* #undef __STDC_CONSTANT_MACROS */ /* Define to 1 if the system predates C++11. */ /* #undef __STDC_LIMIT_MACROS */ +/* Define to 1 if C does not support variable-length arrays, and if the + compiler does not already define this. */ +#define __STDC_NO_VLA__ 1 + /* The _GL_ASYNC_SAFE marker should be attached to functions that are signal handlers (for signals other than SIGABRT, SIGPIPE) or can be invoked from such signal handlers. Such functions have some restrictions: * All functions that it calls should be marked _GL_ASYNC_SAFE as well, or should be listed as async-signal-safe in POSIX - + section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in particular, are NOT async-signal-safe. * All memory locations (variables and struct fields) that these functions @@ -674,110 +1009,376 @@ #define _GL_ASYNC_SAFE -/* Please see the Gnulib manual for how to use these macros. +/* Attributes. */ +#if (defined __has_attribute \ + && (!defined __clang_minor__ \ + || (defined __apple_build_version__ \ + ? 6000000 <= __apple_build_version__ \ + : 3 < __clang_major__ + (5 <= __clang_minor__)))) +# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) +#else +# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr +# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2) +# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95) +# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1) +# define _GL_ATTR_diagnose_if 0 +# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3) +# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1) +# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0) +# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7) +# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6) +# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0) +# ifdef _ICC +# define _GL_ATTR_may_alias 0 +# else +# define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3) +# endif +# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) +# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) +# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0) +# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3) +# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7) +# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96) +# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) +# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) +# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) +# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) +#endif - Suppress extern inline with HP-UX cc, as it appears to be broken; see - . +#ifdef __has_c_attribute +# if ((defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710 \ + && _GL_GNUC_PREREQ (4, 6)) +# pragma GCC diagnostic ignored "-Wpedantic" +# endif +# define _GL_HAS_C_ATTRIBUTE(attr) __has_c_attribute (__##attr##__) +#else +# define _GL_HAS_C_ATTRIBUTE(attr) 0 +#endif - Suppress extern inline with Sun C in standards-conformance mode, as it - mishandles inline functions that call each other. E.g., for 'inline void f - (void) { } inline void g (void) { f (); }', c99 incorrectly complains - 'reference to static identifier "f" in extern inline function'. - This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. - Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) - on configurations that mistakenly use 'static inline' to implement - functions or macros in standard C headers like . For example, - if isdigit is mistakenly implemented via a static inline function, - a program containing an extern inline function that calls isdigit - may not work since the C standard prohibits extern inline functions - from calling static functions (ISO C 99 section 6.7.4.(3). - This bug is known to occur on: +/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function + is the size of the returned memory block. + _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied + by the Nth argument of the function is the size of the returned memory block. + */ +/* Applies to: function, pointer to function, function types. */ +#if _GL_HAS_ATTRIBUTE (alloc_size) +# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) +#else +# define _GL_ATTRIBUTE_ALLOC_SIZE(args) +#endif - OS X 10.8 and earlier; see: - https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html +/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the + function and report an error if it cannot do so. */ +/* Applies to: function. */ +#if _GL_HAS_ATTRIBUTE (always_inline) +# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) +#else +# define _GL_ATTRIBUTE_ALWAYS_INLINE +#endif - DragonFly; see - http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log +/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show + in stack traces when debugging. The compiler should omit the function from + stack traces. */ +/* Applies to: function. */ +#if _GL_HAS_ATTRIBUTE (artificial) +# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) +#else +# define _GL_ATTRIBUTE_ARTIFICIAL +#endif - FreeBSD; see: - https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html +/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */ +/* Applies to: functions. */ +/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at + . + Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ +#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ +# ifndef __SUNPRO_C +# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) +# else +# define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) +# endif +#else +# define _GL_ATTRIBUTE_COLD +#endif - OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and - for clang but remains for g++; see . - Assume DragonFly and FreeBSD will be similar. +/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate + calls to the function with the same arguments. + This attribute is safe for a function that neither depends on nor affects + observable state, and always returns exactly once - e.g., does not loop + forever, and does not call longjmp. + (This attribute is stricter than _GL_ATTRIBUTE_PURE.) */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (const) +# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) +#else +# define _GL_ATTRIBUTE_CONST +#endif - GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 - inline semantics, unless -fgnu89-inline is used. It defines a macro - __GNUC_STDC_INLINE__ to indicate this situation or a macro - __GNUC_GNU_INLINE__ to indicate the opposite situation. - GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline - semantics but warns, unless -fgnu89-inline is used: - warning: C99 inline functions are not supported; using GNU89 - warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute - It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. +/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers + that can be freed by passing them as the Ith argument to the + function F. + _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that + can be freed via 'free'; it can be used only after declaring 'free'. */ +/* Applies to: functions. Cannot be used on inline functions. */ +#if _GL_GNUC_PREREQ (11, 0) +# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) +#else +# define _GL_ATTRIBUTE_DEALLOC(f, i) +#endif +/* If gnulib's or has already defined this macro, continue + to use this earlier definition, since may not have been included + yet. */ +#ifndef _GL_ATTRIBUTE_DEALLOC_FREE +# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1) +#endif + +/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated. + The compiler may warn if the entity is used. */ +/* Applies to: + - function, variable, + - struct, union, struct/union member, + - enumeration, enumeration item, + - typedef, + in C++ also: namespace, class, template specialization. */ +#if _GL_HAS_C_ATTRIBUTE (deprecated) +# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] +#elif _GL_HAS_ATTRIBUTE (deprecated) +# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) +#else +# define _GL_ATTRIBUTE_DEPRECATED +#endif + +/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and + the function call is not optimized away. + _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and + the function call is not optimized away. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (error) +# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) +# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) +#elif _GL_HAS_ATTRIBUTE (diagnose_if) +# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) +# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) +#else +# define _GL_ATTRIBUTE_ERROR(msg) +# define _GL_ATTRIBUTE_WARNING(msg) +#endif + +/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain + visible to debuggers etc., even with '-fwhole-program'. */ +/* Applies to: functions, variables. */ +#if _GL_HAS_ATTRIBUTE (externally_visible) +# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) +#else +# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE +#endif + +/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if + the control flow falls through to the immediately following 'case' or + 'default' label. The compiler should not warn in this case. */ +/* Applies to: Empty statement (;), inside a 'switch' statement. */ +/* Always expands to something. */ +#if _GL_HAS_C_ATTRIBUTE (fallthrough) +# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] +#elif _GL_HAS_ATTRIBUTE (fallthrough) +# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) +#else +# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) +#endif + +/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) + declares that the STRING-INDEXth function argument is a format string of + style ARCHETYPE, which is one of: + printf, gnu_printf + scanf, gnu_scanf, + strftime, gnu_strftime, + strfmon, + or the same thing prefixed and suffixed with '__'. + If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK + are suitable for the format string. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (format) +# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) +#else +# define _GL_ATTRIBUTE_FORMAT(spec) +#endif + +/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other + compilation unit, it executes code from that unit only by return or by + exception handling. This declaration lets the compiler optimize that unit + more aggressively. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (leaf) +# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) +#else +# define _GL_ATTRIBUTE_LEAF +#endif + +/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly + allocated memory. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (malloc) +# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) +#else +# define _GL_ATTRIBUTE_MALLOC +#endif + +/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the + same storage as pointers to other types. Thus this declaration disables + strict aliasing optimization. */ +/* Applies to: types. */ +/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ +#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C +# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) +#else +# define _GL_ATTRIBUTE_MAY_ALIAS +#endif + +/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if + the entity is not used. The compiler should not warn if the entity is not + used. */ +/* Applies to: + - function, variable, + - struct, union, struct/union member, + - enumeration, enumeration item, + - typedef, + in C++ also: class. */ +/* In C++ and C2x, this is spelled [[__maybe_unused__]]. + GCC's syntax is __attribute__ ((__unused__)). + clang supports both syntaxes. */ +#if _GL_HAS_C_ATTRIBUTE (maybe_unused) +# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] +#else +# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED +#endif +/* Alternative spelling of this macro, for convenience. */ +#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED +/* Earlier spellings of this macro. */ +#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED + +/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not + discard the return value. The compiler may warn if the caller does not use + the return value, unless the caller uses something like ignore_value. */ +/* Applies to: function, enumeration, class. */ +#if _GL_HAS_C_ATTRIBUTE (nodiscard) +# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] +#elif _GL_HAS_ATTRIBUTE (warn_unused_result) +# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) +#else +# define _GL_ATTRIBUTE_NODISCARD +#endif + +/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the + function. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (noinline) +# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) +#else +# define _GL_ATTRIBUTE_NOINLINE +#endif + +/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,... + must not be NULL. + _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be + null. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (nonnull) +# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) +#else +# define _GL_ATTRIBUTE_NONNULL(args) +#endif + +/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is + not meant to be NUL-terminated. */ +/* Applies to: struct/union members and variables that are arrays of element + type '[[un]signed] char'. */ +#if _GL_HAS_ATTRIBUTE (nonstring) +# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) +#else +# define _GL_ATTRIBUTE_NONSTRING +#endif + +/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ + +/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. */ -#if (((defined __APPLE__ && defined __MACH__) \ - || defined __DragonFly__ || defined __FreeBSD__) \ - && (defined __header_inline \ - ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ - && ! defined __clang__) \ - : ((! defined _DONT_USE_CTYPE_INLINE_ \ - && (defined __GNUC__ || defined __cplusplus)) \ - || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ - && defined __GNUC__ && ! defined __cplusplus)))) -# define _GL_EXTERN_INLINE_STDHEADER_BUG +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus +# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) +#else +# define _GL_ATTRIBUTE_NOTHROW #endif -#if ((__GNUC__ \ - ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ - : (199901L <= __STDC_VERSION__ \ - && !defined __HP_cc \ - && !defined __PGI \ - && !(defined __SUNPRO_C && __STDC__))) \ - && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) -# define _GL_INLINE inline -# define _GL_EXTERN_INLINE extern inline -# define _GL_EXTERN_INLINE_IN_USE -#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ - && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) -# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ - /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ -# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) -# else -# define _GL_INLINE extern inline -# endif -# define _GL_EXTERN_INLINE extern -# define _GL_EXTERN_INLINE_IN_USE + +/* _GL_ATTRIBUTE_PACKED declares: + For struct members: The member has the smallest possible alignment. + For struct, union, class: All members have the smallest possible alignment, + minimizing the memory required. */ +/* Applies to: struct members, struct, union, + in C++ also: class. */ +#if _GL_HAS_ATTRIBUTE (packed) +# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) #else -# define _GL_INLINE static _GL_UNUSED -# define _GL_EXTERN_INLINE static _GL_UNUSED +# define _GL_ATTRIBUTE_PACKED #endif -/* In GCC 4.6 (inclusive) to 5.1 (exclusive), - suppress bogus "no previous prototype for 'FOO'" - and "no previous declaration for 'FOO'" diagnostics, - when FOO is an inline function in the header; see - and - . */ -#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ -# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ -# define _GL_INLINE_HEADER_CONST_PRAGMA -# else -# define _GL_INLINE_HEADER_CONST_PRAGMA \ - _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") -# endif -# define _GL_INLINE_HEADER_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ - _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ - _GL_INLINE_HEADER_CONST_PRAGMA -# define _GL_INLINE_HEADER_END \ - _Pragma ("GCC diagnostic pop") +/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate + calls to the function with the same arguments if observable state is not + changed between calls. + This attribute is safe for a function that does not affect + observable state, and always returns exactly once. + (This attribute is looser than _GL_ATTRIBUTE_CONST.) */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (pure) +# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else -# define _GL_INLINE_HEADER_BEGIN -# define _GL_INLINE_HEADER_END +# define _GL_ATTRIBUTE_PURE #endif +/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is + a non-NULL pointer. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (returns_nonnull) +# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) +#else +# define _GL_ATTRIBUTE_RETURNS_NONNULL +#endif + +/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a + trailing NULL argument. + _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). + _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ +/* Applies to: functions. */ +#if _GL_HAS_ATTRIBUTE (sentinel) +# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) +#else +# define _GL_ATTRIBUTE_SENTINEL(pos) +#endif + +/* A helper macro. Don't use it directly. */ +#if _GL_HAS_ATTRIBUTE (unused) +# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +#else +# define _GL_ATTRIBUTE_UNUSED +#endif + + +/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the + immediately preceding label is not used. The compiler should not warn + if the label is not used. */ +/* Applies to: label (both in C and C++). */ +/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;' + syntax. But clang does. */ +#if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__ +# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED +#else +# define _GL_UNUSED_LABEL +#endif + + /* Define to `int' if doesn't define. */ #define gid_t int @@ -794,25 +1395,42 @@ /* Define to a type if does not define. */ /* #undef mbstate_t */ +/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where + n1 and n2 are expressions without side effects, that evaluate to real + numbers (excluding NaN). + It returns + 1 if n1 > n2 + 0 if n1 == n2 + -1 if n1 < n2 + The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional + jump with nearly all GCC versions up to GCC 10. + This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many + GCC versions up to GCC 9. + The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9 + avoids conditional jumps in all GCC versions >= 3.4. */ +#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2))) + + /* Define to `int' if does not define. */ #define mode_t int /* Define to the type of st_nlink in struct stat, or a supertype. */ #define nlink_t int -/* Define to `int' if does not define. */ +/* Define as a signed integer type capable of holding a process identifier. */ #define pid_t int /* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is - supported directly. */ + supported only directly. */ #define restrict /**/ -/* Work around a bug in Sun C++: it does not support _Restrict or - __restrict__, even though the corresponding Sun C compiler ends up with - "#define restrict _Restrict" or "#define restrict __restrict__" in the - previous line. Perhaps some future version of Sun C++ will work with - restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ -#if defined __SUNPRO_CC && !defined __RESTRICT +/* Work around a bug in older versions of Sun C++, which did not + #define __restrict__ or support _Restrict or __restrict__ + even though the corresponding Sun C compiler ended up with + "#define restrict _Restrict" or "#define restrict __restrict__" + in the previous line. This workaround can be removed once + we assume Oracle Developer Studio 12.5 (2016) or later. */ +#if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__ # define _Restrict # define __restrict__ #endif @@ -830,49 +1448,21 @@ typedef int ssize_t; /* Define to `int' if doesn't define. */ #define uid_t int -/* Define as a marker that can be attached to declarations that might not - be used. This helps to reduce warnings, such as from - GCC -Wunused-parameter. */ -#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) -# define _GL_UNUSED __attribute__ ((__unused__)) -#else -# define _GL_UNUSED -#endif -/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name - is a misnomer outside of parameter lists. */ -#define _UNUSED_PARAMETER_ _GL_UNUSED - -/* gcc supports the "unused" attribute on possibly unused labels, and - g++ has since version 4.5. Note to support C++ as well as C, - _GL_UNUSED_LABEL should be used with a trailing ; */ -#if !defined __cplusplus || __GNUC__ > 4 \ - || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) -# define _GL_UNUSED_LABEL _GL_UNUSED -#else -# define _GL_UNUSED_LABEL -#endif - -/* The __pure__ attribute was added in gcc 2.96. */ -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -#else -# define _GL_ATTRIBUTE_PURE /* empty */ -#endif - -/* The __const__ attribute was added in gcc 2.95. */ -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) -# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) -#else -# define _GL_ATTRIBUTE_CONST /* empty */ -#endif - -/* The __malloc__ attribute was added in gcc 3. */ -#if 3 <= __GNUC__ -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -#else -# define _GL_ATTRIBUTE_MALLOC /* empty */ -#endif + /* This definition is a duplicate of the one in unitypes.h. + It is here so that we can cope with an older version of unitypes.h + that does not contain this definition and that is pre-installed among + the public header files. */ + # if defined __restrict \ + || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ + || __clang_major__ >= 3 + # define _UC_RESTRICT __restrict + # elif 199901L <= __STDC_VERSION__ || defined restrict + # define _UC_RESTRICT restrict + # else + # define _UC_RESTRICT + # endif + /* On Windows, variables that may be in a DLL must be marked specially. */ diff --git a/src/iconv.c b/src/iconv.c index 83ae9817..e7665753 100644 --- a/src/iconv.c +++ b/src/iconv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2009, 2011-2012, 2016-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2022 Free Software Foundation, Inc. This file is part of the GNU LIBICONV Library. This program is free software: you can redistribute it and/or modify @@ -180,11 +180,16 @@ Informative output:\n")); printf(_("\ --version output version information and exit\n")); printf("\n"); - /* TRANSLATORS: The placeholder indicates the bug-reporting address - for this package. Please add _another line_ saying + /* TRANSLATORS: The first placeholder is the web address of the Savannah + project of this package. The second placeholder is the bug-reporting + email address for this package. Please add _another line_ saying "Report translation bugs to <...>\n" with the address for translation bugs (typically your translation team's web or email address). */ - fputs(_("Report bugs to .\n"),stdout); + printf(_("\ +Report bugs in the bug tracker at <%s>\n\ +or by email to <%s>.\n"), + "https://savannah.gnu.org/projects/libiconv", + "bug-gnu-libiconv@gnu.org"); } exit(exitcode); } @@ -193,13 +198,14 @@ static void print_version (void) { printf("iconv (GNU libiconv %d.%d)\n", _libiconv_version >> 8, _libiconv_version & 0xff); - printf("Copyright (C) %s Free Software Foundation, Inc.\n", "2000-2019"); + printf("Copyright (C) %s Free Software Foundation, Inc.\n", "2000-2022"); /* xgettext: no-wrap */ - fputs (_("\ -License GPLv3+: GNU GPL version 3 or later \n\ + /* TRANSLATORS: The %s placeholder is the web address of the GPL license. */ + printf (_("\ +License GPLv3+: GNU GPL version 3 or later <%s>\n\ This is free software: you are free to change and redistribute it.\n\ -There is NO WARRANTY, to the extent permitted by law.\n\ -"),stdout); +There is NO WARRANTY, to the extent permitted by law.\n"), + "https://gnu.org/licenses/gpl.html"); /* TRANSLATORS: The %s placeholder expands to an author's name. */ printf(_("Written by %s.\n"),"Bruno Haible"); exit(EXIT_SUCCESS); diff --git a/srclib/binary-io.h b/srclib/binary-io.h index f015529a..af0a386a 100644 --- a/srclib/binary-io.h +++ b/srclib/binary-io.h @@ -1,17 +1,17 @@ /* Binary mode I/O. - Copyright (C) 2001, 2003, 2005, 2008-2019 Free Software Foundation, Inc. + Copyright (C) 2001, 2003, 2005, 2008-2022 Free Software Foundation, Inc. - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU Lesser General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _BINARY_H @@ -51,31 +51,27 @@ _GL_INLINE_HEADER_BEGIN /* Use a function rather than a macro, to avoid gcc warnings "warning: statement with no effect". */ BINARY_IO_INLINE int -__gl_setmode (int fd _GL_UNUSED, int mode _GL_UNUSED) +__gl_setmode (_GL_UNUSED int fd, _GL_UNUSED int mode) { return O_BINARY; } #endif -#if defined __DJGPP__ || defined __EMX__ -extern int __gl_setmode_check (int); -#else -BINARY_IO_INLINE int -__gl_setmode_check (int fd _GL_UNUSED) { return 0; } -#endif - /* Set FD's mode to MODE, which should be either O_TEXT or O_BINARY. Return the old mode if successful, -1 (setting errno) on failure. Ordinarily this function would be called 'setmode', since that is - its name on MS-Windows, but it is called 'set_binary_mode' here + its old name on MS-Windows, but it is called 'set_binary_mode' here to avoid colliding with a BSD function of another name. */ +#if defined __DJGPP__ || defined __EMX__ +extern int set_binary_mode (int fd, int mode); +#else BINARY_IO_INLINE int set_binary_mode (int fd, int mode) { - int r = __gl_setmode_check (fd); - return r != 0 ? r : __gl_setmode (fd, mode); + return __gl_setmode (fd, mode); } +#endif /* This macro is obsolescent. */ #define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY)) diff --git a/srclib/gettext.h b/srclib/gettext.h index c7c0fdb5..b3577a04 100644 --- a/srclib/gettext.h +++ b/srclib/gettext.h @@ -1,19 +1,19 @@ /* Convenience header for conditional use of GNU . - Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2019 Free Software + Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2022 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU Lesser General Public License for more details. - You should have received a copy of the GNU General Public License along - with this program; if not, see . */ + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 @@ -138,7 +138,7 @@ #define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) -#ifdef __GNUC__ +#if defined __GNUC__ || defined __clang__ __inline #else #ifdef __cplusplus @@ -157,7 +157,7 @@ pgettext_aux (const char *domain, return translation; } -#ifdef __GNUC__ +#if defined __GNUC__ || defined __clang__ __inline #else #ifdef __cplusplus @@ -191,9 +191,8 @@ npgettext_aux (const char *domain, or may have security implications due to non-deterministic stack usage. */ #if (!defined GNULIB_NO_VLA \ - && (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \ - /* || (__STDC_VERSION__ == 199901L && !defined __HP_cc) - || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ )) + && defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__ \ + && !defined __STDC_NO_VLA__) # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 #else # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0 @@ -208,7 +207,7 @@ npgettext_aux (const char *domain, #define dpgettext_expr(Domainname, Msgctxt, Msgid) \ dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) -#ifdef __GNUC__ +#if defined __GNUC__ || defined __clang__ __inline #else #ifdef __cplusplus @@ -255,7 +254,7 @@ dcpgettext_expr (const char *domain, #define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) -#ifdef __GNUC__ +#if defined __GNUC__ || defined __clang__ __inline #else #ifdef __cplusplus diff --git a/srclib/localcharset.h b/srclib/localcharset.h index e5e5eb9d..d14469ec 100644 --- a/srclib/localcharset.h +++ b/srclib/localcharset.h @@ -1,19 +1,19 @@ /* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2003, 2009-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2003, 2009-2022 Free Software Foundation, Inc. This file is part of the GNU CHARSET Library. - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU Lesser General Public License for more details. - You should have received a copy of the GNU General Public License along - with this program; if not, see . */ + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ #ifndef _LOCALCHARSET_H #define _LOCALCHARSET_H @@ -26,7 +26,10 @@ extern "C" { #define locale_charset _libiconv_locale_charset /* Determine the current locale's character encoding, and canonicalize it into one of the canonical names listed below. - The result must not be freed; it is statically allocated. + The result must not be freed; it is statically allocated. The result + becomes invalid when setlocale() is used to change the global locale, or + when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG + is changed; threads in multithreaded programs should not do this. If the canonical name cannot be determined, the result is a non-canonical name. */ extern const char * locale_charset (void); @@ -45,15 +48,15 @@ extern const char * locale_charset (void); (darwin = Mac OS X, windows = native Windows) ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin minix cygwin - ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin - ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin + ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos + ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos ISO-8859-3 Y glibc solaris cygwin ISO-8859-4 Y hpux osf solaris freebsd netbsd openbsd darwin - ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin + ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos ISO-8859-6 Y glibc aix hpux solaris cygwin - ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin - ISO-8859-8 Y glibc aix hpux osf solaris cygwin - ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin + ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos + ISO-8859-8 Y glibc aix hpux osf solaris cygwin zos + ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin zos ISO-8859-13 glibc hpux solaris freebsd netbsd openbsd darwin cygwin ISO-8859-14 glibc cygwin ISO-8859-15 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin @@ -76,7 +79,7 @@ extern const char * locale_charset (void); CP874 windows dos CP922 aix CP932 aix cygwin windows dos - CP943 aix + CP943 aix zos CP949 osf darwin windows dos CP950 windows dos CP1046 aix @@ -92,17 +95,17 @@ extern const char * locale_charset (void); CP1255 glibc windows CP1256 windows CP1257 windows - GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin + GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin zos EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin - EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin + EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin zos EUC-TW glibc aix hpux irix osf solaris netbsd - BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin + BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin zos BIG5-HKSCS glibc hpux solaris netbsd darwin GBK glibc aix osf solaris freebsd darwin cygwin windows dos GB18030 glibc hpux solaris freebsd netbsd darwin SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin JOHAB glibc solaris windows - TIS-620 glibc aix hpux osf solaris cygwin + TIS-620 glibc aix hpux osf solaris cygwin zos VISCII Y glibc TCVN5712-1 glibc ARMSCII-8 glibc freebsd netbsd darwin @@ -116,7 +119,7 @@ extern const char * locale_charset (void); HP-KANA8 hpux DEC-KANJI osf DEC-HANYU osf - UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin + UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin zos Note: Names which are not marked as being a MIME name should not be used in Internet protocols for information interchange (mail, news, etc.). diff --git a/srclib/progname.c b/srclib/progname.c index a42b7fa2..6f09c2b5 100644 --- a/srclib/progname.c +++ b/srclib/progname.c @@ -1,10 +1,10 @@ /* Program name management. - Copyright (C) 2001-2003, 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2005-2022 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, diff --git a/srclib/progname.h b/srclib/progname.h index c726e97e..05610896 100644 --- a/srclib/progname.h +++ b/srclib/progname.h @@ -1,10 +1,10 @@ /* Program name management. - Copyright (C) 2001-2004, 2006, 2009-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2004, 2006, 2009-2022 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, diff --git a/srclib/safe-read.c b/srclib/safe-read.c index 697f40c4..aa5674ee 100644 --- a/srclib/safe-read.c +++ b/srclib/safe-read.c @@ -1,19 +1,19 @@ /* An interface to read and write that retries after interrupts. - Copyright (C) 1993-1994, 1998, 2002-2006, 2009-2019 Free Software + Copyright (C) 1993-1994, 1998, 2002-2006, 2009-2022 Free Software Foundation, Inc. - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU Lesser General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include diff --git a/srclib/safe-read.h b/srclib/safe-read.h index 3f421f6b..a39bb984 100644 --- a/srclib/safe-read.h +++ b/srclib/safe-read.h @@ -1,17 +1,17 @@ /* An interface to read() that retries after interrupts. - Copyright (C) 2002, 2006, 2009-2019 Free Software Foundation, Inc. + Copyright (C) 2002, 2006, 2009-2022 Free Software Foundation, Inc. - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU Lesser General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Some system calls may be interrupted and fail with errno = EINTR in the diff --git a/srclib/streq.h b/srclib/streq.h index 326537b6..49f73c1b 100644 --- a/srclib/streq.h +++ b/srclib/streq.h @@ -1,17 +1,17 @@ /* Optimized string comparison. - Copyright (C) 2001-2002, 2007, 2009-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2007, 2009-2022 Free Software Foundation, Inc. - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /* Written by Bruno Haible . */ @@ -29,7 +29,7 @@ /* Help GCC to generate good code for string comparisons with immediate strings. */ -#if defined (__GNUC__) && defined (__OPTIMIZE__) +#if (defined __GNUC__ || defined __clang__) && defined __OPTIMIZE__ static inline int streq9 (const char *s1, const char *s2) diff --git a/srclib/sys-limits.h b/srclib/sys-limits.h index f407eff7..d154f0b2 100644 --- a/srclib/sys-limits.h +++ b/srclib/sys-limits.h @@ -1,19 +1,19 @@ /* System call limits - Copyright 2018-2019 Free Software Foundation, Inc. + Copyright 2018-2022 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU Lesser General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program; if not, see . */ + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ #ifndef _GL_SYS_LIMITS_H #define _GL_SYS_LIMITS_H diff --git a/srclib/unictype/bitmap.h b/srclib/unictype/bitmap.h new file mode 100644 index 00000000..f56ed129 --- /dev/null +++ b/srclib/unictype/bitmap.h @@ -0,0 +1,53 @@ +/* Three-level bitmap lookup. + Copyright (C) 2000-2002, 2005-2007, 2009-2022 Free Software Foundation, Inc. + Written by Bruno Haible , 2000-2002. + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#if defined(__cplusplus) || !defined(_MSC_VER) || _MSC_VER >= 1900 +#define LIBICONV_SRCLIB_INLINE inline +#else +#define LIBICONV_SRCLIB_INLINE __inline +#endif +static LIBICONV_SRCLIB_INLINE int bitmap_lookup(const void *table, ucs4_t uc); + +/* These values are currently hardcoded into gen-uni-tables.c, function + output_predicate(). */ +#define header_0 16 +#define header_2 9 +#define header_3 127 +#define header_4 15 + +static LIBICONV_SRCLIB_INLINE int +bitmap_lookup (const void *table, ucs4_t uc) +{ + unsigned int index1 = uc >> header_0; + if (index1 < ((const int *) table)[0]) + { + int lookup1 = ((const int *) table)[1 + index1]; + if (lookup1 >= 0) + { + unsigned int index2 = (uc >> header_2) & header_3; + int lookup2 = ((const short *) table)[lookup1 + index2]; + if (lookup2 >= 0) + { + unsigned int index3 = (uc >> 5) & header_4; + unsigned int lookup3 = ((const unsigned int *) table)[lookup2 + index3]; + + return (lookup3 >> (uc & 0x1f)) & 1; + } + } + } + return 0; +} diff --git a/srclib/uniwidth/cjk.h b/srclib/uniwidth/cjk.h index 9870422c..b791ba96 100644 --- a/srclib/uniwidth/cjk.h +++ b/srclib/uniwidth/cjk.h @@ -1,18 +1,18 @@ /* Test for CJK encoding. - Copyright (C) 2001-2002, 2005-2007, 2009-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2005-2007, 2009-2022 Free Software Foundation, Inc. Written by Bruno Haible , 2002. - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include "streq.h" diff --git a/srclib/uniwidth/width.c b/srclib/uniwidth/width.c index a7f59b18..1c945a88 100644 --- a/srclib/uniwidth/width.c +++ b/srclib/uniwidth/width.c @@ -1,18 +1,18 @@ /* Determine display width of Unicode character. - Copyright (C) 2001-2002, 2006-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2006-2022 Free Software Foundation, Inc. Written by Bruno Haible , 2002. - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include @@ -22,400 +22,43 @@ #include "cjk.h" -/* - * Non-spacing attribute table. - * Consists of: - * - Non-spacing characters; generated from PropList.txt or - * "grep '^[^;]*;[^;]*;[^;]*;[^;]*;NSM;' UnicodeData.txt" - * - Format control characters; generated from - * "grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt" - * - Zero width characters; generated from - * "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt" +/* The non-spacing attribute table consists of: + * Non-spacing characters; generated from PropList.txt or + "grep '^[^;]*;[^;]*;[^;]*;[^;]*;NSM;' UnicodeData.txt" + * Format control characters; generated from + "grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt" + * Zero width characters; generated from + "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt" + * Hangul Jamo characters that have conjoining behaviour: + - jungseong = syllable-middle vowels + - jongseong = syllable-final consonants + Rationale: + 1) These characters act like combining characters. They have no + equivalent in legacy character sets. Therefore the EastAsianWidth.txt + file does not really matter for them; UAX #11 East Asian Width + makes it clear that it focus + is on compatibility with traditional Japanese layout. + By contrast, the same glyphs without conjoining behaviour are available + in the U+3130..U+318F block, and these characters are mapped to legacy + character sets, and traditional Japanese layout matters for them. + 2) glibc does the same thing, see + + */ -static const unsigned char nonspacing_table_data[38*64] = { - /* 0x0000-0x01ff */ - 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */ - 0xff, 0xff, 0xff, 0xff, 0x00, 0x20, 0x00, 0x00, /* 0x0080-0x00bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00c0-0x00ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0100-0x013f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0140-0x017f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180-0x01bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0-0x01ff */ - /* 0x0200-0x03ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200-0x023f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240-0x027f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280-0x02bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c0-0x02ff */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0300-0x033f */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x0340-0x037f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0380-0x03bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x03c0-0x03ff */ - /* 0x0400-0x05ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0400-0x043f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0440-0x047f */ - 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0480-0x04bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04c0-0x04ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0500-0x053f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0540-0x057f */ - 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */ - 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */ - /* 0x0600-0x07ff */ - 0x3f, 0x00, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */ - 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */ - 0x00, 0x00, 0xc0, 0xbf, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */ - 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */ - 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */ - 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x07c0-0x07ff */ - /* 0x0800-0x09ff */ - 0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */ - 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */ - 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x08c0-0x08ff */ - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x0900-0x093f */ - 0xfe, 0x21, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */ - 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x09c0-0x09ff */ - /* 0x0a00-0x0bff */ - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a00-0x0a3f */ - 0x86, 0x39, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, /* 0x0a40-0x0a7f */ - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a80-0x0abf */ - 0xbe, 0x21, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0ac0-0x0aff */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0x0b00-0x0b3f */ - 0x1e, 0x20, 0x40, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0b40-0x0b7f */ - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */ - 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */ - /* 0x0c00-0x0dff */ - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, /* 0x0c00-0x0c3f */ - 0xc1, 0x3d, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */ - 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d00-0x0d3f */ - 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0d40-0x0d7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d80-0x0dbf */ - 0x00, 0x04, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0dc0-0x0dff */ - /* 0x0e00-0x0fff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x07, /* 0x0e00-0x0e3f */ - 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0e40-0x0e7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1b, /* 0x0e80-0x0ebf */ - 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */ - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */ - 0xdf, 0xe0, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */ - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */ - /* 0x1000-0x11ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfd, 0x66, /* 0x1000-0x103f */ - 0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x1e, 0x00, /* 0x1040-0x107f */ - 0x64, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1140-0x117f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1180-0x11bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c0-0x11ff */ - /* 0x1200-0x13ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1200-0x123f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1240-0x127f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */ - 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */ - /* 0x1600-0x17ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1600-0x163f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1640-0x167f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1680-0x16bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16c0-0x16ff */ - 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, /* 0x1700-0x173f */ - 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1740-0x177f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */ - 0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */ - /* 0x1800-0x19ff */ - 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */ - 0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */ - 0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0e, /* 0x1900-0x193f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1980-0x19bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */ - /* 0x1a00-0x1bff */ - 0x00, 0x00, 0x80, 0x09, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */ - 0x00, 0x00, 0x40, 0x7f, 0xe5, 0x1f, 0xf8, 0x9f, /* 0x1a40-0x1a7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, /* 0x1a80-0x1abf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */ - 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */ - 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */ - 0x03, 0x00, 0x00, 0x00, 0x3c, 0x3b, 0x00, 0x00, /* 0x1b80-0x1bbf */ - 0x00, 0x00, 0x00, 0x00, 0x40, 0xa3, 0x03, 0x00, /* 0x1bc0-0x1bff */ - /* 0x1c00-0x1dff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0x00, /* 0x1c00-0x1c3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */ - 0x00, 0x00, 0xf7, 0xff, 0xfd, 0x21, 0x10, 0x03, /* 0x1cc0-0x1cff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf8, /* 0x1dc0-0x1dff */ - /* 0x2000-0x21ff */ - 0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */ - 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0x00, 0x00, /* 0x2040-0x207f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2080-0x20bf */ - 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, /* 0x20c0-0x20ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2100-0x213f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2140-0x217f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2180-0x21bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21c0-0x21ff */ - /* 0x2c00-0x2dff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c00-0x2c3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c40-0x2c7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c80-0x2cbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, /* 0x2cc0-0x2cff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d00-0x2d3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x2d40-0x2d7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d80-0x2dbf */ - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x2dc0-0x2dff */ - /* 0x3000-0x31ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x3000-0x303f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3040-0x307f */ - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0x3080-0x30bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30c0-0x30ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3100-0x313f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3140-0x317f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3180-0x31bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x31c0-0x31ff */ - /* 0xa600-0xa7ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa600-0xa63f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf7, 0x3f, /* 0xa640-0xa67f */ - 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, /* 0xa680-0xa6bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0xa6c0-0xa6ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa700-0xa73f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa740-0xa77f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa780-0xa7bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa7c0-0xa7ff */ - /* 0xa800-0xa9ff */ - 0x44, 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0xa800-0xa83f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */ - 0x30, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, /* 0xa8c0-0xa8ff */ - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */ - 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */ - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x13, /* 0xa980-0xa9bf */ - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */ - /* 0xaa00-0xabff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x66, 0x00, /* 0xaa00-0xaa3f */ - 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0xaa40-0xaa7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xc1, /* 0xaa80-0xaabf */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x30, 0x40, 0x00, /* 0xaac0-0xaaff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab00-0xab3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab40-0xab7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab80-0xabbf */ - 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, /* 0xabc0-0xabff */ - /* 0xfa00-0xfbff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa80-0xfabf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfac0-0xfaff */ - 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0xfb00-0xfb3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb40-0xfb7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb80-0xfbbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfbc0-0xfbff */ - /* 0xfe00-0xffff */ - 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, /* 0xfe00-0xfe3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe40-0xfe7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe80-0xfebf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xfec0-0xfeff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff00-0xff3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff40-0xff7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff80-0xffbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, /* 0xffc0-0xffff */ - /* 0x10000-0x101ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10000-0x1003f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10040-0x1007f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10080-0x100bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x100c0-0x100ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10100-0x1013f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10140-0x1017f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10180-0x101bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* 0x101c0-0x101ff */ - /* 0x10200-0x103ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10200-0x1023f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10240-0x1027f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10280-0x102bf */ - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, /* 0x102c0-0x102ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10300-0x1033f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, /* 0x10340-0x1037f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10380-0x103bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x103c0-0x103ff */ - /* 0x10a00-0x10bff */ - 0x6e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0x10a00-0x10a3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a40-0x10a7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a80-0x10abf */ - 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b00-0x10b3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */ - /* 0x11000-0x111ff */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11000-0x1103f */ - 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x11040-0x1107f */ - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x26, /* 0x11080-0x110bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x110c0-0x110ff */ - 0x07, 0x00, 0x00, 0x00, 0x80, 0xef, 0x1f, 0x00, /* 0x11100-0x1113f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, /* 0x11140-0x1117f */ - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, /* 0x11180-0x111bf */ - 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */ - /* 0x11200-0x113ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd3, 0x40, /* 0x11200-0x1123f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11240-0x1127f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11280-0x112bf */ - 0x00, 0x00, 0x00, 0x80, 0xf8, 0x07, 0x00, 0x00, /* 0x112c0-0x112ff */ - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x11300-0x1133f */ - 0x01, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x1f, 0x00, /* 0x11340-0x1137f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11380-0x113bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x113c0-0x113ff */ - /* 0x11400-0x115ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11400-0x1143f */ - 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11440-0x1147f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x85, /* 0x11480-0x114bf */ - 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x114c0-0x114ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11500-0x1153f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11540-0x1157f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xb0, /* 0x11580-0x115bf */ - 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, /* 0x115c0-0x115ff */ - /* 0x11600-0x117ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa7, /* 0x11600-0x1163f */ - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11640-0x1167f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xbf, 0x00, /* 0x11680-0x116bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x116c0-0x116ff */ - 0x00, 0x00, 0x00, 0xe0, 0xbc, 0x0f, 0x00, 0x00, /* 0x11700-0x1173f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11740-0x1177f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11780-0x117bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x117c0-0x117ff */ - /* 0x11c00-0x11dff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x3f, /* 0x11c00-0x11c3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c40-0x11c7f */ - 0x00, 0x00, 0xfc, 0xff, 0xff, 0xfc, 0x6d, 0x00, /* 0x11c80-0x11cbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11cc0-0x11cff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d00-0x11d3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d40-0x11d7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d80-0x11dbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11dc0-0x11dff */ - /* 0x16a00-0x16bff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a00-0x16a3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a40-0x16a7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a80-0x16abf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, /* 0x16ac0-0x16aff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0x16b00-0x16b3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b40-0x16b7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b80-0x16bbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16bc0-0x16bff */ - /* 0x16e00-0x16fff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e00-0x16e3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e40-0x16e7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e80-0x16ebf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16ec0-0x16eff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f00-0x16f3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f40-0x16f7f */ - 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f80-0x16fbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16fc0-0x16fff */ - /* 0x1bc00-0x1bdff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc00-0x1bc3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc40-0x1bc7f */ - 0x00, 0x00, 0x00, 0x60, 0x0f, 0x00, 0x00, 0x00, /* 0x1bc80-0x1bcbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bcc0-0x1bcff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd00-0x1bd3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd40-0x1bd7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd80-0x1bdbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bdc0-0x1bdff */ - /* 0x1d000-0x1d1ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */ - 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0xff, /* 0x1d140-0x1d17f */ - 0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */ - /* 0x1d200-0x1d3ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d200-0x1d23f */ - 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d240-0x1d27f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d280-0x1d2bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d2c0-0x1d2ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d300-0x1d33f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d340-0x1d37f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d380-0x1d3bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d3c0-0x1d3ff */ - /* 0x1da00-0x1dbff */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf8, /* 0x1da00-0x1da3f */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x20, 0x00, /* 0x1da40-0x1da7f */ - 0x10, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x00, 0x00, /* 0x1da80-0x1dabf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dac0-0x1daff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db00-0x1db3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db40-0x1db7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db80-0x1dbbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dbc0-0x1dbff */ - /* 0x1e000-0x1e1ff */ - 0x7f, 0xff, 0xff, 0xf9, 0xdb, 0x07, 0x00, 0x00, /* 0x1e000-0x1e03f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e040-0x1e07f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e080-0x1e0bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e0c0-0x1e0ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e100-0x1e13f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e140-0x1e17f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e180-0x1e1bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e1c0-0x1e1ff */ - /* 0x1e800-0x1e9ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e800-0x1e83f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e840-0x1e87f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e880-0x1e8bf */ - 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e8c0-0x1e8ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e900-0x1e93f */ - 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e940-0x1e97f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e980-0x1e9bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* 0x1e9c0-0x1e9ff */ -}; -static const signed char nonspacing_table_ind[248] = { - 0, 1, 2, 3, 4, 5, 6, 7, /* 0x0000-0x0fff */ - 8, 9, -1, 10, 11, 12, 13, -1, /* 0x1000-0x1fff */ - 14, -1, -1, -1, -1, -1, 15, -1, /* 0x2000-0x2fff */ - 16, -1, -1, -1, -1, -1, -1, -1, /* 0x3000-0x3fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x4000-0x4fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x5000-0x5fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x6000-0x6fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x7000-0x7fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x8000-0x8fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x9000-0x9fff */ - -1, -1, -1, 17, 18, 19, -1, -1, /* 0xa000-0xafff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb000-0xbfff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc000-0xcfff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd000-0xdfff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */ - -1, -1, -1, -1, -1, 20, -1, 21, /* 0xf000-0xffff */ - 22, 23, -1, -1, -1, 24, -1, -1, /* 0x10000-0x10fff */ - 25, 26, 27, 28, -1, -1, 29, -1, /* 0x11000-0x11fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */ - -1, -1, -1, -1, -1, 30, -1, 31, /* 0x16000-0x16fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */ - -1, -1, -1, -1, -1, -1, 32, -1, /* 0x1b000-0x1bfff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1c000-0x1cfff */ - 33, 34, -1, -1, -1, 35, -1, -1, /* 0x1d000-0x1dfff */ - 36, -1, -1, -1, 37, -1, -1, -1 /* 0x1e000-0x1efff */ -}; +#include "uniwidth/width0.h" + +#include "uniwidth/width2.h" +#include "unictype/bitmap.h" + +#define SIZEOF(a) (sizeof(a) / sizeof(a[0])) + /* Determine number of column positions required for UC. */ int uc_width (ucs4_t uc, const char *encoding) { /* Test for non-spacing or control character. */ - if ((uc >> 9) < 248) + if ((uc >> 9) < SIZEOF (nonspacing_table_ind)) { int ind = nonspacing_table_ind[uc >> 9]; if (ind >= 0) @@ -440,24 +83,8 @@ uc_width (ucs4_t uc, const char *encoding) return 0; } } - /* Test for double-width character. - * Generated from "grep '^[^;]\{4,5\};[WF]' EastAsianWidth.txt" - * and "grep '^[^;]\{4,5\};[^WF]' EastAsianWidth.txt" - */ - if (uc >= 0x1100 - && ((uc < 0x1160) /* Hangul Jamo */ - || (uc >= 0x2329 && uc < 0x232b) /* Angle Brackets */ - || (uc >= 0x2e80 && uc < 0xa4d0 /* CJK ... Yi */ - && !(uc == 0x303f) && !(uc >= 0x4dc0 && uc < 0x4e00)) - || (uc >= 0xac00 && uc < 0xd7a4) /* Hangul Syllables */ - || (uc >= 0xf900 && uc < 0xfb00) /* CJK Compatibility Ideographs */ - || (uc >= 0xfe10 && uc < 0xfe20) /* Presentation Forms for Vertical */ - || (uc >= 0xfe30 && uc < 0xfe70) /* CJK Compatibility Forms */ - || (uc >= 0xff00 && uc < 0xff61) /* Fullwidth Forms */ - || (uc >= 0xffe0 && uc < 0xffe7) /* Fullwidth Signs */ - || (uc >= 0x20000 && uc <= 0x2ffff) /* Supplementary Ideographic Plane */ - || (uc >= 0x30000 && uc <= 0x3ffff) /* Tertiary Ideographic Plane */ - ) ) + /* Test for double-width character. */ + if (bitmap_lookup (&u_width2, uc)) return 2; /* In ancient CJK encodings, Cyrillic and most other characters are double-width as well. */ diff --git a/srclib/uniwidth/width0.h b/srclib/uniwidth/width0.h new file mode 100644 index 00000000..eda0a1d3 --- /dev/null +++ b/srclib/uniwidth/width0.h @@ -0,0 +1,485 @@ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Table of non-spacing or control characters. */ +/* Generated automatically by gen-uni-tables.c for Unicode 14.0.0. */ + +/* Copyright (C) 2000-2022 Free Software Foundation, Inc. + + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation, either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License and the GNU General Public License + for more details. + + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see . */ + +static const unsigned char nonspacing_table_data[47*64] = { + /* 0x0000-0x01ff */ + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */ + 0xff, 0xff, 0xff, 0xff, 0x00, 0x20, 0x00, 0x00, /* 0x0080-0x00bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00c0-0x00ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0100-0x013f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0140-0x017f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180-0x01bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0-0x01ff */ + /* 0x0200-0x03ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200-0x023f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240-0x027f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280-0x02bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c0-0x02ff */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0300-0x033f */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x0340-0x037f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0380-0x03bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x03c0-0x03ff */ + /* 0x0400-0x05ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0400-0x043f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0440-0x047f */ + 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0480-0x04bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04c0-0x04ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0500-0x053f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0540-0x057f */ + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */ + 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */ + /* 0x0600-0x07ff */ + 0x3f, 0x00, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */ + 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */ + 0x00, 0x00, 0xc0, 0xbf, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */ + 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */ + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */ + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x20, /* 0x07c0-0x07ff */ + /* 0x0800-0x09ff */ + 0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */ + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */ + 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */ + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x08c0-0x08ff */ + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x0900-0x093f */ + 0xfe, 0x21, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */ + 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x40, /* 0x09c0-0x09ff */ + /* 0x0a00-0x0bff */ + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a00-0x0a3f */ + 0x86, 0x39, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, /* 0x0a40-0x0a7f */ + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a80-0x0abf */ + 0xbe, 0x21, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xfc, /* 0x0ac0-0x0aff */ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0x0b00-0x0b3f */ + 0x1e, 0x20, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0b40-0x0b7f */ + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */ + 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */ + /* 0x0c00-0x0dff */ + 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, /* 0x0c00-0x0c3f */ + 0xc1, 0x3d, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */ + 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */ + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, /* 0x0d00-0x0d3f */ + 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0d40-0x0d7f */ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d80-0x0dbf */ + 0x00, 0x04, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0dc0-0x0dff */ + /* 0x0e00-0x0fff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x07, /* 0x0e00-0x0e3f */ + 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0e40-0x0e7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1f, /* 0x0e80-0x0ebf */ + 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */ + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */ + 0xdf, 0xe0, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */ + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */ + /* 0x1000-0x11ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfd, 0x66, /* 0x1000-0x103f */ + 0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x1e, 0x00, /* 0x1040-0x107f */ + 0x64, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */ + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x1140-0x117f */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x1180-0x11bf */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x11c0-0x11ff */ + /* 0x1200-0x13ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1200-0x123f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1240-0x127f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */ + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */ + /* 0x1600-0x17ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1600-0x163f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1640-0x167f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1680-0x16bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16c0-0x16ff */ + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1700-0x173f */ + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1740-0x177f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */ + 0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */ + /* 0x1800-0x19ff */ + 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */ + 0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */ + 0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0e, /* 0x1900-0x193f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1980-0x19bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */ + /* 0x1a00-0x1bff */ + 0x00, 0x00, 0x80, 0x09, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */ + 0x00, 0x00, 0x40, 0x7f, 0xe5, 0x1f, 0xf8, 0x9f, /* 0x1a40-0x1a7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x1a80-0x1abf */ + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */ + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */ + 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */ + 0x03, 0x00, 0x00, 0x00, 0x3c, 0x3b, 0x00, 0x00, /* 0x1b80-0x1bbf */ + 0x00, 0x00, 0x00, 0x00, 0x40, 0xa3, 0x03, 0x00, /* 0x1bc0-0x1bff */ + /* 0x1c00-0x1dff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0x00, /* 0x1c00-0x1c3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */ + 0x00, 0x00, 0xf7, 0xff, 0xfd, 0x21, 0x10, 0x03, /* 0x1cc0-0x1cff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x1dc0-0x1dff */ + /* 0x2000-0x21ff */ + 0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */ + 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0x00, 0x00, /* 0x2040-0x207f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2080-0x20bf */ + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, /* 0x20c0-0x20ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2100-0x213f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2140-0x217f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2180-0x21bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21c0-0x21ff */ + /* 0x2c00-0x2dff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c00-0x2c3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c40-0x2c7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c80-0x2cbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, /* 0x2cc0-0x2cff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d00-0x2d3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x2d40-0x2d7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d80-0x2dbf */ + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x2dc0-0x2dff */ + /* 0x3000-0x31ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x3000-0x303f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3040-0x307f */ + 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0x3080-0x30bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30c0-0x30ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3100-0x313f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3140-0x317f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3180-0x31bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x31c0-0x31ff */ + /* 0xa600-0xa7ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa600-0xa63f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf7, 0x3f, /* 0xa640-0xa67f */ + 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, /* 0xa680-0xa6bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0xa6c0-0xa6ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa700-0xa73f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa740-0xa77f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa780-0xa7bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa7c0-0xa7ff */ + /* 0xa800-0xa9ff */ + 0x44, 0x08, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, /* 0xa800-0xa83f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */ + 0x30, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x80, /* 0xa8c0-0xa8ff */ + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */ + 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */ + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x33, /* 0xa980-0xa9bf */ + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */ + /* 0xaa00-0xabff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x66, 0x00, /* 0xaa00-0xaa3f */ + 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0xaa40-0xaa7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xc1, /* 0xaa80-0xaabf */ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x30, 0x40, 0x00, /* 0xaac0-0xaaff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab00-0xab3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab40-0xab7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab80-0xabbf */ + 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, /* 0xabc0-0xabff */ + /* 0xd600-0xd7ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd600-0xd63f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd640-0xd67f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd680-0xd6bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd6c0-0xd6ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd700-0xd73f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd740-0xd77f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0xd780-0xd7bf */ + 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, /* 0xd7c0-0xd7ff */ + /* 0xfa00-0xfbff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa80-0xfabf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfac0-0xfaff */ + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0xfb00-0xfb3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb40-0xfb7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb80-0xfbbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfbc0-0xfbff */ + /* 0xfe00-0xffff */ + 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, /* 0xfe00-0xfe3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe40-0xfe7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe80-0xfebf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xfec0-0xfeff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff00-0xff3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff40-0xff7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff80-0xffbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, /* 0xffc0-0xffff */ + /* 0x10000-0x101ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10000-0x1003f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10040-0x1007f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10080-0x100bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x100c0-0x100ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10100-0x1013f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10140-0x1017f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10180-0x101bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* 0x101c0-0x101ff */ + /* 0x10200-0x103ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10200-0x1023f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10240-0x1027f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10280-0x102bf */ + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, /* 0x102c0-0x102ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10300-0x1033f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, /* 0x10340-0x1037f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10380-0x103bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x103c0-0x103ff */ + /* 0x10a00-0x10bff */ + 0x6e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0x10a00-0x10a3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a40-0x10a7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a80-0x10abf */ + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b00-0x10b3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */ + /* 0x10c00-0x10dff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c00-0x10c3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c40-0x10c7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c80-0x10cbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10cc0-0x10cff */ + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, /* 0x10d00-0x10d3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10d40-0x10d7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10d80-0x10dbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10dc0-0x10dff */ + /* 0x10e00-0x10fff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10e00-0x10e3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10e40-0x10e7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, /* 0x10e80-0x10ebf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10ec0-0x10eff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f00-0x10f3f */ + 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f40-0x10f7f */ + 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f80-0x10fbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10fc0-0x10fff */ + /* 0x11000-0x111ff */ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11000-0x1103f */ + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x80, /* 0x11040-0x1107f */ + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x26, /* 0x11080-0x110bf */ + 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x110c0-0x110ff */ + 0x07, 0x00, 0x00, 0x00, 0x80, 0xef, 0x1f, 0x00, /* 0x11100-0x1113f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, /* 0x11140-0x1117f */ + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, /* 0x11180-0x111bf */ + 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */ + /* 0x11200-0x113ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd3, 0x40, /* 0x11200-0x1123f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11240-0x1127f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11280-0x112bf */ + 0x00, 0x00, 0x00, 0x80, 0xf8, 0x07, 0x00, 0x00, /* 0x112c0-0x112ff */ + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, /* 0x11300-0x1133f */ + 0x01, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x1f, 0x00, /* 0x11340-0x1137f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11380-0x113bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x113c0-0x113ff */ + /* 0x11400-0x115ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11400-0x1143f */ + 0x5c, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0x11440-0x1147f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x85, /* 0x11480-0x114bf */ + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x114c0-0x114ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11500-0x1153f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11540-0x1157f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xb0, /* 0x11580-0x115bf */ + 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, /* 0x115c0-0x115ff */ + /* 0x11600-0x117ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa7, /* 0x11600-0x1163f */ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11640-0x1167f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xbf, 0x00, /* 0x11680-0x116bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x116c0-0x116ff */ + 0x00, 0x00, 0x00, 0xe0, 0xbc, 0x0f, 0x00, 0x00, /* 0x11700-0x1173f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11740-0x1177f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11780-0x117bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x117c0-0x117ff */ + /* 0x11800-0x119ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x06, /* 0x11800-0x1183f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11840-0x1187f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11880-0x118bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x118c0-0x118ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, /* 0x11900-0x1193f */ + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11940-0x1197f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11980-0x119bf */ + 0x00, 0x00, 0xf0, 0x0c, 0x01, 0x00, 0x00, 0x00, /* 0x119c0-0x119ff */ + /* 0x11a00-0x11bff */ + 0x7e, 0x06, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x79, /* 0x11a00-0x11a3f */ + 0x80, 0x00, 0x7e, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x11a40-0x11a7f */ + 0x00, 0xfc, 0x7f, 0x03, 0x00, 0x00, 0x00, 0x00, /* 0x11a80-0x11abf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11ac0-0x11aff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b00-0x11b3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b40-0x11b7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b80-0x11bbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11bc0-0x11bff */ + /* 0x11c00-0x11dff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x3f, /* 0x11c00-0x11c3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c40-0x11c7f */ + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xfc, 0x6d, 0x00, /* 0x11c80-0x11cbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11cc0-0x11cff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xb4, /* 0x11d00-0x11d3f */ + 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d40-0x11d7f */ + 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d80-0x11dbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11dc0-0x11dff */ + /* 0x11e00-0x11fff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e00-0x11e3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e40-0x11e7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e80-0x11ebf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, /* 0x11ec0-0x11eff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11f00-0x11f3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11f40-0x11f7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11f80-0x11fbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11fc0-0x11fff */ + /* 0x13400-0x135ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, /* 0x13400-0x1343f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13440-0x1347f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13480-0x134bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x134c0-0x134ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13500-0x1353f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13540-0x1357f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13580-0x135bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x135c0-0x135ff */ + /* 0x16a00-0x16bff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a00-0x16a3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a40-0x16a7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a80-0x16abf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, /* 0x16ac0-0x16aff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0x16b00-0x16b3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b40-0x16b7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b80-0x16bbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16bc0-0x16bff */ + /* 0x16e00-0x16fff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e00-0x16e3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e40-0x16e7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e80-0x16ebf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16ec0-0x16eff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f00-0x16f3f */ + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f40-0x16f7f */ + 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f80-0x16fbf */ + 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, /* 0x16fc0-0x16fff */ + /* 0x1bc00-0x1bdff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc00-0x1bc3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc40-0x1bc7f */ + 0x00, 0x00, 0x00, 0x60, 0x0f, 0x00, 0x00, 0x00, /* 0x1bc80-0x1bcbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bcc0-0x1bcff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd00-0x1bd3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd40-0x1bd7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd80-0x1bdbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bdc0-0x1bdff */ + /* 0x1ce00-0x1cfff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce00-0x1ce3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce40-0x1ce7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce80-0x1cebf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cec0-0x1ceff */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, /* 0x1cf00-0x1cf3f */ + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cf40-0x1cf7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cf80-0x1cfbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cfc0-0x1cfff */ + /* 0x1d000-0x1d1ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */ + 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0xff, /* 0x1d140-0x1d17f */ + 0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */ + /* 0x1d200-0x1d3ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d200-0x1d23f */ + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d240-0x1d27f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d280-0x1d2bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d2c0-0x1d2ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d300-0x1d33f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d340-0x1d37f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d380-0x1d3bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d3c0-0x1d3ff */ + /* 0x1da00-0x1dbff */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf8, /* 0x1da00-0x1da3f */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x20, 0x00, /* 0x1da40-0x1da7f */ + 0x10, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x00, 0x00, /* 0x1da80-0x1dabf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dac0-0x1daff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db00-0x1db3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db40-0x1db7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db80-0x1dbbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dbc0-0x1dbff */ + /* 0x1e000-0x1e1ff */ + 0x7f, 0xff, 0xff, 0xf9, 0xdb, 0x07, 0x00, 0x00, /* 0x1e000-0x1e03f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e040-0x1e07f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e080-0x1e0bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e0c0-0x1e0ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0x1e100-0x1e13f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e140-0x1e17f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e180-0x1e1bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e1c0-0x1e1ff */ + /* 0x1e200-0x1e3ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e200-0x1e23f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e240-0x1e27f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, /* 0x1e280-0x1e2bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, /* 0x1e2c0-0x1e2ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e300-0x1e33f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e340-0x1e37f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e380-0x1e3bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e3c0-0x1e3ff */ + /* 0x1e800-0x1e9ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e800-0x1e83f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e840-0x1e87f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e880-0x1e8bf */ + 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e8c0-0x1e8ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e900-0x1e93f */ + 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e940-0x1e97f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e980-0x1e9bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* 0x1e9c0-0x1e9ff */ +}; +static const signed char nonspacing_table_ind[248] = { + 0, 1, 2, 3, 4, 5, 6, 7, /* 0x0000-0x0fff */ + 8, 9, -1, 10, 11, 12, 13, -1, /* 0x1000-0x1fff */ + 14, -1, -1, -1, -1, -1, 15, -1, /* 0x2000-0x2fff */ + 16, -1, -1, -1, -1, -1, -1, -1, /* 0x3000-0x3fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x4000-0x4fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x5000-0x5fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x6000-0x6fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x7000-0x7fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x8000-0x8fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x9000-0x9fff */ + -1, -1, -1, 17, 18, 19, -1, -1, /* 0xa000-0xafff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb000-0xbfff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc000-0xcfff */ + -1, -1, -1, 20, -1, -1, -1, -1, /* 0xd000-0xdfff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */ + -1, -1, -1, -1, -1, 21, -1, 22, /* 0xf000-0xffff */ + 23, 24, -1, -1, -1, 25, 26, 27, /* 0x10000-0x10fff */ + 28, 29, 30, 31, 32, 33, 34, 35, /* 0x11000-0x11fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */ + -1, -1, 36, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */ + -1, -1, -1, -1, -1, 37, -1, 38, /* 0x16000-0x16fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */ + -1, -1, -1, -1, -1, -1, 39, -1, /* 0x1b000-0x1bfff */ + -1, -1, -1, -1, -1, -1, -1, 40, /* 0x1c000-0x1cfff */ + 41, 42, -1, -1, -1, 43, -1, -1, /* 0x1d000-0x1dfff */ + 44, 45, -1, -1, 46, -1, -1, -1 /* 0x1e000-0x1efff */ +}; diff --git a/srclib/uniwidth/width2.h b/srclib/uniwidth/width2.h new file mode 100644 index 00000000..25364d3b --- /dev/null +++ b/srclib/uniwidth/width2.h @@ -0,0 +1,549 @@ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Width 2 property of Unicode characters. */ +/* Generated automatically by gen-uni-tables.c for Unicode 14.0.0. */ + +/* Copyright (C) 2000-2022 Free Software Foundation, Inc. + + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation, either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License and the GNU General Public License + for more details. + + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see . */ + +#define header_0 16 +#define header_2 9 +#define header_3 127 +#define header_4 15 +static const +struct + { + int header[1]; + int level1[4]; + short level2[3 << 7]; + unsigned int level3[28 << 4]; + } +u_width2 = +{ + { 4 }, + { + 5 * sizeof (int) / sizeof (short) + 0, + 5 * sizeof (int) / sizeof (short) + 128, + 5 * sizeof (int) / sizeof (short) + 256, + 5 * sizeof (int) / sizeof (short) + 256 + }, + { + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 0, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 16, + 5 + 384 * sizeof (short) / sizeof (int) + 32, + 5 + 384 * sizeof (short) / sizeof (int) + 48, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 64, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 80, + 5 + 384 * sizeof (short) / sizeof (int) + 96, + 5 + 384 * sizeof (short) / sizeof (int) + 112, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 144, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 160, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 176, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 192, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 208, + 5 + 384 * sizeof (short) / sizeof (int) + 224, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 240, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 256, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 272, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 288, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 304, + 5 + 384 * sizeof (short) / sizeof (int) + 320, + 5 + 384 * sizeof (short) / sizeof (int) + 336, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 352, + 5 + 384 * sizeof (short) / sizeof (int) + 368, + 5 + 384 * sizeof (short) / sizeof (int) + 384, + 5 + 384 * sizeof (short) / sizeof (int) + 400, + 5 + 384 * sizeof (short) / sizeof (int) + 416, + 5 + 384 * sizeof (short) / sizeof (int) + 432, + -1, + -1, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128, + 5 + 384 * sizeof (short) / sizeof (int) + 128 + }, + { + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x0C000000U, 0x00000600U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00091E00U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x60000000U, + 0x00300000U, 0x00000000U, 0x000FFF00U, 0x80000000U, + 0x00080000U, 0x60000C02U, 0x00104030U, 0x242C0400U, + 0x00000C20U, 0x00000100U, 0x00B85000U, 0x00000000U, + 0x00E00000U, 0x80010000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x18000000U, 0x00000000U, 0x00210000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0x7FFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF00FFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x1FFFFFFFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0x0000000FU, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFF0000U, 0xFFFF0000U, 0xFFFFFFFFU, 0x0000FFFFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000001U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x0000007FU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x0003000FU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00FFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0x003FFFFFU, 0x00000000U, + 0x000001FFU, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x6FEF0000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0x00000007U, 0x00070000U, 0xFFFF00F0U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0FFFFFFFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000010U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00008000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x07FE4000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFBFE001U, 0xFFFFFFFFU, 0xDFFFFFFFU, + 0x000FFFFFU, 0xFFFFFFFFU, 0x000F87FFU, 0xFF11FFFFU, + 0xFFFFFFFFU, 0x7FFFFFFFU, 0xFFFFFFFDU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x9FFFFFFFU, + 0xFFFFFFFFU, 0x3FFFFFFFU, 0xFFFF7800U, 0x040000FFU, + 0x00600000U, 0x00000010U, 0x00000000U, 0xF8000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU, 0x00000000U, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xE0E7103FU, 0x1FF01800U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00010FFFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0xFFFFF000U, 0xF7FFFFFFU, 0xFFFFFFBFU, 0xFFFFFFFFU, + 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x1F1F0000U, + 0xFFFF007FU, 0x07FF1FFFU, 0x03FF003FU, 0x007F00FFU, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, + 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U + } +}; diff --git a/tests/IBM-037.TXT b/tests/IBM-037.TXT new file mode 100644 index 00000000..bf34f2a9 --- /dev/null +++ b/tests/IBM-037.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x005E +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005B +0xBB 0x005D +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1025.TXT b/tests/IBM-1025.TXT new file mode 100644 index 00000000..be2a7e6e --- /dev/null +++ b/tests/IBM-1025.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0452 +0x43 0x0453 +0x44 0x0451 +0x45 0x0454 +0x46 0x0455 +0x47 0x0456 +0x48 0x0457 +0x49 0x0458 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0459 +0x52 0x045A +0x53 0x045B +0x54 0x045C +0x55 0x045E +0x56 0x045F +0x57 0x042A +0x58 0x2116 +0x59 0x0402 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0403 +0x63 0x0401 +0x64 0x0404 +0x65 0x0405 +0x66 0x0406 +0x67 0x0407 +0x68 0x0408 +0x69 0x0409 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x040A +0x71 0x040B +0x72 0x040C +0x73 0x00AD +0x74 0x040E +0x75 0x040F +0x76 0x044E +0x77 0x0430 +0x78 0x0431 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0446 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0434 +0x8B 0x0435 +0x8C 0x0444 +0x8D 0x0433 +0x8E 0x0445 +0x8F 0x0438 +0x90 0x0439 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x043A +0x9B 0x043B +0x9C 0x043C +0x9D 0x043D +0x9E 0x043E +0x9F 0x043F +0xA0 0x044F +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0440 +0xAB 0x0441 +0xAC 0x0442 +0xAD 0x0443 +0xAE 0x0436 +0xAF 0x0432 +0xB0 0x044C +0xB1 0x044B +0xB2 0x0437 +0xB3 0x0448 +0xB4 0x044D +0xB5 0x0449 +0xB6 0x0447 +0xB7 0x044A +0xB8 0x042E +0xB9 0x0410 +0xBA 0x0411 +0xBB 0x0426 +0xBC 0x0414 +0xBD 0x0415 +0xBE 0x0424 +0xBF 0x0413 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0425 +0xCB 0x0418 +0xCC 0x0419 +0xCD 0x041A +0xCE 0x041B +0xCF 0x041C +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x041D +0xDB 0x041E +0xDC 0x041F +0xDD 0x042F +0xDE 0x0420 +0xDF 0x0421 +0xE0 0x005C +0xE1 0x00A7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0422 +0xEB 0x0423 +0xEC 0x0416 +0xED 0x0412 +0xEE 0x042C +0xEF 0x042B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x009F diff --git a/tests/IBM-1026.TXT b/tests/IBM-1026.TXT new file mode 100644 index 00000000..9f486049 --- /dev/null +++ b/tests/IBM-1026.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x007B +0x49 0x00F1 +0x4A 0x00C7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x011E +0x5B 0x0130 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x005B +0x69 0x00D1 +0x6A 0x015F +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0131 +0x7A 0x003A +0x7B 0x00D6 +0x7C 0x015E +0x7D 0x0027 +0x7E 0x003D +0x7F 0x00DC +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x007D +0x8D 0x0060 +0x8E 0x00A6 +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00F6 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x005D +0xAD 0x0024 +0xAE 0x0040 +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E7 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x007E +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x011F +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x005C +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00FC +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0023 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x0022 +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1047.TXT b/tests/IBM-1047.TXT new file mode 100644 index 00000000..d6818cf0 --- /dev/null +++ b/tests/IBM-1047.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x005B +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00AC +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00DD +0xBB 0x00A8 +0xBC 0x00AF +0xBD 0x005D +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1097.TXT b/tests/IBM-1097.TXT new file mode 100644 index 00000000..b67a0742 --- /dev/null +++ b/tests/IBM-1097.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x060C +0x43 0x064B +0x44 0xFE81 +0x45 0xFE82 +0x46 0xF8FA +0x47 0xFE8D +0x48 0xFE8E +0x49 0xF8FB +0x4A 0x00A4 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0xFE80 +0x52 0xFE83 +0x53 0xFE84 +0x54 0xF8F9 +0x55 0xFE85 +0x56 0xFE8B +0x57 0xFE8F +0x58 0xFE91 +0x59 0xFB56 +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0xFB58 +0x63 0xFE95 +0x64 0xFE97 +0x65 0xFE99 +0x66 0xFE9B +0x67 0xFE9D +0x68 0xFE9F +0x69 0xFB7A +0x6A 0x061B +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0xFB7C +0x71 0xFEA1 +0x72 0xFEA3 +0x73 0xFEA5 +0x74 0xFEA7 +0x75 0xFEA9 +0x76 0xFEAB +0x77 0xFEAD +0x78 0xFEAF +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0xFB8A +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0xFEB1 +0x8D 0xFEB3 +0x8E 0xFEB5 +0x8F 0xFEB7 +0x90 0xFEB9 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0xFEBB +0x9B 0xFEBD +0x9C 0xFEBF +0x9D 0xFEC1 +0x9E 0xFEC3 +0x9F 0xFEC5 +0xA0 0xFEC7 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0xFEC9 +0xAB 0xFECA +0xAC 0xFECB +0xAD 0xFECC +0xAE 0xFECD +0xAF 0xFECE +0xB0 0xFECF +0xB1 0xFED0 +0xB2 0xFED1 +0xB3 0xFED3 +0xB4 0xFED5 +0xB5 0xFED7 +0xB6 0xFB8E +0xB7 0xFEDB +0xB8 0xFB92 +0xB9 0xFB94 +0xBA 0x005B +0xBB 0x005D +0xBC 0xFEDD +0xBD 0xFEDF +0xBE 0xFEE1 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0xFEE3 +0xCC 0xFEE5 +0xCD 0xFEE7 +0xCE 0xFEED +0xCF 0xFEE9 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0xFEEB +0xDB 0xFEEC +0xDC 0xFBA4 +0xDD 0xFBFC +0xDE 0xFBFD +0xDF 0xFBFE +0xE0 0x005C +0xE1 0x061F +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0640 +0xEB 0x06F0 +0xEC 0x06F1 +0xED 0x06F2 +0xEE 0x06F3 +0xEF 0x06F4 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x06F5 +0xFB 0x06F6 +0xFC 0x06F7 +0xFD 0x06F8 +0xFE 0x06F9 +0xFF 0x009F diff --git a/tests/IBM-1112.TXT b/tests/IBM-1112.TXT new file mode 100644 index 00000000..e66d0be7 --- /dev/null +++ b/tests/IBM-1112.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0161 +0x43 0x00E4 +0x44 0x0105 +0x45 0x012F +0x46 0x016B +0x47 0x00E5 +0x48 0x0113 +0x49 0x017E +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x0119 +0x53 0x0117 +0x54 0x010D +0x55 0x0173 +0x56 0x201E +0x57 0x201C +0x58 0x0123 +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x0160 +0x63 0x00C4 +0x64 0x0104 +0x65 0x012E +0x66 0x016A +0x67 0x00C5 +0x68 0x0112 +0x69 0x017D +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x0118 +0x73 0x0116 +0x74 0x010C +0x75 0x0172 +0x76 0x012A +0x77 0x013B +0x78 0x0122 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0101 +0x8D 0x017C +0x8E 0x0144 +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0156 +0x9B 0x0157 +0x9C 0x00E6 +0x9D 0x0137 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x201D +0xAB 0x017A +0xAC 0x0100 +0xAD 0x017B +0xAE 0x0143 +0xAF 0x00AE +0xB0 0x005E +0xB1 0x00A3 +0xB2 0x012B +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005B +0xBB 0x005D +0xBC 0x0179 +0xBD 0x0136 +0xBE 0x013C +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x014D +0xCC 0x00F6 +0xCD 0x0146 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x0107 +0xDC 0x00FC +0xDD 0x0142 +0xDE 0x015B +0xDF 0x2019 +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x014C +0xEC 0x00D6 +0xED 0x0145 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x0106 +0xFC 0x00DC +0xFD 0x0141 +0xFE 0x015A +0xFF 0x009F diff --git a/tests/IBM-1122.TXT b/tests/IBM-1122.TXT new file mode 100644 index 00000000..73865583 --- /dev/null +++ b/tests/IBM-1122.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x007B +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x007D +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0060 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00A4 +0x5B 0x00C5 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x0023 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x0024 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x005C +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00E9 +0x7A 0x003A +0x7B 0x00C4 +0x7C 0x00D6 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0161 +0x8D 0x00FD +0x8E 0x017E +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x005D +0xA0 0x00B5 +0xA1 0x00FC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x0160 +0xAD 0x00DD +0xAE 0x017D +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x005B +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E4 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00A6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E5 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007E +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00C9 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0040 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1123.TXT b/tests/IBM-1123.TXT new file mode 100644 index 00000000..3cad5e4e --- /dev/null +++ b/tests/IBM-1123.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0452 +0x43 0x0491 +0x44 0x0451 +0x45 0x0454 +0x46 0x0455 +0x47 0x0456 +0x48 0x0457 +0x49 0x0458 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0459 +0x52 0x045A +0x53 0x045B +0x54 0x045C +0x55 0x045E +0x56 0x045F +0x57 0x042A +0x58 0x2116 +0x59 0x0402 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0490 +0x63 0x0401 +0x64 0x0404 +0x65 0x0405 +0x66 0x0406 +0x67 0x0407 +0x68 0x0408 +0x69 0x0409 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x040A +0x71 0x040B +0x72 0x040C +0x73 0x00AD +0x74 0x040E +0x75 0x040F +0x76 0x044E +0x77 0x0430 +0x78 0x0431 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0446 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0434 +0x8B 0x0435 +0x8C 0x0444 +0x8D 0x0433 +0x8E 0x0445 +0x8F 0x0438 +0x90 0x0439 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x043A +0x9B 0x043B +0x9C 0x043C +0x9D 0x043D +0x9E 0x043E +0x9F 0x043F +0xA0 0x044F +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0440 +0xAB 0x0441 +0xAC 0x0442 +0xAD 0x0443 +0xAE 0x0436 +0xAF 0x0432 +0xB0 0x044C +0xB1 0x044B +0xB2 0x0437 +0xB3 0x0448 +0xB4 0x044D +0xB5 0x0449 +0xB6 0x0447 +0xB7 0x044A +0xB8 0x042E +0xB9 0x0410 +0xBA 0x0411 +0xBB 0x0426 +0xBC 0x0414 +0xBD 0x0415 +0xBE 0x0424 +0xBF 0x0413 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0425 +0xCB 0x0418 +0xCC 0x0419 +0xCD 0x041A +0xCE 0x041B +0xCF 0x041C +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x041D +0xDB 0x041E +0xDC 0x041F +0xDD 0x042F +0xDE 0x0420 +0xDF 0x0421 +0xE0 0x005C +0xE1 0x00A7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0422 +0xEB 0x0423 +0xEC 0x0416 +0xED 0x0412 +0xEE 0x042C +0xEF 0x042B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x009F diff --git a/tests/IBM-1130.TXT b/tests/IBM-1130.TXT new file mode 100644 index 00000000..104d5c97 --- /dev/null +++ b/tests/IBM-1130.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x0103 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x0303 +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x0102 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x20AB +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0111 +0x8D 0x0309 +0x8E 0x0300 +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x0152 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x0110 +0xAD 0x0323 +0xAE 0x0301 +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x0153 +0xBE 0x0178 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x01B0 +0xCE 0x00F3 +0xCF 0x01A1 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x01AF +0xEE 0x00D3 +0xEF 0x01A0 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1132.TXT b/tests/IBM-1132.TXT new file mode 100644 index 00000000..425fcd4f --- /dev/null +++ b/tests/IBM-1132.TXT @@ -0,0 +1,230 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0E81 +0x43 0x0E82 +0x44 0x0E84 +0x45 0x0E87 +0x46 0x0E88 +0x47 0x0EAA +0x48 0x0E8A +0x49 0x005B +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x52 0x0E8D +0x53 0x0E94 +0x54 0x0E95 +0x55 0x0E96 +0x56 0x0E97 +0x57 0x0E99 +0x58 0x0E9A +0x59 0x005D +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x0E9B +0x63 0x0E9C +0x64 0x0E9D +0x65 0x0E9E +0x66 0x0E9F +0x67 0x0EA1 +0x68 0x0EA2 +0x69 0x005E +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x20AD +0x72 0x0EA3 +0x73 0x0EA5 +0x74 0x0EA7 +0x75 0x0EAB +0x76 0x0EAD +0x77 0x0EAE +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8C 0x0EAF +0x8D 0x0EB0 +0x8E 0x0EB2 +0x8F 0x0EB3 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0EB4 +0x9B 0x0EB5 +0x9C 0x0EB6 +0x9D 0x0EB7 +0x9E 0x0EB8 +0x9F 0x0EB9 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0EBC +0xAB 0x0EB1 +0xAC 0x0EBB +0xAD 0x0EBD +0xB0 0x0ED0 +0xB1 0x0ED1 +0xB2 0x0ED2 +0xB3 0x0ED3 +0xB4 0x0ED4 +0xB5 0x0ED5 +0xB6 0x0ED6 +0xB7 0x0ED7 +0xB8 0x0ED8 +0xB9 0x0ED9 +0xBB 0x0EC0 +0xBC 0x0EC1 +0xBD 0x0EC2 +0xBE 0x0EC3 +0xBF 0x0EC4 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCB 0x0EC8 +0xCC 0x0EC9 +0xCD 0x0ECA +0xCE 0x0ECB +0xCF 0x0ECC +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0ECD +0xDB 0x0EC6 +0xDD 0x0EDC +0xDE 0x0EDD +0xE0 0x005C +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFF 0x009F diff --git a/tests/IBM-1137.TXT b/tests/IBM-1137.TXT new file mode 100644 index 00000000..99126cdb --- /dev/null +++ b/tests/IBM-1137.TXT @@ -0,0 +1,254 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0901 +0x43 0x0902 +0x44 0x0903 +0x45 0x0905 +0x46 0x0906 +0x47 0x0907 +0x48 0x0908 +0x49 0x0909 +0x4A 0x090A +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x090B +0x52 0x090C +0x53 0x090D +0x54 0x090E +0x55 0x090F +0x56 0x0910 +0x57 0x0911 +0x58 0x0912 +0x59 0x0913 +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0914 +0x63 0x0915 +0x64 0x0916 +0x65 0x0917 +0x66 0x0918 +0x67 0x0919 +0x68 0x091A +0x69 0x091B +0x6A 0x091C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x091D +0x71 0x091E +0x72 0x091F +0x73 0x0920 +0x74 0x0921 +0x75 0x0922 +0x76 0x0923 +0x77 0x0924 +0x78 0x0925 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0926 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0927 +0x8B 0x0928 +0x8C 0x092A +0x8D 0x092B +0x8E 0x092C +0x8F 0x092D +0x90 0x092E +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x092F +0x9B 0x0930 +0x9C 0x0932 +0x9D 0x0933 +0x9E 0x0935 +0x9F 0x0936 +0xA0 0x200C +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0937 +0xAB 0x0938 +0xAC 0x0939 +0xAD 0x005B +0xAE 0x093C +0xAF 0x093D +0xB0 0x093E +0xB1 0x093F +0xB2 0x0940 +0xB3 0x0941 +0xB4 0x0942 +0xB5 0x0943 +0xB6 0x0944 +0xB7 0x0945 +0xB8 0x0946 +0xB9 0x0947 +0xBA 0x0948 +0xBB 0x0949 +0xBC 0x094A +0xBD 0x005D +0xBE 0x094B +0xBF 0x094C +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x094D +0xCB 0x0950 +0xCC 0x0951 +0xCD 0x0952 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0960 +0xDB 0x0961 +0xDC 0x0962 +0xDD 0x0963 +0xDE 0x0964 +0xDF 0x0965 +0xE0 0x005C +0xE1 0x200D +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0966 +0xEB 0x0967 +0xEC 0x0968 +0xED 0x0969 +0xEE 0x096A +0xEF 0x096B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x096C +0xFB 0x096D +0xFC 0x096E +0xFD 0x096F +0xFE 0x0970 +0xFF 0x009F diff --git a/tests/IBM-1140.TXT b/tests/IBM-1140.TXT new file mode 100644 index 00000000..d38cbe48 --- /dev/null +++ b/tests/IBM-1140.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x005E +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005B +0xBB 0x005D +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1141.TXT b/tests/IBM-1141.TXT new file mode 100644 index 00000000..ed22b57b --- /dev/null +++ b/tests/IBM-1141.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x007B +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00C4 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x007E +0x5A 0x00DC +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x005B +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x00A7 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x00DF +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x0040 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E4 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00A6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00FC +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007D +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00D6 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x005C +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x005D +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1142.TXT b/tests/IBM-1142.TXT new file mode 100644 index 00000000..15de29c9 --- /dev/null +++ b/tests/IBM-1142.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x007D +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x0023 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x20AC +0x5B 0x00C5 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x0024 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F8 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00A6 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x00C6 +0x7C 0x00D8 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0040 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x007B +0x9D 0x00B8 +0x9E 0x005B +0x9F 0x005D +0xA0 0x00B5 +0xA1 0x00FC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E6 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E5 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007E +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1143.TXT b/tests/IBM-1143.TXT new file mode 100644 index 00000000..db52662d --- /dev/null +++ b/tests/IBM-1143.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x007B +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x007D +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0060 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x20AC +0x5B 0x00C5 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x0023 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x0024 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x005C +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00E9 +0x7A 0x003A +0x7B 0x00C4 +0x7C 0x00D6 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x005D +0xA0 0x00B5 +0xA1 0x00FC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x005B +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E4 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00A6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E5 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007E +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00C9 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0040 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1144.TXT b/tests/IBM-1144.TXT new file mode 100644 index 00000000..f199b921 --- /dev/null +++ b/tests/IBM-1144.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x007B +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x005C +0x49 0x00F1 +0x4A 0x00B0 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x005D +0x52 0x00EA +0x53 0x00EB +0x54 0x007D +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x007E +0x59 0x00DF +0x5A 0x00E9 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F2 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00F9 +0x7A 0x003A +0x7B 0x00A3 +0x7C 0x00A7 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x005B +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x00EC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x0023 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x0040 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E0 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00A6 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E8 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x0060 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00E7 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1145.TXT b/tests/IBM-1145.TXT new file mode 100644 index 00000000..0ea8e877 --- /dev/null +++ b/tests/IBM-1145.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00A6 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x0023 +0x6A 0x00F1 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x00D1 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x00A8 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005E +0xBB 0x0021 +0xBC 0x00AF +0xBD 0x007E +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1146.TXT b/tests/IBM-1146.TXT new file mode 100644 index 00000000..242b53a3 --- /dev/null +++ b/tests/IBM-1146.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x0024 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x0021 +0x5B 0x00A3 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x00AF +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x005B +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005E +0xBB 0x005D +0xBC 0x007E +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1147.TXT b/tests/IBM-1147.TXT new file mode 100644 index 00000000..6669c034 --- /dev/null +++ b/tests/IBM-1147.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x0040 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x005C +0x49 0x00F1 +0x4A 0x00B0 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x007B +0x52 0x00EA +0x53 0x00EB +0x54 0x007D +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00A7 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F9 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00B5 +0x7A 0x003A +0x7B 0x00A3 +0x7C 0x00E0 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x005B +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x0060 +0xA1 0x00A8 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x0023 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x005D +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x007E +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E9 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E8 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00A6 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00E7 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1148.TXT b/tests/IBM-1148.TXT new file mode 100644 index 00000000..c25322ab --- /dev/null +++ b/tests/IBM-1148.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1149.TXT b/tests/IBM-1149.TXT new file mode 100644 index 00000000..ccaad96a --- /dev/null +++ b/tests/IBM-1149.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00DE +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00C6 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00D6 +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00F0 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x00D0 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0060 +0x8D 0x00FD +0x8E 0x007B +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x007D +0x9D 0x00B8 +0x9E 0x005D +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x00F6 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x0040 +0xAD 0x00DD +0xAE 0x005B +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x005C +0xBF 0x00D7 +0xC0 0x00FE +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x007E +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E6 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00B4 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x005E +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1153.TXT b/tests/IBM-1153.TXT new file mode 100644 index 00000000..cab4652e --- /dev/null +++ b/tests/IBM-1153.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x0163 +0x45 0x00E1 +0x46 0x0103 +0x47 0x010D +0x48 0x00E7 +0x49 0x0107 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x0119 +0x53 0x00EB +0x54 0x016F +0x55 0x00ED +0x56 0x00EE +0x57 0x013E +0x58 0x013A +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x02DD +0x65 0x00C1 +0x66 0x0102 +0x67 0x010C +0x68 0x00C7 +0x69 0x0106 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x02C7 +0x71 0x00C9 +0x72 0x0118 +0x73 0x00CB +0x74 0x016E +0x75 0x00CD +0x76 0x00CE +0x77 0x013D +0x78 0x0139 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x02D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x015B +0x8B 0x0148 +0x8C 0x0111 +0x8D 0x00FD +0x8E 0x0159 +0x8F 0x015F +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0142 +0x9B 0x0144 +0x9C 0x0161 +0x9D 0x00B8 +0x9E 0x02DB +0x9F 0x20AC +0xA0 0x0105 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x015A +0xAB 0x0147 +0xAC 0x0110 +0xAD 0x00DD +0xAE 0x0158 +0xAF 0x015E +0xB0 0x02D9 +0xB1 0x0104 +0xB2 0x017C +0xB3 0x0162 +0xB4 0x017B +0xB5 0x00A7 +0xB6 0x017E +0xB7 0x017A +0xB8 0x017D +0xB9 0x0179 +0xBA 0x0141 +0xBB 0x0143 +0xBC 0x0160 +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x0155 +0xCE 0x00F3 +0xCF 0x0151 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x011A +0xDB 0x0171 +0xDC 0x00FC +0xDD 0x0165 +0xDE 0x00FA +0xDF 0x011B +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x010F +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x0154 +0xEE 0x00D3 +0xEF 0x0150 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x010E +0xFB 0x0170 +0xFC 0x00DC +0xFD 0x0164 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1154.TXT b/tests/IBM-1154.TXT new file mode 100644 index 00000000..ec1f6a15 --- /dev/null +++ b/tests/IBM-1154.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0452 +0x43 0x0453 +0x44 0x0451 +0x45 0x0454 +0x46 0x0455 +0x47 0x0456 +0x48 0x0457 +0x49 0x0458 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0459 +0x52 0x045A +0x53 0x045B +0x54 0x045C +0x55 0x045E +0x56 0x045F +0x57 0x042A +0x58 0x2116 +0x59 0x0402 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0403 +0x63 0x0401 +0x64 0x0404 +0x65 0x0405 +0x66 0x0406 +0x67 0x0407 +0x68 0x0408 +0x69 0x0409 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x040A +0x71 0x040B +0x72 0x040C +0x73 0x00AD +0x74 0x040E +0x75 0x040F +0x76 0x044E +0x77 0x0430 +0x78 0x0431 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0446 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0434 +0x8B 0x0435 +0x8C 0x0444 +0x8D 0x0433 +0x8E 0x0445 +0x8F 0x0438 +0x90 0x0439 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x043A +0x9B 0x043B +0x9C 0x043C +0x9D 0x043D +0x9E 0x043E +0x9F 0x043F +0xA0 0x044F +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0440 +0xAB 0x0441 +0xAC 0x0442 +0xAD 0x0443 +0xAE 0x0436 +0xAF 0x0432 +0xB0 0x044C +0xB1 0x044B +0xB2 0x0437 +0xB3 0x0448 +0xB4 0x044D +0xB5 0x0449 +0xB6 0x0447 +0xB7 0x044A +0xB8 0x042E +0xB9 0x0410 +0xBA 0x0411 +0xBB 0x0426 +0xBC 0x0414 +0xBD 0x0415 +0xBE 0x0424 +0xBF 0x0413 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0425 +0xCB 0x0418 +0xCC 0x0419 +0xCD 0x041A +0xCE 0x041B +0xCF 0x041C +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x041D +0xDB 0x041E +0xDC 0x041F +0xDD 0x042F +0xDE 0x0420 +0xDF 0x0421 +0xE0 0x005C +0xE1 0x20AC +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0422 +0xEB 0x0423 +0xEC 0x0416 +0xED 0x0412 +0xEE 0x042C +0xEF 0x042B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x009F diff --git a/tests/IBM-1155.TXT b/tests/IBM-1155.TXT new file mode 100644 index 00000000..e1046e6a --- /dev/null +++ b/tests/IBM-1155.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x007B +0x49 0x00F1 +0x4A 0x00C7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x011E +0x5B 0x0130 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x005B +0x69 0x00D1 +0x6A 0x015F +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0131 +0x7A 0x003A +0x7B 0x00D6 +0x7C 0x015E +0x7D 0x0027 +0x7E 0x003D +0x7F 0x00DC +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x007D +0x8D 0x0060 +0x8E 0x00A6 +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x00F6 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x005D +0xAD 0x0024 +0xAE 0x0040 +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E7 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x007E +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x011F +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x005C +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00FC +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0023 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x0022 +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1156.TXT b/tests/IBM-1156.TXT new file mode 100644 index 00000000..2816dc1a --- /dev/null +++ b/tests/IBM-1156.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0161 +0x43 0x00E4 +0x44 0x0105 +0x45 0x012F +0x46 0x016B +0x47 0x00E5 +0x48 0x0113 +0x49 0x017E +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x0119 +0x53 0x0117 +0x54 0x010D +0x55 0x0173 +0x56 0x201E +0x57 0x201C +0x58 0x0123 +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x0160 +0x63 0x00C4 +0x64 0x0104 +0x65 0x012E +0x66 0x016A +0x67 0x00C5 +0x68 0x0112 +0x69 0x017D +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x0118 +0x73 0x0116 +0x74 0x010C +0x75 0x0172 +0x76 0x012A +0x77 0x013B +0x78 0x0122 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0101 +0x8D 0x017C +0x8E 0x0144 +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0156 +0x9B 0x0157 +0x9C 0x00E6 +0x9D 0x0137 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x201D +0xAB 0x017A +0xAC 0x0100 +0xAD 0x017B +0xAE 0x0143 +0xAF 0x00AE +0xB0 0x005E +0xB1 0x00A3 +0xB2 0x012B +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005B +0xBB 0x005D +0xBC 0x0179 +0xBD 0x0136 +0xBE 0x013C +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x014D +0xCC 0x00F6 +0xCD 0x0146 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x0107 +0xDC 0x00FC +0xDD 0x0142 +0xDE 0x015B +0xDF 0x2019 +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x014C +0xEC 0x00D6 +0xED 0x0145 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x0106 +0xFC 0x00DC +0xFD 0x0141 +0xFE 0x015A +0xFF 0x009F diff --git a/tests/IBM-1157.TXT b/tests/IBM-1157.TXT new file mode 100644 index 00000000..57801a52 --- /dev/null +++ b/tests/IBM-1157.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x007B +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x007D +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0060 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x20AC +0x5B 0x00C5 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x0023 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x0024 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x005C +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00E9 +0x7A 0x003A +0x7B 0x00C4 +0x7C 0x00D6 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0161 +0x8D 0x00FD +0x8E 0x017E +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x005D +0xA0 0x00B5 +0xA1 0x00FC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x0160 +0xAD 0x00DD +0xAE 0x017D +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x005B +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E4 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00A6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E5 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007E +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00C9 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0040 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1158.TXT b/tests/IBM-1158.TXT new file mode 100644 index 00000000..7ef39fb9 --- /dev/null +++ b/tests/IBM-1158.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0452 +0x43 0x0491 +0x44 0x0451 +0x45 0x0454 +0x46 0x0455 +0x47 0x0456 +0x48 0x0457 +0x49 0x0458 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0459 +0x52 0x045A +0x53 0x045B +0x54 0x045C +0x55 0x045E +0x56 0x045F +0x57 0x042A +0x58 0x2116 +0x59 0x0402 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0490 +0x63 0x0401 +0x64 0x0404 +0x65 0x0405 +0x66 0x0406 +0x67 0x0407 +0x68 0x0408 +0x69 0x0409 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x040A +0x71 0x040B +0x72 0x040C +0x73 0x00AD +0x74 0x040E +0x75 0x040F +0x76 0x044E +0x77 0x0430 +0x78 0x0431 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0446 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0434 +0x8B 0x0435 +0x8C 0x0444 +0x8D 0x0433 +0x8E 0x0445 +0x8F 0x0438 +0x90 0x0439 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x043A +0x9B 0x043B +0x9C 0x043C +0x9D 0x043D +0x9E 0x043E +0x9F 0x043F +0xA0 0x044F +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0440 +0xAB 0x0441 +0xAC 0x0442 +0xAD 0x0443 +0xAE 0x0436 +0xAF 0x0432 +0xB0 0x044C +0xB1 0x044B +0xB2 0x0437 +0xB3 0x0448 +0xB4 0x044D +0xB5 0x0449 +0xB6 0x0447 +0xB7 0x044A +0xB8 0x042E +0xB9 0x0410 +0xBA 0x0411 +0xBB 0x0426 +0xBC 0x0414 +0xBD 0x0415 +0xBE 0x0424 +0xBF 0x0413 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0425 +0xCB 0x0418 +0xCC 0x0419 +0xCD 0x041A +0xCE 0x041B +0xCF 0x041C +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x041D +0xDB 0x041E +0xDC 0x041F +0xDD 0x042F +0xDE 0x0420 +0xDF 0x0421 +0xE0 0x005C +0xE1 0x20AC +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0422 +0xEB 0x0423 +0xEC 0x0416 +0xED 0x0412 +0xEE 0x042C +0xEF 0x042B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x009F diff --git a/tests/IBM-1160.IRREVERSIBLE.TXT b/tests/IBM-1160.IRREVERSIBLE.TXT new file mode 100644 index 00000000..494fef2d --- /dev/null +++ b/tests/IBM-1160.IRREVERSIBLE.TXT @@ -0,0 +1,4 @@ +0x51 0x0E48 +0xCA 0x0E49 +0xE1 0x0E4A +0xFD 0x0E4B diff --git a/tests/IBM-1160.TXT b/tests/IBM-1160.TXT new file mode 100644 index 00000000..fe902e58 --- /dev/null +++ b/tests/IBM-1160.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0E01 +0x43 0x0E02 +0x44 0x0E03 +0x45 0x0E04 +0x46 0x0E05 +0x47 0x0E06 +0x48 0x0E07 +0x49 0x005B +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x0E48 +0x52 0x0E08 +0x53 0x0E09 +0x54 0x0E0A +0x55 0x0E0B +0x56 0x0E0C +0x57 0x0E0D +0x58 0x0E0E +0x59 0x005D +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x0E0F +0x63 0x0E10 +0x64 0x0E11 +0x65 0x0E12 +0x66 0x0E13 +0x67 0x0E14 +0x68 0x0E15 +0x69 0x005E +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x0E3F +0x71 0x0E4E +0x72 0x0E16 +0x73 0x0E17 +0x74 0x0E18 +0x75 0x0E19 +0x76 0x0E1A +0x77 0x0E1B +0x78 0x0E1C +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0E4F +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0E1D +0x8B 0x0E1E +0x8C 0x0E1F +0x8D 0x0E20 +0x8E 0x0E21 +0x8F 0x0E22 +0x90 0x0E5A +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0E23 +0x9B 0x0E24 +0x9C 0x0E25 +0x9D 0x0E26 +0x9E 0x0E27 +0x9F 0x0E28 +0xA0 0x0E5B +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0E29 +0xAB 0x0E2A +0xAC 0x0E2B +0xAD 0x0E2C +0xAE 0x0E2D +0xAF 0x0E2E +0xB0 0x0E50 +0xB1 0x0E51 +0xB2 0x0E52 +0xB3 0x0E53 +0xB4 0x0E54 +0xB5 0x0E55 +0xB6 0x0E56 +0xB7 0x0E57 +0xB8 0x0E58 +0xB9 0x0E59 +0xBA 0x0E2F +0xBB 0x0E30 +0xBC 0x0E31 +0xBD 0x0E32 +0xBE 0x0E33 +0xBF 0x0E34 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0E49 +0xCB 0x0E35 +0xCC 0x0E36 +0xCD 0x0E37 +0xCE 0x0E38 +0xCF 0x0E39 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0E3A +0xDB 0x0E40 +0xDC 0x0E41 +0xDD 0x0E42 +0xDE 0x0E43 +0xDF 0x0E44 +0xE0 0x005C +0xE1 0x0E4A +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0E45 +0xEB 0x0E46 +0xEC 0x0E47 +0xED 0x0E48 +0xEE 0x0E49 +0xEF 0x0E4A +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0E4B +0xFB 0x0E4C +0xFC 0x0E4D +0xFD 0x0E4B +0xFE 0x20AC +0xFF 0x009F diff --git a/tests/IBM-1164.TXT b/tests/IBM-1164.TXT new file mode 100644 index 00000000..70158071 --- /dev/null +++ b/tests/IBM-1164.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x0103 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x0303 +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x0102 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x20AB +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0111 +0x8D 0x0309 +0x8E 0x0300 +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x0152 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x0110 +0xAD 0x0323 +0xAE 0x0301 +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x0153 +0xBE 0x0178 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x01B0 +0xCE 0x00F3 +0xCF 0x01A1 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x01AF +0xEE 0x00D3 +0xEF 0x01A0 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1165.TXT b/tests/IBM-1165.TXT new file mode 100644 index 00000000..e26969a5 --- /dev/null +++ b/tests/IBM-1165.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x0163 +0x45 0x00E1 +0x46 0x0103 +0x47 0x010D +0x48 0x00E7 +0x49 0x0107 +0x4A 0x00DD +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x0119 +0x53 0x00EB +0x54 0x016F +0x55 0x00ED +0x56 0x00EE +0x57 0x013E +0x58 0x013A +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x02DD +0x65 0x00C1 +0x66 0x0102 +0x67 0x010C +0x68 0x00C7 +0x69 0x0106 +0x6A 0x00A8 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x02C7 +0x71 0x00C9 +0x72 0x0118 +0x73 0x00CB +0x74 0x016E +0x75 0x00CD +0x76 0x00CE +0x77 0x013D +0x78 0x0139 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x02D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x015B +0x8B 0x0148 +0x8C 0x0111 +0x8D 0x00FD +0x8E 0x0159 +0x8F 0x015F +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0142 +0x9B 0x0144 +0x9C 0x0161 +0x9D 0x00B8 +0x9E 0x02DB +0x9F 0x20AC +0xA0 0x0105 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x015A +0xAB 0x0147 +0xAC 0x0110 +0xAD 0x005B +0xAE 0x0158 +0xAF 0x015E +0xB0 0x02D9 +0xB1 0x0104 +0xB2 0x017C +0xB3 0x0162 +0xB4 0x017B +0xB5 0x00A7 +0xB6 0x017E +0xB7 0x017A +0xB8 0x017D +0xB9 0x0179 +0xBA 0x0141 +0xBB 0x0143 +0xBC 0x0160 +0xBD 0x005D +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x0155 +0xCE 0x00F3 +0xCF 0x0151 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x011A +0xDB 0x0171 +0xDC 0x00FC +0xDD 0x0165 +0xDE 0x00FA +0xDF 0x011B +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x010F +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x0154 +0xEE 0x00D3 +0xEF 0x0150 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x010E +0xFB 0x0170 +0xFC 0x00DC +0xFD 0x0164 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-1166.TXT b/tests/IBM-1166.TXT new file mode 100644 index 00000000..064269a5 --- /dev/null +++ b/tests/IBM-1166.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x04D9 +0x43 0x0493 +0x44 0x0451 +0x45 0x0454 +0x46 0x0455 +0x47 0x0456 +0x48 0x049B +0x49 0x0458 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x04A3 +0x52 0x04E9 +0x53 0x04B1 +0x54 0x04AF +0x55 0x045E +0x56 0x04BB +0x57 0x042A +0x58 0x2116 +0x59 0x04D8 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0492 +0x63 0x0401 +0x64 0x0404 +0x65 0x0405 +0x66 0x0406 +0x67 0x049A +0x68 0x0408 +0x69 0x04A2 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x04E8 +0x71 0x04B0 +0x72 0x04AE +0x73 0x00AD +0x74 0x040E +0x75 0x04BA +0x76 0x044E +0x77 0x0430 +0x78 0x0431 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0446 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0434 +0x8B 0x0435 +0x8C 0x0444 +0x8D 0x0433 +0x8E 0x0445 +0x8F 0x0438 +0x90 0x0439 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x043A +0x9B 0x043B +0x9C 0x043C +0x9D 0x043D +0x9E 0x043E +0x9F 0x043F +0xA0 0x044F +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0440 +0xAB 0x0441 +0xAC 0x0442 +0xAD 0x0443 +0xAE 0x0436 +0xAF 0x0432 +0xB0 0x044C +0xB1 0x044B +0xB2 0x0437 +0xB3 0x0448 +0xB4 0x044D +0xB5 0x0449 +0xB6 0x0447 +0xB7 0x044A +0xB8 0x042E +0xB9 0x0410 +0xBA 0x0411 +0xBB 0x0426 +0xBC 0x0414 +0xBD 0x0415 +0xBE 0x0424 +0xBF 0x0413 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0425 +0xCB 0x0418 +0xCC 0x0419 +0xCD 0x041A +0xCE 0x041B +0xCF 0x041C +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x041D +0xDB 0x041E +0xDC 0x041F +0xDD 0x042F +0xDE 0x0420 +0xDF 0x0421 +0xE0 0x005C +0xE1 0x20AC +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0422 +0xEB 0x0423 +0xEC 0x0416 +0xED 0x0412 +0xEE 0x042C +0xEF 0x042B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x009F diff --git a/tests/IBM-12712.TXT b/tests/IBM-12712.TXT new file mode 100644 index 00000000..8310f89d --- /dev/null +++ b/tests/IBM-12712.TXT @@ -0,0 +1,227 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x05D0 +0x42 0x05D1 +0x43 0x05D2 +0x44 0x05D3 +0x45 0x05D4 +0x46 0x05D5 +0x47 0x05D6 +0x48 0x05D7 +0x49 0x05D8 +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x05D9 +0x52 0x05DA +0x53 0x05DB +0x54 0x05DC +0x55 0x05DD +0x56 0x05DE +0x57 0x05DF +0x58 0x05E0 +0x59 0x05E1 +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x05E2 +0x63 0x05E3 +0x64 0x05E4 +0x65 0x05E5 +0x66 0x05E6 +0x67 0x05E7 +0x68 0x05E8 +0x69 0x05E9 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x71 0x05EA +0x74 0x00A0 +0x78 0x2017 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9C 0x20AC +0x9D 0x00B8 +0x9E 0x20AA +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAF 0x00AE +0xB0 0x005E +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x2022 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005B +0xBB 0x005D +0xBC 0x203E +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x202D +0xDC 0x202E +0xDD 0x202C +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x202A +0xFC 0x202B +0xFD 0x200E +0xFE 0x200F +0xFF 0x009F diff --git a/tests/IBM-16804.TXT b/tests/IBM-16804.TXT new file mode 100644 index 00000000..87a06033 --- /dev/null +++ b/tests/IBM-16804.TXT @@ -0,0 +1,249 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0651 +0x43 0xFE7D +0x44 0x0640 +0x45 0x200B +0x46 0x0621 +0x47 0x0622 +0x48 0xFE82 +0x49 0x0623 +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0xFE84 +0x52 0x0624 +0x55 0x0626 +0x56 0x0627 +0x57 0xFE8E +0x58 0x0628 +0x59 0xFE91 +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x0629 +0x63 0x062A +0x64 0xFE97 +0x65 0x062B +0x66 0xFE9B +0x67 0x062C +0x68 0xFE9F +0x69 0x062D +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0xFEA3 +0x71 0x062E +0x72 0xFEA7 +0x73 0x062F +0x74 0x0630 +0x75 0x0631 +0x76 0x0632 +0x77 0x0633 +0x78 0xFEB3 +0x79 0x060C +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0634 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0xFEB7 +0x8B 0x0635 +0x8C 0xFEBB +0x8D 0x0636 +0x8E 0xFEBF +0x8F 0x0637 +0x90 0x0638 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0639 +0x9B 0xFECA +0x9C 0xFECB +0x9D 0xFECC +0x9E 0x063A +0x9F 0xFECE +0xA0 0xFECF +0xA1 0x00F7 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0xFED0 +0xAB 0x0641 +0xAC 0xFED3 +0xAD 0x0642 +0xAE 0xFED7 +0xAF 0x0643 +0xB0 0xFEDB +0xB1 0x0644 +0xB2 0xFEF5 +0xB3 0xFEF6 +0xB4 0xFEF7 +0xB5 0xFEF8 +0xB8 0xFEFB +0xB9 0xFEFC +0xBA 0xFEDF +0xBB 0x0645 +0xBC 0xFEE3 +0xBD 0x0646 +0xBE 0xFEE7 +0xBF 0x0647 +0xC0 0x061B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0xFEEB +0xCD 0xFEEC +0xCF 0x0648 +0xD0 0x061F +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0649 +0xDB 0xFEF0 +0xDC 0x064A +0xDD 0xFEF2 +0xDE 0xFEF3 +0xDF 0x0660 +0xE0 0x00D7 +0xE1 0x2007 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0661 +0xEB 0x0662 +0xED 0x0663 +0xEE 0x0664 +0xEF 0x0665 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x20AC +0xFB 0x0666 +0xFC 0x0667 +0xFD 0x0668 +0xFE 0x0669 +0xFF 0x009F diff --git a/tests/IBM-273.TXT b/tests/IBM-273.TXT new file mode 100644 index 00000000..fb826351 --- /dev/null +++ b/tests/IBM-273.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x007B +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00C4 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x007E +0x5A 0x00DC +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x005B +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x00A7 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00DF +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x0040 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E4 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00A6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00FC +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007D +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00D6 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x005C +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x005D +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-277.TXT b/tests/IBM-277.TXT new file mode 100644 index 00000000..f7f8137d --- /dev/null +++ b/tests/IBM-277.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x007D +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x0023 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00A4 +0x5B 0x00C5 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x0024 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F8 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00A6 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x00C6 +0x7C 0x00D8 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0040 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x007B +0x9D 0x00B8 +0x9E 0x005B +0x9F 0x005D +0xA0 0x00B5 +0xA1 0x00FC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E6 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E5 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007E +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-278.TXT b/tests/IBM-278.TXT new file mode 100644 index 00000000..89846048 --- /dev/null +++ b/tests/IBM-278.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x007B +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x007D +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00A7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0060 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00A4 +0x5B 0x00C5 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x0023 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x0024 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x005C +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00E9 +0x7A 0x003A +0x7B 0x00C4 +0x7C 0x00D6 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x005D +0xA0 0x00B5 +0xA1 0x00FC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x005B +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E4 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00A6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E5 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x007E +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00C9 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0040 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-280.TXT b/tests/IBM-280.TXT new file mode 100644 index 00000000..d37e4efd --- /dev/null +++ b/tests/IBM-280.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x007B +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x005C +0x49 0x00F1 +0x4A 0x00B0 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x005D +0x52 0x00EA +0x53 0x00EB +0x54 0x007D +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x007E +0x59 0x00DF +0x5A 0x00E9 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F2 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00F9 +0x7A 0x003A +0x7B 0x00A3 +0x7C 0x00A7 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x005B +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00EC +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x0023 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x0040 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E0 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00A6 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E8 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x0060 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00E7 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-282.TXT b/tests/IBM-282.TXT new file mode 100644 index 00000000..a47a7b92 --- /dev/null +++ b/tests/IBM-282.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x007B +0x47 0x00E5 +0x48 0x007E +0x49 0x00F1 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x0023 +0x67 0x00C5 +0x68 0x005C +0x69 0x00D1 +0x6A 0x00F5 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x00C3 +0x7C 0x00D5 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00E7 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x007D +0xBF 0x00D7 +0xC0 0x00E3 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00A6 +0xD0 0x00B4 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00C7 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x0040 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-284.TXT b/tests/IBM-284.TXT new file mode 100644 index 00000000..4fd9b84c --- /dev/null +++ b/tests/IBM-284.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00A6 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x0023 +0x6A 0x00F1 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x00D1 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00A8 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005E +0xBB 0x0021 +0xBC 0x00AF +0xBD 0x007E +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-285.TXT b/tests/IBM-285.TXT new file mode 100644 index 00000000..07883fba --- /dev/null +++ b/tests/IBM-285.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x0024 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x0021 +0x5B 0x00A3 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00AF +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x005B +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005E +0xBB 0x005D +0xBC 0x007E +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-297.TXT b/tests/IBM-297.TXT new file mode 100644 index 00000000..fd21c486 --- /dev/null +++ b/tests/IBM-297.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x0040 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x005C +0x49 0x00F1 +0x4A 0x00B0 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x007B +0x52 0x00EA +0x53 0x00EB +0x54 0x007D +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00A7 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00F9 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00B5 +0x7A 0x003A +0x7B 0x00A3 +0x7C 0x00E0 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x005B +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x0060 +0xA1 0x00A8 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x0023 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x005D +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x007E +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E9 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E8 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00A6 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00E7 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-423.TXT b/tests/IBM-423.TXT new file mode 100644 index 00000000..420ea30e --- /dev/null +++ b/tests/IBM-423.TXT @@ -0,0 +1,249 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x0391 +0x42 0x0392 +0x43 0x0393 +0x44 0x0394 +0x45 0x0395 +0x46 0x0396 +0x47 0x0397 +0x48 0x0398 +0x49 0x0399 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x039A +0x52 0x039B +0x53 0x039C +0x54 0x039D +0x55 0x039E +0x56 0x039F +0x57 0x03A0 +0x58 0x03A1 +0x59 0x03A3 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x03A4 +0x63 0x03A5 +0x64 0x03A6 +0x65 0x03A7 +0x66 0x03A8 +0x67 0x03A9 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x71 0x0386 +0x72 0x0388 +0x73 0x0389 +0x74 0x00A0 +0x75 0x038A +0x76 0x038C +0x77 0x038E +0x78 0x038F +0x79 0x0060 +0x7A 0x003A +0x7B 0x00A3 +0x7C 0x00A7 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00C4 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x03B1 +0x8B 0x03B2 +0x8C 0x03B3 +0x8D 0x03B4 +0x8E 0x03B5 +0x8F 0x03B6 +0x90 0x00D6 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x03B7 +0x9B 0x03B8 +0x9C 0x03B9 +0x9D 0x03BA +0x9E 0x03BB +0x9F 0x03BC +0xA0 0x00DC +0xA1 0x00A8 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x03BD +0xAB 0x03BE +0xAC 0x03BF +0xAD 0x03C0 +0xAE 0x03C1 +0xAF 0x03C3 +0xB1 0x03AC +0xB2 0x03AD +0xB3 0x03AE +0xB4 0x03CA +0xB5 0x03AF +0xB6 0x03CC +0xB7 0x03CD +0xB8 0x03CB +0xB9 0x03CE +0xBA 0x03C2 +0xBB 0x03C4 +0xBC 0x03C5 +0xBD 0x03C6 +0xBE 0x03C7 +0xBF 0x03C8 +0xC0 0x00B8 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x03C9 +0xCC 0x00E2 +0xCD 0x00E0 +0xCE 0x00E4 +0xCF 0x00EA +0xD0 0x00B4 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B1 +0xDB 0x00E9 +0xDC 0x00E8 +0xDD 0x00EB +0xDE 0x00EE +0xDF 0x00EF +0xE0 0x00B0 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00BD +0xEB 0x00F6 +0xEC 0x00F4 +0xED 0x00FB +0xEE 0x00F9 +0xEF 0x00FC +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00FF +0xFB 0x00E7 +0xFC 0x00C7 +0xFF 0x009F diff --git a/tests/IBM-424.TXT b/tests/IBM-424.TXT new file mode 100644 index 00000000..f3f2e64b --- /dev/null +++ b/tests/IBM-424.TXT @@ -0,0 +1,218 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x05D0 +0x42 0x05D1 +0x43 0x05D2 +0x44 0x05D3 +0x45 0x05D4 +0x46 0x05D5 +0x47 0x05D6 +0x48 0x05D7 +0x49 0x05D8 +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x05D9 +0x52 0x05DA +0x53 0x05DB +0x54 0x05DC +0x55 0x05DD +0x56 0x05DE +0x57 0x05DF +0x58 0x05E0 +0x59 0x05E1 +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x05E2 +0x63 0x05E3 +0x64 0x05E4 +0x65 0x05E5 +0x66 0x05E6 +0x67 0x05E7 +0x68 0x05E8 +0x69 0x05E9 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x71 0x05EA +0x74 0x00A0 +0x78 0x2017 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9D 0x00B8 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAF 0x00AE +0xB0 0x005E +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x2022 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x005B +0xBB 0x005D +0xBC 0x203E +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFF 0x009F diff --git a/tests/IBM-425.TXT b/tests/IBM-425.TXT new file mode 100644 index 00000000..46cf48be --- /dev/null +++ b/tests/IBM-425.TXT @@ -0,0 +1,255 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x060C +0x44 0x00E0 +0x45 0x061B +0x46 0x0640 +0x47 0x061F +0x48 0x00E7 +0x49 0x0621 +0x4A 0x0622 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x0623 +0x56 0x00EE +0x57 0x00EF +0x58 0x0624 +0x59 0x0625 +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x0626 +0x64 0x00C0 +0x65 0x0627 +0x66 0x0628 +0x67 0x0629 +0x68 0x00C7 +0x69 0x062A +0x6A 0x062B +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x062C +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x062D +0x76 0x00CE +0x77 0x00CF +0x78 0x062E +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x062F +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0630 +0x8D 0x0631 +0x8E 0x0632 +0x8F 0x0633 +0x90 0x0634 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0635 +0x9B 0x0636 +0x9C 0x00E6 +0x9D 0x0637 +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0638 +0xAB 0x0639 +0xAC 0x063A +0xAD 0x005B +0xAE 0x0641 +0xAF 0x0642 +0xB0 0x0643 +0xB1 0x0644 +0xB2 0x0645 +0xB3 0x0646 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x0647 +0xB7 0x0152 +0xB8 0x0153 +0xB9 0x0178 +0xBA 0x0648 +0xBB 0x0649 +0xBC 0x064A +0xBD 0x005D +0xBE 0x064B +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x064C +0xCD 0x064D +0xCE 0x064E +0xCF 0x064F +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0650 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x0651 +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0652 +0xEB 0x00D4 +0xEC 0x200C +0xED 0x200D +0xEE 0x200E +0xEF 0x200F +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00A4 +0xFF 0x009F diff --git a/tests/IBM-4971.TXT b/tests/IBM-4971.TXT new file mode 100644 index 00000000..11e99877 --- /dev/null +++ b/tests/IBM-4971.TXT @@ -0,0 +1,251 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x0391 +0x42 0x0392 +0x43 0x0393 +0x44 0x0394 +0x45 0x0395 +0x46 0x0396 +0x47 0x0397 +0x48 0x0398 +0x49 0x0399 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x039A +0x52 0x039B +0x53 0x039C +0x54 0x039D +0x55 0x039E +0x56 0x039F +0x57 0x03A0 +0x58 0x03A1 +0x59 0x03A3 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x03A4 +0x63 0x03A5 +0x64 0x03A6 +0x65 0x03A7 +0x66 0x03A8 +0x67 0x03A9 +0x68 0x03AA +0x69 0x03AB +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00A8 +0x71 0x0386 +0x72 0x0388 +0x73 0x0389 +0x74 0x00A0 +0x75 0x038A +0x76 0x038C +0x77 0x038E +0x78 0x038F +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0385 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x03B1 +0x8B 0x03B2 +0x8C 0x03B3 +0x8D 0x03B4 +0x8E 0x03B5 +0x8F 0x03B6 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x03B7 +0x9B 0x03B8 +0x9C 0x03B9 +0x9D 0x03BA +0x9E 0x03BB +0x9F 0x03BC +0xA0 0x00B4 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x03BD +0xAB 0x03BE +0xAC 0x03BF +0xAD 0x03C0 +0xAE 0x03C1 +0xAF 0x03C3 +0xB0 0x00A3 +0xB1 0x03AC +0xB2 0x03AD +0xB3 0x03AE +0xB4 0x03CA +0xB5 0x03AF +0xB6 0x03CC +0xB7 0x03CD +0xB8 0x03CB +0xB9 0x03CE +0xBA 0x03C2 +0xBB 0x03C4 +0xBC 0x03C5 +0xBD 0x03C6 +0xBE 0x03C7 +0xBF 0x03C8 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x03C9 +0xCC 0x0390 +0xCD 0x03B0 +0xCE 0x2018 +0xCF 0x2015 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B1 +0xDB 0x00BD +0xDD 0x0387 +0xDE 0x2019 +0xDF 0x00A6 +0xE0 0x005C +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00A7 +0xEE 0x00AB +0xEF 0x00AC +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00A9 +0xFC 0x20AC +0xFE 0x00BB +0xFF 0x009F diff --git a/tests/IBM-500.TXT b/tests/IBM-500.TXT new file mode 100644 index 00000000..8ab4c490 --- /dev/null +++ b/tests/IBM-500.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x00B8 +0x9E 0x00C6 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x00DD +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-838.IRREVERSIBLE.TXT b/tests/IBM-838.IRREVERSIBLE.TXT new file mode 100644 index 00000000..3cb51ed2 --- /dev/null +++ b/tests/IBM-838.IRREVERSIBLE.TXT @@ -0,0 +1,5 @@ +0x51 0x0E48 +0xCA 0x0E49 +0xE1 0x0E4A +0xFD 0x0E4B +0xFE 0x0E4C diff --git a/tests/IBM-838.TXT b/tests/IBM-838.TXT new file mode 100644 index 00000000..15ff42b0 --- /dev/null +++ b/tests/IBM-838.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0E01 +0x43 0x0E02 +0x44 0x0E03 +0x45 0x0E04 +0x46 0x0E05 +0x47 0x0E06 +0x48 0x0E07 +0x49 0x005B +0x4A 0x00A2 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x0E48 +0x52 0x0E08 +0x53 0x0E09 +0x54 0x0E0A +0x55 0x0E0B +0x56 0x0E0C +0x57 0x0E0D +0x58 0x0E0E +0x59 0x005D +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00AC +0x60 0x002D +0x61 0x002F +0x62 0x0E0F +0x63 0x0E10 +0x64 0x0E11 +0x65 0x0E12 +0x66 0x0E13 +0x67 0x0E14 +0x68 0x0E15 +0x69 0x005E +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x0E3F +0x71 0x0E4E +0x72 0x0E16 +0x73 0x0E17 +0x74 0x0E18 +0x75 0x0E19 +0x76 0x0E1A +0x77 0x0E1B +0x78 0x0E1C +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0E4F +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0E1D +0x8B 0x0E1E +0x8C 0x0E1F +0x8D 0x0E20 +0x8E 0x0E21 +0x8F 0x0E22 +0x90 0x0E5A +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0E23 +0x9B 0x0E24 +0x9C 0x0E25 +0x9D 0x0E26 +0x9E 0x0E27 +0x9F 0x0E28 +0xA0 0x0E5B +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0E29 +0xAB 0x0E2A +0xAC 0x0E2B +0xAD 0x0E2C +0xAE 0x0E2D +0xAF 0x0E2E +0xB0 0x0E50 +0xB1 0x0E51 +0xB2 0x0E52 +0xB3 0x0E53 +0xB4 0x0E54 +0xB5 0x0E55 +0xB6 0x0E56 +0xB7 0x0E57 +0xB8 0x0E58 +0xB9 0x0E59 +0xBA 0x0E2F +0xBB 0x0E30 +0xBC 0x0E31 +0xBD 0x0E32 +0xBE 0x0E33 +0xBF 0x0E34 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0E49 +0xCB 0x0E35 +0xCC 0x0E36 +0xCD 0x0E37 +0xCE 0x0E38 +0xCF 0x0E39 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0E3A +0xDB 0x0E40 +0xDC 0x0E41 +0xDD 0x0E42 +0xDE 0x0E43 +0xDF 0x0E44 +0xE0 0x005C +0xE1 0x0E4A +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0E45 +0xEB 0x0E46 +0xEC 0x0E47 +0xED 0x0E48 +0xEE 0x0E49 +0xEF 0x0E4A +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0E4B +0xFB 0x0E4C +0xFC 0x0E4D +0xFD 0x0E4B +0xFE 0x0E4C +0xFF 0x009F diff --git a/tests/IBM-870.TXT b/tests/IBM-870.TXT new file mode 100644 index 00000000..090f3cb9 --- /dev/null +++ b/tests/IBM-870.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x0163 +0x45 0x00E1 +0x46 0x0103 +0x47 0x010D +0x48 0x00E7 +0x49 0x0107 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x0119 +0x53 0x00EB +0x54 0x016F +0x55 0x00ED +0x56 0x00EE +0x57 0x013E +0x58 0x013A +0x59 0x00DF +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x02DD +0x65 0x00C1 +0x66 0x0102 +0x67 0x010C +0x68 0x00C7 +0x69 0x0106 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x02C7 +0x71 0x00C9 +0x72 0x0118 +0x73 0x00CB +0x74 0x016E +0x75 0x00CD +0x76 0x00CE +0x77 0x013D +0x78 0x0139 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x02D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x015B +0x8B 0x0148 +0x8C 0x0111 +0x8D 0x00FD +0x8E 0x0159 +0x8F 0x015F +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0142 +0x9B 0x0144 +0x9C 0x0161 +0x9D 0x00B8 +0x9E 0x02DB +0x9F 0x00A4 +0xA0 0x0105 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x015A +0xAB 0x0147 +0xAC 0x0110 +0xAD 0x00DD +0xAE 0x0158 +0xAF 0x015E +0xB0 0x02D9 +0xB1 0x0104 +0xB2 0x017C +0xB3 0x0162 +0xB4 0x017B +0xB5 0x00A7 +0xB6 0x017E +0xB7 0x017A +0xB8 0x017D +0xB9 0x0179 +0xBA 0x0141 +0xBB 0x0143 +0xBC 0x0160 +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x0155 +0xCE 0x00F3 +0xCF 0x0151 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x011A +0xDB 0x0171 +0xDC 0x00FC +0xDD 0x0165 +0xDE 0x00FA +0xDF 0x011B +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x010F +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x0154 +0xEE 0x00D3 +0xEF 0x0150 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x010E +0xFB 0x0170 +0xFC 0x00DC +0xFD 0x0164 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-871.TXT b/tests/IBM-871.TXT new file mode 100644 index 00000000..8e69a609 --- /dev/null +++ b/tests/IBM-871.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00DE +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x00C6 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x00D6 +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x00A6 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x00F0 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x00D0 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x0060 +0x8D 0x00FD +0x8E 0x007B +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x007D +0x9D 0x00B8 +0x9E 0x005D +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00F6 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x0040 +0xAD 0x00DD +0xAE 0x005B +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x00BC +0xB8 0x00BD +0xB9 0x00BE +0xBA 0x00AC +0xBB 0x007C +0xBC 0x00AF +0xBD 0x00A8 +0xBE 0x005C +0xBF 0x00D7 +0xC0 0x00FE +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x007E +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x00E6 +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x00B4 +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x005E +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-875.TXT b/tests/IBM-875.TXT new file mode 100644 index 00000000..2b9b31f5 --- /dev/null +++ b/tests/IBM-875.TXT @@ -0,0 +1,250 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x0391 +0x42 0x0392 +0x43 0x0393 +0x44 0x0394 +0x45 0x0395 +0x46 0x0396 +0x47 0x0397 +0x48 0x0398 +0x49 0x0399 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x039A +0x52 0x039B +0x53 0x039C +0x54 0x039D +0x55 0x039E +0x56 0x039F +0x57 0x03A0 +0x58 0x03A1 +0x59 0x03A3 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x03A4 +0x63 0x03A5 +0x64 0x03A6 +0x65 0x03A7 +0x66 0x03A8 +0x67 0x03A9 +0x68 0x03AA +0x69 0x03AB +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00A8 +0x71 0x0386 +0x72 0x0388 +0x73 0x0389 +0x74 0x00A0 +0x75 0x038A +0x76 0x038C +0x77 0x038E +0x78 0x038F +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0385 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x03B1 +0x8B 0x03B2 +0x8C 0x03B3 +0x8D 0x03B4 +0x8E 0x03B5 +0x8F 0x03B6 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x03B7 +0x9B 0x03B8 +0x9C 0x03B9 +0x9D 0x03BA +0x9E 0x03BB +0x9F 0x03BC +0xA0 0x00B4 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x03BD +0xAB 0x03BE +0xAC 0x03BF +0xAD 0x03C0 +0xAE 0x03C1 +0xAF 0x03C3 +0xB0 0x00A3 +0xB1 0x03AC +0xB2 0x03AD +0xB3 0x03AE +0xB4 0x03CA +0xB5 0x03AF +0xB6 0x03CC +0xB7 0x03CD +0xB8 0x03CB +0xB9 0x03CE +0xBA 0x03C2 +0xBB 0x03C4 +0xBC 0x03C5 +0xBD 0x03C6 +0xBE 0x03C7 +0xBF 0x03C8 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x03C9 +0xCC 0x0390 +0xCD 0x03B0 +0xCE 0x2018 +0xCF 0x2015 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B1 +0xDB 0x00BD +0xDD 0x0387 +0xDE 0x2019 +0xDF 0x00A6 +0xE0 0x005C +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00A7 +0xEE 0x00AB +0xEF 0x00AC +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00A9 +0xFE 0x00BB +0xFF 0x009F diff --git a/tests/IBM-880.TXT b/tests/IBM-880.TXT new file mode 100644 index 00000000..d7eea2d9 --- /dev/null +++ b/tests/IBM-880.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x0452 +0x43 0x0453 +0x44 0x0451 +0x45 0x0454 +0x46 0x0455 +0x47 0x0456 +0x48 0x0457 +0x49 0x0458 +0x4A 0x005B +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x0459 +0x52 0x045A +0x53 0x045B +0x54 0x045C +0x55 0x045E +0x56 0x045F +0x57 0x042A +0x58 0x2116 +0x59 0x0402 +0x5A 0x005D +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x0403 +0x63 0x0401 +0x64 0x0404 +0x65 0x0405 +0x66 0x0406 +0x67 0x0407 +0x68 0x0408 +0x69 0x0409 +0x6A 0x007C +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x040A +0x71 0x040B +0x72 0x040C +0x73 0x00AD +0x74 0x040E +0x75 0x040F +0x76 0x044E +0x77 0x0430 +0x78 0x0431 +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x0446 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0434 +0x8B 0x0435 +0x8C 0x0444 +0x8D 0x0433 +0x8E 0x0445 +0x8F 0x0438 +0x90 0x0439 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x043A +0x9B 0x043B +0x9C 0x043C +0x9D 0x043D +0x9E 0x043E +0x9F 0x043F +0xA0 0x044F +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0440 +0xAB 0x0441 +0xAC 0x0442 +0xAD 0x0443 +0xAE 0x0436 +0xAF 0x0432 +0xB0 0x044C +0xB1 0x044B +0xB2 0x0437 +0xB3 0x0448 +0xB4 0x044D +0xB5 0x0449 +0xB6 0x0447 +0xB7 0x044A +0xB8 0x042E +0xB9 0x0410 +0xBA 0x0411 +0xBB 0x0426 +0xBC 0x0414 +0xBD 0x0415 +0xBE 0x0424 +0xBF 0x0413 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x0425 +0xCB 0x0418 +0xCC 0x0419 +0xCD 0x041A +0xCE 0x041B +0xCF 0x041C +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x041D +0xDB 0x041E +0xDC 0x041F +0xDD 0x042F +0xDE 0x0420 +0xDF 0x0421 +0xE0 0x005C +0xE1 0x00A4 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x0422 +0xEB 0x0423 +0xEC 0x0416 +0xED 0x0412 +0xEE 0x042C +0xEF 0x042B +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x0417 +0xFB 0x0428 +0xFC 0x042D +0xFD 0x0429 +0xFE 0x0427 +0xFF 0x009F diff --git a/tests/IBM-905.TXT b/tests/IBM-905.TXT new file mode 100644 index 00000000..1ad880b8 --- /dev/null +++ b/tests/IBM-905.TXT @@ -0,0 +1,249 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x47 0x010B +0x48 0x007B +0x49 0x00F1 +0x4A 0x00C7 +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x0021 +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x011E +0x5B 0x0130 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x67 0x010A +0x68 0x005B +0x69 0x00D1 +0x6A 0x015F +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0131 +0x7A 0x003A +0x7B 0x00D6 +0x7C 0x015E +0x7D 0x0027 +0x7E 0x003D +0x7F 0x00DC +0x80 0x02D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x0127 +0x8B 0x0109 +0x8C 0x015D +0x8D 0x016D +0x8F 0x007C +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x0125 +0x9B 0x011D +0x9C 0x0135 +0x9D 0x00B8 +0x9F 0x00A4 +0xA0 0x00B5 +0xA1 0x00F6 +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x0126 +0xAB 0x0108 +0xAC 0x015C +0xAD 0x016C +0xAF 0x0040 +0xB0 0x02D9 +0xB1 0x00A3 +0xB2 0x017C +0xB3 0x007D +0xB4 0x017B +0xB5 0x00A7 +0xB6 0x005D +0xB7 0x00B7 +0xB8 0x00BD +0xB9 0x0024 +0xBA 0x0124 +0xBB 0x011C +0xBC 0x0134 +0xBD 0x00A8 +0xBE 0x00B4 +0xBF 0x00D7 +0xC0 0x00E7 +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x007E +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x0121 +0xD0 0x011F +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x0060 +0xDB 0x00FB +0xDC 0x005C +0xDD 0x00F9 +0xDE 0x00FA +0xE0 0x00FC +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x0023 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x0120 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x0022 +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/IBM-924.TXT b/tests/IBM-924.TXT new file mode 100644 index 00000000..d2c06cd9 --- /dev/null +++ b/tests/IBM-924.TXT @@ -0,0 +1,256 @@ +0x00 0x0000 +0x01 0x0001 +0x02 0x0002 +0x03 0x0003 +0x04 0x009C +0x05 0x0009 +0x06 0x0086 +0x07 0x007F +0x08 0x0097 +0x09 0x008D +0x0A 0x008E +0x0B 0x000B +0x0C 0x000C +0x0D 0x000D +0x0E 0x000E +0x0F 0x000F +0x10 0x0010 +0x11 0x0011 +0x12 0x0012 +0x13 0x0013 +0x14 0x009D +0x15 0x0085 +0x16 0x0008 +0x17 0x0087 +0x18 0x0018 +0x19 0x0019 +0x1A 0x0092 +0x1B 0x008F +0x1C 0x001C +0x1D 0x001D +0x1E 0x001E +0x1F 0x001F +0x20 0x0080 +0x21 0x0081 +0x22 0x0082 +0x23 0x0083 +0x24 0x0084 +0x25 0x000A +0x26 0x0017 +0x27 0x001B +0x28 0x0088 +0x29 0x0089 +0x2A 0x008A +0x2B 0x008B +0x2C 0x008C +0x2D 0x0005 +0x2E 0x0006 +0x2F 0x0007 +0x30 0x0090 +0x31 0x0091 +0x32 0x0016 +0x33 0x0093 +0x34 0x0094 +0x35 0x0095 +0x36 0x0096 +0x37 0x0004 +0x38 0x0098 +0x39 0x0099 +0x3A 0x009A +0x3B 0x009B +0x3C 0x0014 +0x3D 0x0015 +0x3E 0x009E +0x3F 0x001A +0x40 0x0020 +0x41 0x00A0 +0x42 0x00E2 +0x43 0x00E4 +0x44 0x00E0 +0x45 0x00E1 +0x46 0x00E3 +0x47 0x00E5 +0x48 0x00E7 +0x49 0x00F1 +0x4A 0x00DD +0x4B 0x002E +0x4C 0x003C +0x4D 0x0028 +0x4E 0x002B +0x4F 0x007C +0x50 0x0026 +0x51 0x00E9 +0x52 0x00EA +0x53 0x00EB +0x54 0x00E8 +0x55 0x00ED +0x56 0x00EE +0x57 0x00EF +0x58 0x00EC +0x59 0x00DF +0x5A 0x0021 +0x5B 0x0024 +0x5C 0x002A +0x5D 0x0029 +0x5E 0x003B +0x5F 0x005E +0x60 0x002D +0x61 0x002F +0x62 0x00C2 +0x63 0x00C4 +0x64 0x00C0 +0x65 0x00C1 +0x66 0x00C3 +0x67 0x00C5 +0x68 0x00C7 +0x69 0x00D1 +0x6A 0x0160 +0x6B 0x002C +0x6C 0x0025 +0x6D 0x005F +0x6E 0x003E +0x6F 0x003F +0x70 0x00F8 +0x71 0x00C9 +0x72 0x00CA +0x73 0x00CB +0x74 0x00C8 +0x75 0x00CD +0x76 0x00CE +0x77 0x00CF +0x78 0x00CC +0x79 0x0060 +0x7A 0x003A +0x7B 0x0023 +0x7C 0x0040 +0x7D 0x0027 +0x7E 0x003D +0x7F 0x0022 +0x80 0x00D8 +0x81 0x0061 +0x82 0x0062 +0x83 0x0063 +0x84 0x0064 +0x85 0x0065 +0x86 0x0066 +0x87 0x0067 +0x88 0x0068 +0x89 0x0069 +0x8A 0x00AB +0x8B 0x00BB +0x8C 0x00F0 +0x8D 0x00FD +0x8E 0x00FE +0x8F 0x00B1 +0x90 0x00B0 +0x91 0x006A +0x92 0x006B +0x93 0x006C +0x94 0x006D +0x95 0x006E +0x96 0x006F +0x97 0x0070 +0x98 0x0071 +0x99 0x0072 +0x9A 0x00AA +0x9B 0x00BA +0x9C 0x00E6 +0x9D 0x017E +0x9E 0x00C6 +0x9F 0x20AC +0xA0 0x00B5 +0xA1 0x007E +0xA2 0x0073 +0xA3 0x0074 +0xA4 0x0075 +0xA5 0x0076 +0xA6 0x0077 +0xA7 0x0078 +0xA8 0x0079 +0xA9 0x007A +0xAA 0x00A1 +0xAB 0x00BF +0xAC 0x00D0 +0xAD 0x005B +0xAE 0x00DE +0xAF 0x00AE +0xB0 0x00A2 +0xB1 0x00A3 +0xB2 0x00A5 +0xB3 0x00B7 +0xB4 0x00A9 +0xB5 0x00A7 +0xB6 0x00B6 +0xB7 0x0152 +0xB8 0x0153 +0xB9 0x0178 +0xBA 0x00AC +0xBB 0x0161 +0xBC 0x00AF +0xBD 0x005D +0xBE 0x017D +0xBF 0x00D7 +0xC0 0x007B +0xC1 0x0041 +0xC2 0x0042 +0xC3 0x0043 +0xC4 0x0044 +0xC5 0x0045 +0xC6 0x0046 +0xC7 0x0047 +0xC8 0x0048 +0xC9 0x0049 +0xCA 0x00AD +0xCB 0x00F4 +0xCC 0x00F6 +0xCD 0x00F2 +0xCE 0x00F3 +0xCF 0x00F5 +0xD0 0x007D +0xD1 0x004A +0xD2 0x004B +0xD3 0x004C +0xD4 0x004D +0xD5 0x004E +0xD6 0x004F +0xD7 0x0050 +0xD8 0x0051 +0xD9 0x0052 +0xDA 0x00B9 +0xDB 0x00FB +0xDC 0x00FC +0xDD 0x00F9 +0xDE 0x00FA +0xDF 0x00FF +0xE0 0x005C +0xE1 0x00F7 +0xE2 0x0053 +0xE3 0x0054 +0xE4 0x0055 +0xE5 0x0056 +0xE6 0x0057 +0xE7 0x0058 +0xE8 0x0059 +0xE9 0x005A +0xEA 0x00B2 +0xEB 0x00D4 +0xEC 0x00D6 +0xED 0x00D2 +0xEE 0x00D3 +0xEF 0x00D5 +0xF0 0x0030 +0xF1 0x0031 +0xF2 0x0032 +0xF3 0x0033 +0xF4 0x0034 +0xF5 0x0035 +0xF6 0x0036 +0xF7 0x0037 +0xF8 0x0038 +0xF9 0x0039 +0xFA 0x00B3 +0xFB 0x00DB +0xFC 0x00DC +0xFD 0x00D9 +0xFE 0x00DA +0xFF 0x009F diff --git a/tests/check-subst b/tests/check-subst index c6c5ec2b..ed50546d 100755 --- a/tests/check-subst +++ b/tests/check-subst @@ -2,6 +2,7 @@ # Check of --unicode-subst, --byte-subst, --widechar-subst options. set -e iconv=$bindir/iconv +is_native=$bindir/is-native options_ascii='--unicode-subst= --byte-subst=<0x%02x> --widechar-subst=<%08x>' options_utf8='--unicode-subst=«U+%04X» --byte-subst=«0x%02x» --widechar-subst=«%08x»' @@ -20,7 +21,7 @@ rc1=$? # Test of --byte-subst with a non-ASCII substitution. -if test "`(locale charmap) 2>/dev/null`" = UTF-8; then +if $is_native && test "`(locale charmap) 2>/dev/null`" = UTF-8; then cat > tmp-in <<\EOF Böse Bübchen EOF @@ -34,7 +35,7 @@ else rc2=0 fi -if test "`(locale charmap) 2>/dev/null`" = UTF-8; then +if $is_native && test "`(locale charmap) 2>/dev/null`" = UTF-8; then cat > tmp-in <<\EOF Böse Bübchen EOF @@ -89,7 +90,7 @@ rc6=$? # Test of --unicode-subst with a non-ASCII substitution. -if test "`(locale charmap) 2>/dev/null`" = UTF-8; then +if $is_native && test "`(locale charmap) 2>/dev/null`" = UTF-8; then cat > tmp-in <<\EOF Russian (Русский) EOF @@ -140,7 +141,7 @@ fi rc10=0 rc11=0 rc12=0 -if false && test "`(locale charmap) 2>/dev/null`" = UTF-8; then +if false && $is_native && test "`(locale charmap) 2>/dev/null`" = UTF-8; then cat > tmp-in <<\EOF Russian (Русский) EOF @@ -154,7 +155,7 @@ EOF rc10=$? cmp -s tmp-out2 tmp-ok rc11=$? - if test "`(LC_ALL=de_DE.ISO-8859-1 locale charmap) 2>/dev/null`" = ISO-8859-1; then + if $is_native && test "`(LC_ALL=de_DE.ISO-8859-1 locale charmap) 2>/dev/null`" = ISO-8859-1; then options_latin1=`echo " $options_utf8" | $iconv -f UTF-8 -t ISO-8859-1` LC_ALL=de_DE.ISO-8859-1 $iconv $options_latin1 -f wchar_t -t UTF-8 < tmp-inw > tmp-out1 cat > tmp-ok <<\EOF diff --git a/tests/gengb18030z.c b/tests/gengb18030z.c index b4cb5023..7b61c146 100644 --- a/tests/gengb18030z.c +++ b/tests/gengb18030z.c @@ -2,16 +2,16 @@ This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ diff --git a/tests/genutf8.c b/tests/genutf8.c index 76c0f548..a3342b9e 100644 --- a/tests/genutf8.c +++ b/tests/genutf8.c @@ -2,16 +2,16 @@ This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ diff --git a/tests/is-native.c b/tests/is-native.c new file mode 100644 index 00000000..109d3763 --- /dev/null +++ b/tests/is-native.c @@ -0,0 +1,30 @@ +/* Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 + of the License, or (at your option) any later version. + + The GNU LIBICONV Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU LIBICONV Library; see the file COPYING.LIB. + If not, see . */ + +#include "config.h" + +#include "qemu.h" + +/* Returns 0 (success) in a native environment. + Returns 1 (failure) in a cross-executing environment, that is, in an + environment where compiled programs use a different libc than the system's + libc. Currently, only QEMU user-mode environments are recognized. */ + +int main () +{ + return is_running_under_qemu_user () ? 1 : 0; +} diff --git a/tests/qemu.h b/tests/qemu.h new file mode 100644 index 00000000..6e839def --- /dev/null +++ b/tests/qemu.h @@ -0,0 +1,107 @@ +/* Determine whether the current process is running under QEMU. + Copyright (C) 2021-2022 Free Software Foundation, Inc. + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +/* Written by Bruno Haible , 2021. */ + +#ifndef __cplusplus +#if !defined(_MSC_VER) || _MSC_VER >= 1700 +#include +#else +typedef int bool; +#define false 0 +#define true 1 +#endif +#endif +#ifdef __linux__ +# include +# include +# include +#endif + +/* This function determines whether the current process is running under QEMU + (user-mode). + + It does so by looking at parts of the environment that QEMU does not emulate + 100% perfectly well. + + For comparison, the techniques given in the paper + Thomas Raffetseder, Christopher Kruegel, Engin Kirda + "Detecting System Emulators" + 2007 + https://publik.tuwien.ac.at/files/pub-inf_5317.pdf + apply to both the QEMU system mode and QEMU user mode. */ + +static bool +is_running_under_qemu_user (void) +{ +#ifdef __linux__ + char buf[4096 + 1]; + int fd; + +# if defined __m68k__ + fd = open ("/proc/hardware", O_RDONLY); + if (fd >= 0) + { + int n = read (fd, buf, sizeof (buf) - 1); + close (fd); + if (n > 0) + { + buf[n] = '\0'; + if (strstr (buf, "qemu") != NULL) + return true; + } + } +# endif + + fd = open ("/proc/cpuinfo", O_RDONLY); + if (fd >= 0) + { + int n = read (fd, buf, sizeof (buf) - 1); + close (fd); + if (n > 0) + { + buf[n] = '\0'; +# if defined __hppa__ + if (strstr (buf, "QEMU") != NULL) + return true; +# endif +# if !(defined __i386__ || defined __x86_64__) + if (strstr (buf, "AuthenticAMD") != NULL + || strstr (buf, "GenuineIntel") != NULL) + return true; +# endif +# if !(defined __arm__ || defined __aarch64__) + if (strstr (buf, "ARM") != NULL + || strcasestr (buf, "aarch64") != NULL) + return true; +# endif +# if !defined __sparc__ + if (strcasestr (buf, "SPARC") != NULL) + return true; +# endif +# if !defined __powerpc__ + if (strstr (buf, "POWER") != NULL) + return true; +# endif + } + } + + /* If you need more heuristics, look at system calls that are not perfectly + well emulated in qemu/linux-user/syscall.c. */ +#endif + + return false; +} diff --git a/tests/table-from.c b/tests/table-from.c index ea894776..cbf5f73b 100644 --- a/tests/table-from.c +++ b/tests/table-from.c @@ -2,16 +2,16 @@ This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ diff --git a/tests/table-to.c b/tests/table-to.c index 0c983fce..acd4cad2 100644 --- a/tests/table-to.c +++ b/tests/table-to.c @@ -2,16 +2,16 @@ This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ diff --git a/tests/test-shiftseq.c b/tests/test-shiftseq.c index 263721c5..84eada01 100644 --- a/tests/test-shiftseq.c +++ b/tests/test-shiftseq.c @@ -1,17 +1,17 @@ -/* Copyright (C) 2008, 2018 Free Software Foundation, Inc. +/* Copyright (C) 2008, 2018, 2022 Free Software Foundation, Inc. This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ @@ -64,7 +64,7 @@ void main1 (void) void main2 (void) { - static const char input[] = "+2D/YQNhB"; + static const char input[20] = "+2D/YQNhB"; iconv_t cd; char buf[20]; diff --git a/tests/test-to-wchar.c b/tests/test-to-wchar.c index 9bcb7058..95b5053e 100644 --- a/tests/test-to-wchar.c +++ b/tests/test-to-wchar.c @@ -2,16 +2,16 @@ This file is part of the GNU LIBICONV Library. The GNU LIBICONV Library is free software; you can redistribute it - and/or modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either version 2 + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU LIBICONV Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU Library General Public + You should have received a copy of the GNU Lesser General Public License along with the GNU LIBICONV Library; see the file COPYING.LIB. If not, see . */ diff --git a/win32/iconv.rc b/win32/iconv.rc index 383148f9..570345f3 100644 --- a/win32/iconv.rc +++ b/win32/iconv.rc @@ -25,7 +25,7 @@ BEGIN VALUE "FileDescription", "GPLed iconv for Windows\0" VALUE "FileVersion", PACKAGE_VERSION_STRING "\0" VALUE "InternalName", "iconv.exe\0" - VALUE "LegalCopyright", "Copyright (C) 1999-2019\0" + VALUE "LegalCopyright", "Copyright (C) 1999-2022\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "iconv.exe\0" VALUE "ProductName", "iconv: character set conversion program\0" diff --git a/win32/iconv_version.h b/win32/iconv_version.h index 1364637c..fa77aff2 100644 --- a/win32/iconv_version.h +++ b/win32/iconv_version.h @@ -1,4 +1,4 @@ -#define PACKAGE_VERSION_STRING "1.16" +#define PACKAGE_VERSION_STRING "1.17" #define PACKAGE_VERSION_MAJOR 1 -#define PACKAGE_VERSION_MINOR 16 +#define PACKAGE_VERSION_MINOR 17 #define PACKAGE_VERSION_SUBMINOR 0 diff --git a/win32/libiconv.rc b/win32/libiconv.rc index c3ec93c8..5f2afe18 100644 --- a/win32/libiconv.rc +++ b/win32/libiconv.rc @@ -20,12 +20,12 @@ BEGIN BEGIN BLOCK "04090000" /* Lang = US English, Charset = ASCII */ BEGIN - VALUE "Comments", "This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License. You should have received a copy of the GNU Library General Public License along with this library; if not, see . Alternative build from .\0" + VALUE "Comments", "This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see . Alternative build from .\0" VALUE "CompanyName", "Free Software Foundation\0" VALUE "FileDescription", "LGPLed libiconv for Windows\0" VALUE "FileVersion", PACKAGE_VERSION_STRING "\0" VALUE "InternalName", "libiconv.dll\0" - VALUE "LegalCopyright", "Copyright (C) 1999-2019\0" + VALUE "LegalCopyright", "Copyright (C) 1999-2022\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "libiconv.dll\0" VALUE "ProductName", "libiconv: character set conversion library\0"