From: Rafał Długołęcki Date: Wed, 13 Jul 2016 23:52:36 +0000 (+0200) Subject: Increase library version X-Git-Url: https://git.dlugolecki.net.pl/?a=commitdiff_plain;h=cd25fe640b14582803e813837c420e6e06e5f847;p=gedcom-parse.git Increase library version Synchonize patches with libiconv-1.14 Use quilt for applying patches --- diff --git a/debian/control b/debian/control index df21513..fe79894 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Section: devel Priority: optional Maintainer: Geert Vantienen Standards-Version: 3.9.5 -Build-Depends: bison, debhelper (>= 9.0.0), autotools-dev, dh-autoreconf, glibc +Build-Depends: bison, debhelper (>= 9.0.0), autotools-dev, dh-autoreconf, libc6-dev Package: libgedcom-dev Architecture: any diff --git a/iconv/libiconv/ChangeLog.gedcom b/iconv/libiconv/ChangeLog.gedcom index fa293dd..095cc0c 100644 --- a/iconv/libiconv/ChangeLog.gedcom +++ b/iconv/libiconv/ChangeLog.gedcom @@ -1,3 +1,7 @@ +2016-07-14 Rafał Długołęcki + + * Synchronized patches with libiconv-1.14 + 2002-10-27 Peter Verthez * libcharset/lib/config.charset: Add darwin (same as freebsd). diff --git a/iconv/libiconv/Makefile.am b/iconv/libiconv/Makefile.am index 8e4774f..fba4ce5 100644 --- a/iconv/libiconv/Makefile.am +++ b/iconv/libiconv/Makefile.am @@ -1,11 +1,11 @@ -## Process this file with automake to produce Makefile.in + ## Process this file with automake to produce Makefile.in # $Id$ # $Name$ -PATCH_FILES := $(wildcard $(srcdir)/*.patch) +PATCH_FILES := $(wildcard $(srcdir)/patches/*.patch) $(srcdir)/patches/series $(srcdir)/quiltrc SRC_FILES := ansi_z39_47.h -EXTRA_DIST = ChangeLog.gedcom NEWS.gedcom get_patches patch_dist \ +EXTRA_DIST = ChangeLog.gedcom NEWS.gedcom patch_dist \ $(SRC_FILES) $(PATCH_FILES) all: diff --git a/iconv/libiconv/Makefile.in.patch b/iconv/libiconv/Makefile.in.patch deleted file mode 100644 index bf0eb60..0000000 --- a/iconv/libiconv/Makefile.in.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- Makefile.in.orig Thu May 23 13:48:42 2002 -+++ Makefile.in Sat Oct 5 09:41:32 2002 -@@ -39,7 +39,7 @@ - - # Before making a release, change this according to the libtool documentation, - # section "Library interface versions". --LIBICONV_VERSION_INFO = 3:0:1 -+LIBICONV_VERSION_INFO = 3:2:1 - - # Needed by $(LIBTOOL). - top_builddir = .. diff --git a/iconv/libiconv/NEWS.gedcom b/iconv/libiconv/NEWS.gedcom index 1dba375..918ac80 100644 --- a/iconv/libiconv/NEWS.gedcom +++ b/iconv/libiconv/NEWS.gedcom @@ -1,3 +1,6 @@ +New in 1.14: +* Synchronized patches with libiconv-1.14 + New in 1.8.2: * Added charset aliases for darwin. diff --git a/iconv/libiconv/README.patch b/iconv/libiconv/README.patch deleted file mode 100644 index bebd6fe..0000000 --- a/iconv/libiconv/README.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- README.orig Wed May 29 16:06:52 2002 -+++ README Fri Oct 4 20:36:35 2002 -@@ -12,6 +12,7 @@ - Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, - Mac{Cyrillic,Ukraine,Greek,Turkish}, - Macintosh -+ ANSEL - Semitic languages - ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic} - Japanese -@@ -132,15 +133,22 @@ - recompiled. Just set the LD_PRELOAD environment variable, that's it! - - --Distribution: -+Distribution of original package (libiconv): - ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz - ftp://ftp.ilog.fr/pub/Users/haible/gnu/libiconv-1.8.tar.gz - --Homepage: -+Homepage of original package (libiconv): - http://www.gnu.org/software/libiconv/ - -+Distribution of modified package (libiconv-gedcom): -+ http://sourceforge.net/projects/gedcom-parse -+ - Bug reports to: - -+ For specific ANSEL bugs, please use the web interface at SourceForge -+ (link given above) - - - Bruno Haible -+ -+Modifications: Peter Verthez diff --git a/iconv/libiconv/config.charset.patch b/iconv/libiconv/config.charset.patch deleted file mode 100644 index 89c76a8..0000000 --- a/iconv/libiconv/config.charset.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- config.charset.orig Mon May 13 11:58:22 2002 -+++ config.charset Sun Oct 27 14:55:03 2002 -@@ -245,12 +245,13 @@ - #echo "sun_eu_greek ?" # what is this? - echo "UTF-8 UTF-8" - ;; -- freebsd* | os2*) -+ freebsd* | os2* | darwin*) - # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just - # reuse FreeBSD's locale data for OS/2. -+ # Likewise for darwin (MacOS X), which is derived from FreeBSD. - echo "C ASCII" - echo "US-ASCII ASCII" - for l in la_LN lt_LN; do diff --git a/iconv/libiconv/configure.in.patch b/iconv/libiconv/configure.in.patch deleted file mode 100644 index 9b7c6d9..0000000 --- a/iconv/libiconv/configure.in.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- configure.in.orig Fri May 24 21:22:41 2002 -+++ configure.in Sat Oct 5 09:41:32 2002 -@@ -18,7 +18,7 @@ - - AC_PREREQ(2.52) - --AC_INIT(libiconv,1.8) -+AC_INIT(libiconv-gedcom,1.8.2) - - PACKAGE=$PACKAGE_NAME - VERSION=$PACKAGE_VERSION diff --git a/iconv/libiconv/configure.patch b/iconv/libiconv/configure.patch deleted file mode 100644 index 7a0b5e8..0000000 --- a/iconv/libiconv/configure.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- configure.orig Fri May 24 21:23:09 2002 -+++ configure Sat Oct 5 09:41:32 2002 -@@ -302,10 +302,10 @@ - mandir='${prefix}/man' - - # Identity of this package. --PACKAGE_NAME='libiconv' --PACKAGE_TARNAME='libiconv' --PACKAGE_VERSION='1.8' --PACKAGE_STRING='libiconv 1.8' -+PACKAGE_NAME='libiconv-gedcom' -+PACKAGE_TARNAME='libiconv-gedcom' -+PACKAGE_VERSION='1.8.2' -+PACKAGE_STRING='libiconv-gedcom 1.8.2' - PACKAGE_BUGREPORT='' - - ac_prev= diff --git a/iconv/libiconv/get_patches b/iconv/libiconv/get_patches deleted file mode 100755 index 93c8467..0000000 --- a/iconv/libiconv/get_patches +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -tarfile=`ls libiconv-*.tar.gz` -topdir=`pwd` -libiconvdir=`basename $tarfile .tar.gz` -libiconvdir="$topdir/$libiconvdir" - -############################################################################# -echo "Getting patches in top directory..." -cd $libiconvdir -for file in configure.in configure README -do - echo " $file" - diff -u $file.orig $file > $topdir/$file.patch -done - -############################################################################# -echo "Getting patches in lib subdirectory..." -cd $libiconvdir/lib -for file in encodings.def converters.h Makefile.in -do - echo " $file" - diff -u $file.orig $file > $topdir/$file.patch -done - -############################################################################# -echo "Getting patches in man subdirectory..." -cd $libiconvdir/man -for file in iconv_open.3 iconv_open.3.html -do - echo " $file" - diff -u $file.orig $file > $topdir/$file.patch -done - -############################################################################# -echo "Getting patches in libcharset/lib subdirectory..." -cd $libiconvdir/libcharset/lib -for file in config.charset -do - echo " $file" - diff -u $file.orig $file > $topdir/$file.patch -done diff --git a/iconv/libiconv/iconv_open.3.html.patch b/iconv/libiconv/iconv_open.3.html.patch deleted file mode 100644 index fe79f80..0000000 --- a/iconv/libiconv/iconv_open.3.html.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- iconv_open.3.html.orig Wed May 29 16:17:03 2002 -+++ iconv_open.3.html Fri Oct 4 20:36:35 2002 -@@ -71,7 +71,8 @@ - KOI8-U, KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, - CP{850,866}, - Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, --Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh -+Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh, -+ANSEL - - diff --git a/iconv/libiconv/patch_dist b/iconv/libiconv/patch_dist index 2f4d1fd..1f35f7d 100755 --- a/iconv/libiconv/patch_dist +++ b/iconv/libiconv/patch_dist @@ -1,6 +1,6 @@ #!/bin/sh -expected_version=1.8 +expected_version=1.14 tarfile="libiconv-$expected_version.tar.gz" topdir=`pwd` libiconvdir=`basename $tarfile .tar.gz` @@ -26,6 +26,11 @@ echo "Unpacking tar file..." if [ -d $libiconvdir ] then rm -rf $libiconvdir + + if [ -d $topdir/.pc ] + then + rm -rf $topdir/.pc + fi fi tar xvfz $tarfile > /dev/null @@ -37,46 +42,9 @@ cp $topdir/ChangeLog.gedcom . cp $topdir/NEWS.gedcom . ############################################################################# -echo "Creating header file..." -cd $libiconvdir/lib -ln -s $topdir/ansi_z39_47.h . -ln -s $topdir/../ANSI_Z39.47-tables.h . - -############################################################################# -echo "Patching files in top directory..." -cd $libiconvdir -for file in configure.in configure README -do - echo " $file" - patch -s -b -p0 < $topdir/$file.patch -done - -############################################################################# -echo "Patching files in lib subdirectory..." -cd $libiconvdir/lib -for file in encodings.def converters.h Makefile.in -do - echo " $file" - patch -s -b -p0 < $topdir/$file.patch -done - -############################################################################# -echo "Patching files in man subdirectory..." -cd $libiconvdir/man -for file in iconv_open.3 iconv_open.3.html -do - echo " $file" - patch -s -b -p0 < $topdir/$file.patch -done - -############################################################################# -echo "Patching files in libcharset/lib subdirectory..." -cd $libiconvdir/libcharset/lib -for file in config.charset -do - echo " $file" - patch -s -b -p0 < $topdir/$file.patch -done +echo "Applying patches..." +cd $topdir +quilt --quiltrc=quiltrc push -a ############################################################################# echo "Generating flags..." diff --git a/iconv/libiconv/patches/Makefile.in.patch b/iconv/libiconv/patches/Makefile.in.patch new file mode 100644 index 0000000..ca824bd --- /dev/null +++ b/iconv/libiconv/patches/Makefile.in.patch @@ -0,0 +1,11 @@ +--- a/libiconv-1.14/lib/Makefile.in ++++ b/libiconv-1.14/lib/Makefile.in +@@ -50,7 +50,7 @@ + + # Before making a release, change this according to the libtool documentation, + # section "Library interface versions". +-LIBICONV_VERSION_INFO = 7:1:5 ++LIBICONV_VERSION_INFO = 7:2:5 + + PACKAGE_VERSION = @VERSION@ + diff --git a/iconv/libiconv/patches/README.patch b/iconv/libiconv/patches/README.patch new file mode 100644 index 0000000..d320836 --- /dev/null +++ b/iconv/libiconv/patches/README.patch @@ -0,0 +1,44 @@ +--- a/libiconv-1.14/README ++++ b/libiconv-1.14/README +@@ -12,6 +12,7 @@ + Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, + Mac{Cyrillic,Ukraine,Greek,Turkish}, + Macintosh ++ ANSEL + Semitic languages + ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic} + Japanese +@@ -152,20 +153,29 @@ + The iconv _program_ and the documentation are under GPL, see file COPYING. + + +-Download +--------- ++Download of original package (libiconv) ++--------------------------------------- + + http://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz + +-Homepage +--------- ++Homepage of original package (libiconv) ++--------------------------------------- + + http://www.gnu.org/software/libiconv/ + ++Homepage of modified package (libiconv-gedcom) ++---------------------------------------------- ++ ++ http://sourceforge.net/projects/gedcom-parse ++ + Bug reports to + -------------- + + ++ For specific ANSEL bugs, please use the web interface at SourceForge ++ (link given above) + + + Bruno Haible ++ ++Modifications: Peter Verthez diff --git a/iconv/libiconv/patches/ansi_z39_47.patch b/iconv/libiconv/patches/ansi_z39_47.patch new file mode 100644 index 0000000..65e795e --- /dev/null +++ b/iconv/libiconv/patches/ansi_z39_47.patch @@ -0,0 +1,713 @@ +--- /dev/null ++++ b/libiconv-1.14/lib/ansi_z39_47.h +@@ -0,0 +1,198 @@ ++/* ++ * Copyright (C) 1999-2002 Free Software Foundation, Inc. ++ * This file is part of the GNU LIBICONV Library. ++ * ++ * The GNU LIBICONV Library is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU Library General Public ++ * License as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ * ++ * The GNU LIBICONV Library is distributed in the hope that it will be ++ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public ++ * License along with the GNU LIBICONV Library; see the file COPYING.LIB. ++ * If not, write to the Free Software Foundation, Inc., 59 Temple Place - ++ * Suite 330, Boston, MA 02111-1307, USA. ++ */ ++ ++/* ++ * ANSI_Z39.47 ++ */ ++ ++#include "ANSI_Z39.47-tables.h" ++ ++/* Omit first half of table: assume identity mapping (ASCII) */ ++static const unsigned short ansi_z39_47_2uni[128] = TABLE_TO_UCS4_BASIC; ++ ++/* The outer array range runs from 0xe0 to 0xfe, the inner range from 0x20 ++ to 0x7f. */ ++static const unsigned short ansi_z39_47_2uni_comb[31][96] = ++{ ++ /* 0xe0 (hook above) */ TABLE_TO_UCS4_COMBINING_E0, ++ /* 0xe1 (grave) */ TABLE_TO_UCS4_COMBINING_E1, ++ /* 0xe2 (acute) */ TABLE_TO_UCS4_COMBINING_E2, ++ /* 0xe3 (circumflex) */ TABLE_TO_UCS4_COMBINING_E3, ++ /* 0xe4 (tilde) */ TABLE_TO_UCS4_COMBINING_E4, ++ /* 0xe5 (macron) */ TABLE_TO_UCS4_COMBINING_E5, ++ /* 0xe6 (breve) */ TABLE_TO_UCS4_COMBINING_E6, ++ /* 0xe7 (dot above) */ TABLE_TO_UCS4_COMBINING_E7, ++ /* 0xe8 (umlaut, diaeresis) */ TABLE_TO_UCS4_COMBINING_E8, ++ /* 0xe9 (caron, hacek) */ TABLE_TO_UCS4_COMBINING_E9, ++ /* 0xea (ring above) */ TABLE_TO_UCS4_COMBINING_EA, ++ /* 0xeb (ligature, left half) */ TABLE_TO_UCS4_COMBINING_EB, ++ /* 0xec (ligature, right half) */ TABLE_TO_UCS4_COMBINING_EC, ++ /* 0xed (comma above right) */ TABLE_TO_UCS4_COMBINING_ED, ++ /* 0xee (double acute) */ TABLE_TO_UCS4_COMBINING_EE, ++ /* 0xef (candrabindu) */ TABLE_TO_UCS4_COMBINING_EF, ++ /* 0xf0 (cedilla) */ TABLE_TO_UCS4_COMBINING_F0, ++ /* 0xf1 (ogonek, right hook) */ TABLE_TO_UCS4_COMBINING_F1, ++ /* 0xf2 (dot below) */ TABLE_TO_UCS4_COMBINING_F2, ++ /* 0xf3 (double dot below) */ TABLE_TO_UCS4_COMBINING_F3, ++ /* 0xf4 (ring below) */ TABLE_TO_UCS4_COMBINING_F4, ++ /* 0xf5 (double low line) */ TABLE_TO_UCS4_COMBINING_F5, ++ /* 0xf6 (line below) */ TABLE_TO_UCS4_COMBINING_F6, ++ /* 0xf7 (comma below, left hook) */ TABLE_TO_UCS4_COMBINING_F7, ++ /* 0xf8 (left half ring below, right cedilla) */ TABLE_TO_UCS4_COMBINING_F8, ++ /* 0xf9 (breve below, half circle below) */ TABLE_TO_UCS4_COMBINING_F9, ++ /* 0xfa (double tilde, left half) */ TABLE_TO_UCS4_COMBINING_FA, ++ /* 0xfb (double tilde, right half) */ TABLE_TO_UCS4_COMBINING_FB, ++ /* 0xfc */ TABLE_TO_UCS4_COMBINING_FC, ++ /* 0xfd */ TABLE_TO_UCS4_COMBINING_FD, ++ /* 0xfe (comma above, high centered comma) */ TABLE_TO_UCS4_COMBINING_FE, ++}; ++ ++#define BASE_PASSED 0x10000 ++ ++static int ++ansi_z39_47_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) ++{ ++ unsigned char c = *s; ++ ucs4_t last_wc = conv->istate; ++ int retval = 1; ++ if (last_wc & BASE_PASSED) { ++ /* base character was already output, reset the state and output the ++ diacritical mark */ ++ unsigned char dc = (unsigned char)(last_wc & ~BASE_PASSED); ++ *pwc = ansi_z39_47_2uni[dc-0x80]; ++ conv->istate = 0; ++ return 1; ++ } ++ if (last_wc) { ++ conv->istate |= BASE_PASSED; ++ retval = 0; ++ } ++ if (c < 0x80) { ++ if (last_wc && c >= 0x20) { ++ /* Check if we can combine the character with the diacritical mark */ ++ unsigned char dc = (unsigned char)(last_wc & ~BASE_PASSED); ++ unsigned short wc = ansi_z39_47_2uni_comb[dc-0xe0][c-0x20]; ++ if (wc != 0x0000) { ++ *pwc = (ucs4_t) wc; ++ conv->istate = 0; ++ return 1; ++ } ++ } ++ *pwc = (ucs4_t) c; ++ return retval; ++ } ++ else if (c < 0xe0) { ++ unsigned short wc = ansi_z39_47_2uni[c-0x80]; ++ if (wc != 0x0000) { ++ *pwc = (ucs4_t) wc; ++ return retval; ++ } ++ } ++ else { ++ /* The range from 0xe0 to 0xfe are diacritical marks. ++ Note that in ANSEL they come *before* the base characters, in Unicode, ++ they come *after*, so we have to buffer them ... */ ++ conv->istate = (state_t)c; ++ return RET_TOOFEW(1); ++ } ++ return RET_ILSEQ; ++} ++ ++static const unsigned char ansi_z39_47_page080[][2] = TABLE_FROM_UCS4_BASIC; ++static const unsigned char ansi_z39_47_page01a[][2] = TABLE_FROM_UCS4_PAGE_01A; ++static const unsigned char ansi_z39_47_page022[][2] = TABLE_FROM_UCS4_PAGE_022; ++static const unsigned char ansi_z39_47_page02b[][2] = TABLE_FROM_UCS4_PAGE_02B; ++static const unsigned char ansi_z39_47_page030[][2] = TABLE_FROM_UCS4_PAGE_030; ++static const unsigned char ansi_z39_47_page1ea[][2] = TABLE_FROM_UCS4_PAGE_1EA; ++static const unsigned char ansi_z39_47_page200[][2] = TABLE_FROM_UCS4_PAGE_200; ++static const unsigned char ansi_z39_47_page211[][2] = TABLE_FROM_UCS4_PAGE_211; ++static const unsigned char ansi_z39_47_page266[][2] = TABLE_FROM_UCS4_PAGE_266; ++static const unsigned char ansi_z39_47_pagefe2[][2] = TABLE_FROM_UCS4_PAGE_FE2; ++ ++static int ++ansi_z39_47_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) ++{ ++ const unsigned char* ch = NULL; ++ int output = 0; ++ ++#define OUTPUT(c) ++output; if (n < output) return RET_TOOSMALL; *(r++) = (c); ++ ++ /* Since in UTF-8 diacritical marks come after the base character and in ++ ANSEL before, we need to buffer possible base characters (0x20 to 0x7f) ++ to put the diacritical mark before it if there is one following */ ++ if (wc < 0x0080) { ++ if (conv->ostate) { ++ OUTPUT(conv->ostate); ++ conv->ostate = 0; ++ } ++ if (wc >= 0x0020) { ++ conv->ostate = (state_t) wc; ++ } ++ else { ++ OUTPUT(wc); ++ } ++ return output; ++ } ++ else if (wc >= 0x0080 && wc < 0x017f) ++ ch = ansi_z39_47_page080[wc-0x0080]; ++ else if (wc >= 0x01a0 && wc < 0x01b4) ++ ch = ansi_z39_47_page01a[wc-0x01a0]; ++ else if (wc >= 0x0220 && wc < 0x0234) ++ ch = ansi_z39_47_page022[wc-0x0220]; ++ else if (wc >= 0x02b0 && wc < 0x02e2) ++ ch = ansi_z39_47_page02b[wc-0x02b0]; ++ else if (wc >= 0x0300 && wc < 0x0337) ++ ch = ansi_z39_47_page030[wc-0x0300]; ++ else if (wc >= 0x1ea0 && wc < 0x1efa) ++ ch = ansi_z39_47_page1ea[wc-0x1ea0]; ++ else if (wc >= 0x2000 && wc < 0x200f) ++ ch = ansi_z39_47_page200[wc-0x2000]; ++ else if (wc >= 0x2110 && wc < 0x211a) ++ ch = ansi_z39_47_page211[wc-0x2110]; ++ else if (wc >= 0x2660 && wc < 0x2674) ++ ch = ansi_z39_47_page266[wc-0x2660]; ++ else if (wc >= 0xfe20 && wc < 0xfe25) ++ ch = ansi_z39_47_pagefe2[wc-0xfe20]; ++ if (ch && ch[0] != 0) { ++ if (ch[1] == 0 && ch[0] >= 0xe0 && ch[0] <= 0xfe) { ++ /* Diacritical mark following a base character, buffered in ostate */ ++ /* Output diacritical mark, then base character */ ++ if (conv->ostate) { ++ OUTPUT(ch[0]); ++ OUTPUT(conv->ostate); ++ conv->ostate = 0; ++ } ++ else ++ return RET_ILUNI; ++ } ++ else { ++ if (conv->ostate) { ++ OUTPUT(conv->ostate); ++ conv->ostate = 0; ++ } ++ OUTPUT(ch[0]); ++ } ++ if (ch[1] != 0) { ++ OUTPUT(ch[1]); ++ } ++ return output; ++ } ++ return RET_ILUNI; ++} +--- /dev/null ++++ b/libiconv-1.14/lib/ANSI_Z39.47-tables.h +@@ -0,0 +1,509 @@ ++/* Conversion for ANSI_Z39.47 aka ANSEL. ++ Copyright (C) 2001 The Genes Development Team ++ This file is part of the Gedcom parser library. ++ Contributed by Peter Verthez , 2001. ++ ++ The Gedcom parser 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 Gedcom parser library is distributed in the hope that 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 Gedcom parser library; if not, write to the ++ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++/* $Id$ */ ++/* $Name$ */ ++ ++/* Generic conversion to and from ANSI Z39.47 (also known as ANSEL) ++ Data coming from: ++ http://lcweb.loc.gov/marc/specifications/speccharlatin.html ++ ++ Note: in ANSEL, diacritical marks come *before* the base character; ++ in Unicode, they come *after*... ++*/ ++ ++/*****************************************************************************/ ++/* CONVERSION FROM ANSEL TO UCS4 */ ++/*****************************************************************************/ ++ ++/* Omit first half of table: assume identity mapping (ASCII) */ ++#define TABLE_TO_UCS4_BASIC \ ++{ \ ++ /* 0x80 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x88 */ 0x0088, 0x0089, 0x0000, 0x0000, 0x0000, 0x200d, 0x200c, 0x0000, \ ++ /* 0x90 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x98 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0xa0 */ 0x0000, 0x0141, 0x00d8, 0x0110, 0x00de, 0x00c6, 0x0152, 0x02b9, \ ++ /* 0xa8 */ 0x00b7, 0x266d, 0x00ae, 0x00b1, 0x01a0, 0x01af, 0x02be, 0x0000, \ ++ /* 0xb0 */ 0x02bb, 0x0142, 0x00f8, 0x0111, 0x00fe, 0x00e6, 0x0153, 0x02ba, \ ++ /* 0xb8 */ 0x0131, 0x00a3, 0x00f0, 0x0000, 0x01a1, 0x01b0, 0x0000, 0x0000, \ ++ /* 0xc0 */ 0x00b0, 0x2113, 0x2117, 0x00a9, 0x266f, 0x00bf, 0x00a1, 0x0000, \ ++ /* 0xc8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00df, \ ++ /* 0xd0 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0xd8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0xe0 */ 0x0309, 0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0306, 0x0307, \ ++ /* 0xe8 */ 0x0308, 0x030c, 0x030a, 0xfe20, 0xfe21, 0x0315, 0x030b, 0x0310, \ ++ /* 0xf0 */ 0x0327, 0x0328, 0x0323, 0x0324, 0x0325, 0x0333, 0x0332, 0x0326, \ ++ /* 0xf8 */ 0x031c, 0x032e, 0xfe22, 0xfe23, 0x0000, 0x0000, 0x0313, 0x0000 \ ++} ++ ++/* 0xe0 (hook above) */ ++#define TABLE_TO_UCS4_COMBINING_E0 \ ++{ \ ++ /* 0x20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x1ea2, 0x0000, 0x0000, 0x0000, 0x1eba, 0x0000, 0x0000, \ ++ /* 0x48 */ 0x0000, 0x1ec8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ece, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ee6, 0x0000, 0x0000, \ ++ /* 0x58 */ 0x0000, 0x1ef6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x1ea3, 0x0000, 0x0000, 0x0000, 0x1ebb, 0x0000, 0x0000, \ ++ /* 0x68 */ 0x0000, 0x1ec9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ecf, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ee7, 0x0000, 0x0000, \ ++ /* 0x78 */ 0x0000, 0x1ef7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xe1 (grave) */ ++#define TABLE_TO_UCS4_COMBINING_E1 \ ++{ \ ++ /* 0x20 */ 0x0060, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x00c0, 0x0000, 0x0000, 0x0000, 0x00c8, 0x0000, 0x0000, \ ++ /* 0x48 */ 0x0000, 0x00cc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d2, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d9, 0x0000, 0x0000, \ ++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x00e0, 0x0000, 0x0000, 0x0000, 0x00e8, 0x0000, 0x0000, \ ++ /* 0x68 */ 0x0000, 0x00ec, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f2, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f9, 0x0000, 0x0000, \ ++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xe2 (acute) */ ++#define TABLE_TO_UCS4_COMBINING_E2 \ ++{ \ ++ /* 0x20 */ 0x00b4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x00c1, 0x0000, 0x0106, 0x0000, 0x00c9, 0x0000, 0x0000, \ ++ /* 0x48 */ 0x0000, 0x00cd, 0x0000, 0x0000, 0x0139, 0x0000, 0x0143, 0x00d3, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0154, 0x015a, 0x0000, 0x00da, 0x0000, 0x0000, \ ++ /* 0x58 */ 0x0000, 0x00dd, 0x0179, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x00e1, 0x0000, 0x0107, 0x0000, 0x00e9, 0x0000, 0x0000, \ ++ /* 0x68 */ 0x0000, 0x00ed, 0x0000, 0x0000, 0x013a, 0x0000, 0x0144, 0x00f3, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0155, 0x015b, 0x0000, 0x00fa, 0x0000, 0x0000, \ ++ /* 0x78 */ 0x0000, 0x00fd, 0x017a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xe3 (circumflex) */ ++#define TABLE_TO_UCS4_COMBINING_E3 \ ++{ \ ++ /* 0x20 */ 0x005e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x00c2, 0x0000, 0x0108, 0x0000, 0x00ca, 0x0000, 0x011c, \ ++ /* 0x48 */ 0x0124, 0x00ce, 0x0134, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d4, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x015c, 0x0000, 0x00db, 0x0000, 0x0174, \ ++ /* 0x58 */ 0x0000, 0x0176, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x00e2, 0x0000, 0x0109, 0x0000, 0x00ea, 0x0000, 0x011d, \ ++ /* 0x68 */ 0x0125, 0x00ee, 0x0135, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f4, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x015d, 0x0000, 0x00fb, 0x0000, 0x0175, \ ++ /* 0x78 */ 0x0000, 0x0177, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xe4 (tilde) */ ++#define TABLE_TO_UCS4_COMBINING_E4 \ ++{ \ ++ /* 0x20 */ 0x007e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x00c3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x48 */ 0x0000, 0x0128, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d1, 0x00d5, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0168, 0x0000, 0x0000, \ ++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x00e3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x68 */ 0x0000, 0x0129, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f1, 0x00f5, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0169, 0x0000, 0x0000, \ ++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xe5 (macron) */ ++#define TABLE_TO_UCS4_COMBINING_E5 \ ++{ \ ++ /* 0x20 */ 0x00af, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x0100, 0x0000, 0x0000, 0x0000, 0x0112, 0x0000, 0x0000, \ ++ /* 0x48 */ 0x0000, 0x012a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x014c, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x016a, 0x0000, 0x0000, \ ++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x0101, 0x0000, 0x0000, 0x0000, 0x0113, 0x0000, 0x0000, \ ++ /* 0x68 */ 0x0000, 0x012b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x014d, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x016b, 0x0000, 0x0000, \ ++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xe6 (breve) */ ++#define TABLE_TO_UCS4_COMBINING_E6 \ ++{ \ ++ /* 0x20 */ 0x02d8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x0102, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x011e, \ ++ /* 0x48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x016c, 0x0000, 0x0000, \ ++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x0103, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x011f, \ ++ /* 0x68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x016d, 0x0000, 0x0000, \ ++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xe7 (dot above) */ ++#define TABLE_TO_UCS4_COMBINING_E7 \ ++{ \ ++ /* 0x20 */ 0x02d9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x0226, 0x0000, 0x010a, 0x0000, 0x0116, 0x0000, 0x0120, \ ++ /* 0x48 */ 0x0000, 0x0130, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x022e, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x58 */ 0x0000, 0x0000, 0x017b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x0227, 0x0000, 0x010b, 0x0000, 0x0117, 0x0000, 0x0121, \ ++ /* 0x68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x022f, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x78 */ 0x0000, 0x0000, 0x017c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xe8 (umlaut, diaeresis) */ ++#define TABLE_TO_UCS4_COMBINING_E8 \ ++{ \ ++ /* 0x20 */ 0x00a8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x00c4, 0x0000, 0x0000, 0x0000, 0x00cb, 0x0000, 0x0000, \ ++ /* 0x48 */ 0x0000, 0x00cf, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d6, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00dc, 0x0000, 0x0000, \ ++ /* 0x58 */ 0x0000, 0x0178, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x00e4, 0x0000, 0x0000, 0x0000, 0x00eb, 0x0000, 0x0000, \ ++ /* 0x68 */ 0x0000, 0x00ef, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f6, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00fc, 0x0000, 0x0000, \ ++ /* 0x78 */ 0x0000, 0x00ff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xe9 (caron, hacek) */ ++#define TABLE_TO_UCS4_COMBINING_E9 \ ++{ \ ++ /* 0x20 */ 0x02c7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x0000, 0x0000, 0x010c, 0x010e, 0x011a, 0x0000, 0x0000, \ ++ /* 0x48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x013d, 0x0000, 0x0147, 0x0000, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0158, 0x0160, 0x0164, 0x0000, 0x0000, 0x0000, \ ++ /* 0x58 */ 0x0000, 0x0000, 0x017d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x0000, 0x0000, 0x010d, 0x010f, 0x011b, 0x0000, 0x0000, \ ++ /* 0x68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x013e, 0x0000, 0x0148, 0x0000, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0159, 0x0161, 0x0165, 0x0000, 0x0000, 0x0000, \ ++ /* 0x78 */ 0x0000, 0x0000, 0x017e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xea (ring above) */ ++#define TABLE_TO_UCS4_COMBINING_EA \ ++{ \ ++ /* 0x20 */ 0x02da, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x00c5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x016e, 0x0000, 0x0000, \ ++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x00e5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x016f, 0x0000, 0x0000, \ ++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xeb (ligature, left half) */ ++#define TABLE_TO_UCS4_COMBINING_EB { 0x0000, } ++ ++/* 0xec (ligature, right half) */ ++#define TABLE_TO_UCS4_COMBINING_EC { 0x0000, } ++ ++/* 0xed (comma above right) */ ++#define TABLE_TO_UCS4_COMBINING_ED { 0x0000, } ++ ++/* 0xee (double acute) */ ++#define TABLE_TO_UCS4_COMBINING_EE \ ++{ \ ++ /* 0x20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0150, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0170, 0x0000, 0x0000, \ ++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0151, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0171, 0x0000, 0x0000, \ ++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xef (candrabindu) */ ++#define TABLE_TO_UCS4_COMBINING_EF { 0x0000, } ++ ++/* 0xf0 (cedilla) */ ++#define TABLE_TO_UCS4_COMBINING_F0 \ ++{ \ ++ /* 0x20 */ 0x00b8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x0000, 0x0000, 0x00c7, 0x0000, 0x0000, 0x0000, 0x0122, \ ++ /* 0x48 */ 0x0000, 0x0000, 0x0000, 0x0136, 0x013b, 0x0000, 0x0145, 0x0000, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0156, 0x015e, 0x0162, 0x0000, 0x0000, 0x0000, \ ++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x0000, 0x0000, 0x00e7, 0x0000, 0x0000, 0x0000, 0x0123, \ ++ /* 0x68 */ 0x0000, 0x0000, 0x0000, 0x0137, 0x013c, 0x0000, 0x0146, 0x0000, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0157, 0x015f, 0x0163, 0x0000, 0x0000, 0x0000, \ ++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xf1 (ogonek, right hook) */ ++#define TABLE_TO_UCS4_COMBINING_F1 \ ++{ \ ++ /* 0x20 */ 0x02db, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x40 */ 0x0000, 0x0104, 0x0000, 0x0000, 0x0000, 0x0118, 0x0000, 0x0000, \ ++ /* 0x48 */ 0x0000, 0x012e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0172, 0x0000, 0x0000, \ ++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x60 */ 0x0000, 0x0105, 0x0000, 0x0000, 0x0000, 0x0119, 0x0000, 0x0000, \ ++ /* 0x68 */ 0x0000, 0x012f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \ ++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0173, 0x0000, 0x0000, \ ++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \ ++} ++ ++/* 0xf2 (dot below) */ ++#define TABLE_TO_UCS4_COMBINING_F2 { 0x0000, } ++ ++/* 0xf3 (double dot below) */ ++#define TABLE_TO_UCS4_COMBINING_F3 { 0x0000, } ++ ++/* 0xf4 (ring below) */ ++#define TABLE_TO_UCS4_COMBINING_F4 { 0x0000, } ++ ++/* 0xf5 (double low line) */ ++#define TABLE_TO_UCS4_COMBINING_F5 { 0x0000, } ++ ++/* 0xf6 (line below) */ ++#define TABLE_TO_UCS4_COMBINING_F6 { 0x0000, } ++ ++/* 0xf7 (comma below, left hook) */ ++#define TABLE_TO_UCS4_COMBINING_F7 { 0x0000, } ++ ++/* 0xf8 (left half ring below, right cedilla) */ ++#define TABLE_TO_UCS4_COMBINING_F8 { 0x0000, } ++ ++/* 0xf9 (breve below, half circle below) */ ++#define TABLE_TO_UCS4_COMBINING_F9 { 0x0000, } ++ ++/* 0xfa (double tilde, left half) */ ++#define TABLE_TO_UCS4_COMBINING_FA { 0x0000, } ++ ++/* 0xfb (double tilde, right half) */ ++#define TABLE_TO_UCS4_COMBINING_FB { 0x0000, } ++ ++/* 0xfc */ ++#define TABLE_TO_UCS4_COMBINING_FC { 0x0000, } ++ ++/* 0xfd */ ++#define TABLE_TO_UCS4_COMBINING_FD { 0x0000, } ++ ++/* 0xfe (comma above, high centered comma) */ ++#define TABLE_TO_UCS4_COMBINING_FE { 0x0000, } ++ ++/*****************************************************************************/ ++/* CONVERSION FROM UCS4 TO ANSEL */ ++/*****************************************************************************/ ++ ++/* Omit first part of table: assume identity mapping (ASCII) */ ++#define TABLE_FROM_UCS4_BASIC \ ++{ \ ++ /* 0x0080 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x0085 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x88\x00", "\x89\x00", \ ++ /* 0x008a */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x008f */ "\x00\x00", \ ++ /* 0x0090 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x0095 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x009a */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x009f */ "\x00\x00", \ ++ /* 0x00a0 */ "\x00\x00", "\xc6\x00", "\x00\x00", "\xb9\x00", "\x00\x00", \ ++ /* 0x00a5 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x20", "\xc3\x00", \ ++ /* 0x00aa */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\xaa\x00", \ ++ /* 0x00af */ "\x00\x20", \ ++ /* 0x00b0 */ "\xc0\x00", "\xab\x00", "\x00\x00", "\x00\x00", "\x00\x20", \ ++ /* 0x00b5 */ "\x00\x00", "\x00\x00", "\xa8\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x00ba */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x00bf */ "\xc5\x00", \ ++ /* 0x00c0 */ "\xe1\x41", "\xe2\x41", "\xe3\x41", "\xe4\x41", "\xe8\x41", \ ++ /* 0x00c5 */ "\xea\x41", "\xa5\x00", "\xf0\x43", "\xe1\x45", "\xe2\x45", \ ++ /* 0x00ca */ "\xe3\x45", "\xe8\x45", "\xe1\x49", "\xe2\x49", "\xe3\x49", \ ++ /* 0x00cf */ "\xe8\x49", \ ++ /* 0x00d0 */ "\xa3\x00", "\xe4\x4e", "\xe1\x4f", "\xe2\x4f", "\xe3\x4f", \ ++ /* 0x00d5 */ "\xe4\x4f", "\xe8\x4f", "\x00\x00", "\xa2\x00", "\xe1\x55", \ ++ /* 0x00da */ "\xe2\x55", "\xe3\x55", "\xe8\x55", "\xe2\x59", "\xa4\x00", \ ++ /* 0x00df */ "\xcf\x00", \ ++ /* 0x00e0 */ "\xe1\x61", "\xe2\x61", "\xe3\x61", "\xe4\x61", "\xe8\x61", \ ++ /* 0x00e5 */ "\xea\x61", "\xb5\x00", "\xf0\x63", "\xe1\x65", "\xe2\x65", \ ++ /* 0x00ea */ "\xe3\x65", "\xe8\x65", "\xe1\x69", "\xe2\x69", "\xe3\x69", \ ++ /* 0x00ef */ "\xe8\x69", \ ++ /* 0x00f0 */ "\xba\x00", "\xe4\x6e", "\xe1\x6f", "\xe2\x6f", "\xe3\x6f", \ ++ /* 0x00f5 */ "\xe4\x6f", "\xe8\x6f", "\x00\x00", "\xb2\x00", "\xe1\x75", \ ++ /* 0x00fa */ "\xe2\x75", "\xe3\x75", "\xe8\x75", "\xe2\x79", "\xb4\x00", \ ++ /* 0x00ff */ "\xe8\x79", \ ++ /* 0x0100 */ "\xe5\x41", "\xe5\x61", "\xe6\x41", "\xe6\x61", "\xf1\x41", \ ++ /* 0x0105 */ "\xf1\x61", "\xe2\x43", "\xe2\x63", "\xe3\x43", "\xe3\x63", \ ++ /* 0x010a */ "\xe7\x43", "\xe7\x63", "\xe9\x43", "\xe9\x63", "\xe9\x44", \ ++ /* 0x010f */ "\xe9\x64", \ ++ /* 0x0110 */ "\xa3\x00", "\xb3\x00", "\xe5\x45", "\xe5\x65", "\xe6\x65", \ ++ /* 0x0115 */ "\xe6\x65", "\xe7\x45", "\xe7\x65", "\xf1\x45", "\xf1\x65", \ ++ /* 0x011a */ "\xe9\x45", "\xe9\x65", "\xe3\x47", "\xe3\x67", "\xe6\x47", \ ++ /* 0x011f */ "\xe6\x67", \ ++ /* 0x0120 */ "\xe7\x47", "\xe7\x67", "\xf0\x47", "\xf0\x67", "\xe3\x48", \ ++ /* 0x0125 */ "\xe3\x68", "\x00\x00", "\xe5\x68", "\xe4\x49", "\xe4\x69", \ ++ /* 0x012a */ "\xe5\x49", "\xe5\x69", "\xe6\x49", "\xe6\x69", "\xf1\x49", \ ++ /* 0x012f */ "\xf1\x69", \ ++ /* 0x0130 */ "\xe7\x49", "\xb8\x00", "\x00\x00", "\x00\x00", "\xe3\x4a", \ ++ /* 0x0135 */ "\xe3\x6a", "\xf0\x4b", "\xf0\x6b", "\x00\x00", "\xe2\x4c", \ ++ /* 0x013a */ "\xe2\x6c", "\xf0\x4c", "\xf0\x6c", "\xe9\x4c", "\xe9\x6c", \ ++ /* 0x013f */ "\xe7\x4c", \ ++ /* 0x0140 */ "\xe7\x6c", "\xa1\x00", "\xb1\x00", "\xe2\x4e", "\xe2\x6e", \ ++ /* 0x0145 */ "\xf0\x4e", "\xf0\x6e", "\xe9\x4e", "\xe9\x6e", "\x00\x00", \ ++ /* 0x014a */ "\x00\x00", "\x00\x00", "\xe5\x4f", "\xe5\x6f", "\xe6\x4f", \ ++ /* 0x014f */ "\xe6\x6f", \ ++ /* 0x0150 */ "\xee\x4f", "\xee\x6f", "\xa6\x00", "\xb6\x00", "\xe2\x52", \ ++ /* 0x0155 */ "\xe2\x72", "\xf0\x52", "\xf0\x72", "\xe9\x52", "\xe9\x72", \ ++ /* 0x015a */ "\xe2\x53", "\xe2\x73", "\xe3\x53", "\xe3\x73", "\xf0\x53", \ ++ /* 0x015f */ "\xf0\x73", \ ++ /* 0x0160 */ "\xe9\x53", "\xe9\x73", "\xf0\x54", "\xf0\x74", "\xe9\x54", \ ++ /* 0x0165 */ "\xe9\x74", "\x00\x00", "\x00\x00", "\xe4\x55", "\xe4\x75", \ ++ /* 0x016a */ "\xe5\x55", "\xe5\x75", "\xe6\x55", "\xe6\x75", "\xea\x55", \ ++ /* 0x016f */ "\xea\x75", \ ++ /* 0x0170 */ "\xee\x55", "\xee\x75", "\xf1\x55", "\xf1\x75", "\xe3\x57", \ ++ /* 0x0175 */ "\xe3\x77", "\xe3\x59", "\xe3\x79", "\xe8\x59", "\xe2\x5a", \ ++ /* 0x017a */ "\xe2\x7a", "\xe7\x5a", "\xe7\x7a", "\xe9\x5a", "\xe9\x7a" \ ++} ++ ++#define TABLE_FROM_UCS4_PAGE_01A \ ++{ \ ++ /* 0x01a0 */ "\xac\x00", "\xbc\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x01a5 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x01aa */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x01af */ "\xad\x00", "\xbd\x00", "\x00\x00", "\x00\x00", "\x00\x00" \ ++} ++ ++#define TABLE_FROM_UCS4_PAGE_022 \ ++{ \ ++ /* 0x0220 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x0225 */ "\x00\x00", "\xe7\x41", "\xe7\x61", "\x00\x00", "\x00\x00", \ ++ /* 0x022a */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\xe7\x4f", \ ++ /* 0x022f */ "\xe7\x6f", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00" \ ++} ++ ++#define TABLE_FROM_UCS4_PAGE_02B \ ++{ \ ++ /* 0x02b0 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x02b5 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\xa7\x00", \ ++ /* 0x02ba */ "\xb7\x00", "\xb0\x00", "\x00\x00", "\x00\x00", "\xae\x00", \ ++ /* 0x02bf */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x02c4 */ "\x00\x00", "\x00\x00", "\x00\x00", "\xe9\x20", "\x00\x00", \ ++ /* 0x02c9 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x02ce */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x02d3 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x02d8 */ "\xe6\x20", "\xe7\x20", "\xea\x20", "\xf1\x20", "\xe4\x20", \ ++ /* 0x02dd */ "\xee\x20", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00" \ ++} ++ ++#define TABLE_FROM_UCS4_PAGE_030 \ ++{ \ ++ /* 0x0300 */ "\xe1\x00", "\xe2\x00", "\xe3\x00", "\xe4\x00", "\xe5\x00", \ ++ /* 0x0305 */ "\x00\x00", "\xe6\x00", "\xe7\x00", "\xe8\x00", "\xe0\x00", \ ++ /* 0x030a */ "\xea\x00", "\xee\x00", "\xe9\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x030f */ "\x00\x00", "\xef\x00", "\x00\x00", "\x00\x00", "\xfe\x00", \ ++ /* 0x0314 */ "\x00\x00", "\xed\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x0319 */ "\x00\x00", "\x00\x00", "\x00\x00", "\xf8\x00", "\x00\x00", \ ++ /* 0x031e */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x0323 */ "\xf2\x00", "\xf3\x00", "\xf4\x00", "\xf7\x00", "\xf0\x00", \ ++ /* 0x0328 */ "\xf1\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x032d */ "\x00\x00", "\xf9\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x0332 */ "\xf6\x00", "\xf5\x00", "\x00\x00", "\x00\x00", "\x00\x00" \ ++} ++ ++#define TABLE_FROM_UCS4_PAGE_1EA \ ++{ \ ++ /* 0x1ea0 */ "\x00\x00", "\x00\x00", "\xe0\x41", "\xe0\x61", "\x00\x00", \ ++ /* 0x1ea5 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1eaa */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1eaf */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1eb4 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1eb9 */ "\x00\x00", "\xe0\x45", "\xe0\x65", "\x00\x00", "\x00\x00", \ ++ /* 0x1ebe */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1ec3 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1ec8 */ "\xe0\x49", "\xe0\x69", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1ecd */ "\x00\x00", "\xe0\x4f", "\xe0\x6f", "\x00\x00", "\x00\x00", \ ++ /* 0x1ed2 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1ed7 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1edc */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1ee1 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1ee6 */ "\xe0\x55", "\xe0\x75", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1eeb */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1ef0 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x1ef5 */ "\x00\x00", "\xe0\x59", "\xe0\x79", "\x00\x00", "\x00\x00" \ ++} ++ ++#define TABLE_FROM_UCS4_PAGE_200 \ ++{ \ ++ /* 0x2000 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x2005 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x200a */ "\x00\x00", "\x00\x00", "\x8e\x00", "\x8d\x00", "\x00\x00" \ ++} ++ ++#define TABLE_FROM_UCS4_PAGE_211 \ ++{ \ ++ /* 0x2110 */ "\x00\x00", "\x00\x00", "\x00\x00", "\xc1\x00", "\x00\x00", \ ++ /* 0x2115 */ "\x00\x00", "\x00\x00", "\xc2\x00", "\x00\x00", "\x00\x00" \ ++}; ++ ++#define TABLE_FROM_UCS4_PAGE_266 \ ++{ \ ++ /* 0x2660 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x2665 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \ ++ /* 0x266a */ "\x00\x00", "\x00\x00", "\x00\x00", "\xa9\x00", "\x00\x00", \ ++ /* 0x266f */ "\xc4\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00" \ ++} ++ ++#define TABLE_FROM_UCS4_PAGE_FE2 \ ++{ \ ++ /* 0xfe20 */ "\xeb\x00", "\xec\x00", "\xfa\x00", "\xfb\x00", "\x00\x00" \ ++} diff --git a/iconv/libiconv/patches/config.charset.patch b/iconv/libiconv/patches/config.charset.patch new file mode 100644 index 0000000..6f3f1e5 --- /dev/null +++ b/iconv/libiconv/patches/config.charset.patch @@ -0,0 +1,17 @@ +--- a/libiconv-1.14/libcharset/lib/config.charset ++++ b/libiconv-1.14/libcharset/lib/config.charset +@@ -348,12 +348,13 @@ + #echo "sun_eu_greek ?" # what is this? + echo "UTF-8 UTF-8" + ;; +- freebsd* | os2*) ++ freebsd* | os2* | darwin*) + # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore + # localcharset.c falls back to using the full locale name + # from the environment variables. + # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just + # reuse FreeBSD's locale data for OS/2. ++ # Likewise for darwin (MacOS X), which is derived from FreeBSD. + echo "C ASCII" + echo "US-ASCII ASCII" + for l in la_LN lt_LN; do diff --git a/iconv/libiconv/patches/configure.ac.patch b/iconv/libiconv/patches/configure.ac.patch new file mode 100644 index 0000000..ccf0b37 --- /dev/null +++ b/iconv/libiconv/patches/configure.ac.patch @@ -0,0 +1,11 @@ +--- a/libiconv-1.14/configure.ac ++++ b/libiconv-1.14/configure.ac +@@ -20,7 +20,7 @@ + AC_INIT + AC_CONFIG_SRCDIR([lib/iconv.c]) + AC_CONFIG_AUX_DIR([build-aux]) +-AM_INIT_AUTOMAKE([libiconv], [1.14]) ++AM_INIT_AUTOMAKE([libiconv-gedcom], [1.14]) + AC_CONFIG_HEADERS([config.h lib/config.h]) + AC_PROG_MAKE_SET + diff --git a/iconv/libiconv/patches/configure.patch b/iconv/libiconv/patches/configure.patch new file mode 100644 index 0000000..227fba2 --- /dev/null +++ b/iconv/libiconv/patches/configure.patch @@ -0,0 +1,26 @@ +--- a/libiconv-1.14/configure ++++ b/libiconv-1.14/configure +@@ -565,10 +565,10 @@ + MAKEFLAGS= + + # Identity of this package. +-PACKAGE_NAME= +-PACKAGE_TARNAME= +-PACKAGE_VERSION= +-PACKAGE_STRING= ++PACKAGE_NAME='libiconv-gedcom' ++PACKAGE_TARNAME='libiconv-gedcom' ++PACKAGE_VERSION='1.14' ++PACKAGE_STRING='libiconv-gedcom 1.14' + PACKAGE_BUGREPORT= + PACKAGE_URL= + +@@ -3502,7 +3502,7 @@ + + + # Define the identity of the package. +- PACKAGE=libiconv ++ PACKAGE=libiconv-gedcom + VERSION=1.14 + + diff --git a/iconv/libiconv/converters.h.patch b/iconv/libiconv/patches/converters.h.patch similarity index 61% rename from iconv/libiconv/converters.h.patch rename to iconv/libiconv/patches/converters.h.patch index 9af7a80..002b86c 100644 --- a/iconv/libiconv/converters.h.patch +++ b/iconv/libiconv/patches/converters.h.patch @@ -1,6 +1,6 @@ ---- converters.h.orig Wed May 29 16:06:52 2002 -+++ converters.h Fri Oct 4 20:36:35 2002 -@@ -172,6 +172,7 @@ +--- a/libiconv-1.14/lib/converters.h ++++ b/libiconv-1.14/lib/converters.h +@@ -184,6 +184,7 @@ #include "mac_thai.h" #include "hp_roman8.h" #include "nextstep.h" diff --git a/iconv/libiconv/encodings.def.patch b/iconv/libiconv/patches/encodings.def.patch similarity index 77% rename from iconv/libiconv/encodings.def.patch rename to iconv/libiconv/patches/encodings.def.patch index 01726d9..e01e9d1 100644 --- a/iconv/libiconv/encodings.def.patch +++ b/iconv/libiconv/patches/encodings.def.patch @@ -1,6 +1,6 @@ ---- encodings.def.orig Wed May 29 16:06:53 2002 -+++ encodings.def Fri Oct 4 20:36:35 2002 -@@ -527,6 +527,12 @@ +--- a/libiconv-1.14/lib/encodings.def ++++ b/libiconv-1.14/lib/encodings.def +@@ -633,6 +633,12 @@ nextstep, { nextstep_mbtowc, NULL }, { nextstep_wctomb, NULL }) diff --git a/iconv/libiconv/patches/iconv_open.3.html.patch b/iconv/libiconv/patches/iconv_open.3.html.patch new file mode 100644 index 0000000..2ac27cc --- /dev/null +++ b/iconv/libiconv/patches/iconv_open.3.html.patch @@ -0,0 +1,12 @@ +--- a/libiconv-1.14/man/iconv_open.3.html ++++ b/libiconv-1.14/man/iconv_open.3.html +@@ -74,7 +74,8 @@ + KOI8−R, KOI8−U, KOI8−RU, + CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131}, + Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, +-Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh

++Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh, ++ANSEL

+ +

Semitic languages

+ diff --git a/iconv/libiconv/iconv_open.3.patch b/iconv/libiconv/patches/iconv_open.3.patch similarity index 63% rename from iconv/libiconv/iconv_open.3.patch rename to iconv/libiconv/patches/iconv_open.3.patch index a4f2c89..07f5cba 100644 --- a/iconv/libiconv/iconv_open.3.patch +++ b/iconv/libiconv/patches/iconv_open.3.patch @@ -1,5 +1,5 @@ ---- iconv_open.3.orig Wed May 29 16:06:53 2002 -+++ iconv_open.3 Fri Oct 4 20:36:35 2002 +--- a/libiconv-1.14/man/iconv_open.3 ++++ b/libiconv-1.14/man/iconv_open.3 @@ -36,6 +36,7 @@ Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, Mac{Cyrillic,Ukraine,Greek,Turkish}, diff --git a/iconv/libiconv/patches/series b/iconv/libiconv/patches/series new file mode 100644 index 0000000..9768fad --- /dev/null +++ b/iconv/libiconv/patches/series @@ -0,0 +1,10 @@ +config.charset.patch +iconv_open.3.html.patch +iconv_open.3.patch +Makefile.in.patch +converters.h.patch +encodings.def.patch +README.patch +configure.patch +configure.ac.patch +ansi_z39_47.patch diff --git a/iconv/libiconv/quiltrc b/iconv/libiconv/quiltrc new file mode 100644 index 0000000..7e615eb --- /dev/null +++ b/iconv/libiconv/quiltrc @@ -0,0 +1,30 @@ +# use quilt by invoking: +# quilt --quiltrc quiltrc [command] +# +# Create new patch: +# +# quilt --quiltrc=quiltrc new PATCH_NAME.patch +# +# Set file(s) affected by patch: +# +# quilt --quiltrc=quiltrc add FILE_PATH +# +# Save patch changes: +# +# quilt --quiltrc=quiltrc refresh +# +# Save patch and revert changes on upstream: +# +# quilt --quiltrc=quiltrc pop -a + +# +# Apply patches: +# +# quilt --quiltrc=quiltrc push -a + +QUILT_PATCHES="patches" +QUILT_PATCH_OPTS="--reject-format=unified" +QUILT_DIFF_ARGS="-p ab --no-timestamps --no-index --color=auto" +QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index" +QUILT_COLORS="diff_hdr=1;32:diff_add=1;34:diff_rem=1;31:diff_hunk=1;33:diff_ctx=35:diff_cctx=33" +