diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..7e8e85b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,26 @@ +root = true + +[*] +charset = utf-8 +tab_width = 8 +end_of_line = lf +trim_trailing_whitespace = true +insert_final_newline = true + +[*.{c,h,l}] +indent_style = space +indent_size = 2 + +[*.yml] +indent_style = space +indent_size = 2 + +[Makefile{,.*}] +indent_style = tab + +[*.py] +indent_style = space +indent_size = 4 + +[keld/NomsSeulsfinal.lst] +charset = latin1 diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml new file mode 100644 index 0000000..a02678f --- /dev/null +++ b/.github/workflows/c-cpp.yml @@ -0,0 +1,72 @@ +name: C/C++ CI + +on: [ push, pull_request ] + +jobs: + build: + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + include: + - os: ubuntu-latest + shell: bash + - os: macos-latest + shell: bash + - os: windows-latest + sys: mingw64 + arch: x86_64 + shell: msys2 + - os: windows-latest + sys: mingw32 + arch: i686 + shell: msys2 + runs-on: ${{ matrix.os }} + defaults: + run: + shell: ${{ matrix.shell }} {0} + steps: + - uses: msys2/setup-msys2@v2 + if: ${{ matrix.os == 'windows-latest' }} + with: + release: false + msystem: ${{matrix.sys}} + install: >- + patch git groff help2man rsync texinfo flex + mingw-w64-${{matrix.arch}}-autotools + mingw-w64-${{matrix.arch}}-gcc + mingw-w64-${{matrix.arch}}-python3 + mingw-w64-${{matrix.arch}}-python-setuptools + mingw-w64-${{matrix.arch}}-cython + - uses: actions/checkout@v3 + with: + submodules: true + - name: Install dependencies (Ubuntu) + if: ${{ matrix.os == 'ubuntu-latest' }} + run: sudo apt-get -y install python3 cython3 flex help2man libltdl-dev autopoint texinfo gettext + - name: Install dependencies (macOS) + if: ${{ matrix.os == 'macos-latest' }} + run: | + brew install libtool autoconf automake help2man python@3.12 python-setuptools cython flex texinfo + # Prepend optional brew binary directories to PATH + echo "$(brew --prefix)/opt/gnu-tar/libexec/gnubin:$(brew --prefix)/opt/flex/bin:$(brew --prefix)/opt/m4/bin:$(brew --prefix)/opt/texinfo/bin:$(brew --prefix)/opt/gettext/bin:$(brew --prefix)/opt/python@3.12/libexec/bin:$(brew --prefix)/opt/cython/bin" >> $GITHUB_PATH + - name: Set up environment (Ubuntu) + if: ${{ matrix.os == 'ubuntu-latest' }} + run: | + echo "ASAN=yes" >> $GITHUB_ENV + echo "LSAN_OPTIONS=verbosity=1:log_threads=1" >> $GITHUB_ENV + - name: Set up environment (macOS) + if: ${{ matrix.os == 'macos-latest' }} + run: | + echo "LDFLAGS=-L/usr/local/opt/flex/lib -L/usr/local/opt/gettext/lib" >> $GITHUB_ENV + echo "CPPFLAGS=-I/usr/local/opt/flex/include" >> $GITHUB_ENV + - name: Set up environment (Windows) + if: ${{ matrix.os == 'windows-latest' }} + run: | + # Define _POSIX to get a full set of POSIX signal names from signal.h on mingw + echo "CPPFLAGS=-D_POSIX" >> $GITHUB_ENV + - name: Build + run: | + ./bootstrap + if [[ "$ASAN" == "yes" ]]; then ./configure --enable-silent-rules CFLAGS="-g3 -fsanitize=address -fsanitize=undefined" LDFLAGS="-fsanitize=address -fsanitize=undefined" TESTS_ENVIRONMENT_EXTRA="LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/11/libasan.so PYTHONMALLOC=malloc"; else ./configure --enable-silent-rules; fi + make check + make distcheck diff --git a/.gitignore b/.gitignore index 676a888..dfb603b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,21 +1,63 @@ +.dirstamp *.[oa] *.l[oa] *.pyc -GNUmakefile +/GNUmakefile Makefile -/cleaner.h +Makefile.in +html/ +/ABOUT-NLS +/aclocal.m4 +/autom4te.cache +/compile +/config.guess /config.h +/config.h.in /config.log /config.status -html/ +/config.sub +/configure +/depcomp +/doc/recode.dvi +/doc/recode.info +/doc/recode.pdf +/doc/recode.t2d/ +/doc/recode.t2p/ +/doc/stamp-vti +/doc/version.texi +/INSTALL +/install-sh /lib/.deps/ +/lib/malloc/.deps/ /libtool +/ltmain.sh +/missing +/python/Recode.c +/recode-*.tar.gz /src/.deps/ /src/.libs/ +/src/charname.h +/src/decsteps.h +/src/fr-charname.h +/src/iconvdecl.h +/src/inisteps.h +/src/lat1ansel.h +/src/lat1iso5426.h +/src/merged.c /src/recode +/src/recode.exe +/src/recode.1 +/src/recode.x +/src/rfc1345.h +/src/stamp-steps +/src/stamp-strip +/src/strip-data.c +/src/strip-pool.c +/src/tersteps.h /stamp-h1 -/po/Makefile.in -/po/POTFILES -/po/stamp-po -/python/Recode.c /tests/setup.py +/tests/Recode.body.c +/tests/Recode.c +/tests/Recode.so +/tests/Recode_d.so +/tests/Recode.pyd diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..4868669 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "gnulib"] + path = gnulib + url = git://git.sv.gnu.org/gnulib.git +[submodule "gl-mod/bootstrap"] + path = gl-mod/bootstrap + url = https://github.com/gnulib-modules/bootstrap.git diff --git a/ABOUT-NLS b/ABOUT-NLS deleted file mode 100644 index b1de1b6..0000000 --- a/ABOUT-NLS +++ /dev/null @@ -1,1282 +0,0 @@ -1 Notes on the Free Translation Project -*************************************** - -Free software is going international! The Free Translation Project is -a way to get maintainers of free software, translators, and users all -together, so that free software will gradually become able to speak many -languages. A few packages already provide translations for their -messages. - - If you found this `ABOUT-NLS' file inside a distribution, you may -assume that the distributed package does use GNU `gettext' internally, -itself available at your nearest GNU archive site. But you do _not_ -need to install GNU `gettext' prior to configuring, installing or using -this package with messages translated. - - Installers will find here some useful hints. These notes also -explain how users should proceed for getting the programs to use the -available translations. They tell how people wanting to contribute and -work on translations can contact the appropriate team. - -1.1 INSTALL Matters -=================== - -Some packages are "localizable" when properly installed; the programs -they contain can be made to speak your own native language. Most such -packages use GNU `gettext'. Other packages have their own ways to -internationalization, predating GNU `gettext'. - - By default, this package will be installed to allow translation of -messages. It will automatically detect whether the system already -provides the GNU `gettext' functions. Installers may use special -options at configuration time for changing the default behaviour. The -command: - - ./configure --disable-nls - -will _totally_ disable translation of messages. - - When you already have GNU `gettext' installed on your system and run -configure without an option for your new package, `configure' will -probably detect the previously built and installed `libintl' library -and will decide to use it. If not, you may have to to use the -`--with-libintl-prefix' option to tell `configure' where to look for it. - - Internationalized packages usually have many `po/LL.po' files, where -LL gives an ISO 639 two-letter code identifying the language. Unless -translations have been forbidden at `configure' time by using the -`--disable-nls' switch, all available translations are installed -together with the package. However, the environment variable `LINGUAS' -may be set, prior to configuration, to limit the installed set. -`LINGUAS' should then contain a space separated list of two-letter -codes, stating which languages are allowed. - -1.2 Using This Package -====================== - -As a user, if your language has been installed for this package, you -only have to set the `LANG' environment variable to the appropriate -`LL_CC' combination. If you happen to have the `LC_ALL' or some other -`LC_xxx' environment variables set, you should unset them before -setting `LANG', otherwise the setting of `LANG' will not have the -desired effect. Here `LL' is an ISO 639 two-letter language code, and -`CC' is an ISO 3166 two-letter country code. For example, let's -suppose that you speak German and live in Germany. At the shell -prompt, merely execute `setenv LANG de_DE' (in `csh'), -`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). -This can be done from your `.login' or `.profile' file, once and for -all. - - You might think that the country code specification is redundant. -But in fact, some languages have dialects in different countries. For -example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The -country code serves to distinguish the dialects. - - The locale naming convention of `LL_CC', with `LL' denoting the -language and `CC' denoting the country, is the one use on systems based -on GNU libc. On other systems, some variations of this scheme are -used, such as `LL' or `LL_CC.ENCODING'. You can get the list of -locales supported by your system for your language by running the -command `locale -a | grep '^LL''. - - Not all programs have translations for all languages. By default, an -English message is shown in place of a nonexistent translation. If you -understand other languages, you can set up a priority list of languages. -This is done through a different environment variable, called -`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' -for the purpose of message handling, but you still need to have `LANG' -set to the primary language; this is required by other parts of the -system libraries. For example, some Swedish users who would rather -read translations in German than English for when Swedish is not -available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. - - Special advice for Norwegian users: The language code for Norwegian -bokma*l changed from `no' to `nb' recently (in 2003). During the -transition period, while some message catalogs for this language are -installed under `nb' and some older ones under `no', it's recommended -for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and -older translations are used. - - In the `LANGUAGE' environment variable, but not in the `LANG' -environment variable, `LL_CC' combinations can be abbreviated as `LL' -to denote the language's main dialect. For example, `de' is equivalent -to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' -(Portuguese as spoken in Portugal) in this context. - -1.3 Translating Teams -===================== - -For the Free Translation Project to be a success, we need interested -people who like their own language and write it well, and who are also -able to synergize with other translators speaking the same language. -Each translation team has its own mailing list. The up-to-date list of -teams can be found at the Free Translation Project's homepage, -`http://translationproject.org/', in the "Teams" area. - - If you'd like to volunteer to _work_ at translating messages, you -should become a member of the translating team for your own language. -The subscribing address is _not_ the same as the list itself, it has -`-request' appended. For example, speakers of Swedish can send a -message to `sv-request@li.org', having this message body: - - subscribe - - Keep in mind that team members are expected to participate -_actively_ in translations, or at solving translational difficulties, -rather than merely lurking around. If your team does not exist yet and -you want to start one, or if you are unsure about what to do or how to -get started, please write to `coordinator@translationproject.org' to -reach the coordinator for all translator teams. - - The English team is special. It works at improving and uniformizing -the terminology in use. Proven linguistic skills are praised more than -programming skills, here. - -1.4 Available Packages -====================== - -Languages are not equally supported in all packages. The following -matrix shows the current state of internationalization, as of June -2010. The matrix shows, in regard of each package, for which languages -PO files have been submitted to translation coordination, with a -translation percentage of at least 50%. - - Ready PO files af am an ar as ast az be be@latin bg bn_IN bs ca - +--------------------------------------------------+ - a2ps | [] [] | - aegis | | - ant-phone | | - anubis | | - aspell | [] [] | - bash | | - bfd | | - bibshelf | [] | - binutils | | - bison | | - bison-runtime | [] | - bluez-pin | [] [] | - bombono-dvd | | - buzztard | | - cflow | | - clisp | | - coreutils | [] [] | - cpio | | - cppi | | - cpplib | [] | - cryptsetup | | - dfarc | | - dialog | [] [] | - dico | | - diffutils | [] | - dink | | - doodle | | - e2fsprogs | [] | - enscript | [] | - exif | | - fetchmail | [] | - findutils | [] | - flex | [] | - freedink | | - gas | | - gawk | [] [] | - gcal | [] | - gcc | | - gettext-examples | [] [] [] [] | - gettext-runtime | [] [] | - gettext-tools | [] [] | - gip | [] | - gjay | | - gliv | [] | - glunarclock | [] [] | - gnubiff | | - gnucash | [] | - gnuedu | | - gnulib | | - gnunet | | - gnunet-gtk | | - gnutls | | - gold | | - gpe-aerial | | - gpe-beam | | - gpe-bluetooth | | - gpe-calendar | | - gpe-clock | [] | - gpe-conf | | - gpe-contacts | | - gpe-edit | | - gpe-filemanager | | - gpe-go | | - gpe-login | | - gpe-ownerinfo | [] | - gpe-package | | - gpe-sketchbook | | - gpe-su | [] | - gpe-taskmanager | [] | - gpe-timesheet | [] | - gpe-today | [] | - gpe-todo | | - gphoto2 | | - gprof | [] | - gpsdrive | | - gramadoir | | - grep | | - grub | [] [] | - gsasl | | - gss | | - gst-plugins-bad | [] | - gst-plugins-base | [] | - gst-plugins-good | [] | - gst-plugins-ugly | [] | - gstreamer | [] [] [] | - gtick | | - gtkam | [] | - gtkorphan | [] | - gtkspell | [] [] [] | - gutenprint | | - hello | [] | - help2man | | - hylafax | | - idutils | | - indent | [] [] | - iso_15924 | | - iso_3166 | [] [] [] [] [] [] [] | - iso_3166_2 | | - iso_4217 | | - iso_639 | [] [] [] [] | - iso_639_3 | | - jwhois | | - kbd | | - keytouch | [] | - keytouch-editor | | - keytouch-keyboa... | [] | - klavaro | [] | - latrine | | - ld | [] | - leafpad | [] [] | - libc | [] [] | - libexif | () | - libextractor | | - libgnutls | | - libgpewidget | | - libgpg-error | | - libgphoto2 | | - libgphoto2_port | | - libgsasl | | - libiconv | [] | - libidn | | - lifelines | | - liferea | [] [] | - lilypond | | - linkdr | [] | - lordsawar | | - lprng | | - lynx | [] | - m4 | | - mailfromd | | - mailutils | | - make | | - man-db | | - man-db-manpages | | - minicom | | - mkisofs | | - myserver | | - nano | [] [] | - opcodes | | - parted | | - pies | | - popt | | - psmisc | | - pspp | [] | - pwdutils | | - radius | [] | - recode | [] [] | - rosegarden | | - rpm | | - rush | | - sarg | | - screem | | - scrollkeeper | [] [] [] | - sed | [] [] | - sharutils | [] [] | - shishi | | - skencil | | - solfege | | - solfege-manual | | - soundtracker | | - sp | | - sysstat | | - tar | [] | - texinfo | | - tin | | - unicode-han-tra... | | - unicode-transla... | | - util-linux-ng | [] | - vice | | - vmm | | - vorbis-tools | | - wastesedge | | - wdiff | | - wget | [] [] | - wyslij-po | | - xchat | [] [] [] [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] | - +--------------------------------------------------+ - af am an ar as ast az be be@latin bg bn_IN bs ca - 6 0 1 2 3 19 1 10 3 28 3 1 38 - - crh cs da de el en en_GB en_ZA eo es et eu fa - +-------------------------------------------------+ - a2ps | [] [] [] [] [] [] [] | - aegis | [] [] [] | - ant-phone | [] () | - anubis | [] [] | - aspell | [] [] [] [] [] | - bash | [] [] [] | - bfd | [] | - bibshelf | [] [] [] | - binutils | [] | - bison | [] [] | - bison-runtime | [] [] [] [] | - bluez-pin | [] [] [] [] [] [] | - bombono-dvd | [] | - buzztard | [] [] [] | - cflow | [] [] | - clisp | [] [] [] [] | - coreutils | [] [] [] [] | - cpio | | - cppi | | - cpplib | [] [] [] | - cryptsetup | [] | - dfarc | [] [] [] | - dialog | [] [] [] [] [] | - dico | | - diffutils | [] [] [] [] [] [] | - dink | [] [] [] | - doodle | [] | - e2fsprogs | [] [] [] | - enscript | [] [] [] | - exif | () [] [] | - fetchmail | [] [] () [] [] [] | - findutils | [] [] [] | - flex | [] [] | - freedink | [] [] [] | - gas | [] | - gawk | [] [] [] | - gcal | [] | - gcc | [] [] | - gettext-examples | [] [] [] [] | - gettext-runtime | [] [] [] [] | - gettext-tools | [] [] [] | - gip | [] [] [] [] | - gjay | [] | - gliv | [] [] [] | - glunarclock | [] [] | - gnubiff | () | - gnucash | [] () () () () | - gnuedu | [] [] | - gnulib | [] [] | - gnunet | | - gnunet-gtk | [] | - gnutls | [] [] | - gold | [] | - gpe-aerial | [] [] [] [] | - gpe-beam | [] [] [] [] | - gpe-bluetooth | [] [] | - gpe-calendar | [] | - gpe-clock | [] [] [] [] | - gpe-conf | [] [] [] | - gpe-contacts | [] [] [] | - gpe-edit | [] [] | - gpe-filemanager | [] [] [] | - gpe-go | [] [] [] [] | - gpe-login | [] [] | - gpe-ownerinfo | [] [] [] [] | - gpe-package | [] [] [] | - gpe-sketchbook | [] [] [] [] | - gpe-su | [] [] [] [] | - gpe-taskmanager | [] [] [] [] | - gpe-timesheet | [] [] [] [] | - gpe-today | [] [] [] [] | - gpe-todo | [] [] [] | - gphoto2 | [] [] () [] [] [] | - gprof | [] [] [] | - gpsdrive | [] [] [] | - gramadoir | [] [] [] | - grep | [] | - grub | [] [] | - gsasl | [] | - gss | | - gst-plugins-bad | [] [] [] [] [] | - gst-plugins-base | [] [] [] [] [] | - gst-plugins-good | [] [] [] [] [] [] | - gst-plugins-ugly | [] [] [] [] [] [] | - gstreamer | [] [] [] [] [] | - gtick | [] () [] | - gtkam | [] [] () [] [] | - gtkorphan | [] [] [] [] | - gtkspell | [] [] [] [] [] [] [] | - gutenprint | [] [] [] | - hello | [] [] [] [] | - help2man | [] | - hylafax | [] [] | - idutils | [] [] | - indent | [] [] [] [] [] [] [] | - iso_15924 | [] () [] [] | - iso_3166 | [] [] [] [] () [] [] [] () | - iso_3166_2 | () | - iso_4217 | [] [] [] () [] [] | - iso_639 | [] [] [] [] () [] [] | - iso_639_3 | [] | - jwhois | [] | - kbd | [] [] [] [] [] | - keytouch | [] [] | - keytouch-editor | [] [] | - keytouch-keyboa... | [] | - klavaro | [] [] [] [] | - latrine | [] () | - ld | [] [] | - leafpad | [] [] [] [] [] [] | - libc | [] [] [] [] | - libexif | [] [] () | - libextractor | | - libgnutls | [] | - libgpewidget | [] [] | - libgpg-error | [] [] | - libgphoto2 | [] () | - libgphoto2_port | [] () [] | - libgsasl | | - libiconv | [] [] [] [] [] | - libidn | [] [] [] | - lifelines | [] () | - liferea | [] [] [] [] [] | - lilypond | [] [] [] | - linkdr | [] [] [] | - lordsawar | [] | - lprng | | - lynx | [] [] [] [] | - m4 | [] [] [] [] | - mailfromd | | - mailutils | [] | - make | [] [] [] | - man-db | | - man-db-manpages | | - minicom | [] [] [] [] | - mkisofs | | - myserver | | - nano | [] [] [] | - opcodes | [] [] | - parted | [] [] | - pies | | - popt | [] [] [] [] [] | - psmisc | [] [] [] | - pspp | [] | - pwdutils | [] | - radius | [] | - recode | [] [] [] [] [] [] | - rosegarden | () () () | - rpm | [] [] [] | - rush | | - sarg | | - screem | | - scrollkeeper | [] [] [] [] [] | - sed | [] [] [] [] [] [] | - sharutils | [] [] [] [] | - shishi | | - skencil | [] () [] | - solfege | [] [] [] | - solfege-manual | [] [] | - soundtracker | [] [] [] | - sp | [] | - sysstat | [] [] [] | - tar | [] [] [] [] | - texinfo | [] [] [] | - tin | [] [] | - unicode-han-tra... | | - unicode-transla... | | - util-linux-ng | [] [] [] [] | - vice | () () | - vmm | [] | - vorbis-tools | [] [] | - wastesedge | [] | - wdiff | [] [] | - wget | [] [] [] | - wyslij-po | | - xchat | [] [] [] [] [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] [] [] [] | - +-------------------------------------------------+ - crh cs da de el en en_GB en_ZA eo es et eu fa - 5 64 105 117 18 1 8 0 28 89 18 19 0 - - fi fr ga gl gu he hi hr hu hy id is it ja ka kn - +----------------------------------------------------+ - a2ps | [] [] [] [] | - aegis | [] [] | - ant-phone | [] [] | - anubis | [] [] [] [] | - aspell | [] [] [] [] | - bash | [] [] [] [] | - bfd | [] [] [] | - bibshelf | [] [] [] [] [] | - binutils | [] [] [] | - bison | [] [] [] [] | - bison-runtime | [] [] [] [] [] [] | - bluez-pin | [] [] [] [] [] [] [] [] | - bombono-dvd | [] | - buzztard | [] | - cflow | [] [] [] | - clisp | [] | - coreutils | [] [] [] [] [] | - cpio | [] [] [] [] | - cppi | [] [] | - cpplib | [] [] [] | - cryptsetup | [] [] [] | - dfarc | [] [] [] | - dialog | [] [] [] [] [] [] [] | - dico | | - diffutils | [] [] [] [] [] [] [] [] [] | - dink | [] | - doodle | [] [] | - e2fsprogs | [] [] | - enscript | [] [] [] [] | - exif | [] [] [] [] [] [] | - fetchmail | [] [] [] [] | - findutils | [] [] [] [] [] [] | - flex | [] [] [] | - freedink | [] [] [] | - gas | [] [] | - gawk | [] [] [] [] () [] | - gcal | [] | - gcc | [] | - gettext-examples | [] [] [] [] [] [] [] | - gettext-runtime | [] [] [] [] [] [] | - gettext-tools | [] [] [] [] | - gip | [] [] [] [] [] [] | - gjay | [] | - gliv | [] () | - glunarclock | [] [] [] [] | - gnubiff | () [] () | - gnucash | () () () () () [] | - gnuedu | [] [] | - gnulib | [] [] [] [] [] [] | - gnunet | | - gnunet-gtk | [] | - gnutls | [] [] | - gold | [] [] | - gpe-aerial | [] [] [] | - gpe-beam | [] [] [] [] | - gpe-bluetooth | [] [] [] [] | - gpe-calendar | [] [] | - gpe-clock | [] [] [] [] [] | - gpe-conf | [] [] [] [] | - gpe-contacts | [] [] [] [] | - gpe-edit | [] [] [] | - gpe-filemanager | [] [] [] [] | - gpe-go | [] [] [] [] [] | - gpe-login | [] [] [] | - gpe-ownerinfo | [] [] [] [] [] | - gpe-package | [] [] [] | - gpe-sketchbook | [] [] [] [] | - gpe-su | [] [] [] [] [] [] | - gpe-taskmanager | [] [] [] [] [] | - gpe-timesheet | [] [] [] [] [] | - gpe-today | [] [] [] [] [] [] [] | - gpe-todo | [] [] [] | - gphoto2 | [] [] [] [] [] [] | - gprof | [] [] [] [] | - gpsdrive | [] [] [] | - gramadoir | [] [] [] | - grep | [] [] | - grub | [] [] [] [] | - gsasl | [] [] [] [] [] | - gss | [] [] [] [] [] | - gst-plugins-bad | [] [] [] [] [] [] | - gst-plugins-base | [] [] [] [] [] [] | - gst-plugins-good | [] [] [] [] [] [] | - gst-plugins-ugly | [] [] [] [] [] [] | - gstreamer | [] [] [] [] [] | - gtick | [] [] [] [] [] | - gtkam | [] [] [] [] [] | - gtkorphan | [] [] [] | - gtkspell | [] [] [] [] [] [] [] [] [] | - gutenprint | [] [] [] [] | - hello | [] [] [] | - help2man | [] [] | - hylafax | [] | - idutils | [] [] [] [] [] [] | - indent | [] [] [] [] [] [] [] [] | - iso_15924 | [] () [] [] | - iso_3166 | [] () [] [] [] [] [] [] [] [] [] [] | - iso_3166_2 | () [] [] [] | - iso_4217 | [] () [] [] [] [] | - iso_639 | [] () [] [] [] [] [] [] [] | - iso_639_3 | () [] [] | - jwhois | [] [] [] [] [] | - kbd | [] [] | - keytouch | [] [] [] [] [] [] | - keytouch-editor | [] [] [] [] [] | - keytouch-keyboa... | [] [] [] [] [] | - klavaro | [] [] | - latrine | [] [] [] | - ld | [] [] [] [] | - leafpad | [] [] [] [] [] [] [] () | - libc | [] [] [] [] [] | - libexif | [] | - libextractor | | - libgnutls | [] [] | - libgpewidget | [] [] [] [] | - libgpg-error | [] [] | - libgphoto2 | [] [] [] | - libgphoto2_port | [] [] [] | - libgsasl | [] [] [] [] [] | - libiconv | [] [] [] [] [] [] | - libidn | [] [] [] [] | - lifelines | () | - liferea | [] [] [] [] | - lilypond | [] [] | - linkdr | [] [] [] [] [] | - lordsawar | | - lprng | [] | - lynx | [] [] [] [] [] | - m4 | [] [] [] [] [] [] | - mailfromd | | - mailutils | [] [] | - make | [] [] [] [] [] [] [] [] [] | - man-db | [] [] | - man-db-manpages | [] | - minicom | [] [] [] [] [] | - mkisofs | [] [] [] [] | - myserver | | - nano | [] [] [] [] [] [] | - opcodes | [] [] [] [] | - parted | [] [] [] [] | - pies | | - popt | [] [] [] [] [] [] [] [] [] | - psmisc | [] [] [] | - pspp | | - pwdutils | [] [] | - radius | [] [] | - recode | [] [] [] [] [] [] [] [] | - rosegarden | () () () () () | - rpm | [] [] | - rush | | - sarg | [] | - screem | [] [] | - scrollkeeper | [] [] [] [] | - sed | [] [] [] [] [] [] [] [] | - sharutils | [] [] [] [] [] [] [] | - shishi | [] | - skencil | [] | - solfege | [] [] [] [] | - solfege-manual | [] [] | - soundtracker | [] [] | - sp | [] () | - sysstat | [] [] [] [] [] | - tar | [] [] [] [] [] [] [] | - texinfo | [] [] [] [] | - tin | [] | - unicode-han-tra... | | - unicode-transla... | [] [] | - util-linux-ng | [] [] [] [] [] [] | - vice | () () () | - vmm | [] | - vorbis-tools | [] | - wastesedge | () () | - wdiff | [] | - wget | [] [] [] [] [] [] [] [] | - wyslij-po | [] [] [] | - xchat | [] [] [] [] [] [] [] [] [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] [] [] | - +----------------------------------------------------+ - fi fr ga gl gu he hi hr hu hy id is it ja ka kn - 105 121 53 20 4 8 3 5 53 2 120 5 84 67 0 4 - - ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne - +-----------------------------------------------+ - a2ps | [] | - aegis | | - ant-phone | | - anubis | [] [] | - aspell | [] | - bash | | - bfd | | - bibshelf | [] [] | - binutils | | - bison | [] | - bison-runtime | [] [] [] [] [] | - bluez-pin | [] [] [] [] [] | - bombono-dvd | | - buzztard | | - cflow | | - clisp | | - coreutils | [] | - cpio | | - cppi | | - cpplib | | - cryptsetup | | - dfarc | [] | - dialog | [] [] [] [] [] | - dico | | - diffutils | [] [] | - dink | | - doodle | | - e2fsprogs | | - enscript | | - exif | [] | - fetchmail | | - findutils | | - flex | | - freedink | [] | - gas | | - gawk | | - gcal | | - gcc | | - gettext-examples | [] [] [] [] | - gettext-runtime | [] | - gettext-tools | [] | - gip | [] [] | - gjay | | - gliv | | - glunarclock | [] | - gnubiff | | - gnucash | () () () () | - gnuedu | | - gnulib | | - gnunet | | - gnunet-gtk | | - gnutls | [] | - gold | | - gpe-aerial | [] | - gpe-beam | [] | - gpe-bluetooth | [] [] | - gpe-calendar | [] | - gpe-clock | [] [] [] [] [] | - gpe-conf | [] [] | - gpe-contacts | [] [] | - gpe-edit | [] | - gpe-filemanager | [] [] | - gpe-go | [] [] [] | - gpe-login | [] | - gpe-ownerinfo | [] [] | - gpe-package | [] [] | - gpe-sketchbook | [] [] | - gpe-su | [] [] [] [] [] [] | - gpe-taskmanager | [] [] [] [] [] [] | - gpe-timesheet | [] [] | - gpe-today | [] [] [] [] | - gpe-todo | [] [] | - gphoto2 | | - gprof | [] | - gpsdrive | | - gramadoir | | - grep | | - grub | | - gsasl | | - gss | | - gst-plugins-bad | [] [] [] [] | - gst-plugins-base | [] [] | - gst-plugins-good | [] [] | - gst-plugins-ugly | [] [] [] [] [] | - gstreamer | | - gtick | | - gtkam | [] | - gtkorphan | [] [] | - gtkspell | [] [] [] [] [] [] [] | - gutenprint | | - hello | [] [] [] | - help2man | | - hylafax | | - idutils | | - indent | | - iso_15924 | [] [] | - iso_3166 | [] [] () [] [] [] [] [] | - iso_3166_2 | | - iso_4217 | [] [] | - iso_639 | [] [] | - iso_639_3 | [] | - jwhois | [] | - kbd | | - keytouch | [] | - keytouch-editor | [] | - keytouch-keyboa... | [] | - klavaro | [] | - latrine | [] | - ld | | - leafpad | [] [] [] | - libc | [] | - libexif | | - libextractor | | - libgnutls | [] | - libgpewidget | [] [] | - libgpg-error | | - libgphoto2 | | - libgphoto2_port | | - libgsasl | | - libiconv | | - libidn | | - lifelines | | - liferea | | - lilypond | | - linkdr | | - lordsawar | | - lprng | | - lynx | | - m4 | | - mailfromd | | - mailutils | | - make | [] | - man-db | | - man-db-manpages | | - minicom | [] | - mkisofs | | - myserver | | - nano | [] [] | - opcodes | | - parted | | - pies | | - popt | [] [] [] | - psmisc | | - pspp | | - pwdutils | | - radius | | - recode | | - rosegarden | | - rpm | | - rush | | - sarg | | - screem | | - scrollkeeper | [] [] | - sed | | - sharutils | | - shishi | | - skencil | | - solfege | [] | - solfege-manual | | - soundtracker | | - sp | | - sysstat | [] | - tar | [] | - texinfo | [] | - tin | | - unicode-han-tra... | | - unicode-transla... | | - util-linux-ng | | - vice | | - vmm | | - vorbis-tools | | - wastesedge | | - wdiff | | - wget | [] | - wyslij-po | | - xchat | [] [] [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] | - +-----------------------------------------------+ - ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne - 20 5 10 1 13 48 4 2 2 4 24 10 20 3 1 - - nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr - +---------------------------------------------------+ - a2ps | [] [] [] [] [] [] [] [] | - aegis | [] [] [] | - ant-phone | [] [] | - anubis | [] [] [] | - aspell | [] [] [] [] [] | - bash | [] [] | - bfd | [] | - bibshelf | [] [] | - binutils | [] [] | - bison | [] [] [] | - bison-runtime | [] [] [] [] [] [] [] | - bluez-pin | [] [] [] [] [] [] [] [] | - bombono-dvd | [] () | - buzztard | [] [] | - cflow | [] | - clisp | [] [] | - coreutils | [] [] [] [] [] [] | - cpio | [] [] [] | - cppi | [] | - cpplib | [] | - cryptsetup | [] | - dfarc | [] | - dialog | [] [] [] [] | - dico | [] | - diffutils | [] [] [] [] [] [] | - dink | () | - doodle | [] [] | - e2fsprogs | [] [] | - enscript | [] [] [] [] [] | - exif | [] [] [] () [] | - fetchmail | [] [] [] [] | - findutils | [] [] [] [] [] | - flex | [] [] [] [] [] | - freedink | [] [] | - gas | | - gawk | [] [] [] [] | - gcal | | - gcc | [] | - gettext-examples | [] [] [] [] [] [] [] [] | - gettext-runtime | [] [] [] [] [] [] [] [] [] | - gettext-tools | [] [] [] [] [] [] | - gip | [] [] [] [] [] | - gjay | | - gliv | [] [] [] [] [] [] | - glunarclock | [] [] [] [] [] | - gnubiff | [] () | - gnucash | [] () () () | - gnuedu | [] | - gnulib | [] [] [] [] | - gnunet | | - gnunet-gtk | | - gnutls | [] [] | - gold | | - gpe-aerial | [] [] [] [] [] [] [] | - gpe-beam | [] [] [] [] [] [] [] | - gpe-bluetooth | [] [] | - gpe-calendar | [] [] [] [] | - gpe-clock | [] [] [] [] [] [] [] [] | - gpe-conf | [] [] [] [] [] [] [] | - gpe-contacts | [] [] [] [] [] | - gpe-edit | [] [] [] | - gpe-filemanager | [] [] [] | - gpe-go | [] [] [] [] [] [] [] [] | - gpe-login | [] [] | - gpe-ownerinfo | [] [] [] [] [] [] [] [] | - gpe-package | [] [] | - gpe-sketchbook | [] [] [] [] [] [] [] | - gpe-su | [] [] [] [] [] [] [] [] | - gpe-taskmanager | [] [] [] [] [] [] [] [] | - gpe-timesheet | [] [] [] [] [] [] [] [] | - gpe-today | [] [] [] [] [] [] [] [] | - gpe-todo | [] [] [] [] [] | - gphoto2 | [] [] [] [] [] [] [] [] | - gprof | [] [] [] | - gpsdrive | [] [] | - gramadoir | [] [] | - grep | [] [] [] [] | - grub | [] [] [] | - gsasl | [] [] [] [] | - gss | [] [] [] | - gst-plugins-bad | [] [] [] [] [] [] | - gst-plugins-base | [] [] [] [] [] | - gst-plugins-good | [] [] [] [] [] | - gst-plugins-ugly | [] [] [] [] [] [] | - gstreamer | [] [] [] [] [] | - gtick | [] [] [] | - gtkam | [] [] [] [] [] [] | - gtkorphan | [] | - gtkspell | [] [] [] [] [] [] [] [] [] [] | - gutenprint | [] [] | - hello | [] [] [] [] | - help2man | [] [] | - hylafax | [] | - idutils | [] [] [] [] [] | - indent | [] [] [] [] [] [] [] | - iso_15924 | [] [] [] [] | - iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] | - iso_3166_2 | [] [] [] | - iso_4217 | [] [] [] [] [] [] [] [] | - iso_639 | [] [] [] [] [] [] [] [] [] | - iso_639_3 | [] [] | - jwhois | [] [] [] [] | - kbd | [] [] [] | - keytouch | [] [] [] | - keytouch-editor | [] [] [] | - keytouch-keyboa... | [] [] [] | - klavaro | [] [] | - latrine | [] [] | - ld | | - leafpad | [] [] [] [] [] [] [] [] [] | - libc | [] [] [] [] | - libexif | [] [] () [] | - libextractor | | - libgnutls | [] [] | - libgpewidget | [] [] [] | - libgpg-error | [] [] | - libgphoto2 | [] [] | - libgphoto2_port | [] [] [] [] [] | - libgsasl | [] [] [] [] [] | - libiconv | [] [] [] [] [] | - libidn | [] [] | - lifelines | [] [] | - liferea | [] [] [] [] [] () () [] | - lilypond | [] | - linkdr | [] [] [] | - lordsawar | | - lprng | [] | - lynx | [] [] [] | - m4 | [] [] [] [] [] | - mailfromd | [] | - mailutils | [] | - make | [] [] [] [] | - man-db | [] [] [] | - man-db-manpages | [] [] [] | - minicom | [] [] [] [] | - mkisofs | [] [] [] | - myserver | | - nano | [] [] [] [] | - opcodes | [] [] | - parted | [] [] [] [] | - pies | [] | - popt | [] [] [] [] | - psmisc | [] [] [] | - pspp | [] [] | - pwdutils | [] | - radius | [] [] [] | - recode | [] [] [] [] [] [] [] [] | - rosegarden | () () | - rpm | [] [] [] | - rush | [] [] | - sarg | | - screem | | - scrollkeeper | [] [] [] [] [] [] [] [] | - sed | [] [] [] [] [] [] [] [] [] | - sharutils | [] [] [] [] | - shishi | [] | - skencil | [] [] | - solfege | [] [] [] [] | - solfege-manual | [] [] [] | - soundtracker | [] | - sp | | - sysstat | [] [] [] [] | - tar | [] [] [] [] | - texinfo | [] [] [] [] | - tin | [] | - unicode-han-tra... | | - unicode-transla... | | - util-linux-ng | [] [] [] [] [] | - vice | [] | - vmm | [] | - vorbis-tools | [] [] | - wastesedge | [] | - wdiff | [] [] | - wget | [] [] [] [] [] [] [] | - wyslij-po | [] [] [] | - xchat | [] [] [] [] [] [] [] [] [] | - xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | - xkeyboard-config | [] [] [] | - +---------------------------------------------------+ - nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr - 135 10 4 7 105 1 29 62 47 91 3 54 46 9 37 - - sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW - +---------------------------------------------------+ - a2ps | [] [] [] [] [] | 27 - aegis | [] | 9 - ant-phone | [] [] [] [] | 9 - anubis | [] [] [] [] | 15 - aspell | [] [] [] | 20 - bash | [] [] [] | 12 - bfd | [] | 6 - bibshelf | [] [] [] | 16 - binutils | [] [] | 8 - bison | [] [] | 12 - bison-runtime | [] [] [] [] [] [] | 29 - bluez-pin | [] [] [] [] [] [] [] [] | 37 - bombono-dvd | [] | 4 - buzztard | [] | 7 - cflow | [] [] [] | 9 - clisp | | 10 - coreutils | [] [] [] [] | 22 - cpio | [] [] [] [] [] [] | 13 - cppi | [] [] | 5 - cpplib | [] [] [] [] [] [] | 14 - cryptsetup | [] [] | 7 - dfarc | [] | 9 - dialog | [] [] [] [] [] [] [] | 30 - dico | [] | 2 - diffutils | [] [] [] [] [] [] | 30 - dink | | 4 - doodle | [] [] | 7 - e2fsprogs | [] [] [] | 11 - enscript | [] [] [] [] | 17 - exif | [] [] [] | 16 - fetchmail | [] [] [] | 17 - findutils | [] [] [] [] [] | 20 - flex | [] [] [] [] | 15 - freedink | [] | 10 - gas | [] | 4 - gawk | [] [] [] [] | 18 - gcal | [] [] | 5 - gcc | [] [] [] | 7 - gettext-examples | [] [] [] [] [] [] [] | 34 - gettext-runtime | [] [] [] [] [] [] [] | 29 - gettext-tools | [] [] [] [] [] [] | 22 - gip | [] [] [] [] | 22 - gjay | [] | 3 - gliv | [] [] [] | 14 - glunarclock | [] [] [] [] [] | 19 - gnubiff | [] [] | 4 - gnucash | () [] () [] () | 10 - gnuedu | [] [] | 7 - gnulib | [] [] [] [] | 16 - gnunet | [] | 1 - gnunet-gtk | [] [] [] | 5 - gnutls | [] [] [] | 10 - gold | [] | 4 - gpe-aerial | [] [] [] | 18 - gpe-beam | [] [] [] | 19 - gpe-bluetooth | [] [] [] | 13 - gpe-calendar | [] [] [] [] | 12 - gpe-clock | [] [] [] [] [] | 28 - gpe-conf | [] [] [] [] | 20 - gpe-contacts | [] [] [] | 17 - gpe-edit | [] [] [] | 12 - gpe-filemanager | [] [] [] [] | 16 - gpe-go | [] [] [] [] [] | 25 - gpe-login | [] [] [] | 11 - gpe-ownerinfo | [] [] [] [] [] | 25 - gpe-package | [] [] [] | 13 - gpe-sketchbook | [] [] [] | 20 - gpe-su | [] [] [] [] [] | 30 - gpe-taskmanager | [] [] [] [] [] | 29 - gpe-timesheet | [] [] [] [] [] | 25 - gpe-today | [] [] [] [] [] [] | 30 - gpe-todo | [] [] [] [] | 17 - gphoto2 | [] [] [] [] [] | 24 - gprof | [] [] [] | 15 - gpsdrive | [] [] [] | 11 - gramadoir | [] [] [] | 11 - grep | [] [] [] | 10 - grub | [] [] [] | 14 - gsasl | [] [] [] [] | 14 - gss | [] [] [] | 11 - gst-plugins-bad | [] [] [] [] | 26 - gst-plugins-base | [] [] [] [] [] | 24 - gst-plugins-good | [] [] [] [] | 24 - gst-plugins-ugly | [] [] [] [] [] | 29 - gstreamer | [] [] [] [] | 22 - gtick | [] [] [] | 13 - gtkam | [] [] [] | 20 - gtkorphan | [] [] [] | 14 - gtkspell | [] [] [] [] [] [] [] [] [] | 45 - gutenprint | [] | 10 - hello | [] [] [] [] [] [] | 21 - help2man | [] [] | 7 - hylafax | [] | 5 - idutils | [] [] [] [] | 17 - indent | [] [] [] [] [] [] | 30 - iso_15924 | () [] () [] [] | 16 - iso_3166 | [] [] () [] [] () [] [] [] () | 53 - iso_3166_2 | () [] () [] | 9 - iso_4217 | [] () [] [] () [] [] | 26 - iso_639 | [] [] [] () [] () [] [] [] [] | 38 - iso_639_3 | [] () | 8 - jwhois | [] [] [] [] [] | 16 - kbd | [] [] [] [] [] | 15 - keytouch | [] [] [] | 16 - keytouch-editor | [] [] [] | 14 - keytouch-keyboa... | [] [] [] | 14 - klavaro | [] | 11 - latrine | [] [] [] | 10 - ld | [] [] [] [] | 11 - leafpad | [] [] [] [] [] [] | 33 - libc | [] [] [] [] [] | 21 - libexif | [] () | 7 - libextractor | [] | 1 - libgnutls | [] [] [] | 9 - libgpewidget | [] [] [] | 14 - libgpg-error | [] [] [] | 9 - libgphoto2 | [] [] | 8 - libgphoto2_port | [] [] [] [] | 14 - libgsasl | [] [] [] | 13 - libiconv | [] [] [] [] | 21 - libidn | () [] [] | 11 - lifelines | [] | 4 - liferea | [] [] [] | 21 - lilypond | [] | 7 - linkdr | [] [] [] [] [] | 17 - lordsawar | | 1 - lprng | [] | 3 - lynx | [] [] [] [] | 17 - m4 | [] [] [] [] | 19 - mailfromd | [] [] | 3 - mailutils | [] | 5 - make | [] [] [] [] | 21 - man-db | [] [] [] | 8 - man-db-manpages | | 4 - minicom | [] [] | 16 - mkisofs | [] [] | 9 - myserver | | 0 - nano | [] [] [] [] | 21 - opcodes | [] [] [] | 11 - parted | [] [] [] [] [] | 15 - pies | [] [] | 3 - popt | [] [] [] [] [] [] | 27 - psmisc | [] [] | 11 - pspp | | 4 - pwdutils | [] [] | 6 - radius | [] [] | 9 - recode | [] [] [] [] | 28 - rosegarden | () | 0 - rpm | [] [] [] | 11 - rush | [] [] | 4 - sarg | | 1 - screem | [] | 3 - scrollkeeper | [] [] [] [] [] | 27 - sed | [] [] [] [] [] | 30 - sharutils | [] [] [] [] [] | 22 - shishi | [] | 3 - skencil | [] [] | 7 - solfege | [] [] [] [] | 16 - solfege-manual | [] | 8 - soundtracker | [] [] [] | 9 - sp | [] | 3 - sysstat | [] [] | 15 - tar | [] [] [] [] [] [] | 23 - texinfo | [] [] [] [] [] | 17 - tin | | 4 - unicode-han-tra... | | 0 - unicode-transla... | | 2 - util-linux-ng | [] [] [] [] | 20 - vice | () () | 1 - vmm | [] | 4 - vorbis-tools | [] | 6 - wastesedge | | 2 - wdiff | [] [] | 7 - wget | [] [] [] [] [] | 26 - wyslij-po | [] [] | 8 - xchat | [] [] [] [] [] [] | 36 - xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | 63 - xkeyboard-config | [] [] [] | 22 - +---------------------------------------------------+ - 85 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW - 178 domains 119 1 3 3 0 10 65 51 155 17 98 7 41 2618 - - Some counters in the preceding matrix are higher than the number of -visible blocks let us expect. This is because a few extra PO files are -used for implementing regional variants of languages, or language -dialects. - - For a PO file in the matrix above to be effective, the package to -which it applies should also have been internationalized and -distributed as such by its maintainer. There might be an observable -lag between the mere existence a PO file and its wide availability in a -distribution. - - If June 2010 seems to be old, you may fetch a more recent copy of -this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date -matrix with full percentage details can be found at -`http://translationproject.org/extra/matrix.html'. - -1.5 Using `gettext' in new packages -=================================== - -If you are writing a freely available program and want to -internationalize it you are welcome to use GNU `gettext' in your -package. Of course you have to respect the GNU Library General Public -License which covers the use of the GNU `gettext' library. This means -in particular that even non-free programs can use `libintl' as a shared -library, whereas only free software can use `libintl' as a static -library or use modified versions of `libintl'. - - Once the sources are changed appropriately and the setup can handle -the use of `gettext' the only thing missing are the translations. The -Free Translation Project is also available for packages which are not -developed inside the GNU project. Therefore the information given above -applies also for every other Free Software Project. Contact -`coordinator@translationproject.org' to make the `.pot' files available -to the translation teams. - diff --git a/AUTHORS b/AUTHORS index 4120aa8..7df59ef 100644 --- a/AUTHORS +++ b/AUTHORS @@ -3,36 +3,28 @@ Authors of Recode The following contributions warranted legal paper exchanges with the Free Software Foundation. Also see files ChangeLog and THANKS. -RECODE François Pinard CANADA, 1949 +François Pinard Assigns the program. -RECODE Odyssee Recherches Appliquees +Odyssee Recherches Appliquees Disclaims work by François Pinard -RECODE Ulrich Drepper Germany 1968 1996-03-25 +Ulrich Drepper Assigns all past and future changes. drepper@gnu.ai.mit.edu -RECODE Bruno Haible Germany/France 1965 1999-09-08 +Bruno Haible Assigns past and future changes. haible@clisp.cons.org -LIBUTF8 Bruno Haible Germany/France 1965 1999-12-08 -Assigns program and future changes. -haible@clisp.cons.org - -LIBICONV Bruno Haible Germany/France 1965 1999-12-08 -Assigns program and future changes. -haible@clisp.cons.org - -RECODE Linus Walleij Sweden 1972 2000-07-03 +Linus Walleij Assigns past and future changes (rtf.c). triad@df.lth.se -RECODE Otfried Cheong Germany 1964 2000-10-19 +Otfried Cheong Assigns past and future changes (utfmule.c, mkutf2mule.pl). otfried@cs.uu.nl -RECODE Bruno Haible Germany/France 1965 2001-03-09 +Reuben Thomas Assigns past and future changes. -haible@clisp.cons.org +rrt@sc3d.org diff --git a/COPYING b/COPYING index 623b625..94a9ed0 100644 --- a/COPYING +++ b/COPYING @@ -1,285 +1,626 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - 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 -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to your programs, 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. +them 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. - 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 software, or if you modify it. + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. 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 components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program 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 + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of this License. - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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. -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our 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 - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it @@ -287,15 +628,15 @@ free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least +state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) - This program is free software; you can redistribute it and/or modify + 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 2 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, @@ -304,37 +645,30 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/COPYING-LIB b/COPYING-LIB index 43d4870..65c5ca8 100644 --- a/COPYING-LIB +++ b/COPYING-LIB @@ -1,513 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 - - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Copyright (C) 2007 Free Software Foundation, Inc. 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 Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - 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 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 -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 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. - - 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. - - 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. -^L - 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, whereas the latter must -be combined with the library in order to run. -^L - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 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 -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control -compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -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 -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. -^L - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -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. -^L - 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 -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - 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. - - 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. - - 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 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. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. -^L - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -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 with -this License. -^L - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply, and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License -may add an explicit geographical distribution limitation excluding those -countries, so that distribution is permitted only in or among -countries not thus 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 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. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. -^L - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -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 - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -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 -^L - 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 -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms -of the ordinary General Public License). - - To apply these terms, attach the following notices to the library. -It is safest to attach them to the start of each source file to most -effectively convey the exclusion of warranty; and each file should -have at least the "copyright" line and a pointer to where the full -notice is found. - - - - Copyright (C) - - This 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. - - 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 - Lesser General Public License for more details. - - 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Also add information on how to contact you by electronic and paper -mail. - -You should also get your employer (if you work as a programmer) or -your school, if any, to sign a "copyright disclaimer" for the library, -if necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James - Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU 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. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/ChangeLog b/ChangeLog index 1880ede..4516f4d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,634 +1 @@ -2008-03-24 François Pinard - - * configure.ac: Use AM_ICONV rather than checking libiconv. - Reported by Bruno Haible. - -2008-03-16 François Pinard - - * cleaner.h.in: Protect against multiple inclusion. - -2008-03-14 François Pinard - - * after-patch.py: New name for after-git.py. - * after-patch.sh: New name for after-git.sh. - * Makefile.am (EXTRA_DIST): Include them. - -2008-03-13 François Pinard - - * configure.ac: Force -liconv if libiconv is available. - -2008-03-10 François Pinard - - * tables.py: Add option -v. - Reported by Dagobert Michelsen. - -2008-03-09 François Pinard - - * configure.ac: Version 3.7-beta2. - - * tables.py (Iconv.__init__): Call iconv -l to get information. - -2008-03-08 François Pinard - - * NEWS, README, THANKS, TODO, configure.ac, Makefile.am: Write - Recode, not Free recode. - -2008-03-07 François Pinard - - * tables.py: Previously in doc/. Cleanup. Add -C option. - * Makefile.am: Adjusted. - -2008-03-06 François Pinard - - * Makefile (get-po-files): New. - - * configure.ac (AC_OUTPUT): Add tests/setup.py. - - * libiconv: Whole subdirectory deleted. - * Makefile.am (SUBDIRS): Adjusted. - * configure.ac (AC_OUTPUT): Adjusted. - * cleaner.h.in: Ajusted for libiconv to iconv renaming. - Do not trap libicon, libiconv_open, libiconv_close, libiconvctl. - -2008-02-27 François Pinard - - To solve linker namespace pollution: - * cleaner.h.in: New file. - * configure.ac (AH_BOTTOM): Include it. - (AC_OUTPUT): Handle it. - Reported by Bruno Haible. - - * configure.ac: Version 3.7-beta1. - -2008-02-23 François Pinard - - * configure.ac, Makefile.am: Handle python/. - -2008-02-22 François Pinard - - * configure.ac: Delete AT_CONFIG. - -2008-02-21 François Pinard - - * README: Tell about contrib/README. - - * Makefile.am (EXTRA_DIST): Add m4/ChangeLog. - Reported by Jim Meyering. - -2008-02-21 gettextize - - * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.16. - -2008-02-18 François Pinard - - * acconfig.h: Deleted. - -2008-02-16 François Pinard - - * README: Do not mention AC-PATCHES anymore. - * TODO: Do not mention BACKLOG anymore. - - * Makefile.in, TODO, acconfig.h, configure.ac: Write Free Recode, - not GNU Recode. - - * INSTALL, Makefile.in, config.guess, config.sub, depcomp, install-sh, - missing, mkinstalldirs: Modified by Automake 1.10. This should solve - configuration problems for Linux on 64 bit systems. - Reported by Dennis Veatch and Pavel Pokorny. - - * README: Tell about the maintainer git sandbox. - Reformatted from Allout to reST, and reorganised. - * Makefile.am: New goals for the Recode site maintainer. - * after-git.py, after-git.sh: New files. - - * ABOUT-NLS: Updated from an old, but less old copy. - -2005-11-06 François Pinard - - * BACKLOG, PATCHES-AC: Deleted. - * : Documentation details, here and there. - * ABOUT-NLS, INSTALL, COPYING: New files, from elsewhere. - * Makefile.am: Adjusted. - -2005-11-05 François Pinard - - * config.guess, config.sub, ltmain.sh: Updated. - - * configure.ac (ALL_LINGUAS): Deleted. - * acconfig.h: Deleted. - * configure.ac: Use AM_GNU_GETTEXT rather than fp_WITH_GETTEXT. - * Makefile.am (POTFILES, all-local, stamp-pot): Deleted. - - * po: New name for i18n. - -2005-10-28 François Pinard - - * Makefile.am (EXTRA_DIST): Include stamp-pot. - * stamp-pot: Save it. - - * configure.ac (ALL_LINGUAS): Adjusted. - -2005-10-27 François Pinard - - * configure.ac: New name for configure.in. Adjusted for Autoconf 2.59 - instead of 2.13, and Automake 1.9.6 instead of 1.4. - * : Automatic derivation of many files. - * depcomp: New file, automatically added. - - * config.guess, config.sub, ltmain.sh: From libtool 1.5.18 instead of - 1.3.4. - - * acinclude.m4: Deleted. - * doc: Delete old, extraneous info files. - -2005-03-06 gettextize - - * Makefile.am (SUBDIRS): Add intl. - * configure.ac (AC_CONFIG_FILES): Add intl/Makefile. - (AM_GNU_GETTEXT_VERSION): Bump to 0.14.1. - -2005-03-06 gettextize - - * Makefile.am (EXTRA_DIST): Add config.rpath. - * configure.ac (AC_CONFIG_FILES): Add po/Makefile.in. - -2005-03-06 François Pinard - - Adapt to autoconf 2.59 and automake 1.9.1. - * configure.ac: New name for configure.in. - Update AC_PREREQ. - Remove arguments on AC_INIT and AC_OUTPUT. - Use AC_CONFIG_SRCDIR and AC_CONFIG_FILES. - Use AC_CONFIG_HEADER instead of AM_CONFIG_HEADER, quote argument. - - Use AC_PROG_LIBTOOL instead of AM_PROG_LIBTOOL. - Use AC_PROG_LEX instead of ad_AC_PROG_FLEX. - Do not substitute nor handle LIBOBJS. - Remove spurious AC_CANONICAL_HOST. - * depcomp: New file, from elsewhere. - * INSTALL, config.guess, config.sub, install-sh, mdate-sh, missing, - mkinstalldirs: Newer versions, from elsewhere. - * acconfig.h: Deleted. - - Postpone libtool support, as it creates too many problems for now. - * configure.ac: Replace AC_PROG_LIBTOOL with AC_PROG_RANLIB. - Do not fiddle with LTALLOCA nor LTLIBOBJS. - * ltconfig, ltmain.sh: Deleted. - - * ChangeLog: Converted to UTF-8. - - * PATCHES-AC: Deleted, hoping Autoconf has it by now. I did not - check, because if it does not yet, it is a lost cause. - - * rebox.el: Deleted. It has been moved as rebox.py into Pymacs. - -2001-12-28 François Pinard - - Get Autoconf 2.14a, Automake 1.4 and Libtool 1.3.5 working together. - * configure.in: Use AC_PROG_CC_STDC between AC_MINIX and AC_C_CONST, - so patched Autoconf 2.14 is happy. - * ltconfig, ltmain.sh: From Libtool 1.3.5. - * config.guess, config.sub: From Automake 1.4. - -2001-01-03 Bruno Haible - - * configure.in: Version 3.6. - -2001-01-03 Bruno Haible - - * configure.in: Test for memory.h and strndup. - -2000-12-06 Bruno Haible - - * configure.in: Remove determination of compile-time DEFAULT_CHARSET. - * README: Remove section about DEFAULT_CHARSET at installation time. - -2000-12-05 Bruno Haible - - * configure.in: Call AC_CANONICAL_HOST, jm_LANGINFO_CODESET, - jm_GLIBC21. Check for locale.h, stddef.h, stdlib.h, mbrtowc, wcrtomb, - setlocale. - -2000-08-30 Bruno Haible - - * Makefile.am (ACLOCAL): New definition. - * aclocal.sh: New file. - * Makefile.am (EXTRA_DIST): Add it. - -2000-06-28 François Pinard - - * configure.in: Version 3.5e. - - * Makefile.am (POTFILES): Rename debug.c to testdump.c. - -2000-06-27 François Pinard - - * configure.in: Check for struct utimbuf. - Reported by Jim Meyering and Tom Hageman. - - * configure.in: Use ad_AC_PROG_FLEX instead of AM_PROG_LEX. - Reported by Akim Demaille. - -2000-05-07 François Pinard - - * PATCHES-AC: New for Autoconf 2.14a. - * Makefile.am (EXTRA_DIST): Adjusted. - -2000-04-25 François Pinard - - * acconfig.h: Remove LIBICONV_PLUG. - Reported by Bruno Haible. - -2000-03-28 François Pinard - - * configure.in: Version 3.5d. - -2000-03-28 François Pinard - - * recode.spec: New file. - * Makefile.am (EXTRA_DIST): Adjusted. - -2000-03-21 François Pinard - - * acconfig.h: Define LIBICONV_PLUG. - -2000-01-28 François Pinard - - * Makefile.am (install-stow): New goal. - -2000-01-27 François Pinard - - * configure.in (ALL_LINGUAS): Add gl. - -1999-12-28 François Pinard - - * configure.in: Remove --with-libiconv test. - (AC_OUTPUT): Produce libiconv/Makefile. - * Makefile.am (SUBDIRS): Add libiconv. - -1999-12-24 François Pinard - - * configure.in: Version 3.5c. - -1999-12-20 François Pinard - - * configure.in: Version 3.5b. - - * configure.in: Add --with-libiconv. - * acconfig.h: Document WITH_LIBICONV. - -1999-12-19 François Pinard - - * Makefile.am (BABYL): Adjusted. - -1999-12-14 François Pinard - - * configure.in (LIBOBJS): Manage for ANSI2KNR. - (LTLIBOBJS): Adjusted to fit the style of the above. - Reported by Jim Meyering. - - * configure.in: Delete AC_PROG_AWK. - - * Makefile.am, acconfig.h, configure.in: Adapt to the gettext - scheme used in wdiff. - * i18n: New name for directory po. - * intl: Deleted directory. - - * configure.in: Use AC_FUNC_ALLOCA. - - * acinclude.m4: New file, containing file libtool.m4 from the - libtool distribution, which suggest that it should be distributed. - -1999-12-12 François Pinard - - * configure.in: Replace strtol and strtoul only when missing. - Reported by Tom Hageman. - -1999-11-27 François Pinard - - * configure.in (ALL_LINGUAS): Add it. - -1999-06-22 François Pinard - - * configure.in (ALL_LINGUAS): Add el. - -1999-06-15 François Pinard - - * configure.in: Substitute LIBOBJS, so jm_FUNC_MALLOC and - jm_FUNC_REALLOC has some chance to work. - Reported by Alexandre Oliva. - -1999-06-02 François Pinard - - * configure.in: Version 3.5a. - -1999-05-31 François Pinard - - * configure.in: Version 3.5. - -1999-04-01 François Pinard - - * configure.in: Version 3.4r. - -1999-01-07 François Pinard - - * configure.in: Version 3.4q. - -1999-01-05 François Pinard - - * configure.in: Version 3.4p. - -1998-12-31 François Pinard - - * configure.in: Accept defining DEFAULT_CHARSET to the empty - string, when it is set but empty at configure time. This is the - way to inhibit any usual charset. - -1998-12-18 François Pinard - - * configure.in: Version 3.4o. - -1998-12-14 Andreas Schwab - - * configure.in: Remove command to create po/Makefile, already done - by AM_WITH_NLS. - -1998-12-14 François Pinard - - * configure.in: Version 3.4n. - -1998-11-24 François Pinard - - * configure.in: Check for inline. - -1998-11-23 François Pinard - - * configure.in: Version 3.4m. - -1998-11-13 François Pinard - - * PATCHES-AM: Deleted. - * Makefile.am (EXTRA_DIST): Adjusted. - -1998-10-28 François Pinard - - * configure.in: Version 3.4l. - -1998-10-20 François Pinard - - * configure.in: Make tests/atconfig instead of tests/testsuite. - Do not make tests/test-one. Use AT_CONFIG instead of fp_PROG_ECHO. - -1998-10-13 François Pinard - - * configure.in: Version 3.4k. - - * configure.in (AC_OUTPUT): Prepare tests/test-one and - tests/testsuite instead of tests/preset. Make them executable. - -1998-09-30 François Pinard - - * PATCHES-AC, PATCHES-AM: New names for AC-PATCHES and AM-PATCHES. - * PATCHES-LT: New file. - * Makefile.am (EXTRA_DIST): Adjusted. - -1998-08-24 François Pinard - - * Makefile.am (BABYL): Adjusted after last reorganisation, here. - -1998-06-22 François Pinard - - * COPYING-LIB: New name for COPYING.LIB, around Automake with - --gnits not allowing COPYING.LIB. - * Makefile.am (EXTRA_DIST): Distribute it. - -1998-06-21 François Pinard - - * configure.in: Remove AC_LINK_FILES, as AM_GETTEXT does it now. - -1998-04-22 François Pinard - - * AC-PATCHES: Revised patches for Autoconf 2.12. - * AM-PATCHES: Patches for Automake 1.3. - * Makefile.am: Distribute them. - -1998-03-31 François Pinard - - * configure.in: Use jm_FUNC_MALLOC and jm_FUNC_REALLOC. - * acconfig.h: Document malloc and realloc. - - * Makefile.am: Define ACLOCAL_AMFLAGS. - * acinclude.m4: Deleted. - * configure.in (AC_OUTPUT): Substitute m4/Makefile. - * Makefile.am (SUBDIRS): Include m4. - - * configure.in: Use AM_PROG_LEX instead of AC_PROG_LEX. - -1998-03-09 François Pinard - - * AC-PATCHES: New file, from elsewhere. - * PORTS: Deleted. Integrated into contrib/README. - * Makefile.am (EXTRA_DIST): Adjusted. - -1998-01-08 François Pinard - - * acinclude.m4 (fp_OS_MICROSOFT): New. - * configure.in: Maybe select IBM-PC as the default default charset. - -1997-12-25 François Pinard - - * configure.in: Do not check for the pipe function. - -1997-12-05 François Pinard - - * configure.in (AC_OUTPUT): Create contrib/Makefile. - * Makefile.am (SUBDIRS): Visit the contrib/ subdirectory. - -1997-11-24 François Pinard - - * Makefile.am (AUTOMAKE_OPTIONS): Replace gnits by gnu, so - COPYING.LIB gets distributed. - -1997-11-16 François Pinard - - * configure.in: Check for stdbool.h. - -1997-10-05 François Pinard - - * configure.in: Add a missing AC_LINK_FILES for gettext. - Reported by Alain Magloire, Eric Backus, Jean-Claude Nadeau, Niels - Kr. Bech Jensen and Santiago Vila Doncel. - -1997-09-28 François Pinard - - * PORTS: New file. - * Makefile.am (EXTRA_DIST): Adjusted. - -1997-09-26 François Pinard - - * configure.in: Remove popen support. - -1997-09-24 François Pinard - - * configure.in: Add AM_PROG_LIBTOOL, delete AC_PROG_RANLIB. - Define LTALLOCA and LTLIBOBJS. - -1997-07-30 François Pinard - - * configure.in: Check for unistd.h and utime.h. - -1997-04-01 François Pinard - - * configure.in (ALL_LINGUAS): Add da. - -1997-02-26 François Pinard - - * missing: New file, from elsewhere. - -1997-02-25 François Pinard - - * configure.in: Use AM_CONFIG_HEADER instead of AC_CONFIG_HEADER, - AM_GNU_GETTEXT instead of ud_GNU_GETTEXT. Delete README-alpha - code, Automake handles it now. - * acinclude.m4: Replaced whole, from elsewhere. - * Makefile.am (EXTRA_DIST): Leave README-alpha to Automake. - - * configure.in (ALL_LINGUAS): Add pt. - -1997-02-12 François Pinard - - * configure.in: Simplify AC_OUTPUT, per new Autoconf and Automake. - -1996-11-08 François Pinard - - * configure.in: Switch to the letter scheme for pretests. - -1996-09-20 François Pinard - - * configure.in (ALL_LINGUAS): Remove pt, disclaimer not received. - -1996-09-03 François Pinard - - * configure.in (AC_OUTPUT): Prepare tests/Makefile and tests/preset. - * Makefile.am (SUBDIRS): Add tests/. - -1996-08-27 François Pinard - - * configure.in: Distribute README-alpha. - (ALL_LINGUAS): Add `pl', `sl' and `sv'. - * Makefile.am (EXTRA_DIST): Add acinclude.m4 for the time being. - -1996-08-24 François Pinard - - * Makefile.am: New file, replacing Makefile.in. - -1996-08-23 François Pinard - - * configure.in: Use AM_ macros more than fp_ macros. - -1996-03-06 François Pinard - - * configure.in (ALL_LINGUAS): Add `es'. - -1996-01-07 François Pinard - - * acconfig.h: Document HAVE_STPCPY. - -1995-07-23 François Pinard - - * configure.in, acconfig.h: Adapt for GNU gettext 0.8. - -1995-07-10 François Pinard - - Distribution unflattened, for using GNU gettext. - * Makefile.in: New file. - * configure.in: Substitute all Makefile's. - -1995-06-22 François Pinard - - * configure.in (LINGUAS): Adjusted for pt.po. - -* Previous history before unflattening, from version 3.0 and up: - - All kept in src/ChangeLog. - -* Previous history as saved from some oldish recode.texi: - -August 1988: - - Some tentative new charsets for TeX and texinfo, steps - merged and made more uniform, usage of Unix pipes - instead of translating chunks one at a time. - - Loïc Dachary first exposed me to Easy French. Claude - Goutier, through numerous discussions, was helpful in - evaluating various work hypotheses. - -July 1988: - - Ported to BSD Unix, bent to meet most GNU standards. - -December 1987: - - Ported to Microsoft C, tables frozen instead of being - computed by auxiliary programs at installation time, - translation sequences sought at execution time instead - of built-in in the program. - -July 1985: - - Adapted in Turbo-Pascal on an IBM-PC, translation - tables completely redesigned. Dropping of CAF, RUB - and INT support; ASCII now used as a common base. - -* Previous history as found in `secours,/s=codes,recode' output: - -March 1983: - - Version 2.0. - - Merge of features from all versions. New extensive - documentation, in French. Handling of French for 95 - character CDC printers. - -November 1982: - - Version 1.0. - - Modified to handle NOS (NOS 6/12 code), INT (Intercom 8/12 - code), RUB (7.5 characters per word, for tapes), support of - EBCDIC translations. Restructuration into a few main - modules, one of which is CODES. Made in preparation for - the Cray-1 at Canadian Meteorological Center. - -December 1981: - - Revision of comparison routines for French processing, - several suggestions from Francine Ouellette. - -December 1980: - - A few speedups and improvements. My own definition of - extended ASCII, quite compatible with various usages at - Université de Montréal. - -July 1980: - - Module GEN broken into several modules: ASC (ascii), BNG - (bang-bang), CAF (format for CAFÉ project), DPC (usual - display code), and TEL (TELUM packing). Made in context - of some research for the PPMF group and the BLOPS project. - -January 1980: - - Unified module named GEN and program named GENCOP, in - Cyber Pascal and assembler, partly inspired from NOS/BE - Record Manager, partly from Claude Schnéegans' PESTUM - protocol. - -Before 1980: - - Several independant programs, most in Cyber COMPASS - assembler, to handle code conversions. A few tries to - get some useful, unified, general approach, but with - limited success. +See git history. \ No newline at end of file diff --git a/HACKING.org b/HACKING.org new file mode 100644 index 0000000..b69ec05 --- /dev/null +++ b/HACKING.org @@ -0,0 +1,150 @@ +#+TITLE: HACKING for Recode +#+OPTIONS: H:2 toc:2 + +* Build dependencies + +m4, GNU Make, libtool, Autoconf, automake, gettext, help2man (built with +gettext), Perl, Flex, Python, Cython, tar and wget. + +* Building from git + +#+BEGIN_SRC sh + git clone https://github.com/rrthomas/recode.git + cd recode + ./bootstrap + ./configure + make check + make install +#+END_SRC + +* Making a release + +To make a release, you'll need [[https://github.com/rrthomas/woger][woger]] and [[https://github.com/aktau/github-release][github-release]], suitably +configured. Having tested and pushed all the changes, update the version +number in =configure.ac= and write the =NEWS= entry and push those too. + +Then execute: ~make release~ + +* The future +** Motivation +Recode is due for a major overhaul. I want to add a run-time dependency +between Recode and Python, with the admitted goal of shifting the internals +of Recode from C to Python. + +For experimenting what Recode might become and experimenting new +concepts more easily, I created a subsidiary and standalone Python +project named [[https://github.com/pinard/Recodec][Recodec]], which reproduces a good part of Recode +functionality. My goal is now to merge Recodec back into Recode, +rather than slowly stretching the distance between Recode and Recodec. +Recode is going to be a mix of Python, C and Cython. + +** Overall plan +Recode 4 should be organised thus: + +- The main program is written in Python, and through a Cython + interface, calls the existing C API for doing the real work. +- The C API gets merely able to use Cython written steps internally, + besides the actual C steps, but with no Cython steps yet. +- New Cython steps wrap many standard Python codecs, with some + trickery to force Python codecs over actual, older Recode steps. +- Recode library initialization is moved from C to Python, and gets + called through Cython from the C API. +- Initialization is extended to cover the Recodec Python API, which + uses different tables and descriptive data. +- More steps from Recodec get moved into Recode, either coexisting + with or taking over the previous wrapping of Python codecs. +- The remaining code from the Recodec engine gets moved into Recode, + replacing C code having the same fonctionality. +- Special care is given to GNU *libc* or *libiconv* support, maybe going + from the C side to the Python side. +- Proper documentation and decisions follow extensive comparison and + diagnostic of multiple implementations of same charsets or surfaces. +- Profiling allows to fine tune when and how Cython gets used over + Python; standard Python codecs might even be cythonized in Recode. +- Program and library initialization get revised to spare disk + accesses and building descriptive structures, whenever possible. +- The main program directly links to the Python API rather than + through the C API, while the C API becomes a separate facility. + +** Planned differences +Whenever the Python library offers a charset or a surface which Recode +also has, the Python library codec is used. In some cases, this +introduces differences, those will have to be resolved one by one, +either by accepting that the Python library does better, getting the +Python team to improve some codecs, or overriding these from Recodec. + +Other differences may occur, especially in the Asian charset area, +from the fact *libiconv*, GNU *libc* recoding facilities, and various +contributors to the Python codecs project, do not fully agree on how +things should be done. Recodec is likely to offer configuration +mechanisms to choose among various possibilities, but will not likely +attempt to rule out who is right and who is wrong! ☺ + +Issues about reversibility and canonicity, which were much present in +Recode 3.X, are fading out. While some of these were moderately easy +to implement, other cases stayed pending as fairly difficult to solve +without a significant loss of efficiency. I think these issues are +better abandoned than forever kept as half-hearted and not wholly +dependable. Any user concerned about such things might try the +reverse coding to find out if the original file is recoverable, some +new option might automate a (costly) reversibility test. + +One drawback of the whole move is that the Global Interpreter Lock in +Python gets in the way of parallel execution of the code. This would +have been more of a concern if GNU *libc* recoding facilities were +relying on the Recode library, but as things stand by now, I'm +guessing that users will not be much impacted in practice. + +* Other pointers +** Documentation +- IETF references + + - [[ftp://nic.ddn.mil/rfc/rfc1345.txt][Character Mnemonics & Character Sets]], by [[mailto:keld@dkuug.dk][Keld Simonsen]], 1992-06. + - [[ftp://nic.ddn.mil/rfc/rfc1642.txt][UTF-7 - A Mail-Safe Transformation Format of Unicode]], by [[mailto:david_goldsmith@taligent.com][David + Goldsmith]] and [[mailto:mark_davis@taligent.com][Mark Davis]], 1994-07. + - [[ftp://nic.ddn.mil/rfc/rfc2044.txt][UTF-8, a transformation format of Unicode and ISO 10646]], by [[mailto:yergeau@alis.com][François Yergeau]], 1997-10. + +- Various references + + - [[ftp://ftp.unicode.org:/Public/MAPPINGS/][Unicode charset mappings]]. The Unicode consortium makes available + plenty of charset mappings for converting /legacy/ charsets to + Unicode. + - [[ftp://ftp.iro.umontreal.ca/pub/contrib/pinard/accents/oqil-tome1.ps.gz][Normalisation et internationalisation: Inventaire et prospectives + des normes clefs pour le traitement informatique du français.]] + (392p.) or [[http://www.ceveil.qc.ca/Normes][this other copy]]. This is a report, written in French, + discussing charset issues and many other topics as well. [[mailto:bourbeau@progiciels-bpi.ca][Laurent + Bourbeau]] and [[mailto:pinard@iro.umontreal.ca][François Pinard]], 1995-10. + +- Recode specific + + - ETL presentation + + In 1999, the organisers of the [[http://www.m17n.org/conference/m17n99_all_but_registration/welcome.en.html][m17n99 conference]] in Tsukuba, + Japan, were kind enough to invite me. This has been for me a + fabulous trip and experience, and I met many extraordinary people + in there. At the conference, I presented the Translation Project, + and Recode. The Recode [[http:/m17n99.html][presentation slides]] are available. + +** Programs +- libiconv :: This comprehensive [[http://www.gnu.org/software/libiconv/][charset converter library]], by [[mailto:haible@ilog.fr][Bruno + Haible]], revolves around Unicode, and support Asian + encodings among many others. Even Recode uses it! +- tcs :: Here is the [[ftp://research.att.com/dist/tcs.shar.Z][main recoding tool]] from the Plan9 project. +- yuedit :: This [[ftp://sunsite.unc.edu/pub/Linux/apps/editors/X/yudit-1.2.tar.gz][GUI editor]], by [[mailto:gsinai@iname.com][Gaspar Sinai]], 1999-01, handles many + encodings, among which UTF-8. It also installs *uniconv*, a + recoding program, and *uniprint*, a printing tool. +- ucs-fonts :: These [[http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz][6x13 fonts]], by [[mailto:Markus.Kuhn@cl.cam.ac.uk][Markus Kuhn]], 1998-11, covering + Unicode characters besides the Asian sets, merely + replace the Linux fixed 6x13 font. Works nicely with + *yudit*. +- MtRecode :: This [[http://www.lpl.univ-aix.fr/projects/multext/MtRecode/][charset converter]] is oriented towards SGML text + manipulation. It may be freely downloaded for + non-commercial, non-military use. Pointer given by [[mailto:veronis@univ-aix.fr][Jean + Véronis]], 1996-06. +- sp :: This quite nice SGML [[ftp://ftp.jclark.com/pub/sp/sp-1.3.tar.gz][structure analyser]], by [[mailto:jjc@jclark.com][James Clark]], + contains internal C++ modules for handling many charsets. +- b2c :: This [[http://research.de.uu.net:8080/~gnu/b2c/b2c-2.1.tar.gz][program]], by [[mailto:Joerg.Heitkoetter@de.uu.net][Jörg Heitkötter]], 1997-11, is able to + generate interpreted character dumps, but properly embedded + within complete C header files. +- PyRecode :: This [[http://www.suxers.de/PyRecode.tgz][wrapper]], by [[mailto:ajung@server.python.net][Andreas Jung]], provides Recode functionality + to Python programs. Also see [[http://www.vex.net/parnassus/apyllo.py?find%3Drecode][this link]] and [[http://www.suxers.de/python/pyrecode.htm][this other link]]. diff --git a/INSTALL b/INSTALL deleted file mode 100644 index 5458714..0000000 --- a/INSTALL +++ /dev/null @@ -1,234 +0,0 @@ -Installation Instructions -************************* - -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006 Free Software Foundation, Inc. - -This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - -Briefly, the shell commands `./configure; make; make install' should -configure, build, and install this package. The following -more-detailed instructions are generic; see the `README' file for -instructions specific to this package. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. Caching is -disabled by default to prevent problems with accidental use of stale -cache files. - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You need `configure.ac' if -you want to change it or regenerate `configure' using a newer version -of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. - - Running `configure' might take a while. While running, it prints - some messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - -Some systems require unusual options for compilation or linking that the -`configure' script does not know about. Run `./configure --help' for -details on some of the pertinent environment variables. - - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: - - ./configure CC=c99 CFLAGS=-g LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - -You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you can use GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - With a non-GNU `make', it is safer to compile the package for one -architecture at a time in the source code directory. After you have -installed the package for one architecture, use `make distclean' before -reconfiguring for another architecture. - -Installation Names -================== - -By default, `make install' installs the package's commands under -`/usr/local/bin', include files under `/usr/local/include', etc. You -can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -pass the option `--exec-prefix=PREFIX' to `configure', the package uses -PREFIX as the prefix for installing programs and libraries. -Documentation and other data files still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=DIR' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - -Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - -There may be some features `configure' cannot figure out automatically, -but needs to determine by the type of machine the package will run on. -Usually, assuming the package is built to be run on the _same_ -architectures, `configure' can figure that out, but if it prints a -message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the option `--target=TYPE' to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. - -Sharing Defaults -================ - -If you want to set default values for `configure' scripts to share, you -can create a site shell script called `config.site' that gives default -values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Defining Variables -================== - -Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). - -Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf bug. Until the bug is fixed you can use this workaround: - - CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash - -`configure' Invocation -====================== - -`configure' recognizes the following options to control how it operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/Makefile.am b/Makefile.am index e6f7dc1..2bc0210 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,10 +1,10 @@ # Main Makefile for Recode. -# Copyright © 1992,93,94,95,96,97,98,99,00 Free Software Foundation, Inc. +# Copyright © 1992-2018 Free Software Foundation, Inc. # François Pinard , 1992. # 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 2, or (at your option) +# the Free Software Foundation; either version 3, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, @@ -13,78 +13,31 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# along with this program; if not, see . AUTOMAKE_OPTIONS = gnits -ACLOCAL = ./aclocal.sh @ACLOCAL@ ACLOCAL_AMFLAGS = -I m4 -EXTRA_DIST = COPYING-LIB aclocal.sh after-patch.py after-patch.sh \ -m4/ChangeLog tables.py \ -keld/NomsSeulsfinal.lst keld/charsets.def keld/control.def \ -keld/iso10646.def keld/mnemonics,ds keld/other.def keld/rfc1345.txt -SUBDIRS = doc lib po src tests contrib - -# All object files should depend on cleaner.h as well on as config.h. -# For now at least, if you modify cleaner.h.in, make twice! -all-local: cleaner.h - -get-po-files: - cd $(top_srcdir) && \ - rsync -Lrtvz translationproject.org::tp/latest/recode/ po - -# The following goals for the maintainer of the Recode Web site. - -local: - $(MAKE) -C contrib - $(MAKE) manual - -manual: - cd $(top_srcdir) \ - && rm -rf web/manual web/manual-tmp \ - && mkdir web/manual web/manual-tmp \ - && makeinfo --html --output=web/manual-tmp doc/recode.texi \ - && cd web/manual-tmp \ - && for file in *.html; do \ - sed 's,href=",href="/https/github.com/manual/,g' $$file > ../manual/$$file; \ - done - rm -rf $(top_srcdir)/web/manual-tmp - -publish: - (cd $(top_srcdir) && \ - git archive --format=tar --prefix=recode-$(VERSION)/ HEAD .) \ - | gzip > $(top_srcdir)/web/archives/recode-$(VERSION).tar.gz - -official: publish - rm -f $(top_srcdir)/web/archives/recode.tar.gz - ln -s recode-$(VERSION).tar.gz $(top_srcdir)/web/archives/recode.tar.gz +SUBDIRS = doc lib src po tests contrib -synchro: local - du -s --si $(top_srcdir)/.git - cd $(top_srcdir) && git gc --auto --prune - du -s --si $(top_srcdir)/.git - find $(top_srcdir) -name '*~' | xargs rm -fv - synchro -PD alcyon entretien - -ifneq "$(wildcard ~/etc/mes-sites/site.mk)" "" - -site: site-all - -package_name = recode -mgp_base = http://pinard.progiciels-bpi.ca/fp-etc/dist/mgp -margin_color = "\#ff896c" -caption_color = "\#ffffb7" - -LOGOURL = "/logo.gif" -GOALS = $(wildcard manual/*.html) - -include ~/etc/mes-sites/site.mk - -$(htmldir)/manual/%.html: manual/%.html - @[ -d $(htmldir)/manual ] || mkdir -v $(htmldir)/manual - @$(xsl-html) - -endif +EXTRA_DIST = COPYING-LIB \ +m4/gnulib-cache.m4 tables.py \ +keld/NomsSeulsfinal.lst keld/charsets.def keld/control.def \ +keld/iso10646.def keld/other.def keld/rfc1345.txt + +release: distcheck + git diff --exit-code && \ + git tag -a -m "Release tag" "v$(VERSION)" && \ + git push && git push --tags && \ + woger github \ + github_user=rrthomas \ + package=$(PACKAGE) \ + version=$(VERSION) \ + dist_type=tar.gz + +# Ignore built files that are part of the distribution (specifically, +# src/recode.1). +distcleancheck_listfiles = \ + find . -type f -exec sh -c 'test -f $(srcdir)/$$1 || echo $$1' \ + sh '{}' ';' diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index a61eb73..0000000 --- a/Makefile.in +++ /dev/null @@ -1,894 +0,0 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Main Makefile for Recode. -# Copyright © 1992,93,94,95,96,97,98,99,00 Free Software Foundation, Inc. -# François Pinard , 1992. - -# 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 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 General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = . -DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog THANKS \ - $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/configure $(am__configure_deps) \ - $(srcdir)/config.h.in mkinstalldirs $(srcdir)/cleaner.h.in \ - ABOUT-NLS COPYING TODO config.guess config.rpath config.sub \ - depcomp install-sh missing ltmain.sh ltconfig -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ - $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = cleaner.h -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir dist dist-all distcheck -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ - $(LISP)config.h.in -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -CSCOPE = cscope -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - if test -d "$(distdir)"; then \ - find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -rf "$(distdir)" \ - || { sleep 5 && rm -rf "$(distdir)"; }; \ - else :; fi -am__post_remove_distdir = $(am__remove_distdir) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best -DIST_TARGETS = dist-gzip -distuninstallcheck_listfiles = find . -type f -print -am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ - | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' -distcleancheck_listfiles = find . -type f -print -ACLOCAL = ./aclocal.sh @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GLIBC21 = @GLIBC21@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = gnits -ACLOCAL_AMFLAGS = -I m4 -EXTRA_DIST = COPYING-LIB aclocal.sh after-patch.py after-patch.sh \ -m4/ChangeLog tables.py \ -keld/NomsSeulsfinal.lst keld/charsets.def keld/control.def \ -keld/iso10646.def keld/mnemonics,ds keld/other.def keld/rfc1345.txt - -SUBDIRS = doc lib po src tests contrib -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -am--refresh: Makefile - @: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --gnits'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --gnits \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnits Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: $(am__configure_deps) - $(am__cd) $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -$(am__aclocal_m4_deps): - -config.h: stamp-h1 - @if test ! -f $@; then rm -f stamp-h1; else :; fi - @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 -cleaner.h: $(top_builddir)/config.status $(srcdir)/cleaner.h.in - cd $(top_builddir) && $(SHELL) ./config.status $@ - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool config.lt - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscope: cscope.files - test ! -s cscope.files \ - || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) -clean-cscope: - -rm -f cscope.files -cscope.files: clean-cscope cscopelist -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -rm -f cscope.out cscope.in.out cscope.po.out cscope.files - -distdir: $(DISTFILES) - @case `sed 15q $(srcdir)/NEWS` in \ - *"$(VERSION)"*) : ;; \ - *) \ - echo "NEWS not updated; not releasing" 1>&2; \ - exit 1;; \ - esac - $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done - -test -n "$(am__skip_mode_fix)" \ - || find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r "$(distdir)" -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__post_remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__post_remove_distdir) - -dist-lzip: distdir - tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__post_remove_distdir) - -dist-xz: distdir - tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__post_remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__post_remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__post_remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__post_remove_distdir) - -dist dist-all: - $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' - $(am__post_remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lz*) \ - lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ - *.tar.xz*) \ - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir) - chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_inst - chmod a-w $(distdir) - test -d $(distdir)/_build || exit 0; \ - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(AM_DISTCHECK_CONFIGURE_FLAGS) \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ - && cd "$$am__cwd" \ - || exit 1 - $(am__post_remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' -distuninstallcheck: - @test -n '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: trying to run $@ with an empty' \ - '$$(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - $(am__cd) '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-recursive -all-am: Makefile config.h all-local -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr \ - distclean-libtool distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(am__recursive_targets) all install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \ - am--refresh check check-am clean clean-cscope clean-generic \ - clean-libtool cscope cscopelist-am ctags ctags-am dist \ - dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ - dist-xz dist-zip distcheck distclean distclean-generic \ - distclean-hdr distclean-libtool distclean-tags distcleancheck \ - distdir distuninstallcheck dvi dvi-am html html-am info \ - info-am install install-am install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am - - -# All object files should depend on cleaner.h as well on as config.h. -# For now at least, if you modify cleaner.h.in, make twice! -all-local: cleaner.h - -get-po-files: - cd $(top_srcdir) && \ - rsync -Lrtvz translationproject.org::tp/latest/recode/ po - -# The following goals for the maintainer of the Recode Web site. - -local: - $(MAKE) -C contrib - $(MAKE) manual - -manual: - cd $(top_srcdir) \ - && rm -rf web/manual web/manual-tmp \ - && mkdir web/manual web/manual-tmp \ - && makeinfo --html --output=web/manual-tmp doc/recode.texi \ - && cd web/manual-tmp \ - && for file in *.html; do \ - sed 's,href=",href="/https/github.com/manual/,g' $$file > ../manual/$$file; \ - done - rm -rf $(top_srcdir)/web/manual-tmp - -publish: - (cd $(top_srcdir) && \ - git archive --format=tar --prefix=recode-$(VERSION)/ HEAD .) \ - | gzip > $(top_srcdir)/web/archives/recode-$(VERSION).tar.gz - -official: publish - rm -f $(top_srcdir)/web/archives/recode.tar.gz - ln -s recode-$(VERSION).tar.gz $(top_srcdir)/web/archives/recode.tar.gz - -synchro: local - du -s --si $(top_srcdir)/.git - cd $(top_srcdir) && git gc --auto --prune - du -s --si $(top_srcdir)/.git - find $(top_srcdir) -name '*~' | xargs rm -fv - synchro -PD alcyon entretien - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/NEWS b/NEWS index ba9914c..182a77c 100644 --- a/NEWS +++ b/NEWS @@ -5,16 +5,194 @@ Recode NEWS - User visible changes .. contents:: .. sectnum:: -:Copyright: © 1993-1999, 2000, 2001, 2008 Free Software Foundation, Inc. +:Copyright: © 1993-2025 Free Software Foundation, Inc. -Version 3.7-beta2 -================= +Version 3.7.15 +============== -:Author: François Pinard, 2008-03. +:Author: Reuben Thomas, 2025-03. + ++ Bug fix: do not free an input file handle passed to librecode by its + caller. ++ Several fixes and updates to the build system. + + +Version 3.7.14 +============== + +:Author: Reuben Thomas, 2023-01. + ++ No user-visible changes; minor clean-ups as part of the Debian + packaging process. + + +Version 3.7.13 +============== + +:Author: Reuben Thomas, 2023-01. + ++ Fix request diagnostics with --verbose: avoid output of confusing and + possibly incorrect diagnostics. ++ Fix a file descriptor leak. + + +Version 3.7.12 +============== + +:Author: Reuben Thomas, 2022-02. + ++ Simplify support for ignoring invalid input with iconv, integrated with + the --strict and --force mechanisms. ++ Various documentation improvements. + + +Version 3.7.11 +============== + +:Author: Reuben Thomas, 2022-01. + ++ Re-add support for transliteration with iconv (removed in 3.7). ++ Add support for ignoring invalid input with iconv. ++ Fix a bug introduced in 3.7.10 that prevented building the code. + + +Version 3.7.10 +============== + +:Author: Reuben Thomas, 2022-01. + ++ In recode program, only use iconv if needed; add --prefer-iconv option to + allow its use in all cases. ++ Remove support for pre-3.5 request syntax (colon as charset separator). ++ PO files have been updated from the Translation Project. ++ Build system fixes and improvements. ++ Update gnulib to fix a problem building on Android. ++ Fix confusingly wrong NEWS entry for 3.7.4. + + +Version 3.7.9 +============= + +:Author: Reuben Thomas, 2021-06. + ++ A fix to the CP1252 encoding: U+017E LATIN SMALL LETTER Z WITH CARON is at + byte 0x9e, not byte 0x8f. ++ Minor documentation fixes. + + +Version 3.7.8 +============= + +:Author: Reuben Thomas, 2020-09. + ++ Improvements to the build system. ++ Fix man page generation, and document that help2man must be built with + gettext. ++ Updates to nl, pt, sv translations (thanks, translators!). + + +Version 3.7.7 +============= + +:Author: Reuben Thomas, 2020-07. + ++ Improvements to the build system. ++ Updates to nl, pt, sv translations (thanks, translators!). + + +Version 3.7.6 +============= + +:Author: Reuben Thomas, 2019-09. + ++ Improvements to the build system. + + +Version 3.7.5 +============= + +:Author: Reuben Thomas, 2019-09. + ++ Port tests to Python 3. + + +Version 3.7.4 +============= + +:Author: Reuben Thomas, 2019-09. + ++ Fixes to file handling in recode program. ++ Fix tests on Windows. + + +Version 3.7.3 +============= + +:Author: Reuben Thomas, 2019-08. + ++ No code changes to recode itself; this release features a properly +versioned shared library. + + +Version 3.7.2 +============= + +:Author: Reuben Thomas, 2019-08. + ++ No code changes to recode itself; this release includes updates to license +headers to guide users to the GPL online, corrects the version of +COPYING-LIB shipped with the sources, and updates the message files for +various languages. + + +Version 3.7.1 +============= + +:Author: Reuben Thomas, 2018-09. + ++ No code changes to recode itself; this release just updates the version of +gnulib to fix a bug in glibc 2.28: (GitHub issue #11 +https://github.com/rrthomas/recode/issues/11 + + +Version 3.7 +=========== + +:Author: François Pinard, 2008-03; Reuben Thomas, 2018-01. + ++ Converters for BibTeX (from Vincent Danjean) and the ANSEL and ISO 5426 + character sets (from Wolfram Schneider) have been added. ++ The conversion strategies (whether to use pipes, memory or files) are + no longer available. Now it is reasonable to assume virtual memory, so + files and memory have similar performance characteristics (in + particular, the memory method is not limited by physical memory.) + Further, tests showed that even for runs on little data, the pipes + method has minimal performance impact (none was measured). This is + not a surprise, as for one-step recodings, the commonest case, no + forking is needed. The command-line options -i, -p and + --sequence=STRATEGY are ignored for backwards compatibility. ++ Recode does not include libiconv anymore, but uses an external iconv + library if one was available at installation time. The -x: option + to the program, or a new flag to the library recode_new_outer + function, inhibits the initialisation and usage of iconv. ++ The experimental ``tree`` surface is removed. Structured data + needs a proper parser, and that doesn't fit the framework of Recode. ++ Many bug fixes. ++ Long ago, I renamed GNU recode to Free recode: the permission for + using the GNU prefix mandated a level of obedience to the FSF that + once went overboard, in my opinion. After that change, I realized + that some people read Free as a four letter word! To be peaceful, + this version changes the name again, to merely Recode. recode + (no capital) still names the executable program specifically, or + the distribution archive itself. ++ make check accepts a LIMIT= option, for limiting tests to one or a + few cases. See tests/Makefile.am. ++ PO files have been updated from the Translation Project. ++ The test system has been overhauled. Tests now run much faster, and + require Python and Cython. ++ Overhauled build system, now using gnulib for portability. This reduces + the amount of code in the Recode tree considerably. -+ Recode does no include libiconv anymore, but uses an external iconv - library if one was available at installation time. -+ Many internal changes, for correcting reported bugs. Version 3.6 =========== diff --git a/README.org b/README.org index 7bdac27..2e1f26a 100644 --- a/README.org +++ b/README.org @@ -3,12 +3,6 @@ * Introduction ** What is Recode? -Here is version 3.6 for the Recode program and library. Hereafter, -Recode means the whole package, *recode* means the executable program. -Glance through this =README= file before starting configuration. Make -sure you read files =ABOUT-NLS= and =INSTALL= if you are not familiar with -them already. - The Recode library converts files between character sets and usages. It recognises or produces over 200 different character sets (or about 300 if combined with an *iconv* library) and transliterates files @@ -16,6 +10,10 @@ between almost any pair. When exact transliteration are not possible, it gets rid of offending characters or falls back on approximations. The *recode* program is a handy front-end to the library. +Glance through this =README= file before starting configuration. Make +sure you read files =ABOUT-NLS= and =INSTALL= if you are not familiar with +them already. + The Recode program and library have been written by François Pinard, yet it significantly reuses tabular works from Keld Simonsen. It is an evolving package, and specifications might change in future @@ -28,179 +26,45 @@ Recode had been ported to other popular systems. See both information about these. ** Reports and collaboration -Send bug reports to [[mailto:recode-bugs@iro.umontreal.ca][this address]], or if you are comfortable with -GitHub facilities, through [[https://github.com/pinard/Recode/issues][GitHub Issues]]. A bug report is an adequate -description of the problem: your input, what you expected, what you -got, and why this is wrong. Diffs are welcome, but they only describe -a solution, from which the problem might be uneasy to infer. If -needed, submit actual data files with your report. Small data files -are preferred. Big files may sometimes be necessary, but do not send -them on the mailing list; rather take special arrangement with the -maintainer. +Please file bug reports as [[https://github.com/rrthomas/Recode/issues][GitHub Issues]]. If you cannot use GitHub, do +write directly to [[mailto:rrt@sc3d.org]] A bug report is an adequate +description of the problem: your input, what you expected, what you got, and +why this is wrong. Patches are welcome, but they only describe a solution, +from which the problem might be uneasy to infer. If needed, submit actual +data files with your report. Your feedback will help us to make a better and more portable package. Consider documentation errors as bugs, and report them as such. If -you develop anything pertaining to Recode or have suggestions, let us -know and share your findings by writing at [[mailto:recode-forum@iro.umontreal.ca][Recode forum]]. You may also -choose to directly write to [[mailto:pinard@iro.umontreal.ca][the author]], yet be warned that such -correspondence is often visible for a while through the Recode Web -site. - -If you feel like receiving releases and pretest announcements for the -Recode package, send a message to [[mailto:majordomo@iro.umontreal.ca][this Majordomo]] having, in its body, -a line saying: - - #+BEGIN_EXAMPLE - subscribe recode-announce - #+END_EXAMPLE - -If you rather want to participate actively in discussions, pretesting -and development for Recode, do just as above, but this time, use: - - #+BEGIN_EXAMPLE - subscribe recode-forum - #+END_EXAMPLE - -The [[https://github.com/pinard/Recode][Git repository]] for Recode gives access, through the magic of Git -and GitHub, to all distribution releases, would they be actual or -past, pretest or official, as well as individual files. - -Please /do not/ widely redistribute releases having a letter after the -version numbers, as these are meant for pretesting only, and might not -be stable enough for other usages. - -* Release notes -** Notes for version 3.7-beta2 -Here are a few notes related to the *beta2* pre-test release for the -incoming Recode 3.7. I publish it to ease later exchanges of patches -with testers. - -- Long ago, I renamed /GNU recode/ to /Free recode/: the permission for - using the /GNU/ prefix mandated a level of obedience to the FSF that - once went overboard, in my opinion. After that change, I realized - that some people read /Free/ as a four letter word! To be peaceful, - this version changes the name again, from /Free recode/ to merely - /Recode/. *recode* (no capital) still names the executable program - specifically, or the distribution archive itself. - -- Recode does not itself include *libiconv* anymore. However, it uses - an external *iconv* library if one is available at installation time, - like *libiconv* or the one provided within GNU *libc*. The =-x:= option - to the program, or a new flag to the library *recode_new_outer* - function, inhibits the initialisation and usage of *iconv*. - -- The bug about loosing a few characters, here and there, when - recoding big files in *iconv* context, seems to have been corrected. - A patch for this problem has been floating around for years, but it - was not solving all cases. - -- Recode installation now uses Python. In particular, it creates file - =build/src/iconvdecl.h= from local =iconv -l= output. Recode testing - through =make check= also needs what people usually find as the - *python-devel* package, which provides C header files for Python and - *distutils*. The =Makemore= file has been merged within regular - Makefiles and is not distributed separately anymore. +you develop anything pertaining to Recode or have suggestions, please +share them on GitHub. -- It is likely that new bugs have been introduced through the above - changes. In particular, not everything is cosy on the side of - release engineering. A few files are either spuriously remade, or - remade late. I'm a bit surprised by the difficulty to get this - right. +The [[https://github.com/rrthomas/Recode][Git repository]] for Recode gives access, through the magic of Git and +GitHub, to all distribution releases, be they actual or past, pretest or +official, as well as individual files. -- =make check= accepts a =LIMIT== option, for limiting tests to one or a - few cases. See =tests/Makefile= for more information. +Recode is translated as part of the [[https://translationproject.org/][Translation Project]]. See that site for +more information. -- PO files have been updated from the Translation Project. - -** Notes for version 3.7-beta1 -The beta 1 pre-test release for the incoming Recode 3.7 has been made -available for those needing it right away. While it solves some -serious bugs and portability problems, others are meant to be -addressed only in later pre-tests. In particular, none of charset or -surface issues, user requests, and various suggestions appear in this -pre-test, and will not either in later pretests, until all real -show-stoppers are solved first. So this is in no way a candidate for -a Recode 3.7 release. - -The test suite is worth more comments: - -- The suite is very partial, and may not be thought as a validation - suite. Before it could be used to ascertain confidence, it would - need much more tests than it has already. - -- Testing is notably more speedy than it used to be. For example, the - previous *bigauto* test, which was not run by default because it ran - for too long, is now executed within the standard test suite, once - in non-strict mode, and a second time in strict mode. - -- It does not use Autotest anymore, but rather a home grown test - driver much inspired from the Codespeak project. The link between - the test and the Recode library is established through a Pyrex - interface, so you need to have *python* and *python-devel* installed - first. - -- Beware that the Pyrex interface to the Recode library is only meant - for testing, for now at least. While you may play with it, it would - not be wise relying on it, as the specifications might change at any - time. - -** Non-Unix ports -Please [[mailto:recode-bugs@iro.umontreal.ca][inform us]] if you are aware of various ports to non-Unix systems -not listed here, or for corrections. Please provide the goal system, -a complete and stable URL, the maintainer name and address, the Recode -version used as a base, and your comments. - -- MSDOS (DJGPP) :: [[mailto:juan.guerrero@gmx.de][Juan Manuel Guerrero]] maintains this port, dated - 2001-03 and based on Recode 3.5. The following - archives hold binaries, docs and sources - respectively. See [[ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/rcode35b.zip][rcode35b]], [[ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/rcode35d.zip][rcode35d]] and [[ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/rcode35s.zip][rcode35s]]. - Also see [[http:/DJGPP.html][contrib/DJGPP/README]] in the Recode - distribution for more information about compiling - this port. -- MSDOS (Gnuish) :: [[mailto:hankedr@mail.auburn.edu][Darrel Hankerson]] maintains this port, dated - 1994-11 and based on Recode 3.4. You get many GNU - tools, not only Recode. The GNUish project is - described in =gnuish_t.htm=. See [[http://www.simtel.net/simtel.net/][simtel]] and [[http://www.leo.org/pub/comp/platforms/pc/gnuish][gnuish]] - (Germany), or for the FTP versions: [[ftp://ftp.simtel.net/simtelnet/gnu][simtel]] and - [[ftp://ftp.leo.org/pub/comp/platforms/pc/gnuish][gnuish]]. -- OS/2 (using emx/gcc) :: Maintainer unknown (maybe [[mailto:rommel@ars.de][Kai Uwe Rommel]]), - dated 1994-11 and based on Recode 3.4. See [[http://hobbes.nmsu.edu/pub/os2/util/convert/gnurcode.zip][gnurcode]]. * Installation ** In a hurry? -You may then try: - -#+BEGIN_SRC sh - git clone https://github.com/pinard/Recode.git - cd Recode - sh after-git.sh - ./configure - make - make install -#+END_SRC +See =INSTALL=. (For installing from git, see =HACKING.org=.) More fine-grained instructions follow. ** Prerequisites -Simple installation of Recode requires the usual tools and facilities -as those needed for most GNU packages. If not already bundled with -your system, you also need to pre-install [[http://www.python.org][Python]], version 2.2 or -better. +Simple installation of Recode requires the usual tools and facilities as +those needed for most GNU packages. If not already bundled with your +system, you also need to install [[https://www.python.org][Python]], version 3.5 or later. -It is also convenient to have some *iconv* library already present on -your system, this much extends Recode capabilities, especially in the -area of Asiatic character sets. GNU *libc*, as found on Linux systems -and a few others, already has such an *iconv* library. Otherwise, you -might consider pre-installing the [[http://www.gnu.org/software/libiconv/][portable libiconv]], written by Bruno -Haible. +It is also convenient to have some *iconv* library already present on your +system, this much extends Recode capabilities, especially in the area of +Asiatic character sets. GNU *libc*, as found on Linux systems and a few +others, already has such an *iconv* library. Otherwise, you might consider +installing the [[https://www.gnu.org/software/libiconv/][portable libiconv]], written by Bruno Haible. ** Getting a release Source files and various distributions (either latest, prestest, or -archive) are available through [[https://github.com/pinard/Recode/][GitHub]]. - -File timestamps after checkout may trigger Make difficulties. As a -way to avoid these, from the top level of the distribution, execute =sh -after-patch.sh= before configuring. If you miss either *sh* or GNU -*touch*, try =python after-patch.py= instead. +archive) are available through [[https://github.com/rrthomas/Recode/][GitHub]]. ** Configure options Once you have an unpacked distribution, see files: @@ -215,264 +79,3 @@ Once you have an unpacked distribution, see files: | =NEWS= | major changes in the current release | | =THANKS= | partial list of contributors | |-------------+------------------------------------------------| - -Besides those configure options documented in files =INSTALL= and -=ABOUT-NLS=, a few extra options may be accepted after =./configure=: - -- Options =--disable-shared= or =--disable-static= - - to inhibit the building of shared libraries or static libraries; the - default is to always build static libraries, and to attempt building - shared libraries if there is some known recipe for this. - -- Option =--with-gnu-ld= - - to force the assumption that the C compiler uses GNU *ld*. - -- Option =--with-dmalloc= - - to trigger a debugging feature for looking at memory management - problems, it pre-requires Gray Watson's [[ftp://ftp.letters.com/src/dmalloc/dmalloc.tar.gz][dmalloc package]]. - -** Installation hints -Here are a few hints which might help installing Recode on some -systems. Many may be applied by temporary presetting environment -variables while calling =./configure=. File =INSTALL= explains this. - -- Compilation time - - Some C compilers, like Apollo's, have a hard time compiling - =merged.c=. If this is your case, avoid compiler optimisation. From - within the Bourne shell, you may use: - - #+BEGIN_EXAMPLE - CFLAGS= ./configure - #+END_EXAMPLE - - But if you want to give a real hard time to your C optimiser on - =merged.c=, to get code that runs only a bit faster, merely try: - - #+BEGIN_EXAMPLE - CPPFLAGS=-DINLINE_HARDER ./configure - #+END_EXAMPLE - -- Smallish systems - - For 80286 based systems (do some still exist?!), it has been - reported that some compilers generate wrong code while optimising - for /small/ models. So, from within the Bourne shell, do: - - #+BEGIN_EXAMPLE - CFLAGS=-Ml LDFLAGS=-Ml ./configure - #+END_EXAMPLE - - to force large memory model. For 80286 Xenix compiler, the last - time it was tried a while ago, one ought to use: - - #+BEGIN_EXAMPLE - CFLAGS='-Ml -F2000' LDFLAGS=-Ml ./configure - #+END_EXAMPLE - - Other systems have poor *pipe* / *popen* support or thrash heavily when - processes fork. In this case, just before doing =make=, edit =config.h= - and ensure *HAVE_PIPE* is /not/ defined. - -** Maintenance tools -Beyond the usual Unix programs needed for configuring and installing -any GNU package, you need Cython, Flex and Python to achieve simple -modifications to Recode. - -For more encompassing modifications, you might also need recent -versions of Autoconf, automake, Flex, Gettext, Help2man, libtool, m4, -GNU Make, Perl, tar and wget. Just make sure you install m4 before -Autoconf, and Perl before automake or Help2man. You may also choose -to establish a link in your build =doc/= directory, as explained within -=doc/Makemore=. - -* The future -** Motivation -Recode is due for a major ovehaul. My plan is to end the 3.x series -of this package, rather aiming 4.0 as a major internal rewrite. - -For one thing, I want to explore some new avenues. It does not seem -natural anymore, to me at least, using C code for exploring or -prototyping new ideas requiring complex internal structures: -encompassing changes are stretchy, work overhead is just too high. I -want to add a run-time dependency between Recode and Python, with the -admitted goal of shifting the internals of Recode from C to Python. - -Another thing is that Recode should reuse more of the work of many -competent people in the recoding area. I was brought into the -business of character set conversion issues by a random set of -coincidences and needs, but have never been a character set specialist -myself. I rely on users to help me sketch what needs to be done. -There are other tools and other maintainers who address these matters -more competently than me. Recode might well rely on their work and -better concentrate on user functionalities and on an overall picture. - -For experimenting what Recode might become and experimenting new -concepts more easily, I created a subsidiary and standalone Python -project named [[https://github.com/pinard/Recodec][Recodec]], which reproduces a good part of Recode -functionality. My goal is now to merge Recodec back into Recode soon, -rather than slowly stretching the distance between Recode and Recodec. -Recode is going to be a mix of Python, C and either Pyrex or Cython. - -** Overall plan -The release 3.6 for Recode was likely the last in the 3.x series. As -there is still a long way before 4.0 gets ready, and /especially/ -because some of my good collaborators insisted that I do so, there -will likely be other Recode 3.X releases on the way to 4.0, at least -to provide a selection of user-contributed patches. Also, the next -releases of Recode will progressively implement the base mechanics for -the transition, through a list of development steps similar to the -following. By principle, the implementation should be working and -usable at each devewlopment step. Moreover, for better -maintainability, refactoring shall occur all along the way. - -I'll likely select Cython over Pyrex, the main arguments being -Unicode, Python 3 and pragmatic support, and a wide and active user -base. Pyrex, the inspiration behind Cython, is amazingly well -thought; I stay really admirative and grateful for Greg Ewing's work. - -- The main program is written in Python, and through a Cython - interface, calls the existing C API for doing the real work. -- The C API gets merely able to use Cython written steps internally, - besides the actual C steps, but with no Cython steps yet. -- New Cython steps wrap many standard Python codecs, with some - trickery to force Python codecs over actual, older Recode steps. -- Recode library initialization is moved from C to Python, and gets - called through Cython from the C API. -- Initialization is extended to cover the Recodec Python API, which - uses different tables and descriptive data. -- More steps from Recodec get moved into Recode, either coexisting - with or taking over the previous wrapping of Python codecs. -- The remaining code from the Recodec engine gets moved into Recode, - replacing C code having the same fonctionality. -- Special care is given to GNU *libc* or *libiconv* support, maybe going - from the C side to the Python side. -- Proper documentation and decisions follow extensive comparison and - diagnostic of multiple implementations of same charsets or surfaces. -- Profiling allows to fine tune when and how Cython gets used over - Python; standard Python codecs might even be cythonized in Recode. -- Program and library initialization get revised to spare disk - accesses and building descriptive structures, whenever possible. -- The main program directly links to the Python API rather than - through the C API, while the C API becomes a separate facility. - -I once thought about resorting to kludges, within a Python API -interface, so the Python interpreter would not be required at all at -run-time. Today, I doubt this is doable in practice, or that the -implied restrictions on Cython code would be bearable. By the time, I -may come to think that this is not worth the effort, anyway. - -** Speed and memory -So far, Recode has always been oriented towards some generality in -specifications, combined with good execution speed. Generality is -granted through providing recoding steps either as tables or fuller -algorithms expressed as C code. Speed surely results from careful C -coding of individual steps, and using Flex for more difficult -recognition problems. Speed also comes from the monolithic design of -a single Python-free, big executable executable holding all tables at -once, relying on system paging instead of run-time opening of external -data files. - -Rewriting a character shuffling engine in Python is going to have -consequences on both speed and memory. Python is inherently much -slower than C for such problems, and program startup requires many -disk accesses to load all required modules. The size of the Python -interpreter is not negligible, yet Recode is not small as it stands. - -Depending on how to declare things and the way to code on the Cython -side, by relying less on the Python library, one may have some control -over the compromise between speed and ease. With enough discipline, -resisting the temptation to use many Python facilities, one can -displace the equilibrium. I once dreamed of many stub or minimal -routines for representing the Python library to the point of avoiding -it, yet I now think it would imply too stringent limitations. - -After much hesitation, I merely /decided/ that the slowdown is bearable! -It was fairly tedious to make encompassing structural changes in the C -version of Recode. Such changes are going to be significantly easier -in Python. This might translate into shorter development cycles. - -** Planned differences -Whenever the Python library offers a charset or a surface which Recode -also has, the Python library codec is used. In some cases, this -introduces differences, those will have to be resolved one by one, -either by accepting that the Python library does better, getting the -Python team to improve some codecs, or overriding these from Recodec. - -Other differences may occur, especially in the Asian charset area, -from the fact *libiconv*, GNU *libc* recoding facilities, and various -contributors to the Python codecs project, do not fully agree on how -things should be done. Recodec is likely to offer configuration -mechanisms to choose among various possibilities, but will not likely -attempt to rule out who is right and who is wrong! ☺ - -Issues about reversibility and canonicity, which were much present in -Recode 3.X, are fading out. While some of these were moderately easy -to implement, other cases stayed pending as fairly difficult to solve -without a significant loss of efficiency. I think these issues are -better abandoned than forever kept as half-hearted and not wholly -dependable. Any user concerned about such things might try the -reverse coding to find out if the original file is recoverable, some -new option might automate a (costly) reversibility test. - -One drawback of the whole move is that the Global Interpreter Lock in -Python gets in the way of parallel execution of the code. This would -have been more of a concern if GNU *libc* recoding facilities were -relying on the Recode library, but as things stand by now, I'm -guessing that users will not be much impacted in practice. - -* Other pointers -** Documentation -- IETF references - - - [[ftp://nic.ddn.mil/rfc/rfc1345.txt][Character Mnemonics & Character Sets]], by [[mailto:keld@dkuug.dk][Keld Simonsen]], 1992-06. - - [[ftp://nic.ddn.mil/rfc/rfc1642.txt][UTF-7 - A Mail-Safe Transformation Format of Unicode]], by [[mailto:david_goldsmith@taligent.com][David - Goldsmith]] and [[mailto:mark_davis@taligent.com][Mark Davis]], 1994-07. - - [[ftp://nic.ddn.mil/rfc/rfc2044.txt][UTF-8, a transformation format of Unicode and ISO 10646]], by [[mailto:yergeau@alis.com][François Yergeau]], 1997-10. - -- Various references - - - [[ftp://ftp.unicode.org:/Public/MAPPINGS/][Unicode charset mappings]]. The Unicode consortium makes available - plenty of charset mappings for converting /legacy/ charsets to - Unicode. - - [[ftp://ftp.iro.umontreal.ca/pub/contrib/pinard/accents/oqil-tome1.ps.gz][Normalisation et internationalisation: Inventaire et prospectives - des normes clefs pour le traitement informatique du français.]] - (392p.) or [[http://www.ceveil.qc.ca/Normes][this other copy]]. This is a report, written in French, - discussing charset issues and many other topics as well. [[mailto:bourbeau@progiciels-bpi.ca][Laurent - Bourbeau]] and [[mailto:pinard@iro.umontreal.ca][François Pinard]], 1995-10. - -- Recode specific - - - ETL presentation - - In 1999, the organisers of the [[http://www.m17n.org/conference/m17n99_all_but_registration/welcome.en.html][m17n99 conference]] in Tsukuba, - Japan, were kind enough to invite me. This has been for me a - fabulous trip and experience, and I met many extraordinary people - in there. At the conference, I presented the Translation Project, - and Recode. The Recode [[http:/m17n99.html][presentation slides]] are available. - -** Programs -- libiconv :: This comprehensive [[http://www.gnu.org/software/libiconv/][charset converter library]], by [[mailto:haible@ilog.fr][Bruno - Haible]], revolves around Unicode, and support Asian - encodings among many others. Even Recode uses it! -- tcs :: Here is the [[ftp://research.att.com/dist/tcs.shar.Z][main recoding tool]] from the Plan9 project. -- yuedit :: This [[ftp://sunsite.unc.edu/pub/Linux/apps/editors/X/yudit-1.2.tar.gz][GUI editor]], by [[mailto:gsinai@iname.com][Gaspar Sinai]], 1999-01, handles many - encodings, among which UTF-8. It also installs *uniconv*, a - recoding program, and *uniprint*, a printing tool. -- ucs-fonts :: These [[http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz][6x13 fonts]], by [[mailto:Markus.Kuhn@cl.cam.ac.uk][Markus Kuhn]], 1998-11, covering - Unicode characters besides the Asian sets, merely - replace the Linux fixed 6x13 font. Works nicely with - *yudit*. -- MtRecode :: This [[http://www.lpl.univ-aix.fr/projects/multext/MtRecode/][charset converter]] is oriented towards SGML text - manipulation. It may be freely downloaded for - non-commercial, non-military use. Pointer given by [[mailto:veronis@univ-aix.fr][Jean - Véronis]], 1996-06. -- sp :: This quite nice SGML [[ftp://ftp.jclark.com/pub/sp/sp-1.3.tar.gz][structure analyser]], by [[mailto:jjc@jclark.com][James Clark]], - contains internal C++ modules for handling many charsets. -- b2c :: This [[http://research.de.uu.net:8080/~gnu/b2c/b2c-2.1.tar.gz][program]], by [[mailto:Joerg.Heitkoetter@de.uu.net][Jörg Heitkötter]], 1997-11, is able to - generate interpreted character dumps, but properly embedded - within complete C header files. -- PyRecode :: This [[http://www.suxers.de/PyRecode.tgz][wrapper]], by [[mailto:ajung@server.python.net][Andreas Jung]], provides Recode functionality to Python programs. Also see [[http://www.vex.net/parnassus/apyllo.py?find%3Drecode][this link]] and [[http://www.suxers.de/python/pyrecode.htm][this other link]]. diff --git a/TODO b/TODO index 8366a8e..fb06010 100644 --- a/TODO +++ b/TODO @@ -2,9 +2,9 @@ TODO file for Recode ==================== -Tell recode-bugs@iro.umontreal.ca if you feel like volunteering +Tell rrt@sc3d.org if you feel like volunteering for any of these ideas, listed more or less in decreasing order -of priority. Some TODO items are implicit within received email. +of priority. Before next official release ============================ @@ -13,29 +13,6 @@ Before next official release + Update NEWS for latest libiconv and latest Keld tables. + Remove TeX edition warnings, rephrase whatever required. + Complete inter-node and menu references, as necessary. -+ See make and configure HAVE_UNION_WAIT, see ``lr /conf-wait-``. - -Memory control -============== - -+ Dig - - + ALLOC, ALLOC_SIZE, REALLOC - + edit_sequence, init_ucs2_to_byte - -+ Revise for leaks - - + combine.c - + localcharset.c - + names.c (for aliases) - + html.c - + testdump.c - + recode.c - -+ Solve - - + src/xalloc.h + src/xmalloc.c .vs. lib/xstrdup.c - + xstrdup unused Keld ==== @@ -61,23 +38,11 @@ Keld + Lithuanian -Linus -===== - -+ ~/méthodes/rtf/ - Particular notes ================ + feuille Tamil -+ Autoconf and DOSWIN + New RFC 1345 tables, still some diagnostics -+ Check notes from ORA -+ ~/libit/rmail/m4 -+ ~/libit/rmail/gettext - -ChangeLog -========= Charsets ======== @@ -88,7 +53,6 @@ Charsets + Support VT320 support and related character sets. (Alain Simon) + Support @code{[nt]roff} diacritics. + Support Universite de Montreal *accent* convention. -+ ~/pinard/codes/mule/courriel/ Surfaces ======== @@ -106,24 +70,9 @@ Mechanics ========= + Intercept signals to cleanup the temporary files in any event. -+ Revise --sequence=pipe thoroughly. -+ Rewrite execute_pipe_sequence for having only one child per parent. + Revise --force thoroughly. -+ Rewrite .l converses for lat1{asci,ltex,txte}, for --force. ++ Rewrite .l converters for lat1{asci,ltex,txte}, for --force. + Optimize/merge all one-to-many cases. + Write a better ``make check``, not as partial and forgiving. -+ Modify recode so I can get rid of diacrit.[ch] (elsewhere). + Have -l know which output charset to use (Martin Maechler, 93-12-07). + Take note that ->RFC1345 recodings are non reversible. - -Notes about MSDOS port -====================== - -+ I had to ``touch stamp-h``. -+ @PRODUCT@ and @VERSION@ were not substituted. -+ Replace PRODUCT by PACKAGE within config_h.*. -+ One should have -DHAVE_CONFIG_H=1 (the ``=1`` is required). -+ charset.c:637: Maybe incorrect assignment in init_table_for_rfc1345(). -+ LIBINTL.OBJ and LOCALE.OBJ were not compiled. -+ Rule to compile LIBINTL.OBJ was missing. -+ readme.tcc should become README.DOS as things go. diff --git a/aclocal.m4 b/aclocal.m4 deleted file mode 100644 index 724ac19..0000000 --- a/aclocal.m4 +++ /dev/null @@ -1,1193 +0,0 @@ -# generated automatically by aclocal 1.13.3 -*- Autoconf -*- - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. -You have another version of autoconf. It may work, but is not guaranteed to. -If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically 'autoreconf'.])]) - -# intlmacosx.m4 serial 3 (gettext-0.18) -dnl Copyright (C) 2004-2010 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Checks for special options needed on MacOS X. -dnl Defines INTL_MACOSX_LIBS. -AC_DEFUN([gt_INTL_MACOSX], -[ - dnl Check for API introduced in MacOS X 10.2. - AC_CACHE_CHECK([for CFPreferencesCopyAppValue], - [gt_cv_func_CFPreferencesCopyAppValue], - [gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - AC_TRY_LINK([#include ], - [CFPreferencesCopyAppValue(NULL, NULL)], - [gt_cv_func_CFPreferencesCopyAppValue=yes], - [gt_cv_func_CFPreferencesCopyAppValue=no]) - LIBS="$gt_save_LIBS"]) - if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then - AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], - [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) - fi - dnl Check for API introduced in MacOS X 10.3. - AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], - [gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], - [gt_cv_func_CFLocaleCopyCurrent=yes], - [gt_cv_func_CFLocaleCopyCurrent=no]) - LIBS="$gt_save_LIBS"]) - if test $gt_cv_func_CFLocaleCopyCurrent = yes; then - AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], - [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) - fi - INTL_MACOSX_LIBS= - if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then - INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" - fi - AC_SUBST([INTL_MACOSX_LIBS]) -]) - -# Copyright (C) 2002-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.13' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.13.3], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.13.3])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to -# '$srcdir', '$srcdir/..', or '$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is '.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - - -# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES. -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -AC_SUBST([am__nodep])dnl -_AM_SUBST_NOTMAKE([am__nodep])dnl -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -AC_DEFUN([AM_WITH_DMALLOC], -[AC_MSG_CHECKING([if malloc debugging is wanted]) -AC_ARG_WITH([dmalloc], -[AS_HELP_STRING([--with-dmalloc], - [use dmalloc, as in http://www.dmalloc.com])], -[if test "$withval" = yes; then - AC_MSG_RESULT([yes]) - AC_DEFINE([WITH_DMALLOC], [1], - [Define if using the dmalloc debugging malloc package]) - LIBS="$LIBS -ldmalloc" - LDFLAGS="$LDFLAGS -g" -else - AC_MSG_RESULT([no]) -fi], [AC_MSG_RESULT([no])]) -]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -]) - -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST([install_sh])]) - -# Copyright (C) 2003-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it is modern enough. -# If it is, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) - -# Copyright (C) 2003-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_MKDIR_P -# --------------- -# Check for 'mkdir -p'. -AC_DEFUN([AM_PROG_MKDIR_P], -[AC_PREREQ([2.60])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -dnl FIXME we are no longer going to remove this! adjust warning -dnl FIXME message accordingly. -AC_DIAGNOSE([obsolete], -[$0: this macro is deprecated, and will soon be removed. -You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead, -and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.]) -dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, -dnl while keeping a definition of mkdir_p for backward compatibility. -dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. -dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of -dnl Makefile.ins that do not define MKDIR_P, so we do our own -dnl adjustment using top_builddir (which is defined more often than -dnl MKDIR_P). -AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl -case $mkdir_p in - [[\\/$]]* | ?:[[\\/]]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac -]) - -# -*- Autoconf -*- -# Obsolete and "removed" macros, that must however still report explicit -# error messages when used, to smooth transition. -# -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -AC_DEFUN([AM_CONFIG_HEADER], -[AC_DIAGNOSE([obsolete], -['$0': this macro is obsolete. -You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl -AC_CONFIG_HEADERS($@)]) - -AC_DEFUN([AM_PROG_CC_STDC], -[AC_PROG_CC -am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc -AC_DIAGNOSE([obsolete], -['$0': this macro is obsolete. -You should simply use the 'AC][_PROG_CC' macro instead. -Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', -but upon 'ac_cv_prog_cc_stdc'.])]) - -AC_DEFUN([AM_C_PROTOTYPES], - [AC_FATAL([automatic de-ANSI-fication support has been removed])]) -AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# -------------------- -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) - -# _AM_SET_OPTIONS(OPTIONS) -# ------------------------ -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) - -# Copyright (C) 2009-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) - -# Copyright (C) 2001-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor 'install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in "make install-strip", and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# AM_SUBST_NOTMAKE(VARIABLE) -# -------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -# -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - -m4_include([m4/codeset.m4]) -m4_include([m4/gettext.m4]) -m4_include([m4/glibc21.m4]) -m4_include([m4/iconv.m4]) -m4_include([m4/lib-ld.m4]) -m4_include([m4/lib-link.m4]) -m4_include([m4/lib-prefix.m4]) -m4_include([m4/libtool.m4]) -m4_include([m4/ltoptions.m4]) -m4_include([m4/ltsugar.m4]) -m4_include([m4/ltversion.m4]) -m4_include([m4/lt~obsolete.m4]) -m4_include([m4/malloc.m4]) -m4_include([m4/nls.m4]) -m4_include([m4/po.m4]) -m4_include([m4/progtest.m4]) -m4_include([m4/realloc.m4]) -m4_include([m4/utimbuf.m4]) diff --git a/aclocal.sh b/aclocal.sh deleted file mode 100755 index f1cbc62..0000000 --- a/aclocal.sh +++ /dev/null @@ -1,71 +0,0 @@ -#! /bin/sh - -# This script is a work-alike of `aclocal' contained in the GNU automake -# package. It is needed because our aclocal.m4 must be generated from the -# non-gettext .m4 files in /usr/share/aclocal and from the gettext specific -# .m4 files in the local m4 directory. -# With "aclocal --acdir=m4" -# we get an error: macro `AM_INIT_AUTOMAKE' not found in library -# With "aclocal -I m4" -# we get an error: duplicated macro `AM_GNU_GETTEXT' -# The solution is to put all the .m4 files into a temporary directory. - -# 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 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -set -e - -if test $# = 0; then - echo "Usage: $0 aclocal-program [aclocal-options]" 1>&2 - exit 1 -fi - -ACLOCAL="$1" -shift - -# Prepare temporary directory. -mkdir aclocal.tmp -trap "rm -rf aclocal.tmp; exit 1" 1 2 15 - -# First, copy the standard m4 files. -for f in `"$ACLOCAL" --print-ac-dir`/*.m4; do - cp $f aclocal.tmp -done - -# Then, copy the contents of any -I directories, overriding previously -# copied files of the same name. -options="" -last_was_I=no -for arg -do - if test $last_was_I = yes; then - for f in "$arg"/*.m4; do - cp $f aclocal.tmp - done - last_was_I=no - else - case "$arg" in - -I) last_was_I=yes;; - *) last_was_I=no options="$options $arg";; - esac - fi -done - -# Now call `aclocal' for real. -"$ACLOCAL" --acdir=aclocal.tmp $options - -# Clean up temporary directory. -rm -rf aclocal.tmp - diff --git a/after-patch.py b/after-patch.py deleted file mode 100755 index a097255..0000000 --- a/after-patch.py +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# Copyright © 2007 Progiciels Bourbeau-Pinard inc. -# François Pinard , 2008. - -"""\ -After "patch", "git clone" or "git checkout", file timestamps may be a -bit random, and unless you have all maintainer tools handy, it can put -you in some misery. This script makes all timestamps to be identical. -""" - -__metaclass__ = type -import os, sys - -class Main: - - def main(self, *arguments): - # Decode arguments. Should be none! - import getopt - options, arguments = getopt.getopt(arguments, '') - for option, valeur in options: - pass - assert not arguments - # Use a reference file. - if not os.path.exists('configure.ac'): - sys.exit("You should first cd to the distribution directory.") - timestamp = os.path.getmtime('configure.ac') - # Walk all files, changing their timestamp. - stack = ['.'] - while stack: - directory = stack.pop() - for base in os.listdir(directory): - if base == '.git': - continue - name = os.path.join(directory, base) - if os.path.isdir(name): - stack.append(name) - elif os.path.isfile(name): - os.utime(name, (os.path.getatime(name), timestamp)) - -run = Main() -main = run.main - -if __name__ == '__main__': - main(*sys.argv[1:]) diff --git a/after-patch.sh b/after-patch.sh deleted file mode 100755 index 33e0d98..0000000 --- a/after-patch.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# After "patch", "git clone" or "git checkout", file timestamps may be a -# bit random, and unless you have all maintainer tools handy, it can put -# you in some misery. This script makes all timestamps to be identical. - -if test -f configure.ac; then - find . -name .git -prune -o -type f -print | xargs touch -r configure.ac -else - echo >2 "You should first cd to the distribution directory." - exit 1 -fi diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000..b9326ba --- /dev/null +++ b/bootstrap @@ -0,0 +1,5431 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from build-aux/bootstrap.in +## by inline-source v2019-02-19.15 + +# Bootstrap an Autotooled package from checked-out sources. +# Written by Gary V. Vaughan, 2010 +# Inspired by a script written by Paul Eggert. + +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2010-2019 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. + +# You should place a copy of this script under version control in the +# top-level directory of your project. The intent is that all +# customization can be done with a `bootstrap.conf` file also maintained +# in your version control. + +# Please report bugs or propose patches to: +# + + +## ------ ## +## Usage. ## +## ------ ## + +# Most GNUish projects do not keep all of the generated Autotool +# files under version control, but running all of the right tools +# with the right arguments, in the correct order to regenerate +# all of those files in readiness for configuration and building +# can be surprisingly involved! Many projects have a 'bootstrap' +# script under version control to invoke Autotools and perform +# other assorted book-keeping with version numbers and the like. +# +# This bootstrap script aims to probe the configure.ac and top +# Makefile.am of your project to automatically determine what +# the correct ordering and arguments are and then run the tools for +# you. In order to use it, you can generate an initial standalone +# script with: +# +# gl/build-aux/inline-source gl/build-aux/bootstrap.in > bootstrap +# +# You should then store than script in version control for other +# developers in you project. It will give you instructions about +# how to keep it up to date if the sources change. +# +# See gl/doc/bootstrap.texi for documentation on how to write +# a bootstrap.conf to customize it for your project's +# idiosyncracies. + + +## ================================================================== ## +## ## +## DO NOT EDIT THIS FILE, CUSTOMIZE IT USING A BOOTSTRAP.CONF ## +## ## +## ================================================================== ## + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase denotes values stored in the environment. These +# variables should generally be overridden by the user - however, we do +# set them to 'true' in some parts of this script to prevent them being +# called at the wrong time by other tools that we call ('autoreconf', +# for example). +# +# We also allow 'LIBTOOLIZE', 'M4', 'SHA1SUM' and some others to be +# overridden, and export the result for child processes, but they are +# handled by the function 'func_find_tool' and not defaulted in this +# section. + +: ${ACLOCAL="aclocal"} +: ${AUTOCONF="autoconf"} +: ${AUTOHEADER="autoheader"} +: ${AUTOM4TE="autom4te"} +: ${AUTOHEADER="autoheader"} +: ${AUTOMAKE="automake"} +: ${AUTOPOINT="autopoint"} +: ${AUTORECONF="autoreconf"} +: ${CMP="cmp"} +: ${CONFIG_SHELL="/bin/sh"} +: ${DIFF="diff"} +: ${GIT="git"} +: ${LN_S="ln -s"} +: ${RM="rm"} + +export ACLOCAL +export AUTOCONF +export AUTOHEADER +export AUTOM4TE +export AUTOHEADER +export AUTOMAKE +export AUTOPOINT +export AUTORECONF +export CONFIG_SHELL + + +## -------------- ## +## Configuration. ## +## -------------- ## + +# A newline delimited list of triples of programs (that respond to +# --version), the minimum version numbers required (or just '-' in the +# version field if any version will be sufficient) and homepage URLs +# to help locate missing packages. +buildreq= + +# Name of a file containing instructions on installing missing packages +# required in 'buildreq'. +buildreq_readme=README-hacking + +# These are extracted from AC_INIT in configure.ac, though you can +# override those values in 'bootstrap.conf' if you prefer. +build_aux= +macro_dir= +package= +package_name= +package_version= +package_bugreport= + +# These are extracted from 'gnulib-cache.m4', or else fall-back +# automatically on the gnulib defaults; unless you set the values +# manually in 'bootstrap.conf'. +doc_base= +gnulib_mk= +gnulib_name= +local_gl_path= +source_base= +tests_base= + +# The list of gnulib modules required at 'gnulib-tool' time. If you +# check 'gnulib-cache.m4' into your repository, then this list will be +# extracted automatically. +gnulib_modules= + +# Extra gnulib files that are not in modules, which override files of +# the same name installed by other bootstrap tools. +gnulib_non_module_files=" + build-aux/compile + build-aux/install-sh + build-aux/mdate-sh + build-aux/texinfo.tex + build-aux/depcomp + build-aux/config.guess + build-aux/config.sub + doc/INSTALL +" + +# Relative path to the local gnulib submodule, and url to the upstream +# git repository. If you have a gnulib entry in your .gitmodules file, +# these values are ignored. +gnulib_path= +gnulib_url= + +# Date from which to clone github, to avoid a full clone. +gnulib_clone_since= + +# Additional gnulib-tool options to use. +gnulib_tool_options=" + --no-changelog +" + +# bootstrap removes any macro-files that are not included by aclocal.m4, +# except for files listed in this variable that are always kept. +gnulib_precious=" + gnulib-tool.m4 +" + +# When truncating long commands for display, always allow at least this +# many characters before truncating. +min_cmd_len=160 + +# The command to download all .po files for a specified domain into +# a specified directory. Fill in the first %s is the domain name, and +# the second with the destination directory. Use rsync's -L and -r +# options because the latest/%s directory and the .po files within are +# all symlinks. +po_download_command_format=\ +"rsync --delete --exclude '*.s1' -Lrtvz \ +'translationproject.org::tp/latest/%s/' '%s'" + +# Other locale categories that need message catalogs. +extra_locale_categories= + +# Additional xgettext options to use. Gnulib might provide you with an +# extensive list of additional options to append to this, but gettext +# 0.16.1 and newer appends them automaticaly, so you can safely ignore +# the complaints from 'gnulib-tool' if your $configure_ac states: +# +# AM_GNU_GETTEXT_VERSION([0.16.1]) +xgettext_options=" + --flag=_:1:pass-c-format + --flag=N_:1:pass-c-format +" + +# Package copyright holder for gettext files. Defaults to FSF if unset. +copyright_holder= + +# File that should exist in the top directory of a checked out hierarchy, +# but not in a distribution tarball. +checkout_only_file= + +# Whether to use copies instead of symlinks by default (if set to true, +# the --copy option has no effect). +copy=false + +# Set this to ".cvsignore .gitignore" in 'bootstrap.conf' if you want +# those files to be generated in directories like 'lib/', 'm4/', and 'po/', +# or set it to "auto" to make this script select what to use based +# on what version control system (if any) is used in the source directory. +# Or set it to "none" to ignore VCS ignore files entirely. Default is +# "auto". +vc_ignore= + + +## ------------------- ## +## External Libraries. ## +## ------------------- ## + +# Source required external libraries: +# Set a version string for this script. +scriptversion=2019-02-19.15; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2004-2019 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. + +# Please report bugs or propose patches to: +# + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# func_unset VAR +# -------------- +# Portably unset VAR. +# In some shells, an 'unset VAR' statement leaves a non-zero return +# status if VAR is already unset, which might be problematic if the +# statement is used at the end of a function (thus poisoning its return +# value) or when 'set -e' is active (causing even a spurious abort of +# the script in this case). +func_unset () +{ + { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } +} + + +# Make sure CDPATH doesn't cause `cd` commands to output the target dir. +func_unset CDPATH + +# Make sure ${,E,F}GREP behave sanely. +func_unset GREP_OPTIONS + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_arg pretty "$2" + eval "$1+=\\ \$func_quote_arg_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_arg pretty "$2" + eval "$1=\$$1\\ \$func_quote_arg_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_portable EVAL ARG +# ---------------------------- +# Internal function to portably implement func_quote_arg. Note that we still +# keep attention to performance here so we as much as possible try to avoid +# calling sed binary (so far O(N) complexity as long as func_append is O(1)). +func_quote_portable () +{ + $debug_cmd + + func_quote_portable_result=$2 + + # one-time-loop (easy break) + while true + do + if $1; then + func_quote_portable_result=`$ECHO "$2" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` + break + fi + + # Quote for eval. + case $func_quote_portable_result in + *[\\\`\"\$]*) + case $func_quote_portable_result in + *[\[\*\?]*) + func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ + | $SED "$sed_quote_subst"` + break + ;; + esac + + func_quote_portable_old_IFS=$IFS + for _G_char in '\' '`' '"' '$' + do + # STATE($1) PREV($2) SEPARATOR($3) + set start "" "" + func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy + IFS=$_G_char + for _G_part in $func_quote_portable_result + do + case $1 in + quote) + func_append func_quote_portable_result "$3$2" + set quote "$_G_part" "\\$_G_char" + ;; + start) + set first "" "" + func_quote_portable_result= + ;; + first) + set quote "$_G_part" "" + ;; + esac + done + done + IFS=$func_quote_portable_old_IFS + ;; + *) ;; + esac + break + done + + func_quote_portable_unquoted_result=$func_quote_portable_result + case $func_quote_portable_result in + # double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # many bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_portable_result=\"$func_quote_portable_result\" + ;; + esac +} + + +# func_quotefast_eval ARG +# ----------------------- +# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', +# but optimized for speed. Result is stored in $func_quotefast_eval. +if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then + printf -v _GL_test_printf_tilde %q '~' + if test '\~' = "$_GL_test_printf_tilde"; then + func_quotefast_eval () + { + printf -v func_quotefast_eval_result %q "$1" + } + else + # Broken older Bash implementations. Make those faster too if possible. + func_quotefast_eval () + { + case $1 in + '~'*) + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + ;; + *) + printf -v func_quotefast_eval_result %q "$1" + ;; + esac + } + fi +else + func_quotefast_eval () + { + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + } +fi + + +# func_quote_arg MODEs ARG +# ------------------------ +# Quote one ARG to be evaled later. MODEs argument may contain zero or more +# specifiers listed below separated by ',' character. This function returns two +# values: +# i) func_quote_arg_result +# double-quoted (when needed), suitable for a subsequent eval +# ii) func_quote_arg_unquoted_result +# has all characters that are still active within double +# quotes backslashified. Available only if 'unquoted' is specified. +# +# Available modes: +# ---------------- +# 'eval' (default) +# - escape shell special characters +# 'expand' +# - the same as 'eval'; but do not quote variable references +# 'pretty' +# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might +# be used later in func_quote to get output like: 'echo "a b"' instead +# of 'echo a\ b'. This is slower than default on some shells. +# 'unquoted' +# - produce also $func_quote_arg_unquoted_result which does not contain +# wrapping double-quotes. +# +# Examples for 'func_quote_arg pretty,unquoted string': +# +# string | *_result | *_unquoted_result +# ------------+-----------------------+------------------- +# " | \" | \" +# a b | "a b" | a b +# "a b" | "\"a b\"" | \"a b\" +# * | "*" | * +# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" +# +# Examples for 'func_quote_arg pretty,unquoted,expand string': +# +# string | *_result | *_unquoted_result +# --------------+---------------------+-------------------- +# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" +func_quote_arg () +{ + _G_quote_expand=false + case ,$1, in + *,expand,*) + _G_quote_expand=: + ;; + esac + + case ,$1, in + *,pretty,*|*,expand,*|*,unquoted,*) + func_quote_portable $_G_quote_expand "$2" + func_quote_arg_result=$func_quote_portable_result + func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result + ;; + *) + # Faster quote-for-eval for some shells. + func_quotefast_eval "$2" + func_quote_arg_result=$func_quotefast_eval_result + ;; + esac +} + + +# func_quote MODEs ARGs... +# ------------------------ +# Quote all ARGs to be evaled later and join them into single command. See +# func_quote_arg's description for more info. +func_quote () +{ + $debug_cmd + _G_func_quote_mode=$1 ; shift + func_quote_result= + while test 0 -lt $#; do + func_quote_arg "$_G_func_quote_mode" "$1" + if test -n "$func_quote_result"; then + func_append func_quote_result " $func_quote_arg_result" + else + func_append func_quote_result "$func_quote_arg_result" + fi + shift + done +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_arg pretty,expand "$_G_cmd" + eval "func_notquiet $func_quote_arg_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_arg expand,pretty "$_G_cmd" + eval "func_echo $func_quote_arg_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2010-2019 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. + +# Please report bugs or propose patches to: +# + +# Set a version string for this script. +scriptversion=2019-02-19.15; # UTC + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# Copyright'. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug in processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# in the main code. A hook is just a list of function names that can be +# run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of hook functions to be called by +# FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_propagate_result FUNC_NAME_A FUNC_NAME_B +# --------------------------------------------- +# If the *_result variable of FUNC_NAME_A _is set_, assign its value to +# *_result variable of FUNC_NAME_B. +func_propagate_result () +{ + $debug_cmd + + func_propagate_result_result=: + if eval "test \"\${${1}_result+set}\" = set" + then + eval "${2}_result=\$${1}_result" + else + func_propagate_result_result=false + fi +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It's assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook functions." ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + func_unset "${_G_hook}_result" + eval $_G_hook '${1+"$@"}' + func_propagate_result $_G_hook func_run_hooks + if $func_propagate_result_result; then + eval set dummy "$func_run_hooks_result"; shift + fi + done +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list from your hook function. You may remove +# or edit any options that you action, and then pass back the remaining +# unprocessed options in '_result', escaped +# suitably for 'eval'. +# +# The '_result' variable is automatically unset +# before your hook gets called; for best performance, only set the +# *_result variable when necessary (i.e. don't call the 'func_quote' +# function unnecessarily because it can be an expensive operation on some +# machines). +# +# Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# # No change in '$@' (ignored completely by this hook). Leave +# # my_options_prep_result variable intact. +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# args_changed=false +# +# # Note that, for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: +# args_changed=: +# ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# args_changed=: +# ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@" in case we need it later, +# # if $args_changed was set to 'true'. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; +# esac +# done +# +# # Only call 'func_quote' here if we processed at least one argument. +# if $args_changed; then +# func_quote eval ${1+"$@"} +# my_silent_option_result=$func_quote_result +# fi +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll also need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options_finish [ARG]... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + func_run_hooks func_options ${1+"$@"} + func_propagate_result func_run_hooks func_options_finish +} + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + _G_options_quoted=false + + for my_func in options_prep parse_options validate_options options_finish + do + func_unset func_${my_func}_result + func_unset func_run_hooks_result + eval func_$my_func '${1+"$@"}' + func_propagate_result func_$my_func func_options + if $func_propagate_result_result; then + eval set dummy "$func_options_result"; shift + _G_options_quoted=: + fi + done + + $_G_options_quoted || { + # As we (func_options) are top-level options-parser function and + # nobody quoted "$@" for us yet, we need to do it explicitly for + # caller. + func_quote eval ${1+"$@"} + func_options_result=$func_quote_result + } +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propagate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + func_propagate_result func_run_hooks func_options_prep +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + _G_parse_options_requote=false + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + func_propagate_result func_run_hooks func_parse_options + if $func_propagate_result_result; then + eval set dummy "$func_parse_options_result"; shift + # Even though we may have changed "$@", we passed the "$@" array + # down into the hook and it quoted it for us (because we are in + # this if-branch). No need to quote it again. + _G_parse_options_requote=false + fi + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + # We expect that one of the options parsed in this function matches + # and thus we remove _G_opt from "$@" and need to re-quote. + _G_match_parse_options=: + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" >&2 + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + if test $# = 0 && func_missing_arg $_G_opt; then + _G_parse_options_requote=: + break + fi + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) _G_parse_options_requote=: ; break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift + _G_match_parse_options=false + break + ;; + esac + + if $_G_match_parse_options; then + _G_parse_options_requote=: + fi + done + + if $_G_parse_options_requote; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + func_parse_options_result=$func_quote_result + fi +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + func_propagate_result func_run_hooks func_validate_options + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables +# after splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + if test "x$func_split_equals_lhs" = "x$1"; then + func_split_equals_rhs= + fi + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +# The version message is extracted from the calling file's header +# comments, with leading '# ' stripped: +# 1. First display the progname and version +# 2. Followed by the header comment line matching /^# Written by / +# 3. Then a blank line followed by the first following line matching +# /^# Copyright / +# 4. Immediately followed by any lines between the previous matches, +# except lines preceding the intervening completely blank line. +# For example, see the header comments of this file. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /^# Written by /!b + s|^# ||; p; n + + :fwd2blnk + /./ { + n + b fwd2blnk + } + p; n + + :holdwrnt + s|^# || + s|^# *$|| + /^Copyright /!{ + /./H + n + b holdwrnt + } + + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + G + s|\(\n\)\n*|\1|g + p; q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Extract macro arguments from autotools input with GNU M4. +# Written by Gary V. Vaughan, 2010 +# +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2010-2019 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. + +# Please report bugs or propose patches to: +# + +# Make sure we've evaluated scripts we depend on. +test -z "$progpath" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/funclib.sh +test extract-trace = "$progname" && . `echo "$0" |${SED-sed} 's|[^/]*$||'`/options-parser + +# Set a version string. +scriptversion=2019-02-19.15; # UTC + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './extract-trace --help' for help with using this script from the +# command line. +# +# Or source first 'options-parser' and then this file into your own +# scripts in order to make use of the function and variable framework +# they define, and also to avoid the overhead of forking to run this +# script in its own process on every call. + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of +# 'extract-trace'. + + +# func_autoconf_configure MAYBE-CONFIGURE-FILE +# -------------------------------------------- +# Ensure that MAYBE-CONFIGURE-FILE is the name of a file in the current +# directory that contains an uncommented call to AC_INIT. +func_autoconf_configure () +{ + $debug_cmd + + _G_sed_no_comment=' + s|#.*$|| + s|^dnl .*$|| + s| dnl .*$||' + _G_ac_init= + + # If we were passed a genuine file, make sure it calls AC_INIT. + test -f "$1" \ + && _G_ac_init=`$SED "$_G_sed_no_comment" "$1" |$GREP AC_INIT` + + # Otherwise it is not a genuine Autoconf input file. + test -n "$_G_ac_init" + _G_status=$? + + test 0 -ne "$_G_status" \ + && func_verbose "'$1' not using Autoconf" + + (exit $_G_status) +} + + +# func_tool_version_output CMD [FATAL-ERROR-MSG] +# ---------------------------------------------- +# Attempt to run 'CMD --version', discarding errors. The output can be +# ignored by redirecting stdout, and this function used simply to test +# whether the command exists and exits normally when passed a +# '--version' argument. +# When FATAL-ERROR-MSG is given, then this function will display the +# message and exit if running 'CMD --version' returns a non-zero exit +# status. +func_tool_version_output () +{ + $debug_cmd + + _G_cmd=$1 + _G_fatal_error_msg=$2 + + # Some tools, like 'git2cl' produce thousands of lines of output + # unless stdin is /dev/null - in that case we want to return + # successfully without saving all of that output. Other tools, + # such as 'help2man' exit with a non-zero status when stdin comes + # from /dev/null, so we re-execute without /dev/null if that + # happens. This means that occasionally, the output from both calls + # ends up in the result, but the alternative would be to discard the + # output from one call, and hope the other produces something useful. + { $_G_cmd --version /dev/null + _G_status=$? + + test 0 -ne "$_G_status" && test -n "$_G_fatal_error_msg" \ + && func_fatal_error "$_G_fatal_error_msg" + + (exit $_G_status) +} + + +# func_tool_version_number CMD [FATAL-ERROR-MSG] +# ---------------------------------------------- +# Pass arguments to func_tool_version_output, but set +# $func_tool_version_number_result to the last dot delimited digit string +# on the first line of output. +func_tool_version_number () +{ + $debug_cmd + + _G_verout=`func_tool_version_output "$@"` + _G_status=$? + + # A version number starts with a digit following a space on the first + # line of output from `--version`. + _G_verout=`echo "$_G_verout" |sed 1q` + if test -n "$_G_verout"; then + _G_vernum=`expr "$_G_verout" : '.* \([0-9][^ ]*\)'` + fi + + if test -n "$_G_vernum"; then + printf '%s\n' "$_G_vernum" + else + printf '%s\n' "$_G_verout" + fi + + (exit $_G_status) +} + + +# func_find_tool ENVVAR NAMES... +# ------------------------------ +# Search for a required program. Use the value of ENVVAR, if set, +# otherwise find the first of the NAMES that can be run (i.e., +# supports --version). If found, set ENVVAR to the program name, +# die otherwise. +func_find_tool () +{ + $debug_cmd + + _G_find_tool_envvar=$1 + shift + _G_find_tool_names=$@ + eval "_G_find_tool_res=\$$_G_find_tool_envvar" + if test -n "$_G_find_tool_res"; then + _G_find_tool_error_prefix="\$$find_tool_envvar: " + else + _G_find_tool_res= + _G_bestver= + for _G_prog + do + _G_find_tool_save_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for _G_dir in $PATH; do + IFS=$_G_find_tool_save_IFS + _G_progpath=$_G_dir/$_G_prog + test -r "$_G_progpath" && { + _G_curver=`func_tool_version_number $_G_progpath` + case $_G_bestver,$_G_curver in + ,) + # first non--version responsive prog sticks! + test -n "$_G_progpath" || _G_find_tool_res=$_G_progpath + ;; + ,*) + # first --version responsive prog beats non--version responsive! + _G_find_tool_res=$_G_progpath + _G_bestver=$_G_curver + ;; + *,*) + # another --version responsive prog must be newer to beat previous one! + test "x$_G_curver" = "x$_G_bestver" \ + || func_lt_ver "$_G_curver" "$_G_bestver" \ + || { + _G_find_tool_res=$_G_progpath + _G_bestver=$_G_curver + } + ;; + esac + } + done + IFS=$_G_find_tool_save_IFS + done + fi + if test -n "$_G_find_tool_res"; then + func_tool_version_number >/dev/null $_G_find_tool_res "\ +${_G_find_tool_error_prefix}Cannot run '$_G_find_tool_res --version'" + + # Make sure the result is exported to the environment for children + # to use. + eval "$_G_find_tool_envvar=\$_G_find_tool_res" + eval "export $_G_find_tool_envvar" + else + func_error "\ +One of these is required: + $_G_find_tool_names" + fi +} + + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Where a variable already has a non- +# empty value (as set by the package's 'bootstrap.conf'), that value is +# used in preference to deriving the default. Call them using their +# associated 'require_*' variable to ensure that they are executed, at +# most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_configure_ac +# -------------------- +# Ensure that there is a 'configure.ac' or 'configure.in' file in the +# current directory that contains an uncommented call to AC_INIT, and +# that '$configure_ac' contains its name. +require_configure_ac=func_require_configure_ac +func_require_configure_ac () +{ + $debug_cmd + + test -z "$configure_ac" \ + && func_autoconf_configure configure.ac && configure_ac=configure.ac + test -z "$configure_ac" \ + && func_autoconf_configure configure.in && configure_ac=configure.in + test -z "$configure_ac" \ + || func_verbose "found '$configure_ac'" + + require_configure_ac=: +} + + +# require_gnu_m4 +# -------------- +# Search for GNU M4, and export it in $M4. +require_gnu_m4=func_require_gnu_m4 +func_require_gnu_m4 () +{ + $debug_cmd + + test -n "$M4" || { + # Find the first m4 binary that responds to --version. + func_find_tool M4 gm4 gnum4 m4 + } + + test -n "$M4" || func_fatal_error "\ +Please install GNU M4, or 'export M4=/path/to/gnu/m4'." + + func_verbose "export M4='$M4'" + + # Make sure the search result is visible to subshells + export M4 + + require_gnu_m4=: +} + + +## --------------- ## +## Core functions. ## +## --------------- ## + +# This section contains the high level functions used when calling this +# file as a script. 'func_extract_trace' is probably the only one that you +# won't want to replace if you source this file into your own script. + + +# func_extract_trace MACRO_NAMES [FILENAME]... +# -------------------------------------------- +# set '$func_extract_trace_result' to a colon delimited list of arguments +# to any of the comma separated list of MACRO_NAMES in FILENAME. If no +# FILENAME is given, then '$configure_ac' is assumed. +func_extract_trace () +{ + $debug_cmd + + $require_configure_ac + $require_gnu_m4 + + _G_m4_traces=`$ECHO "--trace=$1" |$SED 's%,% --trace=%g'` + _G_re_macros=`$ECHO "($1)" |$SED 's%,%|%g'` + _G_macros="$1"; shift + test $# -gt 0 || { + set dummy $configure_ac + shift + } + + # Generate an error if the first file is missing + <"$1" + + # Sadly, we can't use 'autom4te' tracing to extract macro arguments, + # because it complains about things we want to ignore at bootstrap + # time - like missing m4_include files; AC_PREREQ being newer than + # the installed autoconf; and returns nothing when tracing + # 'AM_INIT_AUTOMAKE' when aclocal hasn't been generated yet. + # + # The following tries to emulate a less persnickety version of (and + # due to not having to wait for Perl startup on every invocation, + # it's probably faster too): + # + # autom4te --language=Autoconf --trace=$my_macro:\$% "$@" + # + # First we give a minimal set of macro declarations to M4 to prime + # it for reading Autoconf macros, while still providing some of the + # functionality generally used at m4-time to supply dynamic + # arguments to Autocof functions, but without following + # 'm4_s?include' files. + _G_mini=' + dnl Initialisation. + m4_changequote([,]) + m4_define([m4_copy], [m4_define([$2], m4_defn([$1]))]) + m4_define([m4_rename], [m4_copy([$1], [$2])m4_undefine([$1])]) + + dnl Replace macros which may abort m4 with a no-op variant. + m4_pushdef([m4_assert]) + m4_pushdef([m4_exit]) + m4_pushdef([m4_fatal]) + m4_pushdef([m4_m4exit]) + + dnl Replace macros that might break stderr of m4. + m4_pushdef([m4_errprint]) + m4_pushdef([m4_errprintn]) + m4_pushdef([m4_include]) + m4_pushdef([m4_warn]) + + dnl Avoid side-effects of tracing by extract-trace. + m4_pushdef([m4_maketemp]) + m4_pushdef([m4_mkstemp]) + + dnl TODO: reasons for this + m4_pushdef([m4_dnl]) + m4_pushdef([m4_m4wrap]) + + dnl Copy and rename macros not handled by "m4 --prefix". + m4_define([dnl], [m4_builtin([dnl])]) + m4_copy([m4_define], [m4_defun]) + m4_rename([m4_ifelse], [m4_if]) + m4_rename([m4_patsubst], [m4_bpatsubst]) + m4_rename([m4_regexp], [m4_bregexp]) + + dnl "m4sugar.mini" - useful m4-time macros for dynamic arguments. + dnl If we discover packages that need more m4 macros defined in + dnl order to bootstrap correctly, add them here: + m4_define([m4_bmatch], + [m4_if([$#], 0, [], [$#], 1, [], [$#], 2, [$2], + [m4_if(m4_bregexp([$1], [$2]), -1, + [$0([$1], m4_shift3($@))], [$3])])]) + m4_define([m4_ifndef], [m4_ifdef([$1], [$3], [$2])]) + m4_define([m4_ifset], + [m4_ifdef([$1], [m4_ifval(m4_defn([$1]), [$2], [$3])], [$3])]) + m4_define([m4_require], [$1]) + m4_define([m4_shift3], [m4_shift(m4shift(m4shift($@)))]) + + dnl "autoconf.mini" - things from autoconf macros we care about. + m4_copy([m4_defun], [AC_DEFUN]) + + dnl Dummy definitions for the macros we want to trace. + dnl AM_INIT_AUTOMAKE at least produces no trace without this. + ' + + _G_save=$IFS + IFS=, + for _G_macro in $_G_macros; do + IFS=$_G_save + func_append _G_mini "AC_DEFUN([$_G_macro])$nl" + done + IFS=$_G_save + + # We discard M4's stdout, but the M4 trace output from reading our + # "autoconf.mini" followed by any other files passed to this + # function is then scanned by sed to transform it into a colon + # delimited argument list assigned to a shell variable. + _G_transform='s|#.*$||; s|^dnl .*$||; s| dnl .*$||;' + + # Unfortunately, alternation in regexp addresses doesn't work in at + # least BSD (and hence Mac OS X) sed, so we have to append a capture + # and print block for each traced macro to the sed transform script. + _G_save=$IFS + IFS=, + for _G_macro in $_G_macros; do + IFS=$_G_save + func_append _G_transform ' + /^m4trace: -1- '"$_G_macro"'/ { + s|^m4trace: -1- '"$_G_macro"'[([]*|| + s|], [[]|:|g + s|[])]*$|:| + s|\(.\):$|\1| + p + }' + done + IFS=$_G_save + + # Save the command pipeline results for further use by callers of + # this function. + func_extract_trace_result=`$ECHO "$_G_mini" \ + |$M4 -daq --prefix $_G_m4_traces - "$@" 2>&1 1>/dev/null \ + |$SED -n -e "$_G_transform"` +} + + +# func_extract_trace_first MACRO_NAMES [FILENAME]... +# -------------------------------------------------- +# Exactly like func_extract_trace, except that only the first argument +# to the first invocation of one of the comma separated MACRO_NAMES is +# returned in '$func_extract_trace_first_result'. +func_extract_trace_first () +{ + $debug_cmd + + func_extract_trace ${1+"$@"} + func_extract_trace_first_result=`$ECHO "$func_extract_trace_result" \ + |$SED -e 's|:.*$||g' -e 1q` +} + + +# func_main [ARG]... +# ------------------ +func_main () +{ + $debug_cmd + + # Configuration. + usage='$progname MACRO_NAME FILE [...]' + + long_help_message=' +The first argument to this program is the name of an autotools macro +whose arguments you want to extract by examining the files listed in the +remaining arguments using the same tool that Autoconf and Automake use, +GNU M4. + +The arguments are returned separated by colons, with each traced call +on a separate line.' + + # Option processing. + func_options "$@" + eval set dummy "$func_options_result"; shift + + # Validate remaining non-option arguments. + test $# -gt 1 \ + || func_fatal_help "not enough arguments" + + # Pass non-option arguments to extraction function. + func_extract_trace "$@" + + # Display results. + test -n "$func_extract_trace_result" \ + && $ECHO "$func_extract_trace_result" + + # The End. + exit $EXIT_SUCCESS +} + + +## --------------------------- ## +## Actually perform the trace. ## +## --------------------------- ## + +# Only call 'func_main' if this script was called directly. +test extract-trace = "$progname" && func_main "$@" + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "50/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string for *this* script. +scriptversion=2019-03-22.11; # UTC + + +## ------------------- ## +## Hookable functions. ## +## ------------------- ## + +# After 'bootstrap.conf' has been sourced, execution proceeds by calling +# 'func_bootstrap'. Wherever a function is decorated with +# 'func_hookable func_name', you will find a matching 'func_run_hooks +# func_name', which executes all functions added with 'func_add_hook +# func_name my_func'. +# +# You might notice that many of these functions begin with a series of +# '$require_foo' lines. See the docu-comments at the start of the +# 'Resource management' section for a description of what these are. + + +# func_bootstrap [ARG]... +# ----------------------- +# All the functions called inside func_bootstrap are hookable. See the +# the individual implementations for details. +func_bootstrap () +{ + $debug_cmd + + # Save the current positional parameters to prevent them being + # corrupted by calls to 'set' in 'func_init'. + func_quote eval ${1+"$@"} + _G_saved_positional_parameters=$func_quote_result + + # Initialisation. + func_init + + # Option processing. + eval func_options "$_G_saved_positional_parameters" + + # Post-option preparation. + func_prep + + # Reconfigure the package. + func_reconfigure + + # Ensure .version is up-to-date. + func_update_dotversion + + # Finalisation. + func_fini +} + + +# func_init +# --------- +# Any early initialisations can be hooked to this function. Consider +# whether you can hook onto 'func_prep' instead, because if you hook +# any slow to execute code in here, it will also add to the time before +# './bootstrap --version' can respond. +func_hookable func_init +func_init () +{ + $debug_cmd + + func_run_hooks func_init +} + + +# func_prep +# --------- +# Function to perform preparation for remaining bootstrap process. If +# your hooked code relies on the outcome of 'func_options' hook it here +# rather than to 'func_init'. +# +# All the functions called inside func_prep are hookable. See the +# individual implementations for details. +func_hookable func_prep +func_prep () +{ + $debug_cmd + + $require_buildtools_uptodate + $require_checkout_only_file + + $require_gnulib_merge_changelog + + # Report the results of SED and GREP searches from funclib.sh. + func_verbose "GREP='$GREP'" + func_verbose "SED='$SED'" + + # fetch update files from the translation project + func_update_translations + + func_run_hooks func_prep +} + + +# func_update_translations +# ------------------------ +# Update package po files and translations. +func_hookable func_update_translations +func_update_translations () +{ + $debug_cmd + + $opt_skip_po || { + test -d po && { + $require_package + + func_update_po_files po $package || exit $? + } + + func_run_hooks func_update_translations + } +} + + +# func_reconfigure +# ---------------- +# Reconfigure the current package by running the appropriate autotools in a +# suitable order. +func_hookable func_reconfigure +func_reconfigure () +{ + $debug_cmd + + $require_automake_options + + # Automake (without 'foreign' option) requires that NEWS & README exist. + case " $automake_options " in + " foreign ") ;; + *) + func_ensure_NEWS + func_ensure_README + ;; + esac + + # Ensure ChangeLog presence. + if test -n "$gnulib_modules"; then + func_ifcontains "$gnulib_modules" gitlog-to-changelog \ + func_ensure_changelog + else + $require_gnulib_cache + if $SED -n '/^gl_MODULES(\[/,/^])$/p' $gnulib_cache 2>/dev/null | + func_grep_q gitlog-to-changelog + then + func_ensure_changelog + fi + fi + + # Released 'autopoint' has the tendency to install macros that have + # been obsoleted in current 'gnulib', so run this before 'gnulib-tool'. + func_autopoint + + # Autoreconf runs 'aclocal' before 'libtoolize', which causes spurious + # warnings if the initial 'aclocal' is confused by the libtoolized + # (or worse: out-of-date) macro directory. + func_libtoolize + + # If you need to do anything after 'gnulib-tool' is done, but before + # 'autoreconf' runs, you don't need to override this whole function, + # because 'func_gnulib_tool' is hookable. + func_gnulib_tool + + func_autoreconf + + func_run_hooks func_reconfigure +} + + +# func_gnulib_tool +# ---------------- +# Run 'gnulib-tool' to fetch gnulib modules into the current package. +# +# It's assumed that since you are using gnulib's 'bootstrap' script, +# you're also using gnulib elsewhere in your package. If not, then +# you can replace this function in 'bootstrap.conf' with: +# +# func_gnulib_tool () { :; } +# +# (although the function returns immediately if $gnulib_tool is set to +# true in any case). +func_hookable func_gnulib_tool +func_gnulib_tool () +{ + $debug_cmd + + $require_gnulib_tool + $require_libtoolize + + test true = "$gnulib_tool" || { + $require_gnulib_git_submodules + + # bootstrap.conf written for gnulib bootstrap expects + # gnulib_tool_option_extras to which --no-changelog is appended, + # but libtool bootstrap expects you to append to gnulib_tool_options + # so that you can override the --no-changelog default: make sure we + # support both styles so users can migrate between them easily. + gnulib_tool_all_options="$gnulib_tool_options $gnulib_tool_option_extras" + + if test -n "$gnulib_modules"; then + $require_gnulib_cache + $require_gnulib_tool_base_options + + gnulib_mode=--import + + # Try not to pick up any stale values from 'gnulib-cache.m4'. + rm -f "$gnulib_cache" + + test -n "$gnulib_tool_base_options" \ + && func_append_uniq gnulib_tool_all_options " $gnulib_tool_base_options" + test -n "$gnulib_mk" \ + && func_append_uniq gnulib_tool_all_options " --makefile-name=$gnulib_mk" + test -n "$tests_base" && { + func_append_uniq gnulib_tool_all_options " --tests-base=$tests_base" + func_append_uniq gnulib_tool_all_options " --with-tests" + } + else + + # 'gnulib_modules' and others are cached in 'gnulib-cache.m4': + # Use 'gnulib --update' to fetch gnulib modules. + gnulib_mode=--update + fi + + # Add a sensible default libtool option to gnulib_tool_options. + # The embedded echo is to squash whitespace before globbing. + case `echo " "$gnulib_tool_all_options" "` in + *" --no-libtool "*|*" --libtool "*) ;; + *) if test true = "$LIBTOOLIZE"; then + func_append_uniq gnulib_tool_all_options " --no-libtool" + else + func_append_uniq gnulib_tool_all_options " --libtool" + fi + ;; + esac + + $opt_copy || func_append_uniq gnulib_tool_all_options " --symlink" + + func_append_uniq gnulib_tool_all_options " $gnulib_mode" + func_append gnulib_tool_all_options " $gnulib_modules" + + # The embedded echo is to squash whitespace before display. + gnulib_cmd=`echo $gnulib_tool $gnulib_tool_all_options` + + func_show_eval "$gnulib_cmd" 'exit $?' + + # Use 'gnulib-tool --copy-file' to install non-module files. + func_install_gnulib_non_module_files + } + + func_run_hooks func_gnulib_tool +} + + +# func_fini +# --------- +# Function to perform all finalisation for the bootstrap process. +func_hookable func_fini +func_fini () +{ + $debug_cmd + + func_gettext_configuration + func_clean_dangling_symlinks + func_clean_unused_macros + func_skip_po_recommendation + + func_run_hooks func_fini + + $require_bootstrap_uptodate + + func_echo "Done. Now you can run './configure'." +} + + +# func_gettext_configuration +# -------------------------- +# Edit configuration values into po/Makevars. +func_hookable func_gettext_configuration +func_gettext_configuration () +{ + $debug_cmd + + $require_autopoint + + test true = "$AUTOPOINT" || { + $require_copyright_holder + $require_extra_locale_categories + $require_package_bugreport + + # Escape xgettext options for sed Makevars generation below. + # We have to delete blank lines in a separate script so that we don't + # append \\\ to the penultimate line, and then delete the last empty + # line, which messes up the variable substitution later in this + # function. Note that adding a literal \\\ requires double escaping + # here, once for the execution subshell, and again for the assignment, + # which is why there are actually 12 (!!) backslashes in the script. + _G_xgettext_options=`echo "$xgettext_options$nl" |$SED '/^$/d' |$SED ' + $b + s|$| \\\\\\\\\\\\|'` + + # Create gettext configuration. + func_echo "Creating po/Makevars from po/Makevars.template ..." + $RM -f po/Makevars + $SED ' + /^EXTRA_LOCALE_CATEGORIES *=/s|=.*|= '"$extra_locale_categories"'| + /^COPYRIGHT_HOLDER *=/s|=.*|= '"$copyright_holder"'| + /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$package_bugreport"'| + /^XGETTEXT_OPTIONS *=/{ + s|$| \\| + a\ + '"$_G_xgettext_options"' \\\ + $${end_of_xgettext_options+} + } + s/ *$// + ' po/Makevars.template >po/Makevars || exit 1 + } + + func_run_hooks func_gettext_configuration +} + + + +## --------------- ## +## Core functions. ## +## --------------- ## + +# This section contains the main functions called from the 'Hookable +# functions' (shown above), and are the ones you're most likely +# to want to replace with your own implementations in 'bootstrap.conf'. + + +# func_autopoint +# -------------- +# If this package uses gettext, then run 'autopoint'. +func_autopoint () +{ + $debug_cmd + + $require_autopoint + + test true = "$AUTOPOINT" \ + || func_show_eval "$AUTOPOINT --force" 'exit $?' +} + + +# func_libtoolize +# --------------- +# If this package uses libtool, then run 'libtoolize'. +func_libtoolize () +{ + $debug_cmd + + $require_libtoolize + + test true = "$LIBTOOLIZE" || { + _G_libtoolize_options= + $opt_copy && func_append _G_libtoolize_options " --copy" + $opt_force && func_append _G_libtoolize_options " --force" + $opt_verbose || func_append _G_libtoolize_options " --quiet" + func_show_eval "$LIBTOOLIZE$_G_libtoolize_options" 'exit $?' + } +} + + +# func_gnulib_tool_copy_file SRC DEST +# ----------------------------------- +# Copy SRC, a path relative to the gnulib sub-tree, to DEST, a path +# relative to the top-level source directory using gnulib-tool so that +# any patches or replacements in $local_gl_path are applied. +func_gnulib_tool_copy_file () +{ + $debug_cmd + + $require_gnulib_tool + $require_patch + + if test true = "$gnulib_tool"; then + # If gnulib-tool is not available (e.g. bootstrapping in a + # distribution tarball), make sure that at least we have some + # version of the required file already in place. + test -f "$2" || func_fatal_error "\ +Can't find, copy or download '$2', a required +gnulib supplied file, please provide the location of a +complete 'gnulib' tree by setting 'gnulib_path' in your +'bootstrap.conf' or with the '--gnulib-srcdir' option - +or else specify the location of your 'git' binary by +setting 'GIT' in the environment so that a fresh +'gnulib' submodule can be cloned." + else + $require_gnulib_copy_cmd + + $gnulib_copy_cmd $1 $2 2>/dev/null || { + $require_gnulib_path + + func_error "'$gnulib_path/$1' does not exist" + return 1 + } + fi +} + + +# func_install_gnulib_non_module_files +# ------------------------------------ +# Get additional non-module files from gnulib, overriding existing files. +func_install_gnulib_non_module_files () +{ + $debug_cmd + + $require_build_aux + $require_gnulib_tool + + test -n "$gnulib_non_module_files" && { + maybe_exit_cmd=: + + for file in $gnulib_non_module_files; do + case $file in + */COPYING*) dest=COPYING;; + */INSTALL) dest=INSTALL;; + build-aux/missing) dest= + func_warning settings "\ +Please remove build-aux/missing from gnulib_module_files in +'bootstrap.conf', as it may clash with Automake's version." + ;; + build-aux/*) dest=$build_aux/`expr "$file" : 'build-aux/\(.*\)'`;; + *) dest=$file;; + esac + + # Be sure to show all copying errors before bailing out + test -z "$dest" \ + || func_gnulib_tool_copy_file "$file" "$dest" \ + || maybe_exit_cmd="exit $EXIT_FAILURE" + done + + $maybe_exit_cmd + } +} + + +# func_ensure_changelog +# --------------------- +# Even with 'gitlog-to-changelog' generated ChangeLogs, automake +# will not run to completion with no ChangeLog file. +func_ensure_changelog () +{ + $debug_cmd + + test -f ChangeLog && mv -f ChangeLog ChangeLog~ + + cat >ChangeLog <<'EOT' +## ---------------------- ## +## DO NOT EDIT THIS FILE! ## +## ---------------------- ## + +ChangeLog is generated by gitlog-to-changelog. +EOT + + _G_message="creating dummy 'ChangeLog'" + test -f ChangeLog~ \ + && func_append _G_message ' (backup in ChangeLog~)' + func_verbose "$_G_message" + + return 0 +} + + +# func_ensure_NEWS +# ---------------- +# Without AM_INIT_AUTOMAKE([foreign]), automake will not run to +# completion with no NEWS file, even though NEWS.md or NEWS.txt +# is often preferable. +func_ensure_NEWS () +{ + $debug_cmd + + test -f NEWS || { + _G_NEWS= + for _G_news in NEWS.txt NEWS.md NEWS.rst; do + test -f "$_G_news" && break + done + + test -f "$_G_news" && $LN_S $_G_news NEWS + func_verbose "$LN_S $_G_news NEWS" + } + + return 0 +} + + +# func_ensure_README +# ------------------ +# Without AM_INIT_AUTOMAKE([foreign]), automake will not run to +# completion with no README file, even though README.md or README.txt +# is often preferable. +func_ensure_README () +{ + $debug_cmd + + test -f README || { + _G_README= + for _G_readme in README.txt README.md README.rst; do + test -f "$_G_readme" && break + done + + test -f "$_G_readme" && $LN_S $_G_readme README + func_verbose "$LN_S $_G_readme README" + } + + return 0 +} + + +# func_autoreconf [SUBDIR] +# ------------------------ +# Being careful not to re-run 'autopoint' or 'libtoolize', and not to +# try to run 'autopoint', 'libtoolize' or 'autoheader' on packages that +# don't use them, defer to 'autoreconf' for execution of the remaining +# autotools to bootstrap this package. +# +# Projects with multiple trees to reconfigure can hook another call to +# this function onto func_reconfigure: +# +# my_autoreconf_foo () +# { +# func_autoreconf foo +# } +# func_add_hook func_reconfigure my_autoreconf_foo +func_autoreconf () +{ + $debug_cmd + + $require_autoheader + $require_build_aux # automake and others put files in here + $require_macro_dir # aclocal and others put files in here + + # We ran these manually already, and autoreconf won't exec ':' + save_AUTOPOINT=$AUTOPOINT; AUTOPOINT=true + save_LIBTOOLIZE=$LIBTOOLIZE; LIBTOOLIZE=true + + _G_autoreconf_options= + $opt_copy || func_append _G_autoreconf_options " --symlink" + $opt_force && func_append _G_autoreconf_options " --force" + $opt_verbose && func_append _G_autoreconf_options " --verbose" + func_show_eval "$AUTORECONF$_G_autoreconf_options --install${1+ $1}" 'exit $?' + + AUTOPOINT=$save_AUTOPOINT + LIBTOOLIZE=$save_LIBTOOLIZE +} + + +# func_check_configuration VARNAME [CONFIGURE_MACRO] +# -------------------------------------------------- +# Exit with a suitable diagnostic for an important configuration change +# that needs to be made before bootstrap can run correctly. +func_check_configuration () +{ + $debug_cmd + + $require_configure_ac + + eval 'test -n "$'$1'"' || { + _G_error_msg="please set '$1' in 'bootstrap.conf'" + if test -n "$configure_ac" && test -n "$2"; then + func_append _G_error_msg " +or add the following (or similar) to your '$configure_ac': +$2" + fi + + func_fatal_error "$_G_error_msg" + } +} + + +# func_clean_dangling_symlinks +# ---------------------------- +# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some +# gnulib-populated directories. Such .m4 files would cause aclocal to +# fail. The following requires GNU find 4.2.3 or newer. Considering +# the usual portability constraints of this script, that may seem a very +# demanding requirement, but it should be ok. Ignore any failure, +# which is fine, since this is only a convenience to help developers +# avoid the relatively unusual case where a symlinked-to .m4 file is +# git-removed from gnulib between successive runs of this script. +func_clean_dangling_symlinks () +{ + $debug_cmd + + $require_macro_dir + $require_source_base + + func_verbose "cleaning dangling symlinks" + + find "$macro_dir" "$source_base" \ + -depth \( -name '*.m4' -o -name '*.[ch]' \) \ + -type l -xtype l -delete > /dev/null 2>&1 +} + + +# func_clean_unused_macros +# ------------------------ +# Autopoint can result in over-zealously adding macros into $macro_dir +# even though they are not actually used, for example tests to help +# build the 'intl' directory even though you have specified +# 'AM_GNU_GETTEXT([external])' in your configure.ac. This function +# looks removes any macro files that can be found in gnulib, but +# are not 'm4_include'd by 'aclocal.m4'. +func_clean_unused_macros () +{ + $debug_cmd + + $require_gnulib_path + $require_macro_dir + + test -n "$gnulib_path" && test -f aclocal.m4 && { + aclocal_m4s=`find . -name aclocal.m4 -print` + + # We use 'ls|grep' instead of 'ls *.m4' to avoid exceeding + # command line length limits in some shells. + for file in `cd "$macro_dir" && ls -1 |$GREP '\.m4$'`; do + + # Remove a macro file when aclocal.m4 does not m4_include it... + func_grep_q 'm4_include([[]'$macro_dir/$file'])' $aclocal_m4s \ + || test ! -f "$gnulib_path/m4/$file" || { + + # ...and there is an identical file in gnulib... + if func_cmp_s "$gnulib_path/m4/$file" "$macro_dir/$file"; then + + # ...and it's not in the precious list ('echo' is needed + # here to squash whitespace for the match expression). + case " "`echo $gnulib_precious`" " in + *" $file "*) ;; + *) rm -f "$macro_dir/$file" + func_verbose \ + "removing unused gnulib file '$macro_dir/$file'" + esac + fi + } + done + } +} + + +# func_skip_po_recommendation +# --------------------------- +# If there is a po directory, and '--skip-po' wasn't passed, let the +# user know that they can use '--skip-po' on subsequent invocations. +func_skip_po_recommendation () +{ + $debug_cmd + + test ! -d po \ + || $opt_skip_po \ + || func_warning recommend "\ +If your pofiles are up-to-date, you can rerun bootstrap +as '$progname --skip-po' to avoid redownloading." +} + + +# func_update_dotversion +# ---------------------- +# Even with 'gitlog-to-changelog' generated ChangeLogs, automake +# will not run to completion with no ChangeLog file. +func_update_dotversion () +{ + $debug_cmd + + test -f "$build_aux/git-version-gen" && { + _G_message="updating .version" + test -f .version && { + mv .version .version~ + func_append _G_message " (backup in .version~)" + } + func_verbose "updating .version" + + $build_aux/git-version-gen dummy-arg > .version + } +} + + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Where a variable already has a non- +# empty value (as set by the package's 'bootstrap.conf'), that value is +# used in preference to deriving the default. Call them using their +# associated 'require_*' variable to ensure that they are executed, at +# most, once. + + +# require_gnulib_git_submodules +# ----------------------------- +# Initialize all git modules from $gnulib_git_submodules before we +# run 'gnulib-tool'. +require_gnulib_git_submodules=func_require_gnulib_git_submodules +func_require_gnulib_git_submodules () +{ + test -n "$gnulib_git_submodules" && { + for _G_submodule in $gnulib_git_submodules + do + func_show_eval "git submodule init -- $_G_submodule" \ + && func_show_eval "git submodule update -- $_G_submodule" \ + || func_fatal_error "Unable to init git module '$_G_submodule'." + done + } + + require_gnulib_git_submodules=: +} + + +# require_checkout_only_file +# -------------------------- +# Bail out if this package only bootstraps properly from a repository +# checkout. +require_checkout_only_file=func_require_checkout_only_file +func_require_checkout_only_file () +{ + $debug_cmd + + $opt_force || { + test -n "$checkout_only_file" && test ! -f "$checkout_only_file" \ + && func_fatal_error "\ +Bootstrapping from a non-checked-out distribution is risky. +If you wish to bootstrap anyway, use the '--force' option." + } + + require_checkout_only_file=: +} + + +# require_aclocal_amflags +# ----------------------- +# Ensure '$aclocal_amflags' has a sensible default, extracted from +# 'Makefile.am' if necessary. +require_aclocal_amflags=func_require_aclocal_amflags +func_require_aclocal_amflags () +{ + $debug_cmd + + $require_makefile_am + + _G_sed_extract_aclocal_amflags='s|#.*$|| + /^[ ]*ACLOCAL_AMFLAGS[ ]*=/ { + s|^.*=[ ]*\(.*\)|aclocal_amflags="\1"| + p + }' + + _G_aclocal_flags_cmd=`$SED -n "$_G_sed_extract_aclocal_amflags" \ + "$makefile_am"` + eval "$_G_aclocal_flags_cmd" + + func_verbose "ACLOCAL_AMFLAGS='$aclocal_amflags'" + + require_aclocal_amflags=: +} + + +# require_autoheader +# ------------------ +# Skip autoheader if it's not needed. +require_autoheader=func_require_autoheader +func_require_autoheader () +{ + $debug_cmd + + test true = "$AUTOHEADER" || { + func_extract_trace AC_CONFIG_HEADERS + test -n "$func_extract_trace_result" \ + || func_extract_trace AC_CONFIG_HEADER + + test -n "$func_extract_trace_result" || { + AUTOHEADER=true + + func_verbose "export AUTOHEADER='$AUTOHEADER'" + + # Make sure the search result is visible to subshells + export AUTOHEADER + } + } + + require_autoheader=: +} + + +# require_automake_options +# ------------------------ +# Extract options from AM_AUTOMAKE_INIT. +require_automake_options=func_require_automake_options +func_require_automake_options () +{ + $debug_cmd + + func_extract_trace AM_INIT_AUTOMAKE + automake_options=$func_extract_trace_result + + require_automake_options=: +} + + +# require_autopoint +# ----------------- +# Skip autopoint if it's not needed. +require_autopoint=func_require_autopoint +func_require_autopoint () +{ + $debug_cmd + + test true = "$AUTOPOINT" || { + func_extract_trace AM_GNU_GETTEXT_VERSION + + test -n "$func_extract_trace_result" || { + AUTOPOINT=true + + func_verbose "export AUTOPOINT='$AUTOPOINT'" + + # Make sure the search result is visible to subshells + export AUTOPOINT + } + } + + require_autopoint=: +} + + +# require_bootstrap_uptodate +# -------------------------- +# Complain if the version of bootstrap in the gnulib directory differs +# from the one we are running. +require_bootstrap_uptodate=func_require_bootstrap_uptodate +func_require_bootstrap_uptodate () +{ + $debug_cmd + + $require_build_aux + + _G_bootstrap_sources=" + $build_aux/bootstrap.in + $build_aux/extract-trace + $build_aux/funclib.sh + $build_aux/options-parser + " + + _G_missing_bootstrap_sources=false + for _G_src in $_G_bootstrap_sources; do + test -f "$_G_src" || _G_missing_bootstrap_sources=: + done + + if $_G_missing_bootstrap_sources; then + func_warning upgrade "\ +Please add bootstrap to your gnulib_modules list in +'bootstrap.conf', so that I can tell you when there are +updates available." + else + rm -f bootstrap.new + $build_aux/inline-source $build_aux/bootstrap.in > bootstrap.new + + if func_cmp_s "$progpath" bootstrap.new; then + rm -f bootstrap.new + func_verbose "bootstrap script up to date" + else + chmod 555 bootstrap.new + func_warning upgrade "\ +An updated bootstrap script has been generated for you in +'bootstrap.new'. After you've verified that you want +the changes, you can update with: + mv -f bootstrap.new $progname + ./$progname + +Or you can disable this check permanently by adding the +following to 'bootstrap.conf': + require_bootstrap_uptodate=:" + fi + fi + + require_bootstrap_uptodate=: +} + + +# require_build_aux +# ----------------- +# Ensure that '$build_aux' is set, and if it doesn't already point to an +# existing directory, create one. +require_build_aux=func_require_build_aux +func_require_build_aux () +{ + $debug_cmd + + test -n "$build_aux" || { + func_extract_trace_first AC_CONFIG_AUX_DIR + build_aux=$func_extract_trace_first_result + func_check_configuration build_aux \ + "AC_CONFIG_AUX_DIR([name of a directory for build scripts])" + + func_verbose "build_aux='$build_aux'" + } + + $require_vc_ignore_files + + # If the build_aux directory doesn't exist, create it now, and mark it + # as ignored for the VCS. + if test ! -d "$build_aux"; then + func_show_eval "mkdir '$build_aux'" + + test -n "$vc_ignore_files" \ + || func_insert_if_absent "$build_aux" $vc_ignore_files + fi + + require_build_aux=: +} + + +# require_buildreq_autobuild +# -------------------------- +# Try to find whether the bootstrap requires autobuild. +require_buildreq_autobuild=func_require_buildreq_autobuild +func_require_buildreq_autobuild () +{ + $debug_cmd + + $require_macro_dir + + test -f "$macro_dir/autobuild.m4" \ + || printf '%s\n' "$buildreq" |func_grep_q '^[ ]*autobuild' \ + || { + func_extract_trace AB_INIT + test -n "$func_extract_trace_result" && { + func_append buildreq 'autobuild - http://josefsson.org/autobuild/ +' + func_verbose "auto-adding 'autobuild' to build requirements" + } + } + + require_buildreq_autobuild=: +} + + +# require_buildreq_autoconf +# require_buildreq_autopoint +# require_buildreq_libtoolize +# --------------------------- +# Try to find the minimum compatible version of autoconf/libtool +# required to bootstrap successfully, and add it to '$buildreq'. +for tool in autoconf libtoolize autopoint; do + b=$tool + v=require_buildreq_${tool} + f=func_$v + case $tool in + autoconf) m=AC_PREREQ ;; + libtoolize) m=LT_PREREQ; b=libtool ;; + autopoint) m=AM_GNU_GETTEXT_VERSION b=gettext ;; + esac + + eval $v'='$f' + '$f' () + { + $debug_cmd + + # The following is ignored if undefined, but might be necessary + # in order for `func_find_tool` to run. + ${require_'$tool'-:} + + printf '\''%s\n'\'' "$buildreq" |func_grep_q '\''^[ ]*'$tool\'' || { + func_extract_trace '$m' + _G_version=$func_extract_trace_result + test -n "$_G_version" && { + func_append buildreq "\ + '$tool' $_G_version http://www.gnu.org/s/'$b' +" + func_verbose \ + "auto-adding '\'$tool'-$_G_version'\'' to build requirements" + } + } + + '$v'=: + } +' +done + + +# require_buildreq_automake +# ------------------------- +# Try to find the minimum compatible version of automake required to +# bootstrap successfully, and add it to '$buildreq'. +require_buildreq_automake=func_require_buildreq_automake +func_require_buildreq_automake () +{ + $debug_cmd + + # if automake is not already listed in $buildreq... + printf '%s\n' "$buildreq" |func_grep_q automake || { + func_extract_trace AM_INIT_AUTOMAKE + + # ...and AM_INIT_AUTOMAKE is declared... + test -n "$func_extract_trace_result" && { + automake_version=`$ECHO "$func_extract_trace_result" \ + |$SED -e 's|[^0-9]*||' -e 's| .*$||'` + test -n "$automake_version" || automake_version=- + + func_append buildreq "\ + automake $automake_version http://www.gnu.org/s/automake +" + func_verbose \ + "auto-adding 'automake-$automake_version' to build requirements" + } + } + + require_buildreq_automake=: +} + + +# require_buildreq_patch +# ---------------------- +# Automatically add a patch build-requirement if there are diff files +# in $local_gl_path. +require_buildreq_patch=func_require_buildreq_patch +func_require_buildreq_patch () +{ + $debug_cmd + + $require_local_gl_path + + # This ensures PATCH is set appropriately by the time + # func_check_versions enforces $buildreq. + $require_patch + + # If patch is not already listed in $buildreq... + printf '%s\n' "$buildreq" |func_grep_q '^[ ]*patch' || { + eval "set dummy $local_gl_path_quoted" ; shift + + for _G_dir + do + # The ugly find invocation is necessary to exit with non-zero + # status for old find binaries that don't support -exec fully. + if test ! -d "$_G_dir" \ + || find "$_G_dir" -name "*.diff" -exec false {} \; ; then : + else + func_append buildreq "patch - http://www.gnu.org/s/patch$nl" + break + fi + done + } + + require_buildreq_patch=: +} + + +# require_buildtools_uptodate +# --------------------------- +# Ensure all the packages listed in BUILDREQS are available on the build +# machine at the minimum versions or better. +require_buildtools_uptodate=func_require_buildtools_uptodate +func_require_buildtools_uptodate () +{ + $debug_cmd + + $require_buildreq_autobuild + $require_buildreq_autoconf + $require_buildreq_automake + $require_buildreq_libtoolize + $require_buildreq_autopoint + $require_buildreq_patch + + test -n "$buildreq" && { + _G_error_hdr= + + func_check_versions $buildreq + $func_check_versions_result || { + test -n "$buildreq_readme" \ + && test -f "$buildreq_readme" \ + && _G_error_hdr="\ +$buildreq_readme explains how to obtain these prerequisite programs: +" + func_strtable 0 11 12 36 \ + "Program" "Min_version" "Homepage" $buildreq + func_fatal_error "$_G_error_hdr$func_strtable_result" + } + } + + require_buildtools_uptodate=: +} + + +# require_copyright_holder +# ------------------------ +# Ensure there is a sensible non-empty default value in '$copyright_holder'. +require_copyright_holder=func_require_copyright_holder +func_require_copyright_holder () +{ + $debug_cmd + + test -n "$copyright_holder" || { + copyright_holder='Free Software Foundation, Inc.' + func_warning settings "\ +Please set copyright_holder explicitly in 'bootstrap.conf'; +defaulting to '$copyright_holder'." + } + + require_copyright_holder=: +} + + +# require_doc_base +# ---------------- +# Ensure doc_base has a sensible value, extracted from 'gnulib-cache.m4' +# if possible, otherwise letting 'gnulib-tool' pick a default. +require_doc_base=func_require_doc_base +func_require_doc_base () +{ + $debug_cmd + + $require_gnulib_cache + + test -f "$gnulib_cache" && test -z "$doc_base" && { + func_extract_trace_first "gl_DOC_BASE" "$gnulib_cache" + doc_base=$func_extract_trace_first_result + + test -n "$doc_base" && func_verbose "doc_base='$doc_base'" + } + + require_doc_base=: +} + + +# require_dotgitmodules +# --------------------- +# Ensure we have a '.gitmodules' file, with appropriate 'gnulib' settings. +require_dotgitmodules=func_require_dotgitmodules +func_require_dotgitmodules () +{ + $debug_cmd + + $require_git + + test true = "$GIT" || { + # A gnulib entry in .gitmodules always takes precedence. + _G_path=`$GIT config --file .gitmodules submodule.gnulib.path 2>/dev/null` + + test -n "$_G_path" || { + $require_vc_ignore_files + + func_verbose "creating '.gitmodules'" + + # If the .gitmodules file doesn't exist, create it now, and mark + # it as ignored for the VCS. + test -n "$gnulib_path" || gnulib_path=gnulib + test -n "$gnulib_url" || gnulib_url=git://git.sv.gnu.org/gnulib + + { + echo '[submodule "gnulib"]' + echo " path = $gnulib_path" + echo " url = $gnulib_url" + } >> .gitmodules + + test -n "$vc_ignore_files" \ + || func_insert_if_absent ".gitmodules" $vc_ignore_files + } + } + + require_dotgitmodules=: +} + + +# require_extra_locale_categories +# ------------------------------- +# Ensure there is a default value in '$extra_locale_categories' +require_extra_locale_categories=func_require_extra_locale_categories +func_require_extra_locale_categories () +{ + $debug_cmd + + # Defaults to empty, so run with whatever value may have been set in + # 'bootstrap.conf'. + require_extra_locale_categories=: +} + + +# require_git +# ----------- +# Ignore git if it's not available, or we're not in a git checkout tree. +require_git=func_require_git +func_require_git () +{ + $debug_cmd + + $opt_skip_git && GIT=true + + test true = "$GIT" || { + if test -d .git/.; then + ($GIT --version) >/dev/null 2>&1 || GIT=true + fi + } + + func_verbose "GIT='$GIT'" + + require_git=: +} + + +# require_gnulib_cache +# -------------------- +# Ensure there is a non-empty default for '$gnulib_cache', and that it +# names an existing file. +require_gnulib_cache=func_require_gnulib_cache +func_require_gnulib_cache () +{ + $debug_cmd + + $require_macro_dir + + test -n "$gnulib_cache" \ + || gnulib_cache=$macro_dir/gnulib-cache.m4 + + func_verbose "found '$gnulib_cache'" + + require_gnulib_cache=: +} + + +# require_gnulib_copy_cmd +# ----------------------- +# Only calculate the options for copying files with gnulib once. +require_gnulib_copy_cmd=func_require_gnulib_copy_cmd +func_require_gnulib_copy_cmd () +{ + $debug_cmd + + $require_gnulib_tool + $require_gnulib_tool_base_options + + gnulib_copy_cmd="$gnulib_tool $gnulib_tool_base_options --copy-file" + $opt_copy || func_append gnulib_copy_cmd " --symlink" + $opt_quiet || func_append gnulib_copy_cmd " --verbose" + + require_gnulib_copy_cmd=: +} + + +# require_gnulib_merge_changelog +# ------------------------------ +# See if we can use gnulib's git-merge-changelog merge driver. +require_gnulib_merge_changelog=func_require_gnulib_merge_changelog +func_require_gnulib_merge_changelog () +{ + $debug_cmd + + test -f ChangeLog && { + $require_git + + func_grep_q '^\(/\|\)ChangeLog$' .gitignore || test true = "$GIT" || { + if $GIT config merge.merge-changelog.driver >/dev/null; then + : + elif (git-merge-changelog --version) >/dev/null 2>&1; then + func_echo "initializing git-merge-changelog driver" + $GIT config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' + $GIT config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' + else + func_warning recommend \ + "Consider installing git-merge-changelog from gnulib." + fi + } + } + + require_gnulib_merge_changelog=: +} + + +# require_gnulib_mk +# ----------------- +# Ensure gnulib_mk has a sensible value, extracted from 'gnulib-cache.m4' +# if possible, otherwise letting 'gnulib-tool' pick a default. +require_gnulib_mk=func_require_gnulib_mk +func_require_gnulib_mk () +{ + $debug_cmd + + $require_gnulib_cache + + test -f "$gnulib_cache" && test -z "$gnulib_mk" && { + func_extract_trace_first "gl_MAKEFILE_NAME" "$gnulib_cache" + gnulib_mk=$func_extract_trace_first_result + + test -n "$gnulib_mk" && func_verbose "gnulib_mk='$gnulib_mk'" + } + + require_gnulib_mk=: +} + + +# require_gnulib_name +# ------------------- +# Ensure gnulib_name has a sensible value, extracted from 'gnulib-cache.m4' +# if possible, otherwise letting 'gnulib-tool' pick a default. +require_gnulib_name=func_require_gnulib_name +func_require_gnulib_name () +{ + $debug_cmd + + $require_gnulib_cache + + test -f "$gnulib_cache" && test -z "$gnulib_name" && { + func_extract_trace_first "gl_LIB" "$gnulib_cache" + gnulib_name=$func_extract_trace_first_result + + test -n "$gnulib_name" && func_verbose "gnulib_name='$gnulib_name'" + } + + require_gnulib_name=: +} + + +# require_gnulib_path +# require_gnulib_url +# ------------------- +# Ensure 'gnulib_path' and 'gnulib_url' are set. +require_gnulib_path=func_require_dotgitmodules_parameters +require_gnulib_url=func_require_dotgitmodules_parameters +func_require_dotgitmodules_parameters () +{ + $debug_cmd + + $require_git + + test true = "$GIT" && { + # If we can't find git (or if the user specified '--skip-git'), + # then use an existing gnulib directory specified with + # '--gnulib-srcdir' if possible. + test -n "$gnulib_path" \ + || test ! -x "$opt_gnulib_srcdir/gnulib-tool" \ + || gnulib_path=$opt_gnulib_srcdir + } + + + $require_dotgitmodules + + test -f .gitmodules && { + # Extract the parameters with sed, since git may be missing + test -n "$gnulib_path" \ + || gnulib_path=`$SED -e '/^.submodule "gnulib".$/,${ + /[ ]*path *= */{ + s|[ ]*||g;s|^[^=]*=||;p + } + } + d' .gitmodules |$SED 1q` + test -n "$gnulib_url" \ + || gnulib_url=`$SED -e '/^.submodule "gnulib".$/,${ + /[ ]*url *= */{ + s|[ ]*||g;s|^[^=]*=||;p + } + } + d' .gitmodules |$SED 1q` + + func_verbose "gnulib_path='$gnulib_path'" + func_verbose "gnulib_url='$gnulib_url'" + } + + require_gnulib_path=: + require_gnulib_url=: +} + + +# require_gnulib_submodule +# ------------------------ +# Ensure that there is a current gnulib submodule at '$gnulib_path'. +require_gnulib_submodule=func_require_gnulib_submodule +func_require_gnulib_submodule () +{ + $debug_cmd + + $require_git + + if test true = "$GIT"; then + func_warning recommend \ + "No 'git' found; imported gnulib modules may be outdated." + else + $require_gnulib_path + $require_gnulib_url + + if test -f .gitmodules && test -f "$gnulib_path/gnulib-tool"; then + : All present and correct. + + elif test -n "$opt_gnulib_srcdir"; then + # Older git can't clone into an empty directory. + rmdir "$gnulib_path" 2>/dev/null + func_show_eval "$GIT clone --reference '$opt_gnulib_srcdir' \ + '$gnulib_url' '$gnulib_path'" \ + || func_fatal_error "Unable to fetch gnulib submodule." + + # Without --gnulib-srcdir, and no existing checked out submodule, we + # create a new shallow clone of the remote gnulib repository. + else + trap func_cleanup_gnulib 1 2 13 15 + + shallow= + test -n "$gnulib_clone_since" && \ + $GIT clone -h 2>&1 |func_grep_q -- --shallow-since \ + && shallow="--shallow-since=$gnulib_clone_since" + + func_show_eval "$GIT clone $shallow '$gnulib_url' '$gnulib_path'" \ + func_cleanup_gnulib + + # FIXME: Solaris /bin/sh will try to execute '-' if any of + # these signals are caught after this. + trap - 1 2 13 15 + fi + + # Make sure we've checked out the correct revision of gnulib. + func_show_eval "$GIT submodule init -- $gnulib_path" \ + && func_show_eval "$GIT submodule update -- $gnulib_path" \ + || func_fatal_error "Unable to update gnulib submodule." + fi + + require_gnulib_submodule=: +} + + +# require_gnulib_tool +# ------------------- +# Ensure that '$gnulib_tool' is set, and points to an executable file, +# or else fall back to using the binary 'true' if the main gnulib +# files appear to have been imported already. +require_gnulib_tool=func_require_gnulib_tool +func_require_gnulib_tool () +{ + $debug_cmd + + test true = "$gnulib_tool" || { + $require_gnulib_submodule + $require_gnulib_path + + test -n "$gnulib_tool" \ + || gnulib_tool=$gnulib_path/gnulib-tool + + test -x "$gnulib_tool" || { + gnulib_tool=true + func_warning recommend \ + "No 'gnulib-tool' found; gnulib modules may be missing." + } + + test true = "$gnulib_tool" \ + || func_verbose "found '$gnulib_tool'" + } + + require_gnulib_tool=: +} + + +# require_gnulib_tool_base_options +# -------------------------------- +# Ensure that '$gnulib_tool_base_options' contains all the base options +# required according to user configuration from bootstrap.conf. +require_gnulib_tool_base_options=func_require_gnulib_tool_base_options +func_require_gnulib_tool_base_options () +{ + $debug_cmd + + $require_gnulib_tool + + gnulib_tool_base_options= + + test true = "$gnulib_tool" || { + # 'gnulib_modules' and others are maintained in 'bootstrap.conf': + # Use 'gnulib --import' to fetch gnulib modules. + $require_build_aux + test -n "$build_aux" \ + && func_append_uniq gnulib_tool_base_options " --aux-dir=$build_aux" + $require_macro_dir + test -n "$macro_dir" \ + && func_append_uniq gnulib_tool_base_options " --m4-base=$macro_dir" + $require_doc_base + test -n "$doc_base" \ + && func_append_uniq gnulib_tool_base_options " --doc-base=$doc_base" + $require_gnulib_name + test -n "$gnulib_name" \ + && func_append_uniq gnulib_tool_base_options " --lib=$gnulib_name" + $require_local_gl_path + test -n "$local_gl_path" && { + eval "set dummy $local_gl_path_quoted" ; shift + for _G_dir + do + func_append_uniq gnulib_tool_base_options " --local-dir=$_G_dir" + done + } + $require_source_base + test -n "$source_base" \ + && func_append_uniq gnulib_tool_base_options " --source-base=$source_base" + } + + require_gnulib_tool_base_options=: +} + + +# require_libtoolize +# ------------------ +# Skip libtoolize if it's not needed. +require_libtoolize=func_require_libtoolize +func_require_libtoolize () +{ + $debug_cmd + + # Unless we're not searching for libtool use by this package, set + # LIBTOOLIZE to true if none of 'LT_INIT', 'AC_PROG_LIBTOOL' and + # 'AM_PROG_LIBTOOL' are used in configure. + test true = "$LIBTOOLIZE" || { + func_extract_trace LT_INIT + test -n "$func_extract_trace_result" || func_extract_trace AC_PROG_LIBTOOL + test -n "$func_extract_trace_result" || func_extract_trace AM_PROG_LIBTOOL + test -n "$func_extract_trace_result" || LIBTOOLIZE=true + } + + test -n "$LIBTOOLIZE" || { + # Find libtoolize, named glibtoolize in Mac Ports, but prefer + # user-installed libtoolize to ancient glibtoolize shipped by + # Apple with Mac OS X when Mac Ports is not installed. + func_find_tool LIBTOOLIZE libtoolize glibtoolize + } + + test -n "$LIBTOOLIZE" || func_fatal_error "\ +Please install GNU Libtool, or 'export LIBTOOLIZE=/path/to/libtoolize'." + + func_verbose "export LIBTOOLIZE='$LIBTOOLIZE'" + + # Make sure the search result is visible to subshells + export LIBTOOLIZE + + require_libtoolize=: +} + + +# require_local_gl_path +# --------------------- +# Ensure local_gl_path has a sensible value, extracted from 'gnulib-cache.m4' if +# possible, otherwise letting 'gnulib-tool' pick a default. +require_local_gl_path=func_require_local_gl_path +func_require_local_gl_path () +{ + $debug_cmd + + $require_gnulib_cache + + # Compat with older bootstrap versions. + test -n "$local_gl_dir" && { + func_warning settings "\ +Please use 'local_gl_path' instead of 'local_gl_dir' in your +'bootstrap.conf' file." + local_gl_path=$local_gl_dir + local_gl_dir= + } + + test -f "$gnulib_cache" && test -z "$local_gl_path" && { + func_extract_trace_first "gl_LOCAL_DIR" "$gnulib_cache" + local_gl_path=$func_extract_trace_first_result + test -n "$local_gl_path" && func_verbose "local_gl_path='$local_gl_path'" + } + + test -z "$local_gl_path_quoted" && test -n "$local_gl_path" && { + save_IFS=$IFS + set dummy + # Don't use PATH_SEPARATOR here, gnulib must be fixed to store only ':' as + # path separator into gnulib-cache.m4 (consistency reasons among systems). + IFS=: + for _G_dir in $local_gl_path + do + set "$@" "$_G_dir" + done + shift + IFS=$save_IFS + func_quote eval "$@" + local_gl_path_quoted=$func_quote_result + } + + require_local_gl_path=: +} + + +# require_macro_dir +# ----------------- +# Ensure that '$macro_dir' is set, and if it doesn't already point to an +# existing directory, create one. +require_macro_dir=func_require_macro_dir +func_require_macro_dir () +{ + $debug_cmd + + # Sometimes this is stored in 'configure.ac'. + test -n "$macro_dir" || { + # AC_CONFIG_MACRO_DIRS takes a space delimited list of directories, + # but we only care about the first one in bootstrap. + func_extract_trace_first AC_CONFIG_MACRO_DIRS + macro_dir=`expr "x$func_extract_trace_first_result" : 'x\([^ ]*\)'` + } + test -n "$macro_dir" || { + func_extract_trace_first AC_CONFIG_MACRO_DIR + macro_dir=$func_extract_trace_first_result + } + + # Otherwise we might find it in 'Makefile.am'. + test -n "$macro_dir" || { + $require_aclocal_amflags + + # Take the argument following the first '-I', if any. + _G_minus_I_seen=false + for _G_arg in $aclocal_amflags; do + case $_G_minus_I_seen,$_G_arg in + :,*) macro_dir=$_G_arg; break ;; + *,-I) _G_minus_I_seen=: ;; + *,-I*) macro_dir=`expr x$_G_arg : 'x-I\(.*\)$'`; break ;; + esac + done + } + + func_verbose "macro_dir='$macro_dir'" + + func_check_configuration macro_dir \ + "AC_CONFIG_MACRO_DIRS([name of a directory for configure m4 files])" + + $require_vc_ignore_files + + # If the macro_dir directory doesn't exist, create it now, and mark it + # as ignored for the VCS. + if test ! -d "$macro_dir"; then + mkdir "$macro_dir" || func_permissions_error "$macro_dir" + + test -n "$vc_ignore_files" \ + || func_insert_if_absent "$macro_dir" $vc_ignore_files + fi + + require_macro_dir=: +} + + +# require_makefile_am +# ------------------- +# Ensure there is a 'Makefile.am' in the current directory. +require_makefile_am=func_require_makefile_am +func_require_makefile_am () +{ + $debug_cmd + + test -n "$makefile_am" \ + || makefile_am=Makefile.am + + <"$makefile_am" + + func_verbose "found '$makefile_am'" + + require_makefile_am=: +} + + +# require_package +# --------------- +# Ensure that '$package' contains a sensible default value. +require_package=func_require_package +func_require_package () +{ + $debug_cmd + + test -n "$package" || { + $require_package_name + + package=`echo "$package_name" \ + |$SED -e 's/GNU //' \ + -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + } + + func_verbose "package='$package'" + + require_package=: +} + + +# require_package_bugreport +# ------------------------- +# Ensure that this has a sensible value, extracted from 'configure.ac' +# if appropriate (and possible!). +require_package_bugreport=func_require_package_bugreport +func_require_package_bugreport () +{ + $debug_cmd + + func_extract_trace AC_INIT + + save_ifs=$IFS + IFS=: + set dummy $func_extract_trace_result + IFS=$save_ifs + shift + + test -n "$package_bugreport" || package_bugreport=$3 + func_check_configuration package_bugreport \ + "AC_INIT([$package_name], [$package_version], [bug-$package@gnu.org])" + func_verbose "package_bugreport='$package_bugreport'" + + require_package_bugreport=: +} + + +# require_package_name +# -------------------- +# Ensure that this has a sensible value, extracted from 'configure.ac' +# if appropriate (and possible!). +require_package_name=func_require_package_name +func_require_package_name () +{ + $debug_cmd + + func_extract_trace AC_INIT + + save_ifs=$IFS + IFS=: + set dummy $func_extract_trace_result + IFS=$save_ifs + shift + + test -n "$package_name" || package_name=$1 + func_check_configuration package_name \ + "AC_INIT([name of your package], [package version number])" + func_verbose "package_name='$package_name'" + + require_package_name=: +} + + +# require_package_version +# ----------------------- +# Ensure that this has a sensible value, extracted from 'configure.ac' +# if appropriate (and possible!). While we might have set all the +# parameters extracted from AC_INIT at once, 'package_version' in +# particular is not necessarily available as early as the others, since +# 'git-version-gen' is often involved, and until then we can't rely on +# getting a correct version number from an AC_INIT extraction. +require_package_version=func_require_package_version +func_require_package_version () +{ + $debug_cmd + + func_extract_trace AC_INIT + + save_ifs=$IFS + IFS=: + set dummy $func_extract_trace_result + IFS=$save_ifs + shift + + test -n "$package_version" || package_version=$2 + test -n "$package_version" || { + # The embedded echo is to squash whitespace before globbing. + case " "`echo $gnulib_modules`" " in + *" git-version-gen "*) + func_fatal_error "\ +cannot \$require_package_version in bootstrap.conf before +func_gnulib_tool has installed the 'git-version-gen' script." + ;; + *) + func_check_configuration package_version \ + "AC_INIT([name of your package], [package version number])" + ;; + esac + } + func_verbose "package_version='$package_version'" + + require_package_version=: +} + + +# require_patch +# ------------- +# Find patch, according to the PATCH environment variable, or else +# searching the user's PATH. +require_patch=func_require_patch +func_require_patch () +{ + $debug_cmd + + test -n "$PATCH" || { + # Find a patch program, preferring gpatch, which is usually better + # than the vendor patch. + func_find_tool PATCH gpatch patch + } + + test -n "$PATCH" || func_fatal_error "\ +Please install GNU Patch, or 'export PATCH=/path/to/gnu/patch'." + + func_verbose "export PATCH='$PATCH'" + + # Make sure the search result is visible to subshells + export PATCH + + require_patch=: +} + + +# require_source_base +# ------------------- +# Ensure that source_base has a sensible value, extracted from +# 'gnulib-cache.m4' if possible. +require_source_base=func_require_source_base +func_require_source_base () +{ + $debug_cmd + + $require_gnulib_cache + + test -f "$gnulib_cache" && test -z "$source_base" && { + func_extract_trace_first "gl_SOURCE_BASE" "$gnulib_cache" + + source_base=$func_extract_trace_first_result + + func_verbose "source_base='$source_base'" + } + + require_source_base=: +} + + +# require_vc_ignore_files +# ----------------------- +# Ensure that '$vc_ignore' has been processed to list VCS ignore files +# in '$vc_ignore_files' +require_vc_ignore_files=func_require_vc_ignore_files +func_require_vc_ignore_files () +{ + $debug_cmd + + test -n "$vc_ignore" || vc_ignore=auto + + if test auto = "$vc_ignore" && test -z "$vc_ignore_files"; then + vc_ignore_files= + test -d .git && vc_ignore_files=.gitignore + test -d CVS && vc_ignore_files="$vc_ignore_files .cvsignore" + else + vc_ignore_files=$vc_ignore + fi + + func_verbose "vc_ignore_files='$vc_ignore_files'" + + require_vc_ignore_files=: +} + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of 'bootstrap'. + +# func_len STRING +# --------------- +# STRING may not start with a hyphen. +if (eval 'x=123; test x${#x} = "x3"') 2>/dev/null +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo 0` + } +fi + + +# func_cmp_s FILE1 FILE2 +# ---------------------- +# Return non-zero exit status unless FILE1 and FILE2 are identical, without +# any output at all, even error messages. +func_cmp_s () +{ + $debug_cmd + + # This function relies on non-zero exit status, which will cause the + # program to exit when running in 'set -e' mode. + $CMP "$@" >/dev/null 2>&1 +} + + +# func_grep_q EXPRESSION [FILENAME..] +# ----------------------------------- +# Check whether EXPRESSION matches any line of any listed FILENAME, +# without any output at all, even error messages. +func_grep_q () +{ + $debug_cmd + + # This function relies on non-zero exit status, which will cause the + # program to exit when running in 'set -e' mode. + $GREP "$@" >/dev/null 2>&1 +} + + +# func_ifcontains LIST MEMBER YES-CMD [NO-CMD] +# -------------------------------------------- +# If whitespace-separated LIST contains MEMBER then execute YES-CMD, +# otherwise if NO-CMD was given, execute that. +func_ifcontains () +{ + $debug_cmd + + _G_wslist=$1 + _G_member=$2 + _G_yes_cmd=$3 + _G_no_cmd=${4-":"} + + _G_found=false + for _G_item in $_G_wslist; do + test "x$_G_item" = "x$_G_member" && { + _G_found=: + break + } + done + if $_G_found; then + eval "$_G_yes_cmd" + _G_status=$? + else + eval "$_G_no_cmd" + _G_status=$? + fi + + test 0 -eq "$_G_status" || exit $_G_status +} + + +# func_strpad STR WIDTH CHAR +# -------------------------- +# Trim STR, or pad with CHAR to force a total length of WIDTH. +func_strpad () +{ + $debug_cmd + + _G_width=`expr "$2" - 1` + func_strpad_result=`$ECHO "$1" |$SED ' + :a + s|^.\{0,'"$_G_width"'\}$|&'"$3"'| + ta + '` +} + + +# func_strrpad STR WIDTH CHAR +# --------------------------- +# Trim STR, or right-justify-pad with CHAR to force a total length of +# WIDTH. +func_strrpad () +{ + $debug_cmd + + _G_width=`expr "$2" - 1` + func_strrpad_result=`$ECHO "$1" |$SED ' + :a + s|^.\{0,'"$_G_width"'\}$|'"$3"'&| + ta + '` +} + + +# func_strrow INDENT FIELD WIDTH [FIELDn WIDTHn]... +# ------------------------------------------------- +# Return a string containing each FIELD left justified to WIDTH, with +# the whole thing indented by INDENT spaces. This function is used to +# render one row of aligned columns for a table by func_strtable(). +func_strrow () +{ + $debug_cmd + + func_strrow_linelen=$1; shift + + _G_row= + while test $# -gt 0; do + func_strrow_linelen=`expr $func_strrow_linelen + $2` + func_strpad "$1" $2 " " + func_append _G_row "$func_strpad_result" + shift; shift + done + + func_strrpad "$_G_row" $func_strrow_linelen " " + func_strrow_result=$func_strrpad_result +} + + +# func_strtable INDENT WIDTH1...WIDTHn HEADER1...HEADERn FIELD1...FIELDn +# ---------------------------------------------------------------------- +# Generate a string of newline-separated rows arranged in lined-up +# columns of the given WIDTHs, with the entire table indented by INDENT +# spaces. The number of columns is determined by the number of integer +# valued WIDTH arguments following INDENT. The next set (i.e. a number +# of arguments equal to the number of WIDTH arguments) of fields are +# treated as the table's column HEADERs, and are separated from the +# remainder of the table by an indented row of '-' characters. Remaining +# arguments are each aligned below the next available header, wrapping +# to a new row as necessary. Finally another row of '-' characters is +# added to mark the end of the table. +# +# For example an unindented 3 column table with 2 rows of data would be +# generated by this call: +# +# func_strtable 3 20 10 25 \ +# Header1 Header2 Header3 \ +# Row1Col1 Row1Col2 Row1Col3 \ +# Row2Col1 Row2Col2 Row2Col3 +# +# returning the following string: +# +# " Header1 Header2 Header3 +# ------------------------------------------------------- +# Row1Col1 Row1Col2 Row1Col3 +# Row2Col1 Row2Col2 Row2Col3 +# -------------------------------------------------------" +func_strtable () +{ + $debug_cmd + + # Save the indent value, we'll need it for each row we render. + _G_indent=$1; shift + + # Collect remaining numeric args into a list for reuse between + # members of each row when we call func_strrow later. + _G_widths=$1; shift + while test 0 -lt `expr "$1" : '[1-9][0-9]*$'`; do + func_append _G_widths " $1"; shift + done + + # Extract the same number of positional parameters as there are + # width elements - we'll do the header rows separately so that + # we can insert a divider line. + _G_header=$_G_indent + for _G_width in $_G_widths; do + func_append _G_header " $1 $_G_width"; shift + done + func_strrow $_G_header + + # Strip off the indent, and make a divider with '-' chars, then + # reindent. + _G_divider=`$ECHO "$func_strrow_result" \ + |$SED 's|[^ ]|-|g + :a + s|- |--|g + ta + '` + + # Append the header and divider to the running result. + func_append func_strtable_result "\ +$func_strrow_result +$_G_divider +" + + # The remaining rows are zipped between the width values we + # unwound earlier just like the header row above. + while test $# -gt 0; do + _G_row=$_G_indent + for _G_width in $_G_widths; do + func_append _G_row " $1 $_G_width"; shift + done + func_strrow $_G_row + func_append func_strtable_result "\ +$func_strrow_result +" + done + + # Mark the end of the table with a final divider line. + func_append func_strtable_result "$_G_divider" +} + + +# func_internal_error ARG... +# -------------------------- +# Echo program name prefixed message to standard error, and exit. +func_internal_error () +{ + func_fatal_error "\ +INTERNAL: " ${1+"$@"} " + Please report this bug to 'bug-gnulib@gnu.org' + in as much detail as possible." +} + + +# func_permissions_error FILE-OR-DIRECTORY +# ---------------------------------------- +# Echo program name prefixed permissions error message to standard +# error, and exit. +func_permissions_error () +{ + $debug_cmd + + func_fatal_error "Failed to create '$1', check permissions." +} + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + $require_term_colors + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + ${opt_silent-'false'} || { + func_quote eval $_G_cmd + eval func_truncate_cmd $func_quote_result + func_echo "running: $tc_bold$func_truncate_cmd_result$tc_reset" + } + + ${opt_dry_run-'false'} || { + eval "$_G_cmd" + _G_status=$? + test 0 -eq "$_G_status" || eval "(exit $_G_status); $_G_fail_exp" + } +} + + +# func_truncate_cmd CMD [ARG]... +# ------------------------------ +# For unreasonably long commands (such as a gnulib-tool invocation with +# the full module list for import), truncate CMD after the second non- +# option ARG. +func_truncate_cmd () +{ + $debug_cmd + + _G_last_arg_opt_p=false + func_truncate_cmd_result= + + set dummy "$@"; shift + + while test $# -gt 0; do + _G_opt=$1; shift + + test -n "$func_truncate_cmd_result" \ + && func_append func_truncate_cmd_result ' ' + func_append func_truncate_cmd_result "$_G_opt" + + func_len "x$func_truncate_cmd_result" + + case $_G_opt in + -*) _G_last_arg_opt_p=: ;; + *) $_G_last_arg_opt_p \ + || test "$min_cmd_len" -gt "$func_len_result" \ + || break + _G_last_arg_opt_p=false + ;; + esac + done + + test $# -gt 0 && func_append func_truncate_cmd_result "..." +} + + +# func_gitignore_entries FILE... +# ------------------------------ +# Strip blank and comment lines to leave significant entries. +func_gitignore_entries () +{ + $debug_cmd + + $SED -e '/^#/d' -e '/^$/d' "$@" +} + + +# func_insert_if_absent STR FILE... +# --------------------------------- +# If $STR is not already on a line by itself in $FILE, insert it, at the +# start. Entries are inserted at the start of the ignore list to ensure +# existing entries starting with ! are not overridden. Such entries +# support whilelisting exceptions after a more generic blacklist pattern. +# sorting the new contents of the file and replacing $FILE with the result. +func_insert_if_absent () +{ + $debug_cmd + + str=$1 + shift + + for file + do + test -f "$file" || touch "$file" + + duplicate_entries=`func_gitignore_entries "$file" |sort |uniq -d` + test -n "$duplicate_entries" \ + && func_error "duplicate entries in $file: " $duplicate_entries + + func_grep_q "^$str\$" "$file" \ + || func_verbose "inserting '$str' into '$file'" + + linesold=`func_gitignore_entries "$file" |wc -l` + linesnew=`{ $ECHO "$str"; cat "$file"; } \ + |func_gitignore_entries |sort -u |wc -l` + test "$linesold" -eq "$linesnew" \ + || { $SED "1i\\$nl$str$nl" "$file" >"$file"T && mv "$file"T "$file"; } \ + || func_permissions_error "$file" + done +} + + +# func_get_version APP +# -------------------- +# echo the version number (if any) of APP, which is looked up along your +# PATH. +func_get_version () +{ + $debug_cmd + + _G_app=$1 + + # Rather than uncomment the sed script in-situ, strip the comments + # programatically before passing the result to $SED for evaluation. + sed_get_version=`$ECHO '# extract version within line + s|.*[v ]\{1,\}\([0-9]\{1,\}\.[.a-z0-9-]*\).*|\1| + t done + + # extract version at start of line + s|^\([0-9]\{1,\}\.[.a-z0-9-]*\).*|\1| + t done + + d + + :done + # the following essentially does s|5.005|5.5| + s|\.0*\([1-9]\)|.\1|g + p + q' \ + |$SED '/^[ ]*#.*$/d'` + + func_tool_version_output $_G_app >/dev/null + _G_status=$? + + test 0 -ne "$_G_status" \ + || $_G_app --version 2>&1 |$SED -n "$sed_get_version" + + (exit $_G_status) +} + + +# func_check_tool APP +# ------------------- +# Search PATH for an executable at APP. +func_check_tool () +{ + $debug_cmd + + func_check_tool_result= + + case $1 in + *[\\/]*) + test -x "$1" && func_check_tool_result=$1 + ;; + *) + save_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for _G_check_tool_path in $PATH; do + IFS=$save_IFS + if test -x "$_G_check_tool_path/$1"; then + func_check_tool_result=$_G_check_tool_path/$1 + break + fi + done + IFS=$save_IFS + ;; + esac +} + + +# func_check_versions APP1 VER1 URL1 ...[APPN VERN URLN] +# ------------------------------------------------------ +func_check_versions () +{ + $debug_cmd + + func_check_versions_result=: + + while test $# -gt 0; do + _G_app=$1; shift + _G_reqver=$1; shift + _G_url=$1; shift + + # Diagnose bad buildreq formatting. + case $_G_url in + [a-z]*://*) ;; # looks like a url + *) func_fatal_error "\ +'$_G_url' from the buildreq table in +'bootstrap.conf' does not look like the URL for downloading +$_G_app. Please ensure that buildreq is a strict newline +delimited list of triples; 'program min-version url'." + ;; + esac + + # Honor $APP variables ($TAR, $AUTOCONF, etc.) + _G_appvar=`echo $_G_app |tr '[a-z]' '[A-Z]'` + test TAR = "$_G_appvar" && _G_appvar=AMTAR + eval "_G_app=\${$_G_appvar-$_G_app}" + + # Fail if no version specified, but the program can't be found. + if test x- = "x$_G_reqver"; then + func_check_tool $_G_app + if test -z "$func_check_tool_result"; then + func_error "Prerequisite '$_G_app' not not found. Please install it, or +'export $_G_appvar=/path/to/$_G_app'." + func_check_versions_result=false + else + func_verbose "found '$func_check_tool_result' for $_G_appvar." + fi + else + _G_instver=`func_get_version $_G_app` + + # Fail if --version didn't work. + if test -z "$_G_instver"; then + func_error "Prerequisite '$_G_app' not found. Please install it, or +'export $_G_appvar=/path/to/$_G_app'." + func_check_versions_result=false + + # Fail if a newer version than what we have is required. + else + func_verbose "found '$_G_app' version $_G_instver." + + case $_G_reqver in + =*) + # If $buildreq version starts with '=', version must + # match the installed program exactly. + test "x$_G_reqver" = "x=$_G_instver" || { + func_error "\ + '$_G_app' version == $_G_instver is too old + 'exactly $_G_app-$_G_reqver is required" + func_check_versions_result=false + } + ;; + *) + # Otherwise, anything that is not older is a match. + func_lt_ver "$_G_reqver" "$_G_instver" || { + func_error "\ + '$_G_app' version == $_G_instver is too old + '$_G_app' version >= $_G_reqver is required" + func_check_versions_result=false + } + ;; + esac + fi + fi + done +} + + +# func_cleanup_gnulib +# ------------------- +# Recursively delete everything below the path in the global variable +# GNULIB_PATH. +func_cleanup_gnulib () +{ + $debug_cmd + + _G_status=$? + $RM -fr "$gnulib_path" + exit $_G_status +} + + +# func_download_po_files SUBDIR DOMAIN +# ------------------------------------ +func_download_po_files () +{ + $debug_cmd + + func_echo "getting translations into $1 for $2..." + _G_cmd=`printf "$po_download_command_format" "$2" "$1"` + eval "$_G_cmd" +} + + +# func_update_po_files PO_DIR DOMAIN +# ---------------------------------- +# Mirror .po files to $po_dir/.reference and copy only the new +# or modified ones into $po_dir. Also update $po_dir/LINGUAS. +# Note po files that exist locally only are left in $po_dir but will +# not be included in LINGUAS and hence will not be distributed. +func_update_po_files () +{ + $debug_cmd + + # Directory containing primary .po files. + # Overwrite them only when we're sure a .po file is new. + _G_po_dir=$1 + _G_domain=$2 + + # Mirror *.po files into this dir. + # Usually contains *.s1 checksum files. + _G_ref_po_dir=$_G_po_dir/.reference + + test -d "$_G_ref_po_dir" || mkdir $_G_ref_po_dir || return + func_download_po_files $_G_ref_po_dir $_G_domain \ + && ls "$_G_ref_po_dir"/*.po 2>/dev/null \ + |$SED -e 's|.*/||' -e 's|\.po$||' > "$_G_po_dir/LINGUAS" || return + + # Find sha1sum, named gsha1sum on MacPorts, and shasum on MacOS 10.6+. + func_find_tool SHA1SUM sha1sum gsha1sum shasum sha1 + + test -n "$SHA1SUM" || func_fatal_error "\ +Please install GNU Coreutils, or 'export SHA1SUM=/path/to/sha1sum'." + + _G_langs=`cd $_G_ref_po_dir && echo *.po|$SED 's|\.po||g'` + test '*' = "$_G_langs" && _G_langs=x + for _G_po in $_G_langs; do + case $_G_po in x) continue;; esac + _G_new_po=$_G_ref_po_dir/$_G_po.po + _G_cksum_file=$_G_ref_po_dir/$_G_po.s1 + if ! test -f "$_G_cksum_file" || + ! test -f "$_G_po_dir/$_G_po.po" || + ! $SHA1SUM -c "$_G_cksum_file" \ + < "$_G_new_po" > /dev/null; then + echo "updated $_G_po_dir/$_G_po.po..." + cp "$_G_new_po" "$_G_po_dir/$_G_po.po" \ + && $SHA1SUM < "$_G_new_po" > "$_G_cksum_file" || return + fi + done +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]...' + +# Short help message in response to '-h'. Add to this in 'bootstrap.conf' +# if you accept any additional options. +usage_message="Common Bootstrap Options: + -c, --copy copy files instead of creating symbolic links. + --debug enable verbose shell tracing + -n, --dry-run print commands rather than running them + -f, --force attempt to bootstrap even if the sources seem not + to have been checked out. + --gnulib-srcdir=DIRNAME + specify a local directory where gnulib sources + reside. Use this if you already have the gnulib + sources on your machine, and don't want to waste + your bandwidth downloading them again. Defaults to + \$GNULIB_SRCDIR. + --no-warnings equivalent to '-Wnone' + --skip-git do not fetch files from remote repositories + --skip-po do not download po files. + -v, --verbose verbosely report processing + --version print version information and exit + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=$long_help_message" + 'recommend' show warnings about missing recommended packages + 'settings' show warnings about missing '$progname.conf' settings + 'upgrade' show warnings about out-dated files + +If the file '$progname.conf' exists in the same directory as this +script, its contents are read as shell variables to configure the +bootstrap. + +For build prerequisites, environment variables like \$AUTOCONF and +\$AMTAR are honored. + +Running without arguments will suffice in most cases. +" + +# Warning categories used by 'bootstrap', append others if you use them +# in your 'bootstrap.conf'. +warning_categories='recommend settings upgrade' + + +# bootstrap_options_prep [ARG]... +# ------------------------------- +# Preparation for options parsed by Bootstrap. +bootstrap_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_copy=${copy-'false'} + opt_dry_run=false + opt_force=false + opt_gnulib_srcdir=$GNULIB_SRCDIR + opt_skip_git=false + opt_skip_po=false + + # Pass back the list of options we consumed. + func_quote eval ${1+"$@"} + bootstrap_options_prep_result=$func_quote_result +} +func_add_hook func_options_prep bootstrap_options_prep + + +# bootstrap_parse_options [ARG]... +# -------------------------------- +# Provide handling for Bootstrap specific options. +bootstrap_parse_options () +{ + $debug_cmd + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: ;; + --copy|-c) opt_copy=: ;; + --force|-f) opt_force=: ;; + + --gnulib-srcdir) + test $# = 0 && func_missing_arg $_G_opt && break + opt_gnulib_srcdir=$1 + shift + ;; + + --skip-git|--no-git) + opt_skip_git=: + ;; + + --skip-po|--no-po) + opt_skip_po=: + ;; + + # Separate non-argument short options: + -c*|-f*|-n*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + bootstrap_parse_options_result=$func_quote_result +} +func_add_hook func_parse_options bootstrap_parse_options + + +# bootstrap_validate_options [ARG]... +# ----------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +bootstrap_validate_options () +{ + $debug_cmd + + # Validate options. + test $# -gt 0 \ + && func_fatal_help "too many arguments" + + # Pass back the (empty) list of unconsumed options. + func_quote eval ${1+"$@"} + bootstrap_validate_options_result=$func_quote_result +} +func_add_hook func_validate_options bootstrap_validate_options + + +## -------------------------------------------------- ## +## Source package customisations in 'bootstrap.conf'. ## +## -------------------------------------------------- ## + +# Override the default configuration, if necessary. +# Make sure that bootstrap.conf is sourced from the current directory +# if we were invoked as "sh bootstrap". +case $0 in + */*) test -r "$0.conf" && . "$0.conf" ;; + *) test -r "$0.conf" && . ./"$0.conf" ;; +esac + + +## ------------------------------- ## +## Actually perform the bootstrap. ## +## ------------------------------- ## + +func_bootstrap ${1+"$@"} + +# The End. +exit ${exit_status-$EXIT_SUCCESS} + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "500/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: diff --git a/bootstrap.conf b/bootstrap.conf new file mode 100644 index 0000000..62ee030 --- /dev/null +++ b/bootstrap.conf @@ -0,0 +1,128 @@ +# bootstrap.conf (Recode) version 2025-03-25 + +# This file is part of Recode. +# +# Recode is free software: you can redistribute this file it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Recode is distributed in the hope that 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. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . + + +## -------------- ## +## Configuration. ## +## -------------- ## + +# File that should exist relative to the top directory of a checked out +# hierarchy, but not in a distribution tarball. +checkout_only_file=.gitignore + +# List of programs, minimum versions, and software urls required to +# bootstrap, maintain and release Recode. + +# Build prerequisites +buildreq=' + git 1.5.5 https://git-scm.com + gpg 1.4.11 https://www.gnupg.org + help2man 1.29 https://www.gnu.org/s/help2man + m4 1.4.12 https://www.gnu.org/s/m4 + perl 5.5 https://perl.com + tar - https://www.gnu.org/s/tar + makeinfo 5.2 https://www.gnu.org/s/texinfo + lex - https://github.com/westes/flex + gettext 0.19 https://www.gnu.org/s/gettext +' + +# Non-default gnulib directory options. +local_gl_path=gl-mod/bootstrap:gl +gnulib_git_submodules=gl-mod/bootstrap + +# Additional gnulib-tool options to use. +gnulib_tool_options=' +' + +# gnulib modules used by this package. +gnulib_modules=' + argmatch + bootstrap + canonicalize-lgpl + dirname + error + getopt-posix + gettext-h + hash + iconv + isatty + localcharset + manywarnings + minmax + mkstemps + pathmax + quotearg + sigaction + strndup + sys_wait + unistd + utime + vasprintf + vprintf-posix + xalloc + xbinary-io +' + +# Extra gnulib files that are not in modules, which override files of +# the same name installed by other bootstrap tools. +gnulib_non_module_files="$gnulib_non_module_files"' + build-aux/x-to-1.in +' + +# Copyright holder +copyright_holder="Free Software Foundation, Inc." + + +## --------------- ## +## Hook functions. ## +## --------------- ## + +# enchant_ignore_gnulib_ignore +# ------------------------- +# gnulib-tool updates m4/.gitignore and lib/.gitignore, and keeping +# generated files under version control does not make sense. Since +# lib is entirely ignored, we only need to prepopulate the m4 ignore +# files with generated files not tracked by gnulib-tool. +enchant_ignore_gnulib_ignore () +{ + $debug_cmd + + $require_macro_dir + + if test -f "$macro_dir/.gitignore" ; then + : + else + func_verbose "creating initial \`$macro_dir/.gitignore'" + cat > $macro_dir/.gitignore <<\EOF +# files created by gnulib, but that gnulib doesn't track +*~ +.gitignore +gnulib-comp.m4 +EOF + fi +} +func_add_hook func_prep enchant_ignore_gnulib_ignore + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-functions 'time-stamp) +# time-stamp-start: "# bootstrap.conf (Recode) version " +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "$" +# End: diff --git a/build-aux/.gitignore b/build-aux/.gitignore new file mode 100644 index 0000000..1469db3 --- /dev/null +++ b/build-aux/.gitignore @@ -0,0 +1,17 @@ +/bootstrap.in +/extract-trace +/funclib.sh +/inline-source +/options-parser +/compile +/config.guess +/config.rpath +/config.sub +/depcomp +/install-sh +/ltmain.sh +/mdate-sh +/missing +/texinfo.tex +/x-to-1.in +/x-to-1 diff --git a/build-aux/invert-l-to-h b/build-aux/invert-l-to-h new file mode 100755 index 0000000..a0018b4 --- /dev/null +++ b/build-aux/invert-l-to-h @@ -0,0 +1,5 @@ +#!/bin/sh +# Invert the conversion in a flex file to get a C header file for the other direction +grep '^\\' $1 | \ + perl -npe 's/{ recode_put_byte \(//;s /, subtask\); }//;s%^\\%%' | \ + perl -ne '($a,$b)=split; $c=substr($a,0,3);$d=substr($a,3);$e = eval "0$c"; next if $b < 0200 ;printf("\t{%d, \"%c%s\"}, %s* %c *%s\n", $b, $e, $d, "/", $b, "/")' diff --git a/cleaner.h.in b/cleaner.h.in deleted file mode 100644 index 7b52d72..0000000 --- a/cleaner.h.in +++ /dev/null @@ -1,189 +0,0 @@ -/* Conversion of files between different charsets and surfaces. - Copyright © 2008 Free Software Foundation, Inc. - Contributed by François Pinard , 2008. - - This 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. - - 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. - - You should have received a copy of the GNU Library General Public - License along with the Recode 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. */ - -/* Definitions to clean up the linker namespace. */ - -#ifndef CLEANER_H_ -# define CLEANER_H_ - -# define __xargmatch_internal librecode_xargmatch_internal -# define aliases_lookup librecode_aliases_lookup -# define argcasematch librecode_argcasematch -# define argmatch librecode_argmatch -# define argmatch_invalid librecode_argmatch_invalid -# define argmatch_to_argument librecode_argmatch_to_argument -# define argmatch_valid librecode_argmatch_valid -# define clone_quoting_options librecode_clone_quoting_options -# define code_to_ucs2 librecode_code_to_ucs2 -# define combine_byte_byte librecode_combine_byte_byte -# define combine_byte_ucs2 librecode_combine_byte_ucs2 -# define combine_ucs2_byte librecode_combine_ucs2_byte -# define combine_ucs2_ucs2 librecode_combine_ucs2_ucs2 -# define complete_pairs librecode_complete_pairs -# define declare_alias librecode_declare_alias -# define declare_explode_data librecode_declare_explode_data -# define declare_iconv librecode_declare_iconv -# define declare_implied_surface librecode_declare_implied_surface -# define declare_single librecode_declare_single -# define declare_strip_data librecode_declare_strip_data -# define decode_known_pairs librecode_decode_known_pairs -# define delmodule_african librecode_delmodule_african -# define delmodule_afrtran librecode_delmodule_afrtran -# define delmodule_applemac librecode_delmodule_applemac -# define delmodule_ascii_latin1 librecode_delmodule_ascii_latin1 -# define delmodule_atarist librecode_delmodule_atarist -# define delmodule_bangbang librecode_delmodule_bangbang -# define delmodule_base64 librecode_delmodule_base64 -# define delmodule_cdcnos librecode_delmodule_cdcnos -# define delmodule_dump librecode_delmodule_dump -# define delmodule_ebcdic librecode_delmodule_ebcdic -# define delmodule_endline librecode_delmodule_endline -# define delmodule_flat librecode_delmodule_flat -# define delmodule_html librecode_delmodule_html -# define delmodule_ibmpc librecode_delmodule_ibmpc -# define delmodule_iconqnx librecode_delmodule_iconqnx -# define delmodule_iconv librecode_delmodule_iconv -# define delmodule_latex_latin1 librecode_delmodule_latex_latin1 -# define delmodule_latin1_ascii librecode_delmodule_latin1_ascii -# define delmodule_latin1_latex librecode_delmodule_latin1_latex -# define delmodule_latin1_texte librecode_delmodule_latin1_texte -# define delmodule_mule librecode_delmodule_mule -# define delmodule_permutations librecode_delmodule_permutations -# define delmodule_quoted_printable librecode_delmodule_quoted_printable -# define delmodule_rfc1345 librecode_delmodule_rfc1345 -# define delmodule_strips librecode_delmodule_strips -# define delmodule_testdump librecode_delmodule_testdump -# define delmodule_texinfo librecode_delmodule_texinfo -# define delmodule_texte_latin1 librecode_delmodule_texte_latin1 -# define delmodule_ucs librecode_delmodule_ucs -# define delmodule_utf16 librecode_delmodule_utf16 -# define delmodule_utf7 librecode_delmodule_utf7 -# define delmodule_utf8 librecode_delmodule_utf8 -# define delmodule_varia librecode_delmodule_varia -# define delmodule_vietnamese librecode_delmodule_vietnamese -# define edit_sequence librecode_edit_sequence -# define explode_byte_byte librecode_explode_byte_byte -# define explode_byte_ucs2 librecode_explode_byte_ucs2 -# define explode_ucs2_byte librecode_explode_ucs2_byte -# define explode_ucs2_ucs2 librecode_explode_ucs2_ucs2 -# define find_alias librecode_find_alias -# define find_and_report_subsets librecode_find_and_report_subsets -# define get_byte_helper librecode_get_byte_helper -# define get_quoting_style librecode_get_quoting_style -# define get_ucs2 librecode_get_ucs2 -# define get_ucs4 librecode_get_ucs4 -# define hash_clear librecode_hash_clear -# define hash_delete librecode_hash_delete -# define hash_do_for_each librecode_hash_do_for_each -# define hash_free librecode_hash_free -# define hash_get_entries librecode_hash_get_entries -# define hash_get_first librecode_hash_get_first -# define hash_get_max_bucket_length librecode_hash_get_max_bucket_length -# define hash_get_n_buckets librecode_hash_get_n_buckets -# define hash_get_n_buckets_used librecode_hash_get_n_buckets_used -# define hash_get_n_entries librecode_hash_get_n_entries -# define hash_get_next librecode_hash_get_next -# define hash_initialize librecode_hash_initialize -# define hash_insert librecode_hash_insert -# define hash_lookup librecode_hash_lookup -# define hash_print_statistics librecode_hash_print_statistics -# define hash_rehash librecode_hash_rehash -# define hash_reset_tuning librecode_hash_reset_tuning -# define hash_string librecode_hash_string -# define hash_table_ok librecode_hash_table_ok -# define init_combine librecode_init_combine -# define init_explode librecode_init_explode -# define init_ucs2_to_byte librecode_init_ucs2_to_byte -# define invert_table librecode_invert_table -# define list_all_symbols librecode_list_all_symbols -# define list_concise_charset librecode_list_concise_charset -# define list_full_charset librecode_list_full_charset -# define locale_charset librecode_locale_charset -# define make_argmatch_arrays librecode_make_argmatch_arrays -# define module_african librecode_module_african -# define module_afrtran librecode_module_afrtran -# define module_applemac librecode_module_applemac -# define module_ascii_latin1 librecode_module_ascii_latin1 -# define module_atarist librecode_module_atarist -# define module_bangbang librecode_module_bangbang -# define module_base64 librecode_module_base64 -# define module_cdcnos librecode_module_cdcnos -# define module_dump librecode_module_dump -# define module_ebcdic librecode_module_ebcdic -# define module_endline librecode_module_endline -# define module_flat librecode_module_flat -# define module_html librecode_module_html -# define module_ibmpc librecode_module_ibmpc -# define module_iconqnx librecode_module_iconqnx -# define module_iconv librecode_module_iconv -# define module_latex_latin1 librecode_module_latex_latin1 -# define module_latin1_ascii librecode_module_latin1_ascii -# define module_latin1_latex librecode_module_latin1_latex -# define module_latin1_texte librecode_module_latin1_texte -# define module_mule librecode_module_mule -# define module_permutations librecode_module_permutations -# define module_quoted_printable librecode_module_quoted_printable -# define module_rfc1345 librecode_module_rfc1345 -# define module_strips librecode_module_strips -# define module_testdump librecode_module_testdump -# define module_texinfo librecode_module_texinfo -# define module_texte_latin1 librecode_module_texte_latin1 -# define module_ucs librecode_module_ucs -# define module_utf16 librecode_module_utf16 -# define module_utf7 librecode_module_utf7 -# define module_utf8 librecode_module_utf8 -# define module_varia librecode_module_varia -# define module_vietnamese librecode_module_vietnamese -# define prepare_for_aliases librecode_prepare_for_aliases -# define put_byte_helper librecode_put_byte_helper -# define put_ucs2 librecode_put_ucs2 -# define put_ucs4 librecode_put_ucs4 -# define quotearg librecode_quotearg -# define quotearg_buffer librecode_quotearg_buffer -# define quotearg_char librecode_quotearg_char -# define quotearg_colon librecode_quotearg_colon -# define quotearg_n librecode_quotearg_n -# define quotearg_n_style librecode_quotearg_n_style -# define quotearg_style librecode_quotearg_style -# define reversibility librecode_reversibility -# define set_char_quoting librecode_set_char_quoting -# define set_quoting_style librecode_set_quoting_style -# define should_prefer_french librecode_should_prefer_french -# define texte_latin1_diaeresis librecode_texte_latin1_diaeresis -# define transform_byte_to_byte librecode_transform_byte_to_byte -# define transform_byte_to_ucs2 librecode_transform_byte_to_ucs2 -# define transform_byte_to_variable librecode_transform_byte_to_variable -# define transform_ucs2_to_byte librecode_transform_ucs2_to_byte -# define transform_with_iconv librecode_transform_with_iconv -# define ucs2_to_charname librecode_ucs2_to_charname -# define ucs2_to_french_charname librecode_ucs2_to_french_charname -# define ucs2_to_rfc1345 librecode_ucs2_to_rfc1345 -# define x2nrealloc librecode_x2nrealloc -# define x2realloc librecode_x2realloc -# define xalloc_die librecode_xalloc_die -# define xcalloc librecode_xcalloc -# define xmalloc librecode_xmalloc -# define xmemdup librecode_xmemdup -# define xnmalloc librecode_xnmalloc -# define xnrealloc librecode_xnrealloc -# define xrealloc librecode_xrealloc -# define xstrdup librecode_xstrdup -# define xzalloc librecode_xzalloc - -#endif /* ! CLEANER_H_ */ diff --git a/config.guess b/config.guess deleted file mode 100755 index ee5232a..0000000 --- a/config.guess +++ /dev/null @@ -1,1510 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, -# Inc. - -timestamp='2006-07-02' - -# This file 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 2 of the License, 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 -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -case "${UNAME_MACHINE}" in - i?86) - test -z "$VENDOR" && VENDOR=pc - ;; - *) - test -z "$VENDOR" && VENDOR=unknown - ;; -esac -test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[45]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - x86:Interix*:[3456]*) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T:Interix*:[3456]*) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-${VENDOR}-linux-gnu - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu - exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; } - ;; - or32:Linux:*:*) - echo or32-${VENDOR}-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-${VENDOR}-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-${VENDOR}-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu${LIBC} - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-${VENDOR}-linux-gnu ;; - PA8*) echo hppa2.0-${VENDOR}-linux-gnu ;; - *) echo hppa-${VENDOR}-linux-gnu ;; - esac - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-${VENDOR}-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) - echo x86_64-${VENDOR}-linux-gnu - exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-${VENDOR}-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-${VENDOR}-linux-gnuaout" - exit ;; - coff-i386) - echo "${UNAME_MACHINE}-${VENDOR}-linux-gnucoff" - exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-${VENDOR}-linux-gnuoldld" - exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/config.h.in b/config.h.in deleted file mode 100644 index 7ba6c00..0000000 --- a/config.h.in +++ /dev/null @@ -1,212 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* 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'. */ -#undef C_ALLOCA - -/* Define to 1 if translation of program messages to the user's native - language is requested. */ -#undef ENABLE_NLS - -/* Define to 1 if you have `alloca', as a function or macro. */ -#undef HAVE_ALLOCA - -/* Define to 1 if you have and it should be used (not on Ultrix). - */ -#undef HAVE_ALLOCA_H - -/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the - CoreFoundation framework. */ -#undef HAVE_CFLOCALECOPYCURRENT - -/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in - the CoreFoundation framework. */ -#undef HAVE_CFPREFERENCESCOPYAPPVALUE - -/* Define if the GNU dcgettext() function is already present or preinstalled. - */ -#undef HAVE_DCGETTEXT - -/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H - -/* Define if the malloc check has been performed. */ -#undef HAVE_DONE_WORKING_MALLOC_CHECK - -/* Define if the realloc check has been performed. */ -#undef HAVE_DONE_WORKING_REALLOC_CHECK - -/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ -#undef HAVE_DOPRNT - -/* Define to 1 if you have the `dup2' function. */ -#undef HAVE_DUP2 - -/* Define if the GNU gettext() function is already present or preinstalled. */ -#undef HAVE_GETTEXT - -/* Define if you have the iconv() function and it works. */ -#undef HAVE_ICONV - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define if you have and nl_langinfo(CODESET). */ -#undef HAVE_LANGINFO_CODESET - -/* Define to 1 if you have the header file. */ -#undef HAVE_LANGINFO_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_LIMITS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_LOCALE_H - -/* Define to 1 if you have the `mbrtowc' function. */ -#undef HAVE_MBRTOWC - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the `nl_langinfo' function. */ -#undef HAVE_NL_LANGINFO - -/* Define to 1 if you have the `rename' function. */ -#undef HAVE_RENAME - -/* Define to 1 if you have the `setlocale' function. */ -#undef HAVE_SETLOCALE - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDBOOL_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDDEF_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the `strerror' function. */ -#undef HAVE_STRERROR - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the `strndup' function. */ -#undef HAVE_STRNDUP - -/* Define to 1 if you have the `strtol' function. */ -#undef HAVE_STRTOL - -/* Define to 1 if you have the `strtoul' function. */ -#undef HAVE_STRTOUL - -/* Define if struct utimbuf is declared -- usually in . Some systems - have utime.h but don't declare the struct anywhere. */ -#undef HAVE_STRUCT_UTIMBUF - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UTIME_H - -/* Define to 1 if you have the `vprintf' function. */ -#undef HAVE_VPRINTF - -/* Define to 1 if you have the `wcrtomb' function. */ -#undef HAVE_WCRTOMB - -/* Define as const if the declaration of iconv() needs const. */ -#undef ICONV_CONST - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -#undef LT_OBJDIR - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define as the return type of signal handlers (`int' or `void'). */ -#undef RETSIGTYPE - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -#undef STACK_DIRECTION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define to 1 if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME - -/* Version number of package */ -#undef VERSION - -/* Define if using the dmalloc debugging malloc package */ -#undef WITH_DMALLOC - -/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a - `char[]'. */ -#undef YYTEXT_POINTER - -/* Define to empty if `const' does not conform to ANSI C. */ -#undef const - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -#undef inline -#endif - -/* Define to rpl_malloc if the replacement function should be used. */ -#undef malloc - -/* Define to rpl_realloc if the replacement function should be used. */ -#undef realloc - -/* Define to `unsigned int' if does not define. */ -#undef size_t - - -#include "cleaner.h" - diff --git a/config.rpath b/config.rpath deleted file mode 100755 index 17298f2..0000000 --- a/config.rpath +++ /dev/null @@ -1,672 +0,0 @@ -#! /bin/sh -# Output a system dependent set of variables, describing how to set the -# run time search path of shared libraries in an executable. -# -# Copyright 1996-2010 Free Software Foundation, Inc. -# Taken from GNU libtool, 2001 -# Originally by Gordon Matzigkeit , 1996 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# The first argument passed to this file is the canonical host specification, -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld -# should be set by the caller. -# -# The set of defined variables is at the end of this script. - -# Known limitations: -# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer -# than 256 bytes, otherwise the compiler driver will dump core. The only -# known workaround is to choose shorter directory names for the build -# directory and/or the installation directory. - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a -shrext=.so - -host="$1" -host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -# Code taken from libtool.m4's _LT_CC_BASENAME. - -for cc_temp in $CC""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` - -# Code taken from libtool.m4's _LT_COMPILER_PIC. - -wl= -if test "$GCC" = yes; then - wl='-Wl,' -else - case "$host_os" in - aix*) - wl='-Wl,' - ;; - darwin*) - case $cc_basename in - xlc*) - wl='-Wl,' - ;; - esac - ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) - ;; - hpux9* | hpux10* | hpux11*) - wl='-Wl,' - ;; - irix5* | irix6* | nonstopux*) - wl='-Wl,' - ;; - newsos6) - ;; - linux* | k*bsd*-gnu) - case $cc_basename in - ecc*) - wl='-Wl,' - ;; - icc* | ifort*) - wl='-Wl,' - ;; - lf95*) - wl='-Wl,' - ;; - pgcc | pgf77 | pgf90) - wl='-Wl,' - ;; - ccc*) - wl='-Wl,' - ;; - como) - wl='-lopt=' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - wl='-Wl,' - ;; - esac - ;; - esac - ;; - osf3* | osf4* | osf5*) - wl='-Wl,' - ;; - rdos*) - ;; - solaris*) - wl='-Wl,' - ;; - sunos4*) - wl='-Qoption ld ' - ;; - sysv4 | sysv4.2uw2* | sysv4.3*) - wl='-Wl,' - ;; - sysv4*MP*) - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - wl='-Wl,' - ;; - unicos*) - wl='-Wl,' - ;; - uts4*) - ;; - esac -fi - -# Code taken from libtool.m4's _LT_LINKER_SHLIBS. - -hardcode_libdir_flag_spec= -hardcode_libdir_separator= -hardcode_direct=no -hardcode_minus_L=no - -case "$host_os" in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; -esac - -ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - # Unlike libtool, we use -rpath here, not --rpath, since the documented - # option of GNU ld is called -rpath, not --rpath. - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - case "$host_os" in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - fi - ;; - amigaos*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we cannot use - # them. - ld_shlibs=no - ;; - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - cygwin* | mingw* | pw32* | cegcc*) - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - interix[3-9]*) - hardcode_direct=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - gnu* | linux* | k*bsd*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - netbsd*) - ;; - solaris*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - else - ld_shlibs=no - fi - ;; - esac - ;; - sunos4*) - hardcode_direct=yes - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - esac - if test "$ld_shlibs" = no; then - hardcode_libdir_flag_spec= - fi -else - case "$host_os" in - aix3*) - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - else - aix_use_runtimelinking=no - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - fi - hardcode_direct=yes - hardcode_libdir_separator=':' - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - fi - # Begin _LT_AC_SYS_LIBPATH_AIX. - echo 'int main () { return 0; }' > conftest.c - ${CC} ${LDFLAGS} conftest.c -o conftest - aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` - if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } -}'` - fi - if test -z "$aix_libpath"; then - aix_libpath="/usr/lib:/lib" - fi - rm -f conftest.c conftest - # End _LT_AC_SYS_LIBPATH_AIX. - if test "$aix_use_runtimelinking" = yes; then - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - else - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - fi - fi - ;; - amigaos*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; - bsdi[45]*) - ;; - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - libext=lib - ;; - darwin* | rhapsody*) - hardcode_direct=no - if test "$GCC" = yes ; then - : - else - case $cc_basename in - xlc*) - ;; - *) - ld_shlibs=no - ;; - esac - fi - ;; - dgux*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - freebsd1*) - ld_shlibs=no - ;; - freebsd2.2*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - freebsd2*) - hardcode_direct=yes - hardcode_minus_L=yes - ;; - freebsd* | dragonfly*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - hpux9*) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - hpux10*) - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - hpux11*) - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - ;; - *) - hardcode_direct=yes - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - irix5* | irix6* | nonstopux*) - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - netbsd*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - newsos6) - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - else - case "$host_os" in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs=no - fi - ;; - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - osf3*) - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - osf4* | osf5*) - if test "$GCC" = yes; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - # Both cc and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - solaris*) - hardcode_libdir_flag_spec='-R$libdir' - ;; - sunos4*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - ;; - sysv4) - case $host_vendor in - sni) - hardcode_direct=yes # is this really true??? - ;; - siemens) - hardcode_direct=no - ;; - motorola) - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - ;; - sysv4.3*) - ;; - sysv4*MP*) - if test -d /usr/nec; then - ld_shlibs=yes - fi - ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - ;; - sysv5* | sco3.2v5* | sco5v6*) - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator=':' - ;; - uts4*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - *) - ld_shlibs=no - ;; - esac -fi - -# Check dynamic linker characteristics -# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. -# Unlike libtool.m4, here we don't care about _all_ names of the library, but -# only about the one the linker finds when passed -lNAME. This is the last -# element of library_names_spec in libtool.m4, or possibly two of them if the -# linker has special search rules. -library_names_spec= # the last element of library_names_spec in libtool.m4 -libname_spec='lib$name' -case "$host_os" in - aix3*) - library_names_spec='$libname.a' - ;; - aix[4-9]*) - library_names_spec='$libname$shrext' - ;; - amigaos*) - library_names_spec='$libname.a' - ;; - beos*) - library_names_spec='$libname$shrext' - ;; - bsdi[45]*) - library_names_spec='$libname$shrext' - ;; - cygwin* | mingw* | pw32* | cegcc*) - shrext=.dll - library_names_spec='$libname.dll.a $libname.lib' - ;; - darwin* | rhapsody*) - shrext=.dylib - library_names_spec='$libname$shrext' - ;; - dgux*) - library_names_spec='$libname$shrext' - ;; - freebsd1*) - ;; - freebsd* | dragonfly*) - case "$host_os" in - freebsd[123]*) - library_names_spec='$libname$shrext$versuffix' ;; - *) - library_names_spec='$libname$shrext' ;; - esac - ;; - gnu*) - library_names_spec='$libname$shrext' - ;; - hpux9* | hpux10* | hpux11*) - case $host_cpu in - ia64*) - shrext=.so - ;; - hppa*64*) - shrext=.sl - ;; - *) - shrext=.sl - ;; - esac - library_names_spec='$libname$shrext' - ;; - interix[3-9]*) - library_names_spec='$libname$shrext' - ;; - irix5* | irix6* | nonstopux*) - library_names_spec='$libname$shrext' - case "$host_os" in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; - *) libsuff= shlibsuff= ;; - esac - ;; - esac - ;; - linux*oldld* | linux*aout* | linux*coff*) - ;; - linux* | k*bsd*-gnu) - library_names_spec='$libname$shrext' - ;; - knetbsd*-gnu) - library_names_spec='$libname$shrext' - ;; - netbsd*) - library_names_spec='$libname$shrext' - ;; - newsos6) - library_names_spec='$libname$shrext' - ;; - nto-qnx*) - library_names_spec='$libname$shrext' - ;; - openbsd*) - library_names_spec='$libname$shrext$versuffix' - ;; - os2*) - libname_spec='$name' - shrext=.dll - library_names_spec='$libname.a' - ;; - osf3* | osf4* | osf5*) - library_names_spec='$libname$shrext' - ;; - rdos*) - ;; - solaris*) - library_names_spec='$libname$shrext' - ;; - sunos4*) - library_names_spec='$libname$shrext$versuffix' - ;; - sysv4 | sysv4.3*) - library_names_spec='$libname$shrext' - ;; - sysv4*MP*) - library_names_spec='$libname$shrext' - ;; - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - library_names_spec='$libname$shrext' - ;; - uts4*) - library_names_spec='$libname$shrext' - ;; -esac - -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' -escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` -shlibext=`echo "$shrext" | sed -e 's,^\.,,'` -escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` -escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` -escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` - -LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. Submit a context -# diff and a properly formatted ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | mt \ - | msp430 \ - | nios | nios2 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | score \ - | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa-* \ - | ymp-* \ - | z8k-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16c) - basic_machine=cr16c-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -zvmoe) - os=-zvmoe - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/configure b/configure deleted file mode 100755 index a18b11e..0000000 --- a/configure +++ /dev/null @@ -1,18160 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for recode 3.7-beta2. -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 - - test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ - || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - -SHELL=${CONFIG_SHELL-/bin/sh} - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='recode' -PACKAGE_TARNAME='recode' -PACKAGE_VERSION='3.7-beta2' -PACKAGE_STRING='recode 3.7-beta2' -PACKAGE_BUGREPORT='' -PACKAGE_URL='' - -ac_unique_file="src/recode.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -gt_needs= -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -POSUB -LTLIBINTL -LIBINTL -INTLLIBS -INTL_MACOSX_LIBS -XGETTEXT_EXTRA_OPTIONS -MSGMERGE -XGETTEXT_015 -XGETTEXT -GMSGFMT_015 -MSGFMT_015 -GMSGFMT -MSGFMT -GETTEXT_MACRO_VERSION -USE_NLS -GLIBC21 -LIBOBJS -LTLIBICONV -LIBICONV -LEXLIB -LEX_OUTPUT_ROOT -LEX -ALLOCA -CPP -OTOOL64 -OTOOL -LIPO -NMEDIT -DSYMUTIL -MANIFEST_TOOL -RANLIB -ac_ct_AR -AR -DLLTOOL -OBJDUMP -LN_S -NM -ac_ct_DUMPBIN -DUMPBIN -LD -FGREP -EGREP -GREP -SED -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -LIBTOOL -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_silent_rules -enable_shared -enable_static -with_pic -enable_fast_install -enable_dependency_tracking -with_gnu_ld -with_sysroot -enable_libtool_lock -enable_rpath -with_libiconv_prefix -with_dmalloc -enable_nls -with_libintl_prefix -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures recode 3.7-beta2 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/recode] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of recode 3.7-beta2:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-static[=PKGS] build static libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --disable-libtool-lock avoid locking (might break parallel builds) - --disable-rpath do not hardcode runtime library paths - --disable-nls do not use Native Language Support - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-sysroot=DIR Search for dependent libraries within DIR - (or the compiler's sysroot if not specified). - --with-gnu-ld assume the C compiler uses GNU ld default=no - --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib - --without-libiconv-prefix don't search for libiconv in includedir and libdir - --with-dmalloc use dmalloc, as in http://www.dmalloc.com - --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib - --without-libintl-prefix don't search for libintl in includedir and libdir - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to the package provider. -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -recode configure 3.7-beta2 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main () -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func - -# ac_fn_c_check_type LINENO TYPE VAR INCLUDES -# ------------------------------------------- -# Tests whether TYPE exists after having included INCLUDES, setting cache -# variable VAR accordingly. -ac_fn_c_check_type () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_type - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_mongrel -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by recode $as_me 3.7-beta2, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -gt_needs="$gt_needs " -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -am__api_version='1.13' - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='recode' - VERSION='3.7-beta2' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -mkdir_p='$(MKDIR_P)' - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' - -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' - - - - - - - -case `pwd` in - *\ * | *\ *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; -esac - - - -macro_version='2.4.2' -macro_revision='1.3337' - - - - - - - - - - - - - -ltmain="$ac_aux_dir/ltmain.sh" - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - -# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 -$as_echo_n "checking how to print strings... " >&6; } -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "" -} - -case "$ECHO" in - printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 -$as_echo "printf" >&6; } ;; - print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 -$as_echo "print -r" >&6; } ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 -$as_echo "cat" >&6; } ;; -esac - - - - - - - - - - - - - - -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if ${ac_cv_path_SED+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_SED" || continue -# Check for GNU ac_path_SED and select it if it is found. - # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_SED_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 - fi -else - ac_cv_path_SED=$SED -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed - -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 -$as_echo_n "checking for fgrep... " >&6; } -if ${ac_cv_path_FGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 - then ac_cv_path_FGREP="$GREP -F" - else - if test -z "$FGREP"; then - ac_path_FGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in fgrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_FGREP" || continue -# Check for GNU ac_path_FGREP and select it if it is found. - # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in -*GNU*) - ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'FGREP' >> "conftest.nl" - "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_FGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_FGREP="$ac_path_FGREP" - ac_path_FGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_FGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_FGREP"; then - as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_FGREP=$FGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -$as_echo "$ac_cv_path_FGREP" >&6; } - FGREP="$ac_cv_path_FGREP" - - -test -z "$GREP" && GREP=grep - - - - - - - - - - - - - - - - - - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if ${lt_cv_path_LD+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${lt_cv_prog_gnu_ld+:} false; then : - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 &5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 -$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if ${lt_cv_path_NM+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - if test -n "$ac_tool_prefix"; then - for ac_prog in dumpbin "link -dump" - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DUMPBIN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DUMPBIN"; then - ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DUMPBIN=$ac_cv_prog_DUMPBIN -if test -n "$DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 -$as_echo "$DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$DUMPBIN" && break - done -fi -if test -z "$DUMPBIN"; then - ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in dumpbin "link -dump" -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DUMPBIN"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN -if test -n "$ac_ct_DUMPBIN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 -$as_echo "$ac_ct_DUMPBIN" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_DUMPBIN" && break -done - - if test "x$ac_ct_DUMPBIN" = x; then - DUMPBIN=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DUMPBIN=$ac_ct_DUMPBIN - fi -fi - - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - DUMPBIN=: - ;; - esac - fi - - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" - fi -fi -test -z "$NM" && NM=nm - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 -$as_echo_n "checking the name lister ($NM) interface... " >&6; } -if ${lt_cv_nm_interface+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: output\"" >&5) - cat conftest.out >&5 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -$as_echo "$lt_cv_nm_interface" >&6; } - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - -# find the maximum length of command line arguments -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 -$as_echo_n "checking the maximum length of command line arguments... " >&6; } -if ${lt_cv_sys_max_cmd_len+:} false; then : - $as_echo_n "(cached) " >&6 -else - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - os2*) - # The test takes a long time on OS/2. - lt_cv_sys_max_cmd_len=8192 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len" && \ - test undefined != "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 -$as_echo "$lt_cv_sys_max_cmd_len" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } -fi -max_cmd_len=$lt_cv_sys_max_cmd_len - - - - - - -: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 -$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 -$as_echo "$xsi_shell" >&6; } - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 -$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } -lt_shell_append=no -( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 -$as_echo "$lt_shell_append" >&6; } - - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi - - - - - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -if ${lt_cv_to_host_file_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac - -fi - -to_host_file_cmd=$lt_cv_to_host_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -$as_echo "$lt_cv_to_host_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -if ${lt_cv_to_tool_file_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - #assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac - -fi - -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -$as_echo "$lt_cv_to_tool_file_cmd" >&6; } - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 -$as_echo_n "checking for $LD option to reload object files... " >&6; } -if ${lt_cv_ld_reload_flag+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_reload_flag='-r' -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -$as_echo "$lt_cv_ld_reload_flag" >&6; } -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - if test "$GCC" != yes; then - reload_cmds=false - fi - ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 -$as_echo_n "checking how to recognize dependent libraries... " >&6; } -if ${lt_cv_deplibs_check_method+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. - -case $host_os in -aix[4-9]*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. - if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[3-9]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - - - - - - - - - - - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" - ;; -esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - - - - - - - - -if test -n "$ac_tool_prefix"; then - for ac_prog in ar - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AR" && break - done -fi -if test -z "$AR"; then - ac_ct_AR=$AR - for ac_prog in ar -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_AR" && break -done - - if test "x$ac_ct_AR" = x; then - AR="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -fi - -: ${AR=ar} -: ${AR_FLAGS=cru} - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -$as_echo_n "checking for archiver @FILE support... " >&6; } -if ${lt_cv_ar_at_file+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ar_at_file=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test "$ac_status" -eq 0; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test "$ac_status" -ne 0; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -$as_echo "$lt_cv_ar_at_file" >&6; } - -if test "x$lt_cv_ar_at_file" = xno; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -test -z "$STRIP" && STRIP=: - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -test -z "$RANLIB" && RANLIB=: - - - - - - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" -fi - -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 -$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if ${lt_cv_sys_global_symbol_pipe+:} false; then : - $as_echo_n "(cached) " >&6 -else - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[ABCDGISTW]' - ;; -hpux*) - if test "$host_cpu" = ia64; then - symcode='[ABCDEGRST]' - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris*) - symcode='[BDRT]' - ;; -sco3.2v5*) - symcode='[DT]' - ;; -sysv4.2uw2*) - symcode='[DT]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[ABDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK '"\ -" {last_section=section; section=\$ 3};"\ -" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -$as_echo "failed" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -$as_echo "ok" >&6; } -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then - nm_file_list_spec='@' -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -$as_echo_n "checking for sysroot... " >&6; } - -# Check whether --with-sysroot was given. -if test "${with_sysroot+set}" = set; then : - withval=$with_sysroot; -else - with_sysroot=no -fi - - -lt_sysroot= -case ${with_sysroot} in #( - yes) - if test "$GCC" = yes; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 -$as_echo "${with_sysroot}" >&6; } - as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 - ;; -esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -$as_echo "${lt_sysroot:-no}" >&6; } - - - - - -# Check whether --enable-libtool-lock was given. -if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -fi - -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '#line '$LINENO' "configure"' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - case `/usr/bin/file conftest.o` in - *x86-64*) - LD="${LD-ld} -m elf32_x86_64" - ;; - *) - LD="${LD-ld} -m elf_i386" - ;; - esac - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 -$as_echo_n "checking whether the C compiler needs -belf... " >&6; } -if ${lt_cv_cc_needs_belf+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_cc_needs_belf=yes -else - lt_cv_cc_needs_belf=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 -$as_echo "$lt_cv_cc_needs_belf" >&6; } - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) - case $host in - i?86-*-solaris*) - LD="${LD-ld} -m elf_x86_64" - ;; - sparc*-*-solaris*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - # GNU ld 2.21 introduced _sol2 emulations. Use them if available. - if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD="${LD-ld}_sol2" - fi - ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks="$enable_libtool_lock" - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -set dummy ${ac_tool_prefix}mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$MANIFEST_TOOL"; then - ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -if test -n "$MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -$as_echo "$MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_MANIFEST_TOOL"; then - ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL - # Extract the first word of "mt", so it can be a program name with args. -set dummy mt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_MANIFEST_TOOL"; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -if test -n "$ac_ct_MANIFEST_TOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_MANIFEST_TOOL" = x; then - MANIFEST_TOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL - fi -else - MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -fi - -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -if ${lt_cv_path_mainfest_tool+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&5 - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -$as_echo "$lt_cv_path_mainfest_tool" >&6; } -if test "x$lt_cv_path_mainfest_tool" != xyes; then - MANIFEST_TOOL=: -fi - - - - - - - case $host_os in - rhapsody* | darwin*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. -set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DSYMUTIL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$DSYMUTIL"; then - ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DSYMUTIL=$ac_cv_prog_DSYMUTIL -if test -n "$DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 -$as_echo "$DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DSYMUTIL"; then - ac_ct_DSYMUTIL=$DSYMUTIL - # Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DSYMUTIL"; then - ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL -if test -n "$ac_ct_DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 -$as_echo "$ac_ct_DSYMUTIL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DSYMUTIL" = x; then - DSYMUTIL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DSYMUTIL=$ac_ct_DSYMUTIL - fi -else - DSYMUTIL="$ac_cv_prog_DSYMUTIL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. -set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_NMEDIT+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$NMEDIT"; then - ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -NMEDIT=$ac_cv_prog_NMEDIT -if test -n "$NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 -$as_echo "$NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_NMEDIT"; then - ac_ct_NMEDIT=$NMEDIT - # Extract the first word of "nmedit", so it can be a program name with args. -set dummy nmedit; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_NMEDIT"; then - ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_NMEDIT="nmedit" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT -if test -n "$ac_ct_NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 -$as_echo "$ac_ct_NMEDIT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_NMEDIT" = x; then - NMEDIT=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - NMEDIT=$ac_ct_NMEDIT - fi -else - NMEDIT="$ac_cv_prog_NMEDIT" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. -set dummy ${ac_tool_prefix}lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_LIPO+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$LIPO"; then - ac_cv_prog_LIPO="$LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_LIPO="${ac_tool_prefix}lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -LIPO=$ac_cv_prog_LIPO -if test -n "$LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 -$as_echo "$LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_LIPO"; then - ac_ct_LIPO=$LIPO - # Extract the first word of "lipo", so it can be a program name with args. -set dummy lipo; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_LIPO+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_LIPO"; then - ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_LIPO="lipo" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO -if test -n "$ac_ct_LIPO"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 -$as_echo "$ac_ct_LIPO" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_LIPO" = x; then - LIPO=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - LIPO=$ac_ct_LIPO - fi -else - LIPO="$ac_cv_prog_LIPO" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL"; then - ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OTOOL="${ac_tool_prefix}otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL=$ac_cv_prog_OTOOL -if test -n "$OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 -$as_echo "$OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL"; then - ac_ct_OTOOL=$OTOOL - # Extract the first word of "otool", so it can be a program name with args. -set dummy otool; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL"; then - ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OTOOL="otool" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL -if test -n "$ac_ct_OTOOL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 -$as_echo "$ac_ct_OTOOL" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL" = x; then - OTOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL=$ac_ct_OTOOL - fi -else - OTOOL="$ac_cv_prog_OTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_OTOOL64+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$OTOOL64"; then - ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL64=$ac_cv_prog_OTOOL64 -if test -n "$OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 -$as_echo "$OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL64"; then - ac_ct_OTOOL64=$OTOOL64 - # Extract the first word of "otool64", so it can be a program name with args. -set dummy otool64; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OTOOL64"; then - ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OTOOL64="otool64" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 -if test -n "$ac_ct_OTOOL64"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 -$as_echo "$ac_ct_OTOOL64" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OTOOL64" = x; then - OTOOL64=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL64=$ac_ct_OTOOL64 - fi -else - OTOOL64="$ac_cv_prog_OTOOL64" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 -$as_echo_n "checking for -single_module linker flag... " >&6; } -if ${lt_cv_apple_cc_single_mod+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - # If there is a non-empty error log, and "single_module" - # appears in it, assume the flag caused a linker warning - if test -s conftest.err && $GREP single_module conftest.err; then - cat conftest.err >&5 - # Otherwise, if the output was created with a 0 exit code from - # the compiler, it worked. - elif test -f libconftest.dylib && test $_lt_result -eq 0; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&5 - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 -$as_echo "$lt_cv_apple_cc_single_mod" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 -$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } -if ${lt_cv_ld_exported_symbols_list+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_ld_exported_symbols_list=yes -else - lt_cv_ld_exported_symbols_list=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 -$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 -$as_echo_n "checking for -force_load linker flag... " >&6; } -if ${lt_cv_ld_force_load+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 - echo "$RANLIB libconftest.a" >&5 - $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -s conftest.err && $GREP force_load conftest.err; then - cat conftest.err >&5 - elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&5 - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 -$as_echo "$lt_cv_ld_force_load" >&6; } - case $host_os in - rhapsody* | darwin1.[012]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[012]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_header in dlfcn.h -do : - ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default -" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - -fi - -done - - - - - -# Set options - - - - enable_dlopen=no - - - enable_win32_dll=no - - - # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_shared=yes -fi - - - - - - - - - - # Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_static=yes -fi - - - - - - - - - - -# Check whether --with-pic was given. -if test "${with_pic+set}" = set; then : - withval=$with_pic; lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; - *) - pic_mode=default - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for lt_pkg in $withval; do - IFS="$lt_save_ifs" - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - pic_mode=default -fi - - -test -z "$pic_mode" && pic_mode=default - - - - - - - - # Check whether --enable-fast-install was given. -if test "${enable_fast_install+set}" = set; then : - enableval=$enable_fast_install; p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac -else - enable_fast_install=yes -fi - - - - - - - - - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -test -z "$LN_S" && LN_S="ln -s" - - - - - - - - - - - - - - -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 -$as_echo_n "checking for objdir... " >&6; } -if ${lt_cv_objdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -$as_echo "$lt_cv_objdir" >&6; } -objdir=$lt_cv_objdir - - - - - -cat >>confdefs.h <<_ACEOF -#define LT_OBJDIR "$lt_cv_objdir/" -_ACEOF - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` - - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 -$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 -$as_echo_n "checking for file... " >&6; } -if ${lt_cv_path_MAGIC_CMD+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac -fi - -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -# Use C for the default configuration in the libtool script - -lt_save_CC="$CC" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* - - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - -lt_prog_compiler_no_builtin_flag= - -if test "$GCC" = yes; then - case $cc_basename in - nvcc*) - lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; - *) - lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } - -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - - - - - - - lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - lt_prog_compiler_pic='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - lt_prog_compiler_static= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - lt_prog_compiler_wl='-Xlinker ' - if test -n "$lt_prog_compiler_pic"; then - lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" - fi - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. - ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; - nagfor*) - # NAG Fortran compiler - lt_prog_compiler_wl='-Wl,-Wl,,' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-qpic' - lt_prog_compiler_static='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' - ;; - *Sun\ F* | *Sun*Fortran*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Qoption ld ' - ;; - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Wl,' - ;; - *Intel*\ [CF]*Compiler*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - *Portland\ Group*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - esac - ;; - esac - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -if ${lt_cv_prog_compiler_pic+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -$as_echo "$lt_cv_prog_compiler_pic" >&6; } -lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if ${lt_cv_prog_compiler_pic_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_pic_works=yes - fi - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 -$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } - -if test x"$lt_cv_prog_compiler_pic_works" = xyes; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi - - - - - - - - - - - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if ${lt_cv_prog_compiler_static_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_static_works=yes - fi - else - lt_cv_prog_compiler_static_works=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 -$as_echo "$lt_cv_prog_compiler_static_works" >&6; } - -if test x"$lt_cv_prog_compiler_static_works" = xyes; then - : -else - lt_prog_compiler_static= -fi - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if ${lt_cv_prog_compiler_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if ${lt_cv_prog_compiler_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - - - - -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&6; } - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - runpath_var= - allow_undefined_flag= - always_export_symbols=no - archive_cmds= - archive_expsym_cmds= - compiler_needs_object=no - enable_shared_with_static_runtimes=no - export_dynamic_flag_spec= - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - hardcode_automatic=no - hardcode_direct=no - hardcode_direct_absolute=no - hardcode_libdir_flag_spec= - hardcode_libdir_separator= - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - inherit_rpath=no - link_all_deplibs=unknown - module_cmds= - module_expsym_cmds= - old_archive_from_new_cmds= - old_archive_from_expsyms_cmds= - thread_safe_flag_spec= - whole_archive_flag_spec= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - linux* | k*bsd*-gnu | gnu*) - link_all_deplibs=no - ;; - esac - - ld_shlibs=yes - - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then - case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; - *\ \(GNU\ Binutils\)\ [3-9]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - fi - - if test "$lt_use_gnu_ld_interface" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - export_dynamic_flag_spec='${wl}--export-all-symbols' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' - exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs=no - fi - ;; - - haiku*) - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - link_all_deplibs=yes - ;; - - interix[3-9]*) - hardcode_direct=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - whole_archive_flag_spec= - tmp_sharedflag='--shared' ;; - xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - compiler_needs_object=yes - ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - compiler_needs_object=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - xlf* | bgf* | bgxlf* | mpixlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - ld_shlibs=no - fi - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test "$ld_shlibs" = no; then - runpath_var= - hardcode_libdir_flag_spec= - export_dynamic_flag_spec= - whole_archive_flag_spec= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix[4-9]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_direct_absolute=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - file_list_spec='${wl}-f,' - - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - link_all_deplibs=no - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - export_dynamic_flag_spec='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - if ${lt_cv_aix_libpath_+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - if ${lt_cv_aix_libpath_+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' - fi - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl*) - # Native MSVC - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - always_export_symbols=yes - file_list_spec='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, )='true' - enable_shared_with_static_runtimes=yes - exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - old_postinstall_cmds='chmod 644 $oldlib' - postlink_cmds='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC wrapper - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - enable_shared_with_static_runtimes=yes - ;; - esac - ;; - - darwin* | rhapsody*) - - - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - - else - whole_archive_flag_spec='' - fi - link_all_deplibs=yes - allow_undefined_flag="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=func_echo_all - archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - - else - ld_shlibs=no - fi - - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2.*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test "$GCC" = yes; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 -$as_echo_n "checking if $CC understands -b... " >&6; } -if ${lt_cv_prog_compiler__b+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler__b=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -b" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler__b=yes - fi - else - lt_cv_prog_compiler__b=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 -$as_echo "$lt_cv_prog_compiler__b" >&6; } - -if test x"$lt_cv_prog_compiler__b" = xyes; then - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' -fi - - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - *) - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -if ${lt_cv_irix_exported_symbol+:} false; then : - $as_echo_n "(cached) " >&6 -else - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int foo (void) { return 0; } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - lt_cv_irix_exported_symbol=yes -else - lt_cv_irix_exported_symbol=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -$as_echo "$lt_cv_irix_exported_symbol" >&6; } - if test "$lt_cv_irix_exported_symbol" = yes; then - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - inherit_rpath=yes - link_all_deplibs=yes - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - *nto* | *qnx*) - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - hardcode_shlibpath_var=no - hardcode_direct_absolute=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - else - ld_shlibs=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - archive_cmds_need_lc='no' - hardcode_libdir_separator=: - ;; - - solaris*) - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' - ;; - *) - wlarc='${wl}' - archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='${wl}-z,text' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag='${wl}-z,text' - allow_undefined_flag='${wl}-z,nodefs' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-R,$libdir' - hardcode_libdir_separator=':' - link_all_deplibs=yes - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='${wl}-Blargedynsym' - ;; - esac - fi - fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=no - -with_gnu_ld=$with_gnu_ld - - - - - - - - - - - - - - - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } -if ${lt_cv_archive_cmds_need_lc+:} false; then : - $as_echo_n "(cached) " >&6 -else - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 - (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - then - lt_cv_archive_cmds_need_lc=no - else - lt_cv_archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 -$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } - archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc - ;; - esac - fi - ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&6; } - -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[lt_foo]++; } - if (lt_freq[lt_foo] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([A-Za-z]:\),\1,g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[4-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; - - *,cl*) - # Native MSVC - libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' - - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec="$LIB" - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac - - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; - - *) - # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[23].*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -haiku*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; - -interix[3-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux # correct to gnu/linux during the next big refactor - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - - # Some binutils ld are patched to set DT_RUNPATH - if ${lt_cv_shlibpath_overrides_runpath+:} false; then : - $as_echo_n "(cached) " >&6 -else - lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : - lt_cv_shlibpath_overrides_runpath=yes -fi -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - -fi - - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&6; } -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || - test -n "$runpath_var" || - test "X$hardcode_automatic" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -$as_echo "$hardcode_action" >&6; } - -if test "$hardcode_action" = relink || - test "$inherit_rpath" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - - - - - - if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - *) - ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if ${ac_cv_lib_dld_shl_load+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_shl_load=yes -else - ac_cv_lib_dld_shl_load=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" -else - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 -$as_echo_n "checking for dlopen in -lsvld... " >&6; } -if ${ac_cv_lib_svld_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_svld_dlopen=yes -else - ac_cv_lib_svld_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 -$as_echo "$ac_cv_lib_svld_dlopen" >&6; } -if test "x$ac_cv_lib_svld_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 -$as_echo_n "checking for dld_link in -ldld... " >&6; } -if ${ac_cv_lib_dld_dld_link+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dld_link (); -int -main () -{ -return dld_link (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dld_dld_link=yes -else - ac_cv_lib_dld_dld_link=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 -$as_echo "$ac_cv_lib_dld_dld_link" >&6; } -if test "x$ac_cv_lib_dld_dld_link" = xyes; then : - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 -$as_echo_n "checking whether a program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 -$as_echo "$lt_cv_dlopen_self" >&6; } - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 -$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if ${lt_cv_dlopen_self_static+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -$as_echo "$lt_cv_dlopen_self_static" >&6; } - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - - - - - - - - - - - - - - - - -striplib= -old_striplib= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 -$as_echo_n "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -fi - - - - - - - - - - - - - # Report which library types will actually be built - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&6; } - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } - - - - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC="$lt_save_CC" - - - - - - - - - - - - - - - - ac_config_commands="$ac_config_commands libtool" - - - - -# Only expand once: - - -ac_config_headers="$ac_config_headers config.h" - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - -ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : - -else - -cat >>confdefs.h <<_ACEOF -#define size_t unsigned int -_ACEOF - -fi - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 -$as_echo_n "checking for working alloca.h... " >&6; } -if ${ac_cv_working_alloca_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_working_alloca_h=yes -else - ac_cv_working_alloca_h=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 -$as_echo "$ac_cv_working_alloca_h" >&6; } -if test $ac_cv_working_alloca_h = yes; then - -$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 -$as_echo_n "checking for alloca... " >&6; } -if ${ac_cv_func_alloca_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# ifdef HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -void *alloca (size_t); -# endif -# endif -# endif -# endif -#endif - -int -main () -{ -char *p = (char *) alloca (1); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_alloca_works=yes -else - ac_cv_func_alloca_works=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 -$as_echo "$ac_cv_func_alloca_works" >&6; } - -if test $ac_cv_func_alloca_works = yes; then - -$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h - -else - # The SVR3 libPW and SVR4 libucb both contain incompatible functions -# that cause trouble. Some versions do not even contain alloca or -# contain a buggy version. If you still want to use their alloca, -# use ar to extract alloca.o from them instead of compiling alloca.c. - -ALLOCA=\${LIBOBJDIR}alloca.$ac_objext - -$as_echo "#define C_ALLOCA 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if ${ac_cv_os_cray+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined CRAY && ! defined CRAY2 -webecray -#else -wenotbecray -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "webecray" >/dev/null 2>&1; then : - ac_cv_os_cray=yes -else - ac_cv_os_cray=no -fi -rm -f conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 -$as_echo "$ac_cv_os_cray" >&6; } -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - -cat >>confdefs.h <<_ACEOF -#define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 -$as_echo_n "checking stack direction for C alloca... " >&6; } -if ${ac_cv_c_stack_direction+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_c_stack_direction=0 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -find_stack_direction (int *addr, int depth) -{ - int dir, dummy = 0; - if (! addr) - addr = &dummy; - *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; - dir = depth ? find_stack_direction (addr, depth - 1) : 0; - return dir + dummy; -} - -int -main (int argc, char **argv) -{ - return find_stack_direction (0, argc + !argv + 20) < 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_stack_direction=1 -else - ac_cv_c_stack_direction=-1 -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 -$as_echo "$ac_cv_c_stack_direction" >&6; } -cat >>confdefs.h <<_ACEOF -#define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 -$as_echo_n "checking for library containing strerror... " >&6; } -if ${ac_cv_search_strerror+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char strerror (); -int -main () -{ -return strerror (); - ; - return 0; -} -_ACEOF -for ac_lib in '' cposix; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_strerror=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_strerror+:} false; then : - break -fi -done -if ${ac_cv_search_strerror+:} false; then : - -else - ac_cv_search_strerror=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 -$as_echo "$ac_cv_search_strerror" >&6; } -ac_res=$ac_cv_search_strerror -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if ${ac_cv_c_const+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - -#ifndef __cplusplus - /* Ultrix mips cc rejects this sort of thing. */ - typedef int charset[2]; - const charset cs = { 0, 0 }; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this sort of thing. */ - char tx; - char *t = &tx; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; } bx; - struct s *b = &bx; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_const=yes -else - ac_cv_c_const=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -$as_echo "#define const /**/" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if ${ac_cv_c_inline+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_inline=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$ac_cv_c_inline" != no && break -done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$ac_cv_c_inline" >&6; } - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - -for ac_prog in flex lex -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_LEX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$LEX"; then - ac_cv_prog_LEX="$LEX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_LEX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -LEX=$ac_cv_prog_LEX -if test -n "$LEX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 -$as_echo "$LEX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$LEX" && break -done -test -n "$LEX" || LEX=":" - -if test "x$LEX" != "x:"; then - cat >conftest.l <<_ACEOF -%% -a { ECHO; } -b { REJECT; } -c { yymore (); } -d { yyless (1); } -e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument. */ - yyless ((input () != 0)); } -f { unput (yytext[0]); } -. { BEGIN INITIAL; } -%% -#ifdef YYTEXT_POINTER -extern char *yytext; -#endif -int -main (void) -{ - return ! yylex () + ! yywrap (); -} -_ACEOF -{ { ac_try="$LEX conftest.l" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$LEX conftest.l") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 -$as_echo_n "checking lex output file root... " >&6; } -if ${ac_cv_prog_lex_root+:} false; then : - $as_echo_n "(cached) " >&6 -else - -if test -f lex.yy.c; then - ac_cv_prog_lex_root=lex.yy -elif test -f lexyy.c; then - ac_cv_prog_lex_root=lexyy -else - as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 -$as_echo "$ac_cv_prog_lex_root" >&6; } -LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root - -if test -z "${LEXLIB+set}"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 -$as_echo_n "checking lex library... " >&6; } -if ${ac_cv_lib_lex+:} false; then : - $as_echo_n "(cached) " >&6 -else - - ac_save_LIBS=$LIBS - ac_cv_lib_lex='none needed' - for ac_lib in '' -lfl -ll; do - LIBS="$ac_lib $ac_save_LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -`cat $LEX_OUTPUT_ROOT.c` -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_lex=$ac_lib -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - test "$ac_cv_lib_lex" != 'none needed' && break - done - LIBS=$ac_save_LIBS - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 -$as_echo "$ac_cv_lib_lex" >&6; } - test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 -$as_echo_n "checking whether yytext is a pointer... " >&6; } -if ${ac_cv_prog_lex_yytext_pointer+:} false; then : - $as_echo_n "(cached) " >&6 -else - # POSIX says lex can declare yytext either as a pointer or an array; the -# default is implementation-dependent. Figure out which it is, since -# not all implementations provide the %pointer and %array declarations. -ac_cv_prog_lex_yytext_pointer=no -ac_save_LIBS=$LIBS -LIBS="$LEXLIB $ac_save_LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #define YYTEXT_POINTER 1 -`cat $LEX_OUTPUT_ROOT.c` -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_prog_lex_yytext_pointer=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_save_LIBS - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 -$as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; } -if test $ac_cv_prog_lex_yytext_pointer = yes; then - -$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h - -fi -rm -f conftest.l $LEX_OUTPUT_ROOT.c - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -for ac_header in limits.h locale.h memory.h stdbool.h stddef.h stdlib.h string.h unistd.h utime.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 -$as_echo_n "checking return type of signal handlers... " >&6; } -if ${ac_cv_type_signal+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include - -int -main () -{ -return *(signal (0, 0)) (0) == 1; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_type_signal=int -else - ac_cv_type_signal=void -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 -$as_echo "$ac_cv_type_signal" >&6; } - -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if ${ac_cv_header_time+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time=yes -else - ac_cv_header_time=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then - -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h - -fi - - - for ac_header in utime.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "utime.h" "ac_cv_header_utime_h" "$ac_includes_default" -if test "x$ac_cv_header_utime_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_UTIME_H 1 -_ACEOF - -fi - -done - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct utimbuf" >&5 -$as_echo_n "checking for struct utimbuf... " >&6; } -if ${fu_cv_sys_struct_utimbuf+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef TIME_WITH_SYS_TIME -# include -# include -#else -# ifdef HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif -#ifdef HAVE_UTIME_H -# include -#endif - -int -main () -{ -static struct utimbuf x; x.actime = x.modtime; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - fu_cv_sys_struct_utimbuf=yes -else - fu_cv_sys_struct_utimbuf=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_struct_utimbuf" >&5 -$as_echo "$fu_cv_sys_struct_utimbuf" >&6; } - - if test $fu_cv_sys_struct_utimbuf = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_UTIMBUF 1 -_ACEOF - - fi - - - - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" - - -# Check whether --with-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 -$as_echo_n "checking for ld used by GCC... " >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | [A-Za-z]:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if ${acl_cv_path_LD+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in - *GNU* | *'with BFD'*) - test "$with_gnu_ld" != no && break ;; - *) - test "$with_gnu_ld" != yes && break ;; - esac - fi - done - IFS="$ac_save_ifs" -else - acl_cv_path_LD="$LD" # Let the user override the test with a path. -fi -fi - -LD="$acl_cv_path_LD" -if test -n "$LD"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if ${acl_cv_prog_gnu_ld+:} false; then : - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -case `$LD -v 2>&1 &5 -$as_echo "$acl_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$acl_cv_prog_gnu_ld - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 -$as_echo_n "checking for shared library run path origin... " >&6; } -if ${acl_cv_rpath+:} false; then : - $as_echo_n "(cached) " >&6 -else - - CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ - ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 -$as_echo "$acl_cv_rpath" >&6; } - wl="$acl_cv_wl" - acl_libext="$acl_cv_libext" - acl_shlibext="$acl_cv_shlibext" - acl_libname_spec="$acl_cv_libname_spec" - acl_library_names_spec="$acl_cv_library_names_spec" - acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - acl_hardcode_direct="$acl_cv_hardcode_direct" - acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" - # Check whether --enable-rpath was given. -if test "${enable_rpath+set}" = set; then : - enableval=$enable_rpath; : -else - enable_rpath=yes -fi - - - - - acl_libdirstem=lib - acl_libdirstem2= - case "$host_os" in - solaris*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 -$as_echo_n "checking for 64-bit host... " >&6; } -if ${gl_cv_solaris_64bit+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef _LP64 -sixtyfour bits -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "sixtyfour bits" >/dev/null 2>&1; then : - gl_cv_solaris_64bit=yes -else - gl_cv_solaris_64bit=no -fi -rm -f conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 -$as_echo "$gl_cv_solaris_64bit" >&6; } - if test $gl_cv_solaris_64bit = yes; then - acl_libdirstem=lib/64 - case "$host_cpu" in - sparc*) acl_libdirstem2=lib/sparcv9 ;; - i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; - esac - fi - ;; - *) - searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - fi - ;; - esac - test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" - - - - - - - - - - - - - use_additional=yes - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - -# Check whether --with-libiconv-prefix was given. -if test "${with_libiconv_prefix+set}" = set; then : - withval=$with_libiconv_prefix; - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then - additional_libdir="$withval/$acl_libdirstem2" - fi - fi - fi - -fi - - LIBICONV= - LTLIBICONV= - INCICONV= - LIBICONV_PREFIX= - HAVE_LIBICONV= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='iconv ' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" - else - : - fi - else - found_dir= - found_la= - found_so= - found_a= - eval libname=\"$acl_libname_spec\" # typically: libname=lib$name - if test -n "$acl_shlibext"; then - shrext=".$acl_shlibext" # typically: shrext=.so - else - shrext= - fi - if test $use_additional = yes; then - dir="$additional_libdir" - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - if test "$enable_rpath" = no \ - || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - if test "$acl_hardcode_direct" = yes; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - haveit= - for x in $LDFLAGS $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" - fi - if test "$acl_hardcode_minus_L" != no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" - fi - fi - additional_includedir= - case "$found_dir" in - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - if test "$name" = 'iconv'; then - LIBICONV_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem2 | */$acl_libdirstem2/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` - if test "$name" = 'iconv'; then - LIBICONV_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INCICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - if test -n "$found_la"; then - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" - ;; - esac - done - fi - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$acl_hardcode_libdir_separator"; then - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - else - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - for found_dir in $ltrpathdirs; do - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" - done - fi - - - - - - - - - - - - - am_save_CPPFLAGS="$CPPFLAGS" - - for element in $INCICONV; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 -$as_echo_n "checking for iconv... " >&6; } -if ${am_cv_func_iconv+:} false; then : - $as_echo_n "(cached) " >&6 -else - - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_func_iconv=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_lib_iconv=yes - am_cv_func_iconv=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$am_save_LIBS" - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 -$as_echo "$am_cv_func_iconv" >&6; } - if test "$am_cv_func_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 -$as_echo_n "checking for working iconv... " >&6; } -if ${am_cv_func_iconv_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - - am_save_LIBS="$LIBS" - if test $am_cv_lib_iconv = yes; then - LIBS="$LIBS $LIBICONV" - fi - if test "$cross_compiling" = yes; then : - case "$host_os" in - aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; - *) am_cv_func_iconv_works="guessing yes" ;; - esac -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -int main () -{ - /* Test against AIX 5.1 bug: Failures are not distinguishable from successful - returns. */ - { - iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); - if (cd_utf8_to_88591 != (iconv_t)(-1)) - { - static const char input[] = "\342\202\254"; /* EURO SIGN */ - char buf[10]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_utf8_to_88591, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - return 1; - } - } - /* Test against Solaris 10 bug: Failures are not distinguishable from - successful returns. */ - { - iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); - if (cd_ascii_to_88591 != (iconv_t)(-1)) - { - static const char input[] = "\263"; - char buf[10]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_ascii_to_88591, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - return 1; - } - } -#if 0 /* This bug could be worked around by the caller. */ - /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; - char buf[50]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_88591_to_utf8, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if ((int)res > 0) - return 1; - } - } -#endif - /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is - provided. */ - if (/* Try standardized names. */ - iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) - /* Try IRIX, OSF/1 names. */ - && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) - /* Try AIX names. */ - && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) - /* Try HP-UX names. */ - && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) - return 1; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - am_cv_func_iconv_works=yes -else - am_cv_func_iconv_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - LIBS="$am_save_LIBS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 -$as_echo "$am_cv_func_iconv_works" >&6; } - case "$am_cv_func_iconv_works" in - *no) am_func_iconv=no am_cv_lib_iconv=no ;; - *) am_func_iconv=yes ;; - esac - else - am_func_iconv=no am_cv_lib_iconv=no - fi - if test "$am_func_iconv" = yes; then - -$as_echo "#define HAVE_ICONV 1" >>confdefs.h - - fi - if test "$am_cv_lib_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 -$as_echo_n "checking how to link with libiconv... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 -$as_echo "$LIBICONV" >&6; } - else - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - - - - if test "$am_cv_func_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 -$as_echo_n "checking for iconv declaration... " >&6; } - if ${am_cv_proto_iconv+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - am_cv_proto_iconv_arg1="" -else - am_cv_proto_iconv_arg1="const" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" -fi - - am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: - $am_cv_proto_iconv" >&5 -$as_echo " - $am_cv_proto_iconv" >&6; } - -cat >>confdefs.h <<_ACEOF -#define ICONV_CONST $am_cv_proto_iconv_arg1 -_ACEOF - - fi - -LIBS="$LIBICONV $LIBS" - -for ac_func in dup2 mbrtowc rename setlocale strerror strndup wcrtomb -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol" -if test "x$ac_cv_func_strtol" = xyes; then : - $as_echo "#define HAVE_STRTOL 1" >>confdefs.h - -else - case " $LIBOBJS " in - *" strtol.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS strtol.$ac_objext" - ;; -esac - -fi - -ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul" -if test "x$ac_cv_func_strtoul" = xyes; then : - $as_echo "#define HAVE_STRTOUL 1" >>confdefs.h - -else - case " $LIBOBJS " in - *" strtoul.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS strtoul.$ac_objext" - ;; -esac - -fi - - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 -$as_echo_n "checking for working alloca.h... " >&6; } -if ${ac_cv_working_alloca_h+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_working_alloca_h=yes -else - ac_cv_working_alloca_h=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 -$as_echo "$ac_cv_working_alloca_h" >&6; } -if test $ac_cv_working_alloca_h = yes; then - -$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 -$as_echo_n "checking for alloca... " >&6; } -if ${ac_cv_func_alloca_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# ifdef HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -void *alloca (size_t); -# endif -# endif -# endif -# endif -#endif - -int -main () -{ -char *p = (char *) alloca (1); - if (p) return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_func_alloca_works=yes -else - ac_cv_func_alloca_works=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 -$as_echo "$ac_cv_func_alloca_works" >&6; } - -if test $ac_cv_func_alloca_works = yes; then - -$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h - -else - # The SVR3 libPW and SVR4 libucb both contain incompatible functions -# that cause trouble. Some versions do not even contain alloca or -# contain a buggy version. If you still want to use their alloca, -# use ar to extract alloca.o from them instead of compiling alloca.c. - -ALLOCA=\${LIBOBJDIR}alloca.$ac_objext - -$as_echo "#define C_ALLOCA 1" >>confdefs.h - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } -if ${ac_cv_os_cray+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined CRAY && ! defined CRAY2 -webecray -#else -wenotbecray -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "webecray" >/dev/null 2>&1; then : - ac_cv_os_cray=yes -else - ac_cv_os_cray=no -fi -rm -f conftest* - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 -$as_echo "$ac_cv_os_cray" >&6; } -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - -cat >>confdefs.h <<_ACEOF -#define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 -$as_echo_n "checking stack direction for C alloca... " >&6; } -if ${ac_cv_c_stack_direction+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_c_stack_direction=0 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -find_stack_direction (int *addr, int depth) -{ - int dir, dummy = 0; - if (! addr) - addr = &dummy; - *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; - dir = depth ? find_stack_direction (addr, depth - 1) : 0; - return dir + dummy; -} - -int -main (int argc, char **argv) -{ - return find_stack_direction (0, argc + !argv + 20) < 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_stack_direction=1 -else - ac_cv_c_stack_direction=-1 -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 -$as_echo "$ac_cv_c_stack_direction" >&6; } -cat >>confdefs.h <<_ACEOF -#define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - -for ac_func in vprintf -do : - ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" -if test "x$ac_cv_func_vprintf" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_VPRINTF 1 -_ACEOF - -ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" -if test "x$ac_cv_func__doprnt" = xyes; then : - -$as_echo "#define HAVE_DOPRNT 1" >>confdefs.h - -fi - -fi -done - - - - - -cat >>confdefs.h <<_ACEOF -#define HAVE_DONE_WORKING_MALLOC_CHECK 1 -_ACEOF - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working malloc" >&5 -$as_echo_n "checking for working malloc... " >&6; } -if ${jm_cv_func_working_malloc+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - jm_cv_func_working_malloc=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - char *malloc (); - int - main () - { - exit (malloc (0) ? 0 : 1); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - jm_cv_func_working_malloc=yes -else - jm_cv_func_working_malloc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $jm_cv_func_working_malloc" >&5 -$as_echo "$jm_cv_func_working_malloc" >&6; } - if test $jm_cv_func_working_malloc = no; then - case " $LIBOBJS " in - *" malloc.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS malloc.$ac_objext" - ;; -esac - - -cat >>confdefs.h <<_ACEOF -#define malloc rpl_malloc -_ACEOF - - fi - - - -cat >>confdefs.h <<_ACEOF -#define HAVE_DONE_WORKING_REALLOC_CHECK 1 -_ACEOF - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working realloc" >&5 -$as_echo_n "checking for working realloc... " >&6; } -if ${jm_cv_func_working_realloc+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - jm_cv_func_working_realloc=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - char *realloc (); - int - main () - { - exit (realloc (0, 0) ? 0 : 1); - } - -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - jm_cv_func_working_realloc=yes -else - jm_cv_func_working_realloc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $jm_cv_func_working_realloc" >&5 -$as_echo "$jm_cv_func_working_realloc" >&6; } - if test $jm_cv_func_working_realloc = no; then - case " $LIBOBJS " in - *" realloc.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS realloc.$ac_objext" - ;; -esac - - -cat >>confdefs.h <<_ACEOF -#define realloc rpl_realloc -_ACEOF - - fi - - - - - for ac_header in langinfo.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "langinfo.h" "ac_cv_header_langinfo_h" "$ac_includes_default" -if test "x$ac_cv_header_langinfo_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LANGINFO_H 1 -_ACEOF - -fi - -done - - for ac_func in nl_langinfo -do : - ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo" -if test "x$ac_cv_func_nl_langinfo" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_NL_LANGINFO 1 -_ACEOF - -fi -done - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 -$as_echo_n "checking for nl_langinfo and CODESET... " >&6; } -if ${jm_cv_langinfo_codeset+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -char* cs = nl_langinfo(CODESET); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - jm_cv_langinfo_codeset=yes -else - jm_cv_langinfo_codeset=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $jm_cv_langinfo_codeset" >&5 -$as_echo "$jm_cv_langinfo_codeset" >&6; } - if test $jm_cv_langinfo_codeset = yes; then - -$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h - - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2.1 or newer" >&5 -$as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; } -if ${ac_cv_gnu_library_2_1+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) - Lucky GNU user - #endif -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Lucky GNU user" >/dev/null 2>&1; then : - ac_cv_gnu_library_2_1=yes -else - ac_cv_gnu_library_2_1=no -fi -rm -f conftest* - - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 -$as_echo "$ac_cv_gnu_library_2_1" >&6; } - - GLIBC21="$ac_cv_gnu_library_2_1" - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if malloc debugging is wanted" >&5 -$as_echo_n "checking if malloc debugging is wanted... " >&6; } - -# Check whether --with-dmalloc was given. -if test "${with_dmalloc+set}" = set; then : - withval=$with_dmalloc; if test "$withval" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define WITH_DMALLOC 1" >>confdefs.h - - LIBS="$LIBS -ldmalloc" - LDFLAGS="$LDFLAGS -g" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - - -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 -$as_echo_n "checking whether NLS is requested... " >&6; } - # Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then : - enableval=$enable_nls; USE_NLS=$enableval -else - USE_NLS=yes -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - - - - - GETTEXT_MACRO_VERSION=0.18 - - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGFMT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - echo "$as_me: trying $ac_dir/$ac_word..." >&5 - if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_GMSGFMT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; - *) MSGFMT_015=$MSGFMT ;; - esac - - case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; - *) GMSGFMT_015=$GMSGFMT ;; - esac - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_XGETTEXT+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$XGETTEXT" in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - echo "$as_me: trying $ac_dir/$ac_word..." >&5 - if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - rm -f messages.po - - case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; - *) XGETTEXT_015=$XGETTEXT ;; - esac - - - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_MSGMERGE+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$MSGMERGE" in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - echo "$as_me: trying $ac_dir/$ac_word..." >&5 - if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then - ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" - ;; -esac -fi -MSGMERGE="$ac_cv_path_MSGMERGE" -if test "$MSGMERGE" != ":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$localedir" || localedir='${datadir}/locale' - - - test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= - - - ac_config_commands="$ac_config_commands po-directories" - - - - - - - - - - - - - - - - - - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 -$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } -if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -CFPreferencesCopyAppValue(NULL, NULL) - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_CFPreferencesCopyAppValue=yes -else - gt_cv_func_CFPreferencesCopyAppValue=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$gt_save_LIBS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 -$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } - if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then - -$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 -$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } -if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_LIBS="$LIBS" - LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -CFLocaleCopyCurrent(); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - gt_cv_func_CFLocaleCopyCurrent=yes -else - gt_cv_func_CFLocaleCopyCurrent=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$gt_save_LIBS" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 -$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } - if test $gt_cv_func_CFLocaleCopyCurrent = yes; then - -$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h - - fi - INTL_MACOSX_LIBS= - if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then - INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" - fi - - - - - - - LIBINTL= - LTLIBINTL= - POSUB= - - case " $gt_needs " in - *" need-formatstring-macros "*) gt_api_version=3 ;; - *" need-ngettext "*) gt_api_version=2 ;; - *) gt_api_version=1 ;; - esac - gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" - gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" - - if test "$USE_NLS" = "yes"; then - gt_use_preinstalled_gnugettext=no - - - if test $gt_api_version -ge 3; then - gt_revision_test_code=' -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) -#endif -typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; -' - else - gt_revision_test_code= - fi - if test $gt_api_version -ge 2; then - gt_expression_test_code=' + * ngettext ("", "", 0)' - else - gt_expression_test_code= - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 -$as_echo_n "checking for GNU gettext in libc... " >&6; } -if eval \${$gt_func_gnugettext_libc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; -int -main () -{ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$gt_func_gnugettext_libc=yes" -else - eval "$gt_func_gnugettext_libc=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$gt_func_gnugettext_libc - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then - - - - - - am_save_CPPFLAGS="$CPPFLAGS" - - for element in $INCICONV; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 -$as_echo_n "checking for iconv... " >&6; } -if ${am_cv_func_iconv+:} false; then : - $as_echo_n "(cached) " >&6 -else - - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_func_iconv=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - am_cv_lib_iconv=yes - am_cv_func_iconv=yes -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$am_save_LIBS" - fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 -$as_echo "$am_cv_func_iconv" >&6; } - if test "$am_cv_func_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 -$as_echo_n "checking for working iconv... " >&6; } -if ${am_cv_func_iconv_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - - am_save_LIBS="$LIBS" - if test $am_cv_lib_iconv = yes; then - LIBS="$LIBS $LIBICONV" - fi - if test "$cross_compiling" = yes; then : - case "$host_os" in - aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; - *) am_cv_func_iconv_works="guessing yes" ;; - esac -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -int main () -{ - /* Test against AIX 5.1 bug: Failures are not distinguishable from successful - returns. */ - { - iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); - if (cd_utf8_to_88591 != (iconv_t)(-1)) - { - static const char input[] = "\342\202\254"; /* EURO SIGN */ - char buf[10]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_utf8_to_88591, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - return 1; - } - } - /* Test against Solaris 10 bug: Failures are not distinguishable from - successful returns. */ - { - iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); - if (cd_ascii_to_88591 != (iconv_t)(-1)) - { - static const char input[] = "\263"; - char buf[10]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_ascii_to_88591, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - return 1; - } - } -#if 0 /* This bug could be worked around by the caller. */ - /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; - char buf[50]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_88591_to_utf8, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if ((int)res > 0) - return 1; - } - } -#endif - /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is - provided. */ - if (/* Try standardized names. */ - iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) - /* Try IRIX, OSF/1 names. */ - && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) - /* Try AIX names. */ - && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) - /* Try HP-UX names. */ - && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) - return 1; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - am_cv_func_iconv_works=yes -else - am_cv_func_iconv_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - LIBS="$am_save_LIBS" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 -$as_echo "$am_cv_func_iconv_works" >&6; } - case "$am_cv_func_iconv_works" in - *no) am_func_iconv=no am_cv_lib_iconv=no ;; - *) am_func_iconv=yes ;; - esac - else - am_func_iconv=no am_cv_lib_iconv=no - fi - if test "$am_func_iconv" = yes; then - -$as_echo "#define HAVE_ICONV 1" >>confdefs.h - - fi - if test "$am_cv_lib_iconv" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 -$as_echo_n "checking how to link with libiconv... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 -$as_echo "$LIBICONV" >&6; } - else - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - - - - - - - - - - - - use_additional=yes - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - -# Check whether --with-libintl-prefix was given. -if test "${with_libintl_prefix+set}" = set; then : - withval=$with_libintl_prefix; - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then - additional_libdir="$withval/$acl_libdirstem2" - fi - fi - fi - -fi - - LIBINTL= - LTLIBINTL= - INCINTL= - LIBINTL_PREFIX= - HAVE_LIBINTL= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='intl ' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" - else - : - fi - else - found_dir= - found_la= - found_so= - found_a= - eval libname=\"$acl_libname_spec\" # typically: libname=lib$name - if test -n "$acl_shlibext"; then - shrext=".$acl_shlibext" # typically: shrext=.so - else - shrext= - fi - if test $use_additional = yes; then - dir="$additional_libdir" - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - if test "$enable_rpath" = no \ - || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - if test "$acl_hardcode_direct" = yes; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - haveit= - for x in $LDFLAGS $LIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" - fi - if test "$acl_hardcode_minus_L" != no; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" - fi - fi - additional_includedir= - case "$found_dir" in - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - if test "$name" = 'intl'; then - LIBINTL_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem2 | */$acl_libdirstem2/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` - if test "$name" = 'intl'; then - LIBINTL_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INCINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - if test -n "$found_la"; then - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" - ;; - esac - done - fi - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$acl_hardcode_libdir_separator"; then - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" - else - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - for found_dir in $ltrpathdirs; do - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" - done - fi - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 -$as_echo_n "checking for GNU gettext in libintl... " >&6; } -if eval \${$gt_func_gnugettext_libintl+:} false; then : - $as_echo_n "(cached) " >&6 -else - gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); -int -main () -{ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - eval "$gt_func_gnugettext_libintl=yes" -else - eval "$gt_func_gnugettext_libintl=no" -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then - LIBS="$LIBS $LIBICONV" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *); -int -main () -{ -bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - eval "$gt_func_gnugettext_libintl=yes" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS" -fi -eval ac_res=\$$gt_func_gnugettext_libintl - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - fi - - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ - || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ - && test "$PACKAGE" != gettext-runtime \ - && test "$PACKAGE" != gettext-tools; }; then - gt_use_preinstalled_gnugettext=yes - else - LIBINTL= - LTLIBINTL= - INCINTL= - fi - - - - if test -n "$INTL_MACOSX_LIBS"; then - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" - LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" - fi - fi - - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - -$as_echo "#define ENABLE_NLS 1" >>confdefs.h - - else - USE_NLS=no - fi - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 -$as_echo_n "checking whether to use NLS... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 -$as_echo "$USE_NLS" >&6; } - if test "$USE_NLS" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 -$as_echo_n "checking where the gettext function comes from... " >&6; } - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - gt_source="external libintl" - else - gt_source="libc" - fi - else - gt_source="included intl directory" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 -$as_echo "$gt_source" >&6; } - fi - - if test "$USE_NLS" = "yes"; then - - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 -$as_echo_n "checking how to link with libintl... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 -$as_echo "$LIBINTL" >&6; } - - for element in $INCINTL; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - - fi - - -$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h - - -$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h - - fi - - POSUB=po - fi - - - - INTLLIBS="$LIBINTL" - - - - - - - - - -ac_config_files="$ac_config_files Makefile cleaner.h contrib/Makefile doc/Makefile lib/Makefile po/Makefile.in src/Makefile tests/Makefile tests/setup.py" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by recode $as_me 3.7-beta2, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to the package provider." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -recode config.status 3.7-beta2 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' -macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' -enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' -enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' -pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' -SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' -ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' -PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' -host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' -host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' -host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' -build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' -build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' -build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' -SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' -Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' -GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' -EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' -FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' -LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' -NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' -LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' -ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' -exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' -lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' -reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' -AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' -STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' -RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' -lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' -CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' -compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' -GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' -objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' -need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' -LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' -libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' -module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' -hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' -hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' -hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' -version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' -runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' -libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' -soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' -install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' -finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' -old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' -striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' - -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in SHELL \ -ECHO \ -PATH_SEPARATOR \ -SED \ -GREP \ -EGREP \ -FGREP \ -LD \ -NM \ -LN_S \ -lt_SP2NL \ -lt_NL2SP \ -reload_flag \ -OBJDUMP \ -deplibs_check_method \ -file_magic_cmd \ -file_magic_glob \ -want_nocaseglob \ -DLLTOOL \ -sharedlib_from_linklib_cmd \ -AR \ -AR_FLAGS \ -archiver_list_spec \ -STRIP \ -RANLIB \ -CC \ -CFLAGS \ -compiler \ -lt_cv_sys_global_symbol_pipe \ -lt_cv_sys_global_symbol_to_cdecl \ -lt_cv_sys_global_symbol_to_c_name_address \ -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -nm_file_list_spec \ -lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_pic \ -lt_prog_compiler_wl \ -lt_prog_compiler_static \ -lt_cv_prog_compiler_c_o \ -need_locks \ -MANIFEST_TOOL \ -DSYMUTIL \ -NMEDIT \ -LIPO \ -OTOOL \ -OTOOL64 \ -shrext_cmds \ -export_dynamic_flag_spec \ -whole_archive_flag_spec \ -compiler_needs_object \ -with_gnu_ld \ -allow_undefined_flag \ -no_undefined_flag \ -hardcode_libdir_flag_spec \ -hardcode_libdir_separator \ -exclude_expsyms \ -include_expsyms \ -file_list_spec \ -variables_saved_for_relink \ -libname_spec \ -library_names_spec \ -soname_spec \ -install_override_mode \ -finish_eval \ -old_striplib \ -striplib; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in reload_cmds \ -old_postinstall_cmds \ -old_postuninstall_cmds \ -old_archive_cmds \ -extract_expsyms_cmds \ -old_archive_from_new_cmds \ -old_archive_from_expsyms_cmds \ -archive_cmds \ -archive_expsym_cmds \ -module_cmds \ -module_expsym_cmds \ -export_symbols_cmds \ -prelink_cmds \ -postlink_cmds \ -postinstall_cmds \ -postuninstall_cmds \ -finish_cmds \ -sys_lib_search_path_spec \ -sys_lib_dlsearch_path_spec; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -ac_aux_dir='$ac_aux_dir' -xsi_shell='$xsi_shell' -lt_shell_append='$lt_shell_append' - -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - - - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile' - - - -# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it - # from automake < 1.5. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "cleaner.h") CONFIG_FILES="$CONFIG_FILES cleaner.h" ;; - "contrib/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/Makefile" ;; - "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; - "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; - "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; - "tests/setup.py") CONFIG_FILES="$CONFIG_FILES tests/setup.py" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi -# Compute "$ac_file"'s index in $config_headers. -_am_arg="$ac_file" -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || -$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$_am_arg" : 'X\(//\)[^/]' \| \ - X"$_am_arg" : 'X\(//\)$' \| \ - X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$_am_arg" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'`/stamp-h$_am_stamp_count - ;; - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} - ;; - "libtool":C) - - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool 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 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that 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. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - -# The names of the tagged configurations supported by this script. -available_tags="" - -# ### BEGIN LIBTOOL CONFIG - -# Which release of libtool.m4 was used? -macro_version=$macro_version -macro_revision=$macro_revision - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# What type of objects to build. -pic_mode=$pic_mode - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# An echo program that protects backslashes. -ECHO=$lt_ECHO - -# The PATH separator for the build system. -PATH_SEPARATOR=$lt_PATH_SEPARATOR - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="\$SED -e 1s/^X//" - -# A grep program that handles long lines. -GREP=$lt_GREP - -# An ERE matcher. -EGREP=$lt_EGREP - -# A literal string matcher. -FGREP=$lt_FGREP - -# A BSD- or MS-compatible name lister. -NM=$lt_NM - -# Whether we need soft or hard links. -LN_S=$lt_LN_S - -# What is the maximum length of a command? -max_cmd_len=$max_cmd_len - -# Object file suffix (normally "o"). -objext=$ac_objext - -# Executable file suffix (normally ""). -exeext=$exeext - -# whether the shell understands "unset". -lt_unset=$lt_unset - -# turn spaces into newlines. -SP2NL=$lt_lt_SP2NL - -# turn newlines into spaces. -NL2SP=$lt_lt_NL2SP - -# convert \$build file names to \$host format. -to_host_file_cmd=$lt_cv_to_host_file_cmd - -# convert \$build files to toolchain format. -to_tool_file_cmd=$lt_cv_to_tool_file_cmd - -# An object symbol dumper. -OBJDUMP=$lt_OBJDUMP - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method = "file_magic". -file_magic_cmd=$lt_file_magic_cmd - -# How to find potential files when deplibs_check_method = "file_magic". -file_magic_glob=$lt_file_magic_glob - -# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -want_nocaseglob=$lt_want_nocaseglob - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Command to associate shared and link libraries. -sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd - -# The archiver. -AR=$lt_AR - -# Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS - -# How to feed a file listing to the archiver. -archiver_list_spec=$lt_archiver_list_spec - -# A symbol stripping program. -STRIP=$lt_STRIP - -# Commands used to install an old-style archive. -RANLIB=$lt_RANLIB -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Whether to use a lock for old archive extraction. -lock_old_archive_extraction=$lock_old_archive_extraction - -# A C compiler. -LTCC=$lt_CC - -# LTCC compiler flags. -LTCFLAGS=$lt_CFLAGS - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration. -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm in a C name address pair. -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# Transform the output of nm in a C name address pair when lib prefix is needed. -global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -# Specify filename containing input files for \$NM. -nm_file_list_spec=$lt_nm_file_list_spec - -# The root where to search for dependent libraries,and in which our libraries should be installed. -lt_sysroot=$lt_sysroot - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# Used to examine libraries when file_magic_cmd begins with "file". -MAGIC_CMD=$MAGIC_CMD - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Manifest tool. -MANIFEST_TOOL=$lt_MANIFEST_TOOL - -# Tool to manipulate archived DWARF debug symbol files on Mac OS X. -DSYMUTIL=$lt_DSYMUTIL - -# Tool to change global to local symbols on Mac OS X. -NMEDIT=$lt_NMEDIT - -# Tool to manipulate fat objects and archives on Mac OS X. -LIPO=$lt_LIPO - -# ldd/readelf like tool for Mach-O binaries on Mac OS X. -OTOOL=$lt_OTOOL - -# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. -OTOOL64=$lt_OTOOL64 - -# Old archive suffix (normally "a"). -libext=$libext - -# Shared library suffix (normally ".so"). -shrext_cmds=$lt_shrext_cmds - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at link time. -variables_saved_for_relink=$lt_variables_saved_for_relink - -# Do we need the "lib" prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Library versioning type. -version_type=$version_type - -# Shared library runtime path variable. -runpath_var=$runpath_var - -# Shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Permission mode override for installation of shared libraries. -install_override_mode=$lt_install_override_mode - -# Command to use after installation of a shared archive. -postinstall_cmds=$lt_postinstall_cmds - -# Command to use after uninstallation of a shared archive. -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# As "finish_cmds", except a single script fragment to be evaled but -# not shown. -finish_eval=$lt_finish_eval - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Compile-time system search path for libraries. -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Run-time system search path for libraries. -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - - -# The linker used to build libraries. -LD=$lt_LD - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# Commands used to build an old-style archive. -old_archive_cmds=$lt_old_archive_cmds - -# A language specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU compiler? -with_gcc=$GCC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static. -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec - -# Whether the compiler copes with passing no objects directly. -compiler_needs_object=$lt_compiler_needs_object - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - -# Commands used to build a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds - -# Commands used to build a loadable module if different from building -# a shared archive. -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Whether we are building with GNU ld or not. -with_gnu_ld=$lt_with_gnu_ld - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that enforces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# Whether we need a single "-rpath" flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator - -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -# DIR into the resulting binary. -hardcode_direct=$hardcode_direct - -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes -# DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \${shlibpath_var} if the -# library is relocated. -hardcode_direct_absolute=$hardcode_direct_absolute - -# Set to "yes" if using the -LDIR flag during linking hardcodes DIR -# into the resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR -# into the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Set to "yes" if building a shared library automatically hardcodes DIR -# into the library and all subsequent libraries and executables linked -# against it. -hardcode_automatic=$hardcode_automatic - -# Set to yes if linker adds runtime paths of dependent libraries -# to runtime path list. -inherit_rpath=$inherit_rpath - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Set to "yes" if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms - -# Commands necessary for linking programs (against libraries) with templates. -prelink_cmds=$lt_prelink_cmds - -# Commands necessary for finishing linking programs. -postlink_cmds=$lt_postlink_cmds - -# Specify filename containing input files. -file_list_spec=$lt_file_list_spec - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# ### END LIBTOOL CONFIG - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - -ltmain="$ac_aux_dir/ltmain.sh" - - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - if test x"$xsi_shell" = xyes; then - sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -func_dirname ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_basename ()$/,/^} # func_basename /c\ -func_basename ()\ -{\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -func_dirname_and_basename ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -func_stripname ()\ -{\ -\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -\ # positional parameters, so assign one to ordinary parameter first.\ -\ func_stripname_result=${3}\ -\ func_stripname_result=${func_stripname_result#"${1}"}\ -\ func_stripname_result=${func_stripname_result%"${2}"}\ -} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -func_split_long_opt ()\ -{\ -\ func_split_long_opt_name=${1%%=*}\ -\ func_split_long_opt_arg=${1#*=}\ -} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -func_split_short_opt ()\ -{\ -\ func_split_short_opt_arg=${1#??}\ -\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -func_lo2o ()\ -{\ -\ case ${1} in\ -\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -\ *) func_lo2o_result=${1} ;;\ -\ esac\ -} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_xform ()$/,/^} # func_xform /c\ -func_xform ()\ -{\ - func_xform_result=${1%.*}.lo\ -} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_arith ()$/,/^} # func_arith /c\ -func_arith ()\ -{\ - func_arith_result=$(( $* ))\ -} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_len ()$/,/^} # func_len /c\ -func_len ()\ -{\ - func_len_result=${#1}\ -} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - -fi - -if test x"$lt_shell_append" = xyes; then - sed -e '/^func_append ()$/,/^} # func_append /c\ -func_append ()\ -{\ - eval "${1}+=\\${2}"\ -} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -func_append_quoted ()\ -{\ -\ func_quote_for_eval "${2}"\ -\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -fi - - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - - ;; - "po-directories":C) - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - # Treat a directory as a PO directory if and only if it has a - # POTFILES.in file. This allows packages to have multiple PO - # directories under different names or in different locations. - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake < 1.5. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.in. - # Hide the ALL_LINGUAS assigment from automake < 1.5. - eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' - fi - # Compute POFILES - # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) - # Compute UPDATEPOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) - # Compute DUMMYPOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) - # Compute GMOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - UPDATEPOFILES= - DUMMYPOFILES= - GMOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/configure.ac b/configure.ac index 8e5177f..cf8ed23 100644 --- a/configure.ac +++ b/configure.ac @@ -1,50 +1,119 @@ # Configure template for Recode. -# Copyright (C) 1994-1999, 2000, 2001 Free Software Foundation, Inc. +# Copyright (C) 1994-2023 Free Software Foundation, Inc. # Process this file with autoconf to produce a configure script. -AC_PREREQ(2.69) -AC_INIT(recode, 3.7-beta2) +AC_PREREQ([2.71]) +AC_INIT([recode],[3.7.15],[rrt@sc3d.org]) AC_CONFIG_SRCDIR(src/recode.c) +AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE AC_CONFIG_MACRO_DIR(m4) -LT_INIT -AM_CONFIG_HEADER(config.h) +AC_CANONICAL_HOST + +dnl Release number rules: +dnl This is derived from "Versioning" chapter of info libtool documentation. +dnl Format is MAJOR:MINOR:MICRO +dnl 4a) Increment major when removing or changing interfaces. +dnl 4a) 5) Increment minor when adding interfaces. +dnl 6) Set minor to zero when removing or changing interfaces. +dnl 3) Increment micro when interfaces not changed at all, +dnl only bug fixes or internal changes made. +dnl 4b) Set micro to zero when adding, removing or changing interfaces. + +dnl First extract pieces from the version number string +RECODE_MAJOR_VERSION=`echo $VERSION | awk -F. '{print $1}'` +RECODE_MINOR_VERSION=`echo $VERSION | awk -F. '{print $2}'` +RECODE_MICRO_VERSION=`echo $VERSION | awk -F. '{print $3}'` + +dnl Version info for libraries = CURRENT:REVISION:AGE +RECODE_SONUM=$RECODE_MAJOR_VERSION +AGE=$RECODE_MINOR_VERSION +REVISION=$RECODE_MICRO_VERSION +CURRENT=`expr $RECODE_SONUM + $AGE` +VERSION_INFO=$CURRENT:$REVISION:$AGE +AC_SUBST(VERSION_INFO) AC_PROG_CC -AC_FUNC_ALLOCA -AC_ISC_POSIX -AC_C_CONST -AC_C_INLINE -AC_PROG_LEX +gl_EARLY +LT_INIT +AC_PROG_LEX([noyywrap]) +AM_PATH_PYTHON([3.8]) +gl_INIT -AC_HEADER_STDC -AC_CHECK_HEADERS(limits.h locale.h memory.h stdbool.h stddef.h stdlib.h string.h unistd.h utime.h) -AC_TYPE_SIGNAL -jm_STRUCT_UTIMBUF +dnl help2man +AC_PATH_PROG([PERL], [perl]) +AC_PATH_PROG([HELP2MAN], [help2man]) +CROSS_COMPILING=$cross_compiling +AC_SUBST([CROSS_COMPILING]) -AM_ICONV -LIBS="$LIBICONV $LIBS" +dnl Cython +AC_CHECK_PROGS([CYTHON], [cython3 cython]) +AM_CONDITIONAL([HAVE_CYTHON], test -n "$ac_cv_prog_CYTHON") -AC_CHECK_FUNCS(dup2 mbrtowc rename setlocale strerror strndup wcrtomb) -AC_REPLACE_FUNCS(strtol strtoul) -AC_FUNC_ALLOCA -AC_FUNC_VPRINTF +AC_SUBST([objdir]) +LT_SYS_MODULE_EXT +case $host_os in + *mingw* ) pyextext=.pyd;; + *cygwin*) pyextext=.dll;; + * ) pyextext=.so;; +esac +AC_SUBST([pyextext], [$pyextext]) -jm_FUNC_MALLOC -jm_FUNC_REALLOC +dnl Extra warnings with GCC and compatible compilers +AC_ARG_ENABLE([gcc-warnings], + [AS_HELP_STRING([--disable-gcc-warnings], + [turn off lots of GCC warnings])], + [case $enableval in + yes|no) ;; + *) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;; + esac + gl_gcc_warnings=$enableval], + [gl_gcc_warnings=yes] +) +if test "$gl_gcc_warnings" = yes; then + dnl Set up the list of undesired warnings. + nw= + nw="$nw -Wsystem-headers" # Don’t let system headers trigger warnings + nw="$nw -Wundef" # All compiler preprocessors support #if UNDEF + nw="$nw -Wtraditional" # All compilers nowadays support ANSI C + nw="$nw -Wdeclaration-after-statement" # We require C99. + nw="$nw -Wstrict-overflow" # Use a lower level (see below). + nw="$nw -Wconversion" # These warnings usually don’t point to mistakes. + nw="$nw -Wsign-conversion" # Likewise. -AC_CANONICAL_HOST -jm_LANGINFO_CODESET -jm_GLIBC21 + gl_MANYWARN_ALL_GCC([warnings]) + + dnl Enable all GCC warnings not in this list. + gl_MANYWARN_COMPLEMENT([warnings], [$warnings], [$nw]) + for w in $warnings; do + gl_WARN_ADD([$w]) + done + + dnl Add an extra warning + gl_WARN_ADD([-Wstrict-overflow=1]) + dnl Remove a warning being promoted to error: we trigger this and can't turn it off with pragmas. + gl_WARN_ADD([-Wno-error=format-security]) + + # When compiling with GCC, prefer -isystem to -I when including system + # include files, to avoid generating useless diagnostics for the files. + ISYSTEM='-isystem ' +else + ISYSTEM='-I' +fi +AC_SUBST([ISYSTEM]) -AM_WITH_DMALLOC +# Extra settings for running tests, e.g. LD_PRELOAD for ASAN +AC_SUBST([TESTS_ENVIRONMENT_EXTRA]) -AM_GNU_GETTEXT_VERSION(0.18) +# Gettext +AM_GNU_GETTEXT_VERSION(0.19) AM_GNU_GETTEXT(external) +AM_XGETTEXT_OPTION([--from-code=UTF-8]) -AH_BOTTOM([ -#include "cleaner.h" -]) +AC_CONFIG_HEADERS([config.h]) -AC_OUTPUT(Makefile cleaner.h contrib/Makefile doc/Makefile lib/Makefile - po/Makefile.in src/Makefile tests/Makefile tests/setup.py) +AC_CONFIG_FILES([Makefile contrib/Makefile doc/Makefile lib/Makefile + po/Makefile.in src/Makefile src/recode.x + tests/Makefile tests/setup.py]) +AC_CONFIG_FILES([build-aux/x-to-1], [chmod +x build-aux/x-to-1]) +AC_OUTPUT diff --git a/contrib/Amiga/lib-Makefile b/contrib/Amiga/lib-Makefile deleted file mode 100644 index fce966e..0000000 --- a/contrib/Amiga/lib-Makefile +++ /dev/null @@ -1,31 +0,0 @@ -# -# Makefile automatically generated by MKMK V6.55 -# Fri Nov 06 23:05:56 1998 -# - -CFLAGS= DEF HAVE_DONE_WORKING_MALLOC_CHECK DEF HAVE_DONE_WORKING_REALLOC_CHECK \ - DEF STDC_HEADERS=1 DEF __GNU_LIBRARY__ DEF HAVE_STRERROR=1 \ - DEF HAVE_VPRINTF=1 IDIR "" DATA f PARM b OPT -OBJS= xstrdup.o xmalloc.o hash.o getopt1.o getopt.o error.o argmatch.o# utime.o - -reco.lib: $(OBJS) - oml -v $@ r $(OBJS) - -xstrdup.o: xstrdup.c - -xmalloc.o: xmalloc.c error.h xalloc.h - -hash.o: hash.c hash.h - -getopt1.o: getopt1.c getopt.h - -getopt.o: getopt.c getopt.h - -error.o: error.c error.h - -argmatch.o: argmatch.c - -utime.o: utime.c# amiga.h timeconvert.h - -clean: - delete $(OBJS) diff --git a/contrib/Amiga/src-Makefile b/contrib/Amiga/src-Makefile deleted file mode 100644 index b23b3de..0000000 --- a/contrib/Amiga/src-Makefile +++ /dev/null @@ -1,85 +0,0 @@ -# -# Makefile automatically generated by MKMK V6.55 -# Thu Oct 29 16:46:42 1998 -# - -CFLAGS= DEF DEFAULT_CHARSET="Latin-1" DEF PACKAGE="recode" DEF VERSION="3.4k" \ - DEF STDC_HEADERS=1 DEF HAVE_STRING_H=1 DEF HAVE_RENAME=1 \ - DEF HAVE_VPRINTF=1 DEF getpid=rand IGN 80 IDIR /lib DATA f PARM r OPT -OBJS= dynamic.o main.o pool.o merged.o quoted.o permut.o endline.o dump.o \ - base64.o utf8.o utf7.o utf16.o ucs2html.o ucs.o tables.o rfc1345.o \ - mule.o lat1txte.o lat1texi.o lat1ltex.o lat1asci.o iconqnx.o ibmpc.o \ - flat.o ebcdic.o cdcnos.o bangbang.o atarist.o applemac.o african.o \ - charset.o charname.o recode.o - -recode: $(OBJS) /lib/reco.lib - sc link to recode /lib/reco.lib MATH=s $(OBJS) - -dynamic.o: dynamic.c common.h recode.h - -main.o: main.c common.h recode.h - -pool.o: pool.c common.h recode.h - -merged.o: merged.c common.h recode.h - -quoted.o: quoted.c common.h recode.h - -permut.o: permut.c common.h recode.h - -endline.o: endline.c common.h recode.h - -dump.o: dump.c common.h recode.h - -base64.o: base64.c common.h base64.h recode.h - -utf8.o: utf8.c common.h recode.h - -utf7.o: utf7.c common.h base64.h recode.h - -utf16.o: utf16.c common.h recode.h - -ucs2html.o: ucs2html.c common.h recode.h - -ucs.o: ucs.c common.h recode.h - -tables.o: tables.c common.h recode.h - -rfc1345.o: rfc1345.c common.h rfc1345.h recode.h - -mule.o: mule.c common.h recode.h - -lat1txte.o: lat1txte.c common.h recode.h - -lat1texi.o: lat1texi.c common.h recode.h - -lat1ltex.o: lat1ltex.c common.h recode.h - -lat1asci.o: lat1asci.c common.h recode.h - -iconqnx.o: iconqnx.c common.h recode.h - -ibmpc.o: ibmpc.c common.h recode.h - -flat.o: flat.c common.h recode.h - -ebcdic.o: ebcdic.c common.h recode.h - -cdcnos.o: cdcnos.c common.h recode.h - -bangbang.o: bangbang.c common.h recode.h - -atarist.o: atarist.c common.h recode.h - -applemac.o: applemac.c common.h recode.h - -african.o: african.c common.h african.h recode.h - -charset.o: charset.c common.h recode.h - -charname.o: charname.c common.h charname.h recode.h - -recode.o: recode.c common.h decsteps.h inisteps.h recode.h - -clean: - delete $(OBJS) recode.lnk diff --git a/contrib/ChangeLog b/contrib/ChangeLog deleted file mode 100644 index 92cf1d5..0000000 --- a/contrib/ChangeLog +++ /dev/null @@ -1,63 +0,0 @@ -2008-03-15 François Pinard - - * Amiga/lib-Makefile: Previously lib-Makefile.Amiga. - * Amiga/src-Makefile: Previously src-Makefile.Amiga. - * Makefile.am: Adjusted. - - * DJGPP/README.in, DJGPP/config.site, DJGPP/configdj.bat, - DJGPP/configdj.sed, DJGPP/fnchange.in: New files. - * djgpp-README, djgpp-diffs: Deleted. - Reported by Juan Manuel Guerrero. - -2008-03-08 François Pinard - - * README, djgpp-README: Write Recode, not Free recode. - -2008-02-22 François Pinard - - * recode.spec2: New file. - * recode.spec1: New name for recode.spec. - Reported by Bennett Todd. - -2008-02-21 François Pinard - - * README: Converted to reST. - -2000-06-29 François Pinard - - * recode.spec: New file, meant for RedHat. - * Makefile.am: Distribute it. - Reported by David Lebel. - -1998-11-28 François Pinard - - * Makefile.amiga, Makefile.amiga-lib: Recoded /cl to Unix. - Reported by Stefan Haubenthal. - - * lib-Makefile.Amiga: New name for Makefile.amiga-lib, to cope - when unpacking the distribution within an 8+3 environment. - * src-Makefile.Amiga: New name for Makefile.amiga, same reason. - * Makefile.am: Adjusted. - Reported by Eli Zaretskii. - -1998-11-22 François Pinard - - * Makefile.amiga: Updated. - * Makefile.amiga-lib: New file. - * Makefile.am (EXTRA_DIST): Adjusted. - From Stefan Haubenthal. - -1998-10-23 François Pinard - - * Makefile.amiga: New file. - * Makefile.am (EXTRA_DIST): Adjusted. - From Stefan Haubenthal. - -1998-03-09 François Pinard - - * README: Include information from previous PORTS file. - -1997-12-05 François Pinard - - * Makefile.am, README, djgpp-README, djgpp-diffs, recode.el, - utf8.el: New files. diff --git a/contrib/DJGPP/README b/contrib/DJGPP/README deleted file mode 100644 index 0d378b3..0000000 --- a/contrib/DJGPP/README +++ /dev/null @@ -1,305 +0,0 @@ -.. role:: code(strong) -.. role:: file(literal) - -======================================== -README file for the DJGPP port of Recode -======================================== - -.. contents:: -.. sectnum:: - -:Porter: Juan Manuel Guerrero -:Email: juan.guerrero@gmx.de - -This is a port of Recode to MSDOS/DJGPP. The instructions given here, -and the port itself, were produced for a pretest yielding to Recode 3.6. -They might need revision or undusting for later Recode versions. - -DJGPP specific changes -====================== - -There are no DJGPP specific changes. The original distribution should -configure and compile out-of-the-box. If there are last minute DJGPP -specific changes, then they will be documented in the diffs file placed -in the :file:`contrib/DJGPP` subdirectory. This DJGPP port of recode -3.7-beta2 offers NLS out-of-the-box. - -Installing the binary package -============================= - -+ If you are installing Recode on dual DOS/WINDOWS 9X systems, you - should first turn off the generation of numeric tails for 8.3 aliases - Windows creates for long file names. For information about how to do - this, please read the DJGPP FAQ List V 2.30, chapter 22.19: "How to Set - Up a Dual DOS/Windows Installation." - - Please note that you *must* turn off the numeric tail generation - for short file names during installation of the binary package if you - want to use the recode program on both DOS box on Win9X *and* plain - DOS. If this is not done recode will *not* be able to find the - :file:`.mo` files (the catalogs containing the translated strings). - After the installation has been finished you can turn on numeric tail - generation again if you like. - -+ Copy the binary distribution into the top DJGPP installation directory. - Unzip the binary distribution running *one* of the following commands:: - - unzip32 rcode37-beta2b.zip or - djtarx rcode37-beta2b.zip or - pkunzip -d rcode37-beta2b.zip - -+ Edit the :file:`djgpp.env` file which is located in the top - DJGPP installation directory. Move to the global part of your - :file:`djgpp.env` and add the following lines:: - - LANG=xx - LANGUAGE=yy:zz - - The line must be completely shifted to the left in your - :file:`djgpp.env` file. Please note the plus sign at the beginning of - the line. This plus sign should *not* be omitted or a lot of shell - scripts, in this and in other packages, that try to reset this value - will stop working. The LANG entry is obligatory, the LANGUAGE entry - is may be omitted. The LANGUAGE variable allows you to select an - alternative catalog than the one stipulated by LANG. Replace ``xx``, - ``yy`` and ``zz`` by the language code of the catalogs you want to - use. - - Some examples: - - If you only want to use the catalog containing the translations for - your mother tongue (in my case the Spanish translations) the above - lines will only use the LANG variable and will look like:: - - LANG=es - - If you want to use the Spanish (``es``) and German (``de``) catalogs - the above lines will look like:: - - LANG=es - LANGUAGE=es:de - - In this case a DJGPP binary that has been compiled with NLS support - will first search for the Spanish translations. If this translations - can not be found it will search for the German translations and if - this can also not been found it will default to the build-in English - messages. If you want to reverse this search order the above lines - would look like this one:: - - LANG=es - LANGUAGE=de:es - - Please note that if you omit the LANG environment variable, the - LANGUAGE variable will not be honored at all. The LANG variable must - always be set to your default catalog. With the aid of LANGUAGE you - can select other catalogs apart of the default one. If for some - reason you want to disable NLS, then you should comment out the LANG - variable or select ``C`` as your catalog:: - - LANG=C - -+ To create an entry for the recode info docs in your :file:`dir` file, - run from the top DJGPP installation directory the command:: - - install-info --info-dir=./info ./info/recode.info - -+ The binaries distributed in this package have NLS support. - i.e. run the command:: - - recode - - and the binary should talk to you in your mother tongue, if supported. - For further information about Recode please read the info docs. - -Building the binaries from sources. -=================================== - -+ To build the binaries you will need the following binary packages: - :file:`djdev203.zip` (*not* a prior version), - :file:`bsh203b.zip` (*not* a prior version), - :file:`gcc2952b.zip`, :file:`bnu2951b.zip`, - :file:`mak3791b.zip`, :file:`fil316b.zip`, :file:`shl112b.zip`, - :file:`txt20b.zip`, :file:`txi40b.zip`, :file:`grep24b.zip`, - :file:`sed302b.zip`, and :file:`gtxt035b.zip`. - - If you want to run the check you will need also - :file:`dif272b.zip`, :file:`m4-14b.zip`, and - :file:`perl552b.zip`, - - All these packages can be found in the :file:`v2gnu` directory of any - Simtel.NET mirror. - - You will need :file:`bsh203b.zip` and *not* a prior version or - the build will fail. The same applies to :file:`djdev203.zip`. - You *must* use the updated version of :file:`fil316b.zip` - (date: 2000-05-30) and :file:`shl112b.zip` (date: 2000-08-11). - - These updated versions have been recompiled with - :file:`djdev203.zip` and know about the file:`/dev/env` - functionality introduced with :file:`djdev203.zip`. All the - other packages are the ones I have used to build the binaries - from this sources. Previous versions of this packages may do - the job as well but I have not tested this. - -+ Create a temporary directory and copy the source package into the dir. - If you download the source distribution from one of the DJGPP archives, - just unzip it preserving the directory structure running *ONE* of the - following commands:: - - unzip32 rcode37-beta2s.zip or - djtarx rcode37-beta2s.zip or - pkunzip -d rcode37-beta2s.zip - - Source distributions downloaded from one of the GNU FTP sites need - some more work to unpack. First, you *must* use the :code:`djtar` - program to unzip the package. That's because some file names in the - official distributions need to be changed to avoid problems on the - various platforms supported by DJGPP. :code:`djtar` can rename files - on the fly given a file with name mappings. The distribution includes - a file :file:`djgpp/fnchange.lst` with the necessary mappings. So you - need first to retrieve that file, and then invoke :code:`djtar` to - unpack the distribution. Here's how:: - - djtar -x -p -o recode-3.7-beta2/djgpp/fnchange.lst recode-3.7-beta2.tar.gz > lst - djtar -x -n lst recode-3.7-beta2.tar.gz - - (The name of the distribution archive and the top-level directory will - be different for versions other than 3.7-beta2.) - -+ This package is preconfigured for NLS support and :code:`djdev203`. - This implies that you *must* install the GNU gettext library - (:file:`gtxt035b.zip`) if you want to recompile this package. Of - course, this must be done *before* you start recompiling the - package. The configuration batch file of this package, located in the - :file:`contrib/DJGPP` directory, allows you to enable or disable NLS - support and to compile from a different partition than from where the - sources are located. :file:`configdj.bat` always configures the package - for NLS support enabled and for in-place compilation if *no* options are - given at all. The available NLS options are:: - - NLS - no-NLS - - If for some reason you want a binary with no NLS support you will have - to reconfigure the package. For this purpose cd into the top srcdir - (:file:`recode-3.7-beta2/`) and run the following commands:: - - make distclean - contrib\DJGPP\configdj no-NLS - - Please note that you *must* use the ``distclean`` option or the - :file:`config.cache` file will *not* be deleted. In this case you - are *not* reconfiguring because the configuration informations - is read from the cache file instead of being newly computed. You - *must* specify ``no-NLS`` or :file:`configdj.bat` will default to - the ``NLS`` option. To build the programs in a directory other than - where the sources are, you must add the parameter that specifies the - source directory, e.g:: - - x:\src\gnu\recode-3.7-beta2\contrib\DJGPP\configdj x:/src/gnu/recode-3.7-beta2 no-NLS - - Lets assume you want to build the binaries in a directory placed on a - different drive (:file:`z:\build` in this case) from where the sources - are, then you will run the following commands:: - - z: - md \build - cd \build - x:\src\gnu\recode-3.7-beta2/\contrib\DJGPP\configdj x:/src/gnu/recode-3.7-beta2/ no-NLS - - If you want NLS support, just omit the ``no-NLS`` option or replace - it by the ``NLS`` option in the above examples. The order of the NLS - option and the srcdir option does *not* matter. You *must* use - forward slashes to specify the source directory. - - This batch file will set same environment variables, make MSDOS - specific modifications to the :file:`Makefile.in`\ s and supply all - other needed options to the :file:`configure` script. - -+ To compile the package run from the top srcdir the command:: - - make - -+ Now you can run the tests if you like. From the top srcdir run - the command:: - - make check - - No test should fail. - -+ To install the binaries, header, library, catalogs, and info docs - run the following command from the top srcdir:: - - make install CATALOGS="xx.gmo yy.gmo zz.gmo" - - This will install the products into your DJGPP installation tree given - by the default prefix ``/dev/env/DJDIR``. If you prefer to install - them into some other directory you will have to set prefix to the - appropriate value. Replace ``xx``, ``yy`` and ``zz`` by the language - codes of the catalogs you want to install. Example:: - - make install CATALOGS="xx.gmo yy.gmo zz.gmo" prefix=z:/some/other/dir - -+ Now you have to set the LANG environment variable. Please refer to - the third point in section 2. - -Recoding the :file:`.po` files -============================== - -As told above, the :file:`.po` files of this package have already been -recoded. The recoding of the :file:`.po` files is one step more of -the configuration process of the package and does usually not need -to be repeated by the user. This step is performed automatically by -:file:`configdj.bat` running the :file:`recodepo.sh` shell script. This -shell scripts uses two arguments: - -+ the name of the Unix charset that have been used to write the - :file:`.po` file. This information is extracted from the :file:`.po` - file by the shell script itself. - -+ The number of the MSDOS code page corresponding to that particular - :file:`.po` file. This information is stored in the DosCodePage array - of the shell script. The code page numbers have been taken from MS-DOS - 6.22 :file:`COUNTRY.TXT` file and this code pages are the ones installed - during a standard MSDOS installation process. - -Because this standard code pages have been used to recode the -:file:`.po` files, the distributed ones should fit the requirements of -the majority of the users. If for some reason this is not true for you, -you will have to recode the :file:`.po` files manually. This packages -supplies the original (not recoded) :file:`.po` files in the po/po.orig -directory. Cd into :file:`po/po.orig` and edit the :file:`.po` file you -want to use. Search for a line that looks like:: - - "Content-Type: text/plain; charset=ISO-8859-1\n" - -The Unix charset used in this particular :file:`.po` file is ISO-8859-1. -If you are using the MSDOS code page 437 you will recode the :file:`.po` -file running the command:: - - recode -Spo ISO-8859-1..cp437 xx.po - -where ``xx`` stands for the language code. - -If you want to recode all :file:`.po` files you will proceed as follows: - -+ Cd into the :file:`po` directory. - -+ Delete all :file:`.po` files and :file:`stamp-po`. - -+ Copy the original :file:`.po` files from :file:`po.orig` directory into the - :file:`po` directory. - -+ Edit :file:`recodepo.sh`. Search for the DosCodePage array and make the - appropriate changes. - -+ Run the command:: - - sh recodepo.sh - -Send recode specific bug reports to . -Send suggestions and bug reports concerning the DJGPP port to -``comp.os.msdos.djgpp`` or . - -Enjoy. - diff --git a/contrib/DJGPP/README.in b/contrib/DJGPP/README.in deleted file mode 100644 index c900571..0000000 --- a/contrib/DJGPP/README.in +++ /dev/null @@ -1,305 +0,0 @@ -.. role:: code(strong) -.. role:: file(literal) - -======================================== -README file for the DJGPP port of Recode -======================================== - -.. contents:: -.. sectnum:: - -:Porter: Juan Manuel Guerrero -:Email: juan.guerrero@gmx.de - -This is a port of Recode to MSDOS/DJGPP. The instructions given here, -and the port itself, were produced for a pretest yielding to Recode 3.6. -They might need revision or undusting for later Recode versions. - -DJGPP specific changes -====================== - -There are no DJGPP specific changes. The original distribution should -configure and compile out-of-the-box. If there are last minute DJGPP -specific changes, then they will be documented in the diffs file placed -in the :file:`contrib/DJGPP` subdirectory. This DJGPP port of recode -@VER@ offers NLS out-of-the-box. - -Installing the binary package -============================= - -+ If you are installing Recode on dual DOS/WINDOWS 9X systems, you - should first turn off the generation of numeric tails for 8.3 aliases - Windows creates for long file names. For information about how to do - this, please read the DJGPP FAQ List V 2.30, chapter 22.19: "How to Set - Up a Dual DOS/Windows Installation." - - Please note that you *must* turn off the numeric tail generation - for short file names during installation of the binary package if you - want to use the recode program on both DOS box on Win9X *and* plain - DOS. If this is not done recode will *not* be able to find the - :file:`.mo` files (the catalogs containing the translated strings). - After the installation has been finished you can turn on numeric tail - generation again if you like. - -+ Copy the binary distribution into the top DJGPP installation directory. - Unzip the binary distribution running *one* of the following commands:: - - unzip32 rcode@packageversion@b.zip or - djtarx rcode@packageversion@b.zip or - pkunzip -d rcode@packageversion@b.zip - -+ Edit the :file:`djgpp.env` file which is located in the top - DJGPP installation directory. Move to the global part of your - :file:`djgpp.env` and add the following lines:: - - LANG=xx - LANGUAGE=yy:zz - - The line must be completely shifted to the left in your - :file:`djgpp.env` file. Please note the plus sign at the beginning of - the line. This plus sign should *not* be omitted or a lot of shell - scripts, in this and in other packages, that try to reset this value - will stop working. The LANG entry is obligatory, the LANGUAGE entry - is may be omitted. The LANGUAGE variable allows you to select an - alternative catalog than the one stipulated by LANG. Replace ``xx``, - ``yy`` and ``zz`` by the language code of the catalogs you want to - use. - - Some examples: - - If you only want to use the catalog containing the translations for - your mother tongue (in my case the Spanish translations) the above - lines will only use the LANG variable and will look like:: - - LANG=es - - If you want to use the Spanish (``es``) and German (``de``) catalogs - the above lines will look like:: - - LANG=es - LANGUAGE=es:de - - In this case a DJGPP binary that has been compiled with NLS support - will first search for the Spanish translations. If this translations - can not be found it will search for the German translations and if - this can also not been found it will default to the build-in English - messages. If you want to reverse this search order the above lines - would look like this one:: - - LANG=es - LANGUAGE=de:es - - Please note that if you omit the LANG environment variable, the - LANGUAGE variable will not be honored at all. The LANG variable must - always be set to your default catalog. With the aid of LANGUAGE you - can select other catalogs apart of the default one. If for some - reason you want to disable NLS, then you should comment out the LANG - variable or select ``C`` as your catalog:: - - LANG=C - -+ To create an entry for the recode info docs in your :file:`dir` file, - run from the top DJGPP installation directory the command:: - - install-info --info-dir=./info ./info/recode.info - -+ The binaries distributed in this package have NLS support. - i.e. run the command:: - - recode - - and the binary should talk to you in your mother tongue, if supported. - For further information about Recode please read the info docs. - -Building the binaries from sources. -=================================== - -+ To build the binaries you will need the following binary packages: - :file:`djdev203.zip` (*not* a prior version), - :file:`bsh203b.zip` (*not* a prior version), - :file:`gcc2952b.zip`, :file:`bnu2951b.zip`, - :file:`mak3791b.zip`, :file:`fil316b.zip`, :file:`shl112b.zip`, - :file:`txt20b.zip`, :file:`txi40b.zip`, :file:`grep24b.zip`, - :file:`sed302b.zip`, and :file:`gtxt035b.zip`. - - If you want to run the check you will need also - :file:`dif272b.zip`, :file:`m4-14b.zip`, and - :file:`perl552b.zip`, - - All these packages can be found in the :file:`v2gnu` directory of any - Simtel.NET mirror. - - You will need :file:`bsh203b.zip` and *not* a prior version or - the build will fail. The same applies to :file:`djdev203.zip`. - You *must* use the updated version of :file:`fil316b.zip` - (date: 2000-05-30) and :file:`shl112b.zip` (date: 2000-08-11). - - These updated versions have been recompiled with - :file:`djdev203.zip` and know about the file:`/dev/env` - functionality introduced with :file:`djdev203.zip`. All the - other packages are the ones I have used to build the binaries - from this sources. Previous versions of this packages may do - the job as well but I have not tested this. - -+ Create a temporary directory and copy the source package into the dir. - If you download the source distribution from one of the DJGPP archives, - just unzip it preserving the directory structure running *ONE* of the - following commands:: - - unzip32 rcode@packageversion@s.zip or - djtarx rcode@packageversion@s.zip or - pkunzip -d rcode@packageversion@s.zip - - Source distributions downloaded from one of the GNU FTP sites need - some more work to unpack. First, you *must* use the :code:`djtar` - program to unzip the package. That's because some file names in the - official distributions need to be changed to avoid problems on the - various platforms supported by DJGPP. :code:`djtar` can rename files - on the fly given a file with name mappings. The distribution includes - a file :file:`djgpp/fnchange.lst` with the necessary mappings. So you - need first to retrieve that file, and then invoke :code:`djtar` to - unpack the distribution. Here's how:: - - djtar -x -p -o @V@/djgpp/fnchange.lst @V@.tar.gz > lst - djtar -x -n lst @V@.tar.gz - - (The name of the distribution archive and the top-level directory will - be different for versions other than @VER@.) - -+ This package is preconfigured for NLS support and :code:`djdev203`. - This implies that you *must* install the GNU gettext library - (:file:`gtxt035b.zip`) if you want to recompile this package. Of - course, this must be done *before* you start recompiling the - package. The configuration batch file of this package, located in the - :file:`contrib/DJGPP` directory, allows you to enable or disable NLS - support and to compile from a different partition than from where the - sources are located. :file:`configdj.bat` always configures the package - for NLS support enabled and for in-place compilation if *no* options are - given at all. The available NLS options are:: - - NLS - no-NLS - - If for some reason you want a binary with no NLS support you will have - to reconfigure the package. For this purpose cd into the top srcdir - (:file:`recode-@treeversion@/`) and run the following commands:: - - make distclean - contrib\DJGPP\configdj no-NLS - - Please note that you *must* use the ``distclean`` option or the - :file:`config.cache` file will *not* be deleted. In this case you - are *not* reconfiguring because the configuration informations - is read from the cache file instead of being newly computed. You - *must* specify ``no-NLS`` or :file:`configdj.bat` will default to - the ``NLS`` option. To build the programs in a directory other than - where the sources are, you must add the parameter that specifies the - source directory, e.g:: - - x:\src\gnu\recode-@treeversion@\contrib\DJGPP\configdj x:/src/gnu/recode-@treeversion@ no-NLS - - Lets assume you want to build the binaries in a directory placed on a - different drive (:file:`z:\build` in this case) from where the sources - are, then you will run the following commands:: - - z: - md \build - cd \build - x:\src\gnu\recode-@treeversion@/\contrib\DJGPP\configdj x:/src/gnu/recode-@treeversion@/ no-NLS - - If you want NLS support, just omit the ``no-NLS`` option or replace - it by the ``NLS`` option in the above examples. The order of the NLS - option and the srcdir option does *not* matter. You *must* use - forward slashes to specify the source directory. - - This batch file will set same environment variables, make MSDOS - specific modifications to the :file:`Makefile.in`\ s and supply all - other needed options to the :file:`configure` script. - -+ To compile the package run from the top srcdir the command:: - - make - -+ Now you can run the tests if you like. From the top srcdir run - the command:: - - make check - - No test should fail. - -+ To install the binaries, header, library, catalogs, and info docs - run the following command from the top srcdir:: - - make install CATALOGS="xx.gmo yy.gmo zz.gmo" - - This will install the products into your DJGPP installation tree given - by the default prefix ``/dev/env/DJDIR``. If you prefer to install - them into some other directory you will have to set prefix to the - appropriate value. Replace ``xx``, ``yy`` and ``zz`` by the language - codes of the catalogs you want to install. Example:: - - make install CATALOGS="xx.gmo yy.gmo zz.gmo" prefix=z:/some/other/dir - -+ Now you have to set the LANG environment variable. Please refer to - the third point in section 2. - -Recoding the :file:`.po` files -============================== - -As told above, the :file:`.po` files of this package have already been -recoded. The recoding of the :file:`.po` files is one step more of -the configuration process of the package and does usually not need -to be repeated by the user. This step is performed automatically by -:file:`configdj.bat` running the :file:`recodepo.sh` shell script. This -shell scripts uses two arguments: - -+ the name of the Unix charset that have been used to write the - :file:`.po` file. This information is extracted from the :file:`.po` - file by the shell script itself. - -+ The number of the MSDOS code page corresponding to that particular - :file:`.po` file. This information is stored in the DosCodePage array - of the shell script. The code page numbers have been taken from MS-DOS - 6.22 :file:`COUNTRY.TXT` file and this code pages are the ones installed - during a standard MSDOS installation process. - -Because this standard code pages have been used to recode the -:file:`.po` files, the distributed ones should fit the requirements of -the majority of the users. If for some reason this is not true for you, -you will have to recode the :file:`.po` files manually. This packages -supplies the original (not recoded) :file:`.po` files in the po/po.orig -directory. Cd into :file:`po/po.orig` and edit the :file:`.po` file you -want to use. Search for a line that looks like:: - - "Content-Type: text/plain; charset=ISO-8859-1\n" - -The Unix charset used in this particular :file:`.po` file is ISO-8859-1. -If you are using the MSDOS code page 437 you will recode the :file:`.po` -file running the command:: - - recode -Spo ISO-8859-1..cp437 xx.po - -where ``xx`` stands for the language code. - -If you want to recode all :file:`.po` files you will proceed as follows: - -+ Cd into the :file:`po` directory. - -+ Delete all :file:`.po` files and :file:`stamp-po`. - -+ Copy the original :file:`.po` files from :file:`po.orig` directory into the - :file:`po` directory. - -+ Edit :file:`recodepo.sh`. Search for the DosCodePage array and make the - appropriate changes. - -+ Run the command:: - - sh recodepo.sh - -Send recode specific bug reports to . -Send suggestions and bug reports concerning the DJGPP port to -``comp.os.msdos.djgpp`` or . - -Enjoy. - diff --git a/contrib/DJGPP/config.site b/contrib/DJGPP/config.site deleted file mode 100644 index 72d186b..0000000 --- a/contrib/DJGPP/config.site +++ /dev/null @@ -1,35 +0,0 @@ -#! /bin/sh - -# This is the config.site file for configuring GNU packages -# which are to be built with DJGPP tools. - -# These two variables are required, otherwise looking for -# programs along the PATH will not work. -PATH_SEPARATOR=: -PATH_EXPAND=y - -# This is required in for "test -f foo" to find foo.exe -export TEST_FINDS_EXE=y - -# The root of the DJGPP tree serves as the default prefix -test "x$prefix" = xNONE && prefix='/dev/env/DJDIR' - -# This is required for config.status script to be run, since -# ./configure runs it by invoking ${CONFIG_SHELL-/bin/sh} -CONFIG_SHELL=${CONFIG_SHELL='sh'} - -# These are set here so the generated Makefile's will be good -# for every DJGPP installation, not only the one where the -# package was configured. -# $INSTALL must be an absolute path name, otherwise config.status -# will try to prepend ./ and ../ to it when it goes into subdirs. -INSTALL=${INSTALL='/dev/env/DJDIR/bin/ginstall -c'} -RANLIB=${RANLIB='ranlib'} -NM=${NM='nm'} -LD=${LD='ld'} -GMSGFMT=${GMSGFMT='/dev/env/DJDIR/bin/msgfmt'} -MSGFMT=${MSGFMT='/dev/env/DJDIR/bin/msgfmt'} -XGETTEXT=${XGETTEXT='/dev/env/DJDIR/bin/xgettext'} - -# Force the test for 'ln -s' to report 'cp -p'. -ac_cv_prog_LN_S='cp -p' diff --git a/contrib/DJGPP/configdj.bat b/contrib/DJGPP/configdj.bat deleted file mode 100644 index 72f108e..0000000 --- a/contrib/DJGPP/configdj.bat +++ /dev/null @@ -1,220 +0,0 @@ -@echo off -echo Configuring Recode for DJGPP v2.x... - -Rem The SmallEnv tests protect against fixed and too small size -Rem of the environment in stock DOS shell. - -Rem Find out if NLS is wanted or not -Rem and where the sources are. -Rem We always default to NLS support -Rem and to in place configuration. -set NLS=enabled -if not "%NLS%" == "enabled" goto SmallEnv -set XSRC=. -if not "%XSRC%" == "." goto SmallEnv - -Rem This checks the case: -Rem %1 contains the NLS option. -Rem %2 contains the src path option. -if "%1" == "" goto InPlace -if "%1" == "NLS" goto SrcDir2 -if not "%1" == "no-NLS" goto SrcDir1 -set NLS=disabled -if not "%NLS%" == "disabled" goto SmallEnv -:SrcDir2 -Rem Find out where the sources are -if "%2" == "" goto InPlace -set XSRC=%2 -if not "%XSRC%" == "%2" goto SmallEnv -goto NotInPlace - -Rem This checks the case: -Rem %1 contains the src path option. -Rem %2 contains the NLS option. -:SrcDir1 -Rem Find out where the sources are -if "%1" == "" goto InPlace -set XSRC=%1 -if not "%XSRC%" == "%1" goto SmallEnv -if "%2" == "" goto NotInPlace -if "%2" == "NLS" goto NotInPlace -if not "%2" == "no-NLS" goto NotInPlace -set NLS=disabled -if not "%NLS%" == "disabled" goto SmallEnv - -:NotInPlace -redir -e /dev/null update %XSRC%/configure.orig ./configure -test -f ./configure -if errorlevel 1 update %XSRC%/configure ./configure - -:InPlace -Rem Update configuration files -echo Updating configuration scripts... -test -f ./configure.orig -if errorlevel 1 update configure configure.orig -sed -f %XSRC%/contrib/DJGPP/configdj.sed configure.orig > configure -if errorlevel 1 goto SedError - -Rem Make sure they have a config.site file -set CONFIG_SITE=%XSRC%/contrib/DJGPP/config.site -if not "%CONFIG_SITE%" == "%XSRC%/contrib/DJGPP/config.site" goto SmallEnv - -Rem Make sure crucial file names are not munged by unpacking -test -f %XSRC%/config.h.in -if not errorlevel 1 mv -f %XSRC%/config.h.in %XSRC%/config.h-in - -test -f %XSRC%/stamp-djgppfixes -if not errorlevel 1 goto PackageFixed - -Rem Fix libiconv/Makefile.in and src/Makefile.in -Rem to reflect the new directory structure. -test -f %XSRC%/libiconv/Makefile.orig -if errorlevel 1 update %XSRC%/libiconv/Makefile.in %XSRC%/libiconv/Makefile.orig -sed -f %XSRC%/contrib/DJGPP/configdj.sed %XSRC%/libiconv/Makefile.orig > Makefile.tmp -if errorlevel 1 goto SedError -update Makefile.tmp %XSRC%/libiconv/Makefile.in -rm Makefile.tmp -test -f %XSRC%/src/Makefile.orig -if errorlevel 1 update %XSRC%/src/Makefile.in %XSRC%/src/Makefile.orig -sed -f %XSRC%/contrib/DJGPP/configdj.sed %XSRC%/src/Makefile.orig > Makefile.tmp -if errorlevel 1 goto SedError -update Makefile.tmp %XSRC%/src/Makefile.in -rm Makefile.tmp - -Rem Fix the source files in libiconv to reflect the new directory structure. -test -f %XSRC%/src/iconv.orig -if errorlevel 1 update %XSRC%/src/iconv.c %XSRC%/src/iconv.orig -sed -f %XSRC%/contrib/DJGPP/configdj.sed %XSRC%/src/iconv.orig > iconv.tmp -if errorlevel 1 goto SedError -update iconv.tmp %XSRC%/src/iconv.c -rm iconv.tmp -test -f %XSRC%/libiconv/converters.orig -if errorlevel 1 update %XSRC%/libiconv/converters.h %XSRC%/libiconv/converters.orig -sed -f %XSRC%/contrib/DJGPP/configdj.sed %XSRC%/libiconv/converters.orig > converters.tmp -if errorlevel 1 goto SedError -update converters.tmp %XSRC%/libiconv/converters.h -rm converters.tmp -test -f %XSRC%/libiconv/cns/11643.orig -if errorlevel 1 update %XSRC%/libiconv/cns/11643.h %XSRC%/libiconv/cns/11643.orig -sed -f %XSRC%/contrib/DJGPP/configdj.sed %XSRC%/libiconv/cns/11643.orig > 11643.tmp -if errorlevel 1 goto SedError -update 11643.tmp %XSRC%/libiconv/cns/11643.h -rm 11643.tmp -test -f %XSRC%/libiconv/iso/ir165.orig -if errorlevel 1 update %XSRC%/libiconv/iso/ir165.h %XSRC%/libiconv/iso/ir165.orig -sed -f %XSRC%/contrib/DJGPP/configdj.sed %XSRC%/libiconv/iso/ir165.orig > ir165.tmp -if errorlevel 1 goto SedError -update ir165.tmp %XSRC%/libiconv/iso/ir165.h -rm ir165.tmp - -Rem Let libtool use _libs all the time. -test -f %XSRC%/ltconfig.orig -if errorlevel 1 update %XSRC%/ltconfig %XSRC%/ltconfig.orig -sed "/objdir=/s|\.libs|_libs|" %XSRC%/ltconfig.orig > ltconfig.tmp -if errorlevel 1 goto SedError -update ltconfig.tmp %XSRC%/ltconfig -rm ltconfig.tmp - -touch %XSRC%/stamp-djgppfixes -:PackageFixed - -Rem This is required because DOS/Windows are case-insensitive -Rem to file names, and "make install" will do nothing if Make -Rem finds a file called `install'. -if exist INSTALL ren INSTALL INSTALL.txt - -Rem Set HOSTNAME so it shows in config.status -if not "%HOSTNAME%" == "" goto hostdone -if "%windir%" == "" goto msdos -set OS=MS-Windows -if not "%OS%" == "MS-Windows" goto SmallEnv -goto haveos -:msdos -set OS=MS-DOS -if not "%OS%" == "MS-DOS" goto SmallEnv -:haveos -if not "%USERNAME%" == "" goto haveuname -if not "%USER%" == "" goto haveuser -echo No USERNAME and no USER found in the environment, using default values -set HOSTNAME=Unknown PC -if not "%HOSTNAME%" == "Unknown PC" goto SmallEnv -goto userdone -:haveuser -set HOSTNAME=%USER%'s PC -if not "%HOSTNAME%" == "%USER%'s PC" goto SmallEnv -goto userdone -:haveuname -set HOSTNAME=%USERNAME%'s PC -if not "%HOSTNAME%" == "%USERNAME%'s PC" goto SmallEnv -:userdone -set _HOSTNAME=%HOSTNAME%, %OS% -if not "%_HOSTNAME%" == "%HOSTNAME%, %OS%" goto SmallEnv -set HOSTNAME=%_HOSTNAME% -:hostdone -set _HOSTNAME= -set OS= - -Rem install-sh is required by the configure script but clashes with the -Rem various Makefile install-foo targets, so we MUST have it before the -Rem script runs and rename it afterwards -test -f %XSRC%/install-sh -if not errorlevel 1 goto NoRen0 -test -f %XSRC%/install-sh.sh -if not errorlevel 1 mv -f %XSRC%/install-sh.sh %XSRC%/install-sh -:NoRen0 - -if "%NLS%" == "disabled" goto WithoutNLS - -Rem If NLS is wanted we will probably have to -Rem recode the .po files. For these purpose -Rem we will run recodepo.sh that will check for -Rem needed libs, headers and binaries and return -Rem with one of the following return codes: -Rem errorlevel 2 : package has no po directory (no NLS support) -Rem and will be configured with --disable-nls. -Rem errorlevel 1 : recode, msgfmt and/or xgettext can not be found, -Rem package will be configured with --disable-nls. -Rem errorlevel 0 : .po files have/have not been recoded. They will -Rem be recoded by recodepo.sh if needed, and the -Rem package will be configured with --enable-nls. -sh %XSRC%/contrib/DJGPP/recodepo.sh -if errorlevel 1 goto WithoutNLS - -:WithNLS -Rem We prefer without-included-gettext because libintl.a from gettext package -Rem is the only one that is garanteed to have been ported to DJGPP. -echo Running the ./configure script... -sh ./configure --src=%XSRC% --enable-nls --without-included-gettext -if errorlevel 1 goto CfgError -echo Done. -goto End - -:WithoutNLS -echo Running the ./configure script... -sh ./configure --src=%XSRC% --disable-nls -if errorlevel 1 goto CfgError -echo Done. -goto End - -:SedError -echo ./configure script editing failed! -goto End - -:CfgError -echo ./configure script exited abnormally! -goto End - -:SmallEnv -echo Your environment size is too small. Enlarge it and run me again. -echo Configuration NOT done! - -:End -test -f %XSRC%/install-sh.sh -if not errorlevel 1 goto NoRen1 -test -f %XSRC%/install-sh -if not errorlevel 1 mv -f %XSRC%/install-sh %XSRC%/install-sh.sh -:NoRen1 -set CONFIG_SITE= -set HOSTNAME= -set NLS= -set XSRC= diff --git a/contrib/DJGPP/configdj.sed b/contrib/DJGPP/configdj.sed deleted file mode 100644 index 31019c7..0000000 --- a/contrib/DJGPP/configdj.sed +++ /dev/null @@ -1,138 +0,0 @@ -# Additional editing of Makefiles and atconfig -/ac_given_INSTALL=/,/^CEOF/ { - /^CEOF$/ i\ -# DJGPP specific Makefile changes.\ - /^aliaspath * *=/s,:,";",g\ - /TEXINPUTS=/s,:,";",g\ - /PATH=/s,:,";",g\ - s,\\.new\\.,_new.,g\ - s,\\.old\\.,_old.,g\ - s,config\\.h\\.in,config.h-in,g\ - /^install-info-am:/,/^$/ {\ - /@list=/ s,\\\$(INFO_DEPS),& recode.i,\ - /@for *file/ s,\\\$(INFO_DEPS),& recode.i,\ - s,file-\\[0-9\\]\\[0-9\\],& \\$\\$file[0-9] \\$\\$file[0-9][0-9],\ - } -} - -# Rename config.h.in into config.h-in. -/^ *CONFIG_HEADERS=/,/^EOF/ { - s|config\.h|&:config.h-in| -} - -# Replace (command) > /dev/null with `command > /dev/null`, since -# parenthesized commands always return zero status in the ported Bash, -# even if the named command doesn't exist -/if ([^|;]*null/{ - s,(,`, - s,),, - s,; *then,`; then, -} - -# DOS-style absolute file names should be supported as well -/\*) srcdir=/s,/\*,[\\\\/]* | [A-z]:[\\\\/]*, -/\$]\*) INSTALL=/s,\[/\$\]\*,[\\\\/$]* | [A-z]:[\\\\/]*, -/\$]\*) ac_rel_source=/s,\[/\$\]\*,[\\\\/$]* | [A-z]:[\\\\/]*, - -# Switch the order of the two Sed commands, since DOS path names -# could include a colon -/ac_file_inputs=/s,\( -e "s%\^%\$ac_given_srcdir/%"\)\( -e "s%:% $ac_given_srcdir/%g"\),\2\1, - -# Prevent the spliting of conftest.subs. -# The sed script: conftest.subs is split into 48 or 90 lines long files. -# This will produce sed scripts called conftest.s1, conftest.s2, etc. -# that will not work if conftest.subs contains a multi line sed command -# at line #90. In this case the first part of the sed command will be the -# last line of conftest.s1 and the rest of the command will be the first lines -# of conftest.s2. So both script will not work properly. -# This matches the configure script produced by Autoconf 2.12 -/ac_max_sed_cmds=[0-9]/ s,=.*$,=`sed -n "$=" conftest.subs`, -# This matches the configure script produced by Autoconf 2.14a -/ac_max_sed_lines=[0-9]/ s,=.*$,=`sed -n "$=" $ac_cs_root.subs `, - -# gettext.m4 (serial 5) from GNU gettext 0.10.35 has a bug. -# When the package is configured with --without-included-gettext option -# and the system libintl.a is found then the LIBS variable *MUST* be set to -lintl -# so that this one is used for linking. -/echo.*\$gt_cv_func_gettext_libintl/,/^EOF$/ { - /^fi$/ a\ - if test "$gt_cv_func_gettext_libintl" = yes; then\ - LIBS="$LIBS -lintl"\ - fi -} - -# We prefer gettext__ instead of gettext. -/checking for gettext in /,/^EOF$/ s,gettext[ ]*(,gettext__(,g - -# The following two items are changes needed for configuring -# and compiling across partitions. -# 1) The given srcdir value is always translated from the -# "x:" syntax into "/dev/x" syntax while we run configure. -/^[ ]*-srcdir=\*.*$/ a\ - ac_optarg=`echo "$ac_optarg" | sed "s,^\\([A-Za-z]\\):,/dev/\\1,"` -/set X `ls -Lt \$srcdir/ i\ - if `echo $srcdir | grep "^/dev/" - > /dev/null`; then\ - srcdir=`echo "$srcdir" | sed -e "s%^/dev/%%" -e "s%/%:/%"`\ - fi - -# 2) We need links across partitions, so we will use "cp -pf" instead of "ln". -/# Make a symlink if possible; otherwise try a hard link./,/EOF/ { - s,;.*then, 2>/dev/null || cp -pf \$srcdir/\$ac_source \$ac_dest&, -} - -# Fixes for libiconv/Makefile.in and src/Makefile.in -# due to filename renaming in libiconv/ subdir. -/^EXTRA_DIST[ ]*=/ { - s|encodings\.def|encodings/&| - s|encodings_aix\.def|encodings/aix.def| - s|encodings_dos\.def|encodings/dos.def| - s|encodings_osf1\.def|encodings/osf1.def| - s|encodings_local\.def|encodings/local.def| -} -/^noinst_HEADERS[ ]*=/ { - s|aliases\.h|aliases/&| - s|aliases_aix\.h|aliases/aix.h| - s|aliases_dos\.h|aliases/dos.h| - s|aliases_osf1\.h|aliases/osf1.h| - s|aliases_local\.h|aliases/local.h| - s|cns|&/|g - s|iso|&/|g - s|georgian_|georgian/|g - s|mac_|mac/|g -} -/\/libiconv\// { - s|cns|&/|g - s|iso|&/|g - s|georgian_|georgian/|g - s|mac_|mac/|g - s|aliases\.h|aliases/&|g - s|aliases_aix\.h|aliases/aix.h|g - s|aliases_dos\.h|aliases/dos.h|g - s|aliases_osf1\.h|aliases/osf1.h|g - s|aliases_local\.h|aliases/local.h|g - s|encodings\.def|encodings/&|g - s|encodings_aix\.def|encodings/aix.def|g - s|encodings_dos\.def|encodings/dos.def|g - s|encodings_osf1\.def|encodings/osf1.def|g - s|encodings_local\.def|encodings/local.def|g -} - -# Fixes for lib/iconv.c. -# All encodings and aliases files recide in their respective subdirs now. -/^#[ ]*include/ s|"encodings\.def|"encodings/encodings.def| -/^#[ ]*include/ s|"encodings_aix\.def|"encodings/aix.def| -/^#[ ]*include/ s|"encodings_dos\.def|"encodings/dos.def| -/^#[ ]*include/ s|"encodings_osf1\.def|"encodings/osf1.def| -/^#[ ]*include/ s|"encodings_local\.def|"encodings/local.def| -/^#[ ]*include/ s|"aliases\.h|"aliases/aliases.h| -/^#[ ]*include/ s|"aliases_aix\.h|"aliases/aix.h| -/^#[ ]*include/ s|"aliases_dos\.h|"aliases/dos.h| -/^#[ ]*include/ s|"aliases_osf1\.h|"aliases/osf1.h| -/^#[ ]*include/ s|"aliases_local\.h|"aliases/local.h| - -# Fixes for lib/converters\.h. -# All cns, iso, georgian and mac files recide in their respective subdirs now. -/^#[ ]*include/ s|"cns|&/| -/^#[ ]*include/ s|"iso|&/| -/^#[ ]*include/ s|"georgian_|"georgian/| -/^#[ ]*include/ s|"mac_|"mac/| diff --git a/contrib/DJGPP/fnchange.in b/contrib/DJGPP/fnchange.in deleted file mode 100644 index f20884c..0000000 --- a/contrib/DJGPP/fnchange.in +++ /dev/null @@ -1 +0,0 @@ -@V@/config.h.in @V@/config.h-in diff --git a/contrib/DJGPP/fnchange.lst b/contrib/DJGPP/fnchange.lst deleted file mode 100644 index aabae66..0000000 --- a/contrib/DJGPP/fnchange.lst +++ /dev/null @@ -1 +0,0 @@ -recode-3.7-beta2/config.h.in recode-3.7-beta2/config.h-in diff --git a/contrib/Makefile.am b/contrib/Makefile.am index e527dc0..a06e502 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -1,10 +1,10 @@ # Makefile for Recode related contributions. -# Copyright © 1997, 1998, 2000 Free Software Foundation, Inc. +# Copyright © 1997-2018 Free Software Foundation, Inc. # François Pinard # 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 2, or (at your option) +# the Free Software Foundation; either version 3, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, @@ -13,36 +13,10 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# along with this program; if not, see . AUTOMAKE_OPTIONS = gnits -AMIGA_PORT = Amiga/lib-Makefile Amiga/src-Makefile -DJGPP_PORT = DJGPP/README.in DJGPP/config.site DJGPP/configdj.bat \ -DJGPP/configdj.sed DJGPP/DJGPP/README DJGPP/recodepo.sh -ELISP_FILES = recode.el utf8.el -SPEC_FILES = recode.spec1 recode.spec2 +ELISP_FILES = recode.el -EXTRA_DIST = $(AMIGA_PORT) $(DJGPP_PORT) $(ELISP_FILES) $(SPEC_FILES) - -MAINTAINERCLEANFILES = DJGPP/README DJGPP/fnchange.lst - -all-local: DJGPP/README DJGPP/fnchange.lst - -$(srcdir)/DJGPP/README: DJGPP/README.in $(top_srcdir)/configure.ac - packageversion=`echo "$(VERSION)" | sed 's/\.//g'`; \ - sed \ - -e 's/@V@/$(PACKAGE)-$(VERSION)/g' \ - -e 's/@VER@/$(VERSION)/g' \ - -e "s/@packageversion@/$$packageversion/g" \ - -e "s/@treeversion@/$(VERSION)/g" \ - $(srcdir)/DJGPP/README.in > $@-tmp - mv $@-tmp $@ - -$(srcdir)/DJGPP/fnchange.lst: DJGPP/fnchange.in $(top_srcdir)/configure.ac - sed \ - -e '/^#/d' \ - -e 's/@V@/$(PACKAGE)-$(VERSION)/g' \ - $(srcdir)/DJGPP/fnchange.in > $@-tmp - mv $@-tmp $@ +EXTRA_DIST = $(ELISP_FILES) diff --git a/contrib/Makefile.in b/contrib/Makefile.in deleted file mode 100644 index e56fc32..0000000 --- a/contrib/Makefile.in +++ /dev/null @@ -1,498 +0,0 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Makefile for Recode related contributions. -# Copyright © 1997, 1998, 2000 Free Software Foundation, Inc. -# François Pinard - -# 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 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 General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = contrib -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/mkinstalldirs ChangeLog README -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ - $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GLIBC21 = @GLIBC21@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = gnits -AMIGA_PORT = Amiga/lib-Makefile Amiga/src-Makefile -DJGPP_PORT = DJGPP/README.in DJGPP/config.site DJGPP/configdj.bat \ -DJGPP/configdj.sed DJGPP/DJGPP/README DJGPP/recodepo.sh - -ELISP_FILES = recode.el utf8.el -SPEC_FILES = recode.spec1 recode.spec2 -EXTRA_DIST = $(AMIGA_PORT) $(DJGPP_PORT) $(ELISP_FILES) $(SPEC_FILES) -MAINTAINERCLEANFILES = DJGPP/README DJGPP/fnchange.lst -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits contrib/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnits contrib/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile all-local -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am all-local check check-am clean clean-generic \ - clean-libtool cscopelist-am ctags-am distclean \ - distclean-generic distclean-libtool distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ - uninstall-am - - -all-local: DJGPP/README DJGPP/fnchange.lst - -$(srcdir)/DJGPP/README: DJGPP/README.in $(top_srcdir)/configure.ac - packageversion=`echo "$(VERSION)" | sed 's/\.//g'`; \ - sed \ - -e 's/@V@/$(PACKAGE)-$(VERSION)/g' \ - -e 's/@VER@/$(VERSION)/g' \ - -e "s/@packageversion@/$$packageversion/g" \ - -e "s/@treeversion@/$(VERSION)/g" \ - $(srcdir)/DJGPP/README.in > $@-tmp - mv $@-tmp $@ - -$(srcdir)/DJGPP/fnchange.lst: DJGPP/fnchange.in $(top_srcdir)/configure.ac - sed \ - -e '/^#/d' \ - -e 's/@V@/$(PACKAGE)-$(VERSION)/g' \ - $(srcdir)/DJGPP/fnchange.in > $@-tmp - mv $@-tmp $@ - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/contrib/README b/contrib/README index 0ae5471..8acfb6b 100644 --- a/contrib/README +++ b/contrib/README @@ -6,8 +6,8 @@ README file for :file:`recode/contrib/` ======================================= The :file:`contrib/` directory of the Recode distribution contains a few -miscellaneous tools, ports, or such things, which have been collected -here and there, a bit randomly, for your possible entertainment or use. +miscellaneous tools, which have been collected here and there, a bit +randomly, for your possible entertainment or use. Beware that nothing here is supported by the Recode maintainer, you might have to contact the authors directly to get support. There is no @@ -30,54 +30,8 @@ help me at deciding what should be kept and what should go away. + Emacs Lisp files - + :file:`utf8.el` - - This tool helps Emacs users at inserting UTF-8 encoded ISO-10646 or - Unicode characters in an Emacs buffer. Submitted by Gary Houston - to :code:`gnu.emacs.sources`, 1994-10. - + :file:`recode.el` This is a miscellaneous collection of tools, documented in French, for using Recode from Emacs, when Latin-1 is in use. Submitted by François Pinard , 1994-12. - -+ RPM spec files - - + :file:`recode.spec1` - - RPM spec file to prepare Recode 3.5c on RedHat. Submitted by David - Lebel, 2000-06. - - + :file:`recode.spec2` - - RPM spec file to prepare Recode 3.5d on RedHat. Submitted by Bennett - Todd, 2002-01. Bennett writes (more or less): - - This spec file allows portable building. Users could download the - tar archive and simply ``rpm -ta`` it to build themselves source and - binary :code:`rpm`\ s. If they had their :code:`rpm` directory, - they could even do it while not being ``root``. For example, my - :file:`~/.rpmmacros` reads:: - - %_topdir /home/bet/rpm - - without a leading tab. Hence my :file:`/usr/src/redhat/` is still - ``root:root``, and yet I can do my :code:`rpm` building as myself. - -+ Amiga port - - Files in the :file:`Amiga/` directory should allow building Recode on - Amiga. Submitted by Stefan Haubenthal, 1998-11, for version 3.4k. - -+ DJGPP port - - Files in the :file:`DJGPP/` directory should allow building - Recode on MSDOS/DJGPP. Submitted by Juan Manuel Guerrero - , 2001-03, for a pretest towards version 3.6. - For this port, there is a `README`__ file. - - __ /DJGPP.html - - For the record, a previous port was submitted by Wojciech Galazka - , 1997-11, for version 3.4.1. diff --git a/contrib/recode.el b/contrib/recode.el index 814ba90..a77705b 100644 --- a/contrib/recode.el +++ b/contrib/recode.el @@ -1,10 +1,10 @@ ;;; recode.el --- Outils divers autour des jeux de caractères nationaux. -;;; Copyright © 1995, 1997 Progiciels Bourbeau-Pinard inc. +;;; Copyright © 1995-1997 Progiciels Bourbeau-Pinard inc. ;;; François Pinard , Mars 1995. ;; Ce programme est un logiciel libre; vous pouvez le redistribuer ou le ;; modifier selon les termes de la License Publique Générale de GNU, publiée -;; par la Free Software Foundation (soit la version 2 ou soit, à votre +;; par la Free Software Foundation (soit la version 3 ou soit, à votre ;; discrétion, toute version ultérieure). ;; Ce programme est distribué pour être utile, mais SANS AUCUNE GARANTIE; @@ -13,8 +13,7 @@ ;; de GNU pour plus de détails. ;; Vous devriez avoir reçu copie de la Licence Publique Générale de GNU -;; avec ce programme; sinon, écrire à la Free Software Foundation, Inc., -;; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +;; avec ce programme; sinon, voir . ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Les outils sont regroupés par thème fonctionnel, un par page. ;;; diff --git a/contrib/recode.spec1 b/contrib/recode.spec1 deleted file mode 100644 index 793ec1a..0000000 --- a/contrib/recode.spec1 +++ /dev/null @@ -1,93 +0,0 @@ -%define rcsid $Id: recode.spec,v 1.5 2000/06/29 13:52:54 lebel Exp $ -%define nam recode -%define ver 3.5c -%define rel 1 -%define sysconfdir /etc -%define prefix /usr - -Summary: The Recode library converts files between character sets and usages. -Name: %nam -Version: %ver -Release: %rel -Copyright: GPL -Vendor: François Pinard et al. -Group: Applications/Text -Source: http://www.iro.umontreal.ca/contrib/recode/%{nam}-%{ver}.tar.gz -URL: http://www.iro.umontreal.ca/~pinard/ -BuildRoot: /var/tmp/%{nam}-%{ver}-root -Docdir: %{prefix}/doc - -%description -The Recode library converts files between character sets and usages. -The library recognises or produces nearly 150 different character sets -and is able to transliterate files between almost any pair. When -exact transliteration are not possible, it may get rid of the -offending characters or fall back on approximations. Most RFC 1345 -character sets are supported. The `recode' program is a handy -front-end to the library. - -The Recode program and library have been written by François Pinard. -It is an evolving package, and specifications might change in future -releases. Option `-f' is now fairly implemented, yet not fully. - -%package devel -Summary: Libraries and include files for developing applications using the Recode library. -Group: Development/Libraries - -%description devel -This package provides the necessary development libraries and include -files to allow you to develop applications using the Recode libraries. - -%changelog -* Thu Jun 29 2000 David Lebel -- Initial public release of this SPEC file. - -%prep -%setup -q - -%build -if [ ! -f configure ]; then - CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh \ - --prefix=%{prefix} --sysconfdir=%{sysconfdir} -else - CFLAGS="$RPM_OPT_FLAGS" ./configure \ - --prefix=%{prefix} --sysconfdir=%{sysconfdir} -fi - -make - -%install -[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT - -make install-strip \ - prefix=$RPM_BUILD_ROOT%{prefix} \ - sysconfdir=$RPM_BUILD_ROOT%{sysconfdir} - -%clean -[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT - -%post -if ! grep %{prefix}/lib /etc/ld.so.conf > /dev/null ; then - echo "%{prefix}/lib" >> /etc/ld.so.conf -fi - -[ -x /sbin/ldconfig ] && /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%files -%defattr(-, bin, bin) - -%doc ABOUT-NLS AUTHORS BACKLOG COPYING COPYING-LIB ChangeLog INSTALL NEWS README THANKS TODO -%{prefix}/bin/* -%{prefix}/lib/*.so* -%{prefix}/info/recode* -%{prefix}/man/man1/* -%{prefix}/share/locale/* - -%files devel -%defattr(0555, bin, bin) - -%{prefix}/include/* -%{prefix}/lib/*.a -%{prefix}/lib/*.la diff --git a/contrib/recode.spec2 b/contrib/recode.spec2 deleted file mode 100644 index 0e62781..0000000 --- a/contrib/recode.spec2 +++ /dev/null @@ -1,47 +0,0 @@ -Name: recode -Version: 3.5d -Release: 2 -Summary: Converter between charsets and surfaces -Group: Utilities/Text - -Vendor: Progiciels Bourbeau-Pinard inc. -Copyright: GPL, LGPL -Packager: Franc,ois Pinard - -Source: http://recode.progiciels-bpi.ca/archives/recode-3.5d.tar.gz -URL: http://recode.progiciels-bpi.ca/ - -Buildroot: /var/tmp/%{name}-rpmroot - -%description -The recode library converts files between character sets and usages. -It recognises or produces more than 300 different character sets -and transliterates files between almost any pair. When exact -transliteration are not possible, it gets rid of offending characters -or fall back on approximations. The recode program is a handy -front-end to the library. - -%prep -%setup - -%build -./configure --prefix=/usr -make - -%install -mkdir -p $RPM_BUILD_ROOT/usr -make prefix=$RPM_BUILD_ROOT/usr install - -%changelog -* Thu Jan 31 2002 Bennett Todd - 3.5d-2: started w/ spec file from tarball, made spec portable - -%files -%defattr(-,root,root) -%doc ABOUT-NLS AUTHORS BACKLOG ChangeLog COPYING COPYING-LIB INSTALL NEWS PATCHES-AC README README-alpha THANKS TODO doc -/usr/bin/* -/usr/include/* -/usr/lib/* -%doc /usr/info/%{name}* -%doc /usr/man/*/* -/usr/share/locale/*/LC_MESSAGES/* diff --git a/contrib/utf8.el b/contrib/utf8.el deleted file mode 100644 index 14e99b1..0000000 --- a/contrib/utf8.el +++ /dev/null @@ -1,228 +0,0 @@ -;;; utf8.el --- Insert UTF-8 encoded ISO-10646/Unicode characters. -;;; -;;; Copyright (C) 1994 Gary Houston -;;; -;;; 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 2 of the License, 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 General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with this program; if not, write to the Free Software -;;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -;;; COMMENTARY -;;; ---------- - -;;; Provides a command for direct entry of UTF-8 encoded multibyte -;;; characters in hexadecimal form. - -;;; Load file and type `M-x hex-to-utf8' - -;;; Also contains a simple symbol selection command (not many symbols): -;;; M-x utf8-symbol and TAB for completion. - -;;; A list of Unicode names and codes is available by ftp from unicode.org. - -;;; Modification of Emacs to display and process the multibyte characters -;;; correctly is left as an exercise for the reader. - -;;; HISTORY -;;; ------- -;;; Created 1994-10-24. Experimental. May contain bugs. -;;; Uses a few lines of code from hexl.el. - -;;; THEORY -;;; ------ -;;; The UTF-FSS (aka UTF-2 aka UTF-8) encoding of UCS, as described in the -;;; following quote from Ken Thompson's utf-fss.c: -;;; -;;;Bits Hex Min Hex Max Byte Sequence in Binary -;;; 7 00000000 0000007f 0vvvvvvv -;;; 11 00000080 000007FF 110vvvvv 10vvvvvv -;;; 16 00000800 0000FFFF 1110vvvv 10vvvvvv 10vvvvvv -;;; 21 00010000 001FFFFF 11110vvv 10vvvvvv 10vvvvvv 10vvvvvv -;;; 26 00200000 03FFFFFF 111110vv 10vvvvvv 10vvvvvv 10vvvvvv 10vvvvvv -;;; 31 04000000 7FFFFFFF 1111110v 10vvvvvv 10vvvvvv 10vvvvvv 10vvvvvv 10vvvvvv -;;; -;;; The UCS value is just the concatenation of the v bits in the multibyte -;;; encoding. When there are multiple ways to encode a value, for example -;;; UCS 0, only the shortest encoding is legal. - -(defun hex-to-utf8 (hex-string) - "Convert a hex string to a UTF-8 multibyte character." - (interactive "sEnter hex character value (0 - 7FFFFFFF): ") - (let ((widechar 0.0) - (num-bytes 1) - (orig-hex hex-string)) - ;; Convert the string to a decimal float. - ;; Floats are used since elisp integers may be too small for - ;; large characters. - (while (not (equal hex-string "")) - (setq widechar - (+ (* widechar 16) - (utf8-hex-char-to-integer (string-to-char hex-string)))) - (setq hex-string (substring hex-string 1))) - (if (>= widechar (expt 2.0 31)) - (error (format "char value %s is larger than 7FFFFFFF" orig-hex))) - - ;; Calculate the number of UTF-8 bytes needed. - (while (>= widechar - ;; 2 raised to the number of bits with this many bytes. - (expt - 2.0 - (+ - (if (= num-bytes 1) 7 (- 7 num-bytes)) - (* (- num-bytes 1) 6)))) - (setq num-bytes (+ num-bytes 1))) - - (insert - ;; First byte. - (char-to-string - (logior - (truncate (/ widechar (expt 2.0 (* (- num-bytes 1) 6)))) - (if (= num-bytes 1) - 0 - (mod (lognot (- (expt 2 (+ 8 (- num-bytes))) 1)) 256))))) - - ;; Remaining bytes. - (while (> num-bytes 1) - (setq num-bytes (- num-bytes 1)) - (insert - (char-to-string - (logior - (truncate - (/ - (mod widechar (expt 2.0 (* num-bytes 6))) - (expt 2.0 (* (- num-bytes 1) 6)))) - 128)))))) - -(defun utf8-hex-char-to-integer (character) - "Take a char and return its value as if it was a hex digit." - (if (and (>= character ?0) (<= character ?9)) - (- character ?0) - (let ((ch (logior character 32))) - (if (and (>= ch ?a) (<= ch ?f)) - (- ch (- ?a 10)) - (error (format "Invalid hex digit `%c'." ch)))))) - -;;; Symbol selection stuff. - -(defconst ISO-10646-symbol-types - '(("greek-basic" nil) - ("chess" nil) - ("cards" nil)) - "Classes of ISO-10646 symbols") - -(defconst ISO-10646-greek-basic - '(("GREEK CAPITAL LETTER ALPHA" "0391") - ("GREEK CAPITAL LETTER BETA" "0392") - ("GREEK CAPITAL LETTER GAMMA" "0393") - ("GREEK CAPITAL LETTER DELTA" "0394") - ("GREEK CAPITAL LETTER EPSILON" "0395") - ("GREEK CAPITAL LETTER ZETA" "0396") - ("GREEK CAPITAL LETTER ETA" "0397") - ("GREEK CAPITAL LETTER THETA" "0398") - ("GREEK CAPITAL LETTER IOTA" "0399") - ("GREEK CAPITAL LETTER KAPPA" "039A") - ("GREEK CAPITAL LETTER LAMDA" "039B") - ("GREEK CAPITAL LETTER MU" "039C") - ("GREEK CAPITAL LETTER NU" "039D") - ("GREEK CAPITAL LETTER XI" "039E") - ("GREEK CAPITAL LETTER OMICRON" "039F") - ("GREEK CAPITAL LETTER PI" "03A0") - ("GREEK CAPITAL LETTER RHO" "03A1") - ("GREEK CAPITAL LETTER SIGMA" "03A3") - ("GREEK CAPITAL LETTER TAU" "03A4") - ("GREEK CAPITAL LETTER UPSILON" "03A5") - ("GREEK CAPITAL LETTER PHI" "03A6") - ("GREEK CAPITAL LETTER CHI" "03A7") - ("GREEK CAPITAL LETTER PSI" "03A8") - ("GREEK CAPITAL LETTER OMEGA" "03A9") - ("GREEK SMALL LETTER ALPHA" "03B1") - ("GREEK SMALL LETTER BETA" "03B2") - ("GREEK SMALL LETTER GAMMA" "03B3") - ("GREEK SMALL LETTER DELTA" "03B4") - ("GREEK SMALL LETTER EPSILON" "03B5") - ("GREEK SMALL LETTER ZETA" "03B6") - ("GREEK SMALL LETTER ETA" "03B7") - ("GREEK SMALL LETTER THETA" "03B8") - ("GREEK SMALL LETTER IOTA" "03B9") - ("GREEK SMALL LETTER KAPPA" "03BA") - ("GREEK SMALL LETTER LAMDA" "03BB") - ("GREEK SMALL LETTER MU" "03BC") - ("GREEK SMALL LETTER NU" "03BD") - ("GREEK SMALL LETTER XI" "03BE") - ("GREEK SMALL LETTER OMICRON" "03BF") - ("GREEK SMALL LETTER PI" "03C0") - ("GREEK SMALL LETTER RHO" "03C1") - ("GREEK SMALL LETTER FINAL SIGMA" "03C2") - ("GREEK SMALL LETTER SIGMA" "03C3") - ("GREEK SMALL LETTER TAU" "03C4") - ("GREEK SMALL LETTER UPSILON" "03C5") - ("GREEK SMALL LETTER PHI" "03C6") - ("GREEK SMALL LETTER CHI" "03C7") - ("GREEK SMALL LETTER PSI" "03C8") - ("GREEK SMALL LETTER OMEGA" "03C9") - ("GREEK BETA SYMBOL" "03D0") - ("GREEK THETA SYMBOL" "03D1") - ("GREEK PHI SYMBOL" "03D5") - ("GREEK PI SYMBOL" "03D6") - ("GREEK LETTER STIGMA" "03DA") - ("GREEK LETTER DIGAMMA" "03DC") - ("GREEK LETTER KOPPA" "03DE") - ("GREEK LETTER SAMPI" "03E0") - ("GREEK KAPPA SYMBOL" "03F0") - ("GREEK RHO SYMBOL" "03F1") - ("GREEK LUNATE SIGMA SYMBOL" "03F2") - ("GREEK LETTER YOT" "03F3") - ("TURNED GREEK SMALL LETTER IOTA" "2129")) - "Names and character codes for ISO-10646 unaccented Greek letters.") - -(defconst ISO-10646-chess - '(("WHITE CHESS KING" "2654") - ("WHITE CHESS QUEEN" "2655") - ("WHITE CHESS ROOK" "2656") - ("WHITE CHESS BISHOP" "2657") - ("WHITE CHESS KNIGHT" "2658") - ("WHITE CHESS PAWN" "2659") - ("BLACK CHESS KING" "265A") - ("BLACK CHESS QUEEN" "265B") - ("BLACK CHESS ROOK" "265C") - ("BLACK CHESS BISHOP" "265D") - ("BLACK CHESS KNIGHT" "265E") - ("BLACK CHESS PAWN" "265F")) - "Names and character codes for ISO-10646 chess pieces.") - -(defconst ISO-10646-cards - '(("BLACK SPADE SUIT" "2660") - ("WHITE HEART SUIT" "2661") - ("WHITE DIAMOND SUIT" "2662") - ("BLACK CLUB SUIT" "2663") - ("WHITE SPADE SUIT" "2664") - ("BLACK HEART SUIT" "2665") - ("BLACK DIAMOND SUIT" "2666") - ("WHITE CLUB SUIT" "2667")) - "Names and character codes for ISO-10646 playing cards.") - -(defun utf8-symbol () - "Insert a UTF-8 encoded symbol from ISO-10646." - (interactive) - (do-ISO-10646-symbol-type - (completing-read "Symbol category: " ISO-10646-symbol-types nil t))) - -(defun do-ISO-10646-symbol-type (category) - "Insert a UTF-8 encoded symbol from a given category." - (let ((category-var (intern (concat "ISO-10646-" category))) - (completion-ignore-case t)) - (hex-to-utf8 - (elt - (assoc - (completing-read "Name of the symbol: " - (symbol-value category-var) nil t) - (symbol-value category-var)) 1)))) diff --git a/depcomp b/depcomp deleted file mode 100755 index ca5ea4e..0000000 --- a/depcomp +++ /dev/null @@ -1,584 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2006-10-15.18 - -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 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 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 General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Alexandre Oliva . - -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by `PROGRAMS ARGS'. - object Object file output by `PROGRAMS ARGS'. - DEPDIR directory where to store dependencies. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi - -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -depfile=${depfile-`echo "$object" | - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. -## Unfortunately, FreeBSD c89 acceptance of flags depends upon -## the command line argument order; so add the flags where they -## appear in depend2.am. Note that the slowdown incurred here -## affects only configure: in makefiles, %FASTDEP% shortcuts this. - for arg - do - case $arg in - -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; - *) set fnord "$@" "$arg" ;; - esac - shift # fnord - shift # $arg - done - "$@" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory -## that the space means something, we add a space to the output as -## well. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the - # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> $depfile - echo >> $depfile - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts `$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" - if test "$libtool" = yes; then - "$@" -Wc,-M - else - "$@" -M - fi - stat=$? - - if test -f "$tmpdepfile"; then : - else - stripped=`echo "$stripped" | sed 's,^.*/,,'` - tmpdepfile="$stripped.u" - fi - - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - - if test -f "$tmpdepfile"; then - outname="$stripped.o" - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | - sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp2) - # The "hp" stanza above does not work with aCC (C++) and HP's ia64 - # compilers, which have integrated preprocessors. The correct option - # to use with these is +Maked; it writes dependencies to a file named - # 'foo.d', which lands next to the object file, wherever that - # happens to be. - # Much of this is similar to the tru64 case; see comments there. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir.libs/$base.d - "$@" -Wc,+Maked - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - "$@" +Maked - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" - # Add `dependent.h:' lines. - sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" "$tmpdepfile2" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - # With Tru64 cc, shared objects can also be used to make a - # static library. This mechanism is used in libtool 1.4 series to - # handle both shared and static libraries in a single compilation. - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. - # - # With libtool 1.5 this exception was removed, and libtool now - # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 - tmpdepfile2=$dir$base.o.d # libtool 1.5 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.o.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - tmpdepfile4=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for `:' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. - "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no - for arg in "$@"; do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix="`echo $object | sed 's/^.*\././'`" - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E | - sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - "$@" || exit $? - IFS=" " - for arg - do - case "$arg" in - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/doc/ChangeLog b/doc/ChangeLog deleted file mode 100644 index 77c1313..0000000 --- a/doc/ChangeLog +++ /dev/null @@ -1,480 +0,0 @@ -2008-03-14 François Pinard - - * recode.texi: More about omitted charsets. - Reported by Pascal Gourdel. - -2008-03-13 François Pinard - - * recode.texi: Clarify include files and configuration matters. - Reported by Xabier Rodriguez Calvar. - -2008-03-10 François Pinard - - * recode.texi (Task level): Use name, not file, in example. - Reported by Simon Cozens. - -2008-03-08 François Pinard - - * recode.texi: Better document iconv processing. - - * recode.texi: Write Recode, not Free recode. Prefer Recode to - @code{recode} wherever appropriate. - -2008-03-07 François Pinard - - * tables.py: Moved to top level. - * Makemore: Deleted. - * Makefile.am: Adjusted. - (rfc1345.texi): New goal. - -2008-03-06 François Pinard - - * recode.texi: Document iconv as an external library, instead - of as being integrated as part of the recode library. - * iconv.texi: Deleted. - * Makefile.am: Adjusted. - -2008-02-21 François Pinard - - * recode.texi: English corrections. - Reported by Dan Jacobson. - -2008-02-19 François Pinard - - * recode.texi: English corrections. - Reported by Reuben Thomas. - -2008-02-16 François Pinard - - * mdate-sh, texinfo.tex: Modified by Automake 1.10. - -2005-11-06 François Pinard - - * version.texi, help2man, texinfo.tex: New files, from elsewhere. - -2005-03-06 François Pinard - - * texinfo.tex: Newer version, from elsewhere. - - * ChangeLog: Converted to UTF-8. - -2001-07-01 Bruno Haible - - * libiconv.texi: Regenerated using Makemore. - * fr-libiconv.texi: Likewise. - -2001-07-01 Bruno Haible - - * Makemore (ENCODINGS_DEF): Use all the encodings*.def files. - -2000-12-06 Bruno Haible - - * Makefile.am (MAKEINFO): New definition, forcing English titles in - the generated info files. - - * recode.texi: Reformulate paragraphs mentioning DEFAULT_CHARSET. - - * Makemore (ENCODINGS_DEF): Add encodings_local.def. - -2000-10-14 François Pinard - - * recode.texi (Listings): Document how to produce hexadecimal - conversion tables. - -2000-08-30 Bruno Haible - - * help2man: Upgrade to version 1.022. - -2000-08-18 François Pinard - - * recode.texi (HTML): Undust and bring up-to-date. Add XML info. - -2000-07-10 François Pinard - - * recode.texi (Introduction): How to pronounce recode. - -2000-06-29 François Pinard - - * tables.py (Explodes.complete, Strips.complete_sources): Produce - delmodule_* functions, both empty for now. - -2000-06-26 François Pinard - - * recode.texi (Debugging): New node. - (Test): Renamed from Debugging. - - * tables.py (Mnemonics.digest_iso10646_def): Handle varying - capitalisation in file others.def. - -2000-05-27 François Pinard - - * Makefile.am (MOSTLYCLEANFILES): Define to recode.ops. - - * tables.py (Strips): Generate strip data only when needed. - * Makemore (fr-rfc1345.texi): Depends on and use mnemonics,ds. - -2000-04-23 Bruno Haible - - * tables.py: While generating libiconv.h, do not produce those - declarations which are now contained in iconv.h. - -2000-03-22 François Pinard - - * NomsSeulsfinal.lst: Updated. - Reported by François Yergeau. - -2000-03-21 François Pinard - - * tables.py: Reorganised with classes, no more globals. - -2000-02-07 François Pinard - - * NomsSeulsfinal.lst: Update replacing noms_juc_19981216.txt. - * Makemore (NOMS_CARACS): Adjusted. - Reported by Patrick Andries. - -2000-02-06 François Pinard - - * Makemore (ENCODINGS_DEF): Use ../ instead of top_srcdir. - - * tables.py: Nomenclature change of symbol to alias. - -2000-02-05 François Pinard - - * recode.texi: Document tree as a special charset. - -1999-12-30 François Pinard - - * recode.texi (Charset overview): Document unreachable charsets. - Reported by François-Xavier Bergot - -1999-12-29 François Pinard - - * recode.texi (libiconv): Adjust to reflect the merge. - -1999-12-28 François Pinard - - * tables.py (produce_libiconv): Declare libiconv functions. - * Makemore: Use encoding.def from the libiconv/ subdirectory. - -1999-12-24 François Pinard - - * recode.texi (libiconv): New name for iconv node. - -1999-12-23 François Pinard - - * recode.texi (iconv, Vietnamese): New nodes. - - * Makemore: Change directory to distribution before calling - Python, so relative symlinks work better, here. - - * tables.py (Input, Output): New classes, reorganising code. - -1999-12-22 François Pinard - - * tables.py: Tend to prefer string methods over re methods. - (begins): New function. Use it. - - * Makefile.am, Makemore, tables.py: Make libiconv.h, libiconv.texi - and fr-libiconv.texi. Rename charset.texi to rfc1345.texi. - -1999-12-21 François Pinard - - * tables.py (produce_texinfo): Avoid colons in index references. - Change :NUMBER into (NUMBER). - Reported by Eli Zaretskii. - -1999-12-19 Eli Zaretskii - - * recode.texi: Add index references and print indices for - concepts, options, library features, and charsets and surfaces. - Many stylistic changes, both for English and for Texinfo. Various - factual errors corrected, including output from some examples. - * tables.py (produce_texinfo): Generate index references. - -1999-12-12 François Pinard - - * recode.texi: Show program_name in the examples for the library - usage, and document its purpose. - Reported by Kristian Köhntopp, Pawel Krawczyk and Simon Cozens. - -1999-11-27 François Pinard - - * recode.texi (MIME contents encoding, UTF-7): Adjust RFC numbers - and correct historical note. - Reported by Neal McBurnett. - -1999-09-27 François Pinard - - * tables.py: Python version of tables.pl. - * tables.pl: Deleted. - * Makefile.am, Makemore: Adjusted. - -1999-06-22 François Pinard - - * Makefile.am (man_MANS, recode.1): Deleted. The man page will - now be built in src/ rather than here. - -1999-06-17 François Pinard - - * recode.texi (Top): Use @ifnottex instead of @ifinfo. - -1999-04-27 François Pinard - - * recode.texi: Do not use od in examples, recode can do it itself. - -1999-04-21 François Pinard - - * recode.texi: Many tiny adjustments all over. - Reported by Laurent Bourbeau. - -1999-04-18 François Pinard - - * recode.texi (Listings): Checking is somewhat relaxed when - generating source tables. - -1999-04-02 François Pinard - - * recode.texi (UTF-8): Change RFC2044 to RFC2279. - Reported by Steinar Bang. - - * recode.texi (Requests): Aliases are not true and simple anymore. - Reported by Martin J. Dürst. - -1999-01-17 François Pinard - - * tables.pl: Generate code to initialize implied surfaces. - -1999-01-07 François Pinard - - * tables.pl (digest_french_names): Define translations for control - characters from U+0080 to U+009F. Make U+007F work as expected. - Reported by Alain Labonté and Laurent Bourbeau. - -1999-01-05 François Pinard - - * tables.pl (digest_french_names): Remove trailing asterisks. - -1999-01-04 François Pinard - - * tables.pl: Generate struct strip_table instead of UCS2_DATA_TABLE. - Produce strip-pool.c and strip-data.c instead of pool.c and - tables.c. Rename produce_tables_init and produce_tables_term with - produce_strip_init and produce_strip_term. Rename tabular_flag to - strip_option. Rename all other _flag variables into _option. - Replace SOMECHAR with REPLACEMENT_CHARACTER and NOCHAR with - NOT_A_CHARACTER. - * Makemore: Adjusted. - -1999-01-02 François Pinard - - * tables.pl (digest_french_names): Handle translation of control - characters given an explicit table in the program. - - * tables.pl (produce_texinfo): Avoid some spurious trailing space. - -1998-12-17 François Pinard - - * noms_juc_19981216.txt: New French name table. - * Makemore: Use it. - * tables.pl: Recognise new table despite semicolons. - Reported by Alain Labonté et François Yergeau. - -1998-12-15 François Pinard - - * Makemore (fr-charnames.h, fr-charset.texi): New rules. - * tables.pl: Normalize style. - (digest_french_names): New routine. - -1998-11-23 François Pinard - - * help2man: New file, from elsewhere. - * Makefile.am (EXTRA_DIST, recode.1): Adjusted. - -1998-11-03 François Pinard - - * helptoman.pl: Comment a wrong line. Remove parenthesese on - another. - -1998-11-02 François Pinard - - * tables.pl: Use recode_ucs2 type. - -1998-10-27 François Pinard - - * tables.pl (produce_tables_term): Use bool instead of int. - (declare_mnemonic): Return, instead of calling next. - -1998-10-23 François Pinard - - * tables.pl: Adapt to use strict. - * Makemore: Use -w with Perl. - -1998-09-15 François Pinard - - * keld-email/mnemonics,ds: Patched to add Euro symbol. - -1998-09-01 François Pinard - - * Makemore (CHARSETS_DEF, ISO10646_DEF, MNEMONICS_DS): New macros. - Use them. For playing with some revised tables emailed by Keld. - -1997-12-15 François Pinard - - * tables.pl (digest_iso10646_def, declare_mnemonic): New routines. - -1997-12-14 François Pinard - - * tables.pl: New file, merging once separate scripts. - * charname.pl, charset.pl, rfc1345.pl: Deleted. - * Makefile.am, Makemore: Adjusted. - -1997-12-12 François Pinard - - * Makemore: Fetch and use mnemonic,ds instead of mnemonics.ds. - -1997-12-09 François Pinard - - * Makefile.am (recode.1): Depend on src/main.c, not src/recode.c. - * helptoman.pl: Reset the accumulation flag even if the usage - clause is only one line long. - - * charset.pl (digest_rfc1345): Capitalise the saved &rem and add - an ending period, as necessary, before writing it to charset.texi. - -1997-12-05 François Pinard - - * charset.pl (digest_rfc1345): Diagnose if declarations for a - charset are not presented in the unofficial canonical order. - Reported by Keld Jørn Simonsen. - -1997-12-03 François Pinard - - * Makemore (charset.texi): Handle chset31a/charsets.def, instead of - rfc1345.txt combined with a few Unicode maps. - (chset31a, charsets.def): New goals. - (all): Append dependencies to Makefile's all, automating them. - * charset.pl: Recognise simpler charsets.def format. - Reported by Keld Jørn Simonsen, Lukas Petrlik and Roman Czyborra. - - * koi8-r and other cyrillic tables gets implemented through the - changes above. - Reported by Alexander L. Belikoff, Andries Brouwer and Roman - Czyborra. - -1997-12-02 François Pinard - - * rfc1345.pl: Generate an inverse table. - -1997-12-01 François Pinard - - * charset.pl: Reorganise with one processor routine per type of - input file. Add code to recognise input file types from contents, - and dispatch accordingly. Add a routine to read Unicode maps. - - * Makemore (charset.texi): Read mnemonics files before RFC 1345. - Fetch and process the Unicode format maps held in MAPS. - (cp1251.txt): New rule. (MAPS): Adjusted. - Reported by Andreas Dietrich. - - * Makemore (cp1250.txt): New rule. (MAPS): Adjusted. - Reported by Branimir Dolicki, Frère Roy and Primoz Peterlin. - - * Makemore (cp1252.txt): New rule. (MAPS): Adjusted. - Reported by Hilmar Schlegel. - -1997-11-24 François Pinard - - * charname.pl, charset.pl, rfc1345.pl: Insert the LGPL instead - of the GPL in generated sources. - -1997-10-14 François Pinard - - * charset.pl: Generate global argument to module_tables, and - generate checking and return of initialisation success. - -1997-10-06 François Pinard - - * helptoman.pl: Have better headers and footers. - Reported by Thomas M. Ott. - -1997-10-05 François Pinard - - * Makemore (i18n.txt, i18nrep.txt): New rules. - - * All: Replace `and usages' by `and surfaces'. Replace encoding - and ENCODING by surface and SURFACE. - -1997-09-29 François Pinard - - * Makemore (rfc1345.txt): New rule. - - * helptoman.pl: New file. - * Makefile.am: Prepare, install and distribute the man page. - Suggested by Harald Falkenberg. - -1997-09-23 François Pinard - - Have most Perl generation done in this directory, with resulting - files moved into directories where they are most useful. - * Makemore: New file. - * Makefile.am: Simplified accordingly. - * charname.pl, rfc1345.pl: Moved over from src/. - -1997-09-22 François Pinard - - * charset.pl: Use lc instead of y whenever appropriate. Use - upcased hexadecimal for $SOMECHAR and $NOCHAR. Rename %unicode to - %ucs2, and some of $code to $ucs2. Rename UNICODE to MNEMONICS - and $UNICODE to MNEMONICS. Implement a pool of for strips of UCS2 - characters. Do not split output anymore into charset1.c and - charset2.c; rather have all tables into tables.c and all strips - into pool.c. Everything adjusted. - - * Makefile.am (charset.texi): Manage so the script is executed in - the build directory, so diagnostics have $(srcdir) in references. - -1997-07-29 François Pinard - - * charset.pl: Generated module_ routines need a parameter. - -1997-02-26 François Pinard - - * mnemonic.ds2: Add three dozens of missing codes. - -1997-02-25 François Pinard - - * Makefile.am (EXTRA_DIST): Add charset1.c, charset2.c and - charset.texi, taken out of BUILT_SOURCES. - -1996-09-30 François Pinard - - * charset.pl: Integrate charset.sed, accept rfc1345.txt as - argument, use hex. - * charset.sed: Deleted. - * Makefile.am: Adjusted. - Reported by Andreas Schwab. - -1996-08-25 François Pinard - - * charset.pl: Use warn rather than print STDERR. - -1996-08-24 François Pinard - - * charset.pl: Replace DOUBLE_TABLE by UCS2_DATA_TABLE. Call - declare_ucs2_data instead of declare_double_step, and avoid - generating a third argument for size. Replace SRC by SOURCE. - - * Makefile.am: New, replaces Makefile.in. - -1995-07-23 François Pinard - - * mnemonic.ds: Copied from ftp://dkuug.dk/i18n/mnemonic.ds. - * mnemonic.ds2: New file, edited from inspection of rfc1345.txt. - * Makefile.in (DISTFILES): Distribute them. - * charset.pl: Generate UCS2 in tables, instead of mnemonics. - -1995-07-10 François Pinard - - Distribution unflattened, for using GNU gettext. - * Makefile.in: New file. diff --git a/doc/Makefile.am b/doc/Makefile.am index 32e1b4c..51e56c4 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,10 +1,10 @@ # Makefile for Recode documentation. -# Copyright © 1994, 95, 96, 97, 98, 99, 00 Free Software Foundation, Inc. +# Copyright © 1994-2019 Free Software Foundation, Inc. # François Pinard # 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 2, or (at your option) +# the Free Software Foundation; either version 3, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, @@ -13,14 +13,13 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# along with this program; if not, see . AUTOMAKE_OPTIONS = gnits info_TEXINFOS = recode.texi -MAKEINFO = LANG= LANGUAGE= @MAKEINFO@ +recode_TEXINFOS = rfc1345.texi -EXTRA_DIST = rfc1345.texi File-Latin1 help2man +EXTRA_DIST = File-Latin1 MOSTLYCLEANFILES = recode.ops # Relative to $(srcdir). @@ -28,11 +27,11 @@ KELD = ../keld CHARSETS_DEF = $(KELD)/charsets.def MNEMONICS_DS = $(KELD)/iso10646.def $(KELD)/other.def $(KELD)/control.def -PYTHON = python TABLES_PY = $(PYTHON) $(top_srcdir)/tables.py -$(srcdir)/recode.info: rfc1345.texi -recode.dvi: rfc1345.texi +# Disable dvi target, to avoid needing TeX for make distcheck +# (and in any case, no-one wants DVI) +dvi: # There is duplication of work with making src/strip-{pool,data}.c. # This used to be combined, but it seems clearer to keep both separate. diff --git a/doc/Makefile.in b/doc/Makefile.in deleted file mode 100644 index 9c1a6e8..0000000 --- a/doc/Makefile.in +++ /dev/null @@ -1,827 +0,0 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Makefile for Recode documentation. -# Copyright © 1994, 95, 96, 97, 98, 99, 00 Free Software Foundation, Inc. -# François Pinard - -# 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 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 General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = doc -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/mkinstalldirs mdate-sh $(srcdir)/version.texi \ - $(srcdir)/stamp-vti texinfo.tex ChangeLog -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ - $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -AM_V_DVIPS = $(am__v_DVIPS_@AM_V@) -am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@) -am__v_DVIPS_0 = @echo " DVIPS " $@; -am__v_DVIPS_1 = -AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@) -am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@) -am__v_MAKEINFO_0 = @echo " MAKEINFO" $@; -am__v_MAKEINFO_1 = -AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@) -am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@) -am__v_INFOHTML_0 = @echo " INFOHTML" $@; -am__v_INFOHTML_1 = -AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@) -am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@) -am__v_TEXI2DVI_0 = @echo " TEXI2DVI" $@; -am__v_TEXI2DVI_1 = -AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@) -am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@) -am__v_TEXI2PDF_0 = @echo " TEXI2PDF" $@; -am__v_TEXI2PDF_1 = -AM_V_texinfo = $(am__v_texinfo_@AM_V@) -am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@) -am__v_texinfo_0 = -q -am__v_texinfo_1 = -AM_V_texidevnull = $(am__v_texidevnull_@AM_V@) -am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@) -am__v_texidevnull_0 = > /dev/null -am__v_texidevnull_1 = -INFO_DEPS = $(srcdir)/recode.info -am__TEXINFO_TEX_DIR = $(srcdir) -DVIS = recode.dvi -PDFS = recode.pdf -PSS = recode.ps -HTMLS = recode.html -TEXINFOS = recode.texi -TEXI2DVI = texi2dvi -TEXI2PDF = $(TEXI2DVI) --pdf --batch -MAKEINFOHTML = $(MAKEINFO) --html -AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) -DVIPS = dvips -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__installdirs = "$(DESTDIR)$(infodir)" -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GLIBC21 = @GLIBC21@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = LANG= LANGUAGE= @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = gnits -info_TEXINFOS = recode.texi -EXTRA_DIST = rfc1345.texi File-Latin1 help2man -MOSTLYCLEANFILES = recode.ops - -# Relative to $(srcdir). -KELD = ../keld -CHARSETS_DEF = $(KELD)/charsets.def -MNEMONICS_DS = $(KELD)/iso10646.def $(KELD)/other.def $(KELD)/control.def -PYTHON = python -TABLES_PY = $(PYTHON) $(top_srcdir)/tables.py -all: all-am - -.SUFFIXES: -.SUFFIXES: .dvi .html .info .pdf .ps .texi -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnits doc/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -.texi.info: - $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ - am__cwd=`pwd` && $(am__cd) $(srcdir) && \ - rm -rf $$backupdir && mkdir $$backupdir && \ - if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ - for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ - if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ - done; \ - else :; fi && \ - cd "$$am__cwd"; \ - if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ - -o $@ $<; \ - then \ - rc=0; \ - $(am__cd) $(srcdir); \ - else \ - rc=$$?; \ - $(am__cd) $(srcdir) && \ - $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ - fi; \ - rm -rf $$backupdir; exit $$rc - -.texi.dvi: - $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ - MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ - $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ - $< - -.texi.pdf: - $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ - MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ - $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ - $< - -.texi.html: - $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) - $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ - -o $(@:.html=.htp) $<; \ - then \ - rm -rf $@; \ - if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ - mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ - else \ - if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ - rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ - exit 1; \ - fi -recode.pdf: recode.texi $(srcdir)/version.texi -recode.html: recode.texi $(srcdir)/version.texi -$(srcdir)/version.texi: $(srcdir)/stamp-vti -$(srcdir)/stamp-vti: recode.texi $(top_srcdir)/configure - @(dir=.; test -f ./recode.texi || dir=$(srcdir); \ - set `$(SHELL) $(srcdir)/mdate-sh $$dir/recode.texi`; \ - echo "@set UPDATED $$1 $$2 $$3"; \ - echo "@set UPDATED-MONTH $$2 $$3"; \ - echo "@set EDITION $(VERSION)"; \ - echo "@set VERSION $(VERSION)") > vti.tmp - @cmp -s vti.tmp $(srcdir)/version.texi \ - || (echo "Updating $(srcdir)/version.texi"; \ - cp vti.tmp $(srcdir)/version.texi) - -@rm -f vti.tmp - @cp $(srcdir)/version.texi $@ - -mostlyclean-vti: - -rm -f vti.tmp - -maintainer-clean-vti: - -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi -.dvi.ps: - $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ - $(DVIPS) $(AM_V_texinfo) -o $@ $< - -uninstall-dvi-am: - @$(NORMAL_UNINSTALL) - @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ - rm -f "$(DESTDIR)$(dvidir)/$$f"; \ - done - -uninstall-html-am: - @$(NORMAL_UNINSTALL) - @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ - rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ - done - -uninstall-info-am: - @$(PRE_UNINSTALL) - @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \ - list='$(INFO_DEPS)'; \ - for file in $$list; do \ - relfile=`echo "$$file" | sed 's|^.*/||'`; \ - echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ - if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ - then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ - done; \ - else :; fi - @$(NORMAL_UNINSTALL) - @list='$(INFO_DEPS)'; \ - for file in $$list; do \ - relfile=`echo "$$file" | sed 's|^.*/||'`; \ - relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ - (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ - echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ - rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ - else :; fi); \ - done - -uninstall-pdf-am: - @$(NORMAL_UNINSTALL) - @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ - rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ - done - -uninstall-ps-am: - @$(NORMAL_UNINSTALL) - @list='$(PSS)'; test -n "$(psdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ - rm -f "$(DESTDIR)$(psdir)/$$f"; \ - done - -dist-info: $(INFO_DEPS) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - list='$(INFO_DEPS)'; \ - for base in $$list; do \ - case $$base in \ - $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ - esac; \ - if test -f $$base; then d=.; else d=$(srcdir); fi; \ - base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ - for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ - if test -f $$file; then \ - relfile=`expr "$$file" : "$$d/\(.*\)"`; \ - test -f "$(distdir)/$$relfile" || \ - cp -p $$file "$(distdir)/$$relfile"; \ - else :; fi; \ - done; \ - done - -mostlyclean-aminfo: - -rm -rf recode.t2d recode.t2p - -clean-aminfo: - -test -z "recode.dvi recode.pdf recode.ps recode.html" \ - || rm -rf recode.dvi recode.pdf recode.ps recode.html - -maintainer-clean-aminfo: - @list='$(INFO_DEPS)'; for i in $$list; do \ - i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ - echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ - rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ - done -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-info -check-am: all-am -check: check-am -all-am: Makefile $(INFO_DEPS) -installdirs: - for dir in "$(DESTDIR)$(infodir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-aminfo clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: $(DVIS) - -html: html-am - -html-am: $(HTMLS) - -info: info-am - -info-am: $(INFO_DEPS) - -install-data-am: install-info-am - -install-dvi: install-dvi-am - -install-dvi-am: $(DVIS) - @$(NORMAL_INSTALL) - @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ - done -install-exec-am: - -install-html: install-html-am - -install-html-am: $(HTMLS) - @$(NORMAL_INSTALL) - @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ - $(am__strip_dir) \ - d2=$$d$$p; \ - if test -d "$$d2"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ - $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ - echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \ - $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ - else \ - list2="$$list2 $$d2"; \ - fi; \ - done; \ - test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ - done; } -install-info: install-info-am - -install-info-am: $(INFO_DEPS) - @$(NORMAL_INSTALL) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \ - fi; \ - for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - esac; \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ - for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ - $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ - if test -f $$ifile; then \ - echo "$$ifile"; \ - else : ; fi; \ - done; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done - @$(POST_INSTALL) - @if $(am__can_run_installinfo); then \ - list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ - for file in $$list; do \ - relfile=`echo "$$file" | sed 's|^.*/||'`; \ - echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ - install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ - done; \ - else : ; fi -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: $(PDFS) - @$(NORMAL_INSTALL) - @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done -install-ps: install-ps-am - -install-ps-am: $(PSS) - @$(NORMAL_INSTALL) - @list='$(PSS)'; test -n "$(psdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-aminfo \ - maintainer-clean-generic maintainer-clean-vti - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \ - mostlyclean-libtool mostlyclean-vti - -pdf: pdf-am - -pdf-am: $(PDFS) - -ps: ps-am - -ps-am: $(PSS) - -uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ - uninstall-pdf-am uninstall-ps-am - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-aminfo clean-generic \ - clean-libtool cscopelist-am ctags-am dist-info distclean \ - distclean-generic distclean-libtool distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-aminfo maintainer-clean-generic \ - maintainer-clean-vti mostlyclean mostlyclean-aminfo \ - mostlyclean-generic mostlyclean-libtool mostlyclean-vti pdf \ - pdf-am ps ps-am tags-am uninstall uninstall-am \ - uninstall-dvi-am uninstall-html-am uninstall-info-am \ - uninstall-pdf-am uninstall-ps-am - - -$(srcdir)/recode.info: rfc1345.texi -recode.dvi: rfc1345.texi - -# There is duplication of work with making src/strip-{pool,data}.c. -# This used to be combined, but it seems clearer to keep both separate. -rfc1345.texi: ../tables.py $(MNEMONICS_DS) $(CHARSETS_DEF) - $(TABLES_PY) -C $(srcdir) -t $(MNEMONICS_DS) $(CHARSETS_DEF) - -fr-rfc1345.texi: ../tables.py $(MNEMONICS_DS) $(CHARSETS_DEF) - $(TABLES_PY) -C $(srcdir) -Ft $(MNEMONICS_DS) $(CHARSETS_DEF) - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/doc/help2man b/doc/help2man deleted file mode 100755 index 192576c..0000000 --- a/doc/help2man +++ /dev/null @@ -1,636 +0,0 @@ -#!/usr/bin/perl -w - -# Generate a short man page from --help and --version output. -# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 -# 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 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 General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -# Written by Brendan O'Dea -# Available from ftp://ftp.gnu.org/gnu/help2man/ - -use 5.005; -use strict; -use Getopt::Long; -use Text::Tabs qw(expand); -use POSIX qw(strftime setlocale LC_ALL); -use locale; - -my $this_program = 'help2man'; -my $this_version = '1.35'; - -my $have_gettext; -BEGIN { - eval { - require Locale::gettext; - Locale::gettext->import; - $have_gettext = 1; - }; - - unless ($have_gettext) - { - *gettext = sub { $_[0] }; - *textdomain = sub {}; - } -} - -sub _ { gettext @_ } -sub N_ { $_[0] } - -textdomain $this_program; -{ - my ($user_locale) = grep defined && length, - (map $ENV{$_}, qw(LANGUAGE LC_ALL LC_MESSAGES LANG)), 'C'; - - sub kark # die with message formatted in the invoking user's locale - { - setlocale LC_ALL, $user_locale; - my $fmt = gettext shift; - die +(sprintf $fmt, @_), "\n"; - } -} - -my $version_info = sprintf _(<<'EOT'), $this_program, $this_version; -GNU %s %s - -Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software -Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -Written by Brendan O'Dea -EOT - -my $help_info = sprintf _(<<'EOT'), $this_program, $this_program; -`%s' generates a man page out of `--help' and `--version' output. - -Usage: %s [OPTION]... EXECUTABLE - - -n, --name=STRING description for the NAME paragraph - -s, --section=SECTION section number for manual page (1, 6, 8) - -m, --manual=TEXT name of manual (User Commands, ...) - -S, --source=TEXT source of program (FSF, Debian, ...) - -L, --locale=STRING select locale (default "C") - -i, --include=FILE include material from `FILE' - -I, --opt-include=FILE include material from `FILE' if it exists - -o, --output=FILE send output to `FILE' - -p, --info-page=TEXT name of Texinfo manual - -N, --no-info suppress pointer to Texinfo manual - --help print this help, then exit - --version print version number, then exit - -EXECUTABLE should accept `--help' and `--version' options although -alternatives may be specified using: - - -h, --help-option=STRING help option string - -v, --version-option=STRING version option string - -Report bugs to . -EOT - -my $section = 1; -my $manual = ''; -my $source = ''; -my $locale = 'C'; -my $help_option = '--help'; -my $version_option = '--version'; -my ($opt_name, @opt_include, $opt_output, $opt_info, $opt_no_info); - -my %opt_def = ( - 'n|name=s' => \$opt_name, - 's|section=s' => \$section, - 'm|manual=s' => \$manual, - 'S|source=s' => \$source, - 'L|locale=s' => \$locale, - 'i|include=s' => sub { push @opt_include, [ pop, 1 ] }, - 'I|opt-include=s' => sub { push @opt_include, [ pop, 0 ] }, - 'o|output=s' => \$opt_output, - 'p|info-page=s' => \$opt_info, - 'N|no-info' => \$opt_no_info, - 'h|help-option=s' => \$help_option, - 'v|version-option=s' => \$version_option, -); - -# Parse options. -Getopt::Long::config('bundling'); -GetOptions (%opt_def, - help => sub { print $help_info; exit }, - version => sub { print $version_info; exit }, -) or die $help_info; - -die $help_info unless @ARGV == 1; - -die "$this_program: no locale support (Locale::gettext required)\n" - unless $locale eq 'C' or $have_gettext; - -# Set localisation of date and executable's ouput. -delete @ENV{qw(LANGUAGE LC_MESSAGES LANG)}; -setlocale LC_ALL, $ENV{LC_ALL} = $locale; - -my %include = (); -my %append = (); -my @include = (); # retain order given in include file - -# Process include file (if given). Format is: -# -# [section name] -# verbatim text -# -# or -# -# /pattern/ -# verbatim text -# - -while (@opt_include) -{ - my ($inc, $required) = @{shift @opt_include}; - - next unless -f $inc or $required; - kark N_("%s: can't open `%s' (%s)"), $this_program, $inc, $! - unless open INC, $inc; - - my $key; - my $hash = \%include; - - while () - { - # [section] - if (/^\[([^]]+)\]/) - { - $key = uc $1; - $key =~ s/^\s+//; - $key =~ s/\s+$//; - $hash = \%include; - push @include, $key unless $include{$key}; - next; - } - - # /pattern/ - if (m!^/(.*)/([ims]*)!) - { - my $pat = $2 ? "(?$2)$1" : $1; - - # Check pattern. - eval { $key = qr($pat) }; - if ($@) - { - $@ =~ s/ at .*? line \d.*//; - die "$inc:$.:$@"; - } - - $hash = \%append; - next; - } - - # Check for options before the first section--anything else is - # silently ignored, allowing the first for comments and - # revision info. - unless ($key) - { - # handle options - if (/^-/) - { - local @ARGV = split; - GetOptions %opt_def; - } - - next; - } - - $hash->{$key} ||= ''; - $hash->{$key} .= $_; - } - - close INC; - - kark N_("%s: no valid information found in `%s'"), $this_program, $inc - unless $key; -} - -# Compress trailing blank lines. -for my $hash (\(%include, %append)) -{ - for (keys %$hash) { $hash->{$_} =~ s/\n+$/\n/ } -} - -# Grab help and version info from executable. -my ($help_text, $version_text) = map { - join '', map { s/ +$//; expand $_ } `$ARGV[0] $_ 2>/dev/null` - or kark N_("%s: can't get `%s' info from %s"), $this_program, - $_, $ARGV[0] -} $help_option, $version_option; - -my $date = strftime "%B %Y", localtime; -(my $program = $ARGV[0]) =~ s!.*/!!; -my $package = $program; -my $version; - -if ($opt_output) -{ - unlink $opt_output or kark N_("%s: can't unlink %s (%s)"), - $this_program, $opt_output, $! if -e $opt_output; - - open STDOUT, ">$opt_output" - or kark N_("%s: can't create %s (%s)"), $this_program, $opt_output, $!; -} - -# The first line of the --version information is assumed to be in one -# of the following formats: -# -# -# -# {GNU,Free} -# ({GNU,Free} ) -# - {GNU,Free} -# -# and seperated from any copyright/author details by a blank line. - -($_, $version_text) = split /\n+/, $version_text, 2; - -if (/^(\S+) +\(((?:GNU|Free) +[^)]+)\) +(.*)/ or - /^(\S+) +- *((?:GNU|Free) +\S+) +(.*)/) -{ - $program = $1; - $package = $2; - $version = $3; -} -elsif (/^((?:GNU|Free) +)?(\S+) +(.*)/) -{ - $program = $2; - $package = $1 ? "$1$2" : $2; - $version = $3; -} -else -{ - $version = $_; -} - -$program =~ s!.*/!!; - -# No info for `info' itself. -$opt_no_info = 1 if $program eq 'info'; - -for ($include{_('NAME')}) -{ - if ($opt_name) # --name overrides --include contents. - { - $_ = "$program \\- $opt_name\n"; - } - elsif ($_) # Use first name given as $program - { - $program = $1 if /^([^\s,]+)(?:,?\s*[^\s,\\-]+)*\s+\\?-/; - } - else # Set a default (useless) NAME paragraph. - { - $_ = sprintf _("%s \\- manual page for %s %s") . "\n", $program, - $program, $version; - } -} - -# Man pages traditionally have the page title in caps. -my $PROGRAM = uc $program; - -# Set default page head/footers -$source ||= "$program $version"; -unless ($manual) -{ - for ($section) - { - if (/^(1[Mm]|8)/) { $manual = _('System Administration Utilities') } - elsif (/^6/) { $manual = _('Games') } - else { $manual = _('User Commands') } - } -} - -# Extract usage clause(s) [if any] for SYNOPSIS. -my $PAT_USAGE = _('Usage'); -my $PAT_USAGE_CONT = _('or'); -if ($help_text =~ s/^($PAT_USAGE):( +(\S+))(.*)((?:\n(?: {6}\1| *($PAT_USAGE_CONT): +\S).*)*)//om) -{ - my @syn = $3 . $4; - - if ($_ = $5) - { - s/^\n//; - for (split /\n/) { s/^ *(($PAT_USAGE_CONT): +)?//o; push @syn, $_ } - } - - my $synopsis = ''; - for (@syn) - { - $synopsis .= ".br\n" if $synopsis; - s!^\S*/!!; - s/^(\S+) *//; - $synopsis .= ".B $1\n"; - s/\s+$//; - s/(([][]|\.\.+)+)/\\fR$1\\fI/g; - s/^/\\fI/ unless s/^\\fR//; - $_ .= '\fR'; - s/(\\fI)( *)/$2$1/g; - s/\\fI\\fR//g; - s/^\\fR//; - s/\\fI$//; - s/^\./\\&./; - - $synopsis .= "$_\n"; - } - - $include{_('SYNOPSIS')} ||= $synopsis; -} - -# Process text, initial section is DESCRIPTION. -my $sect = _('DESCRIPTION'); -$_ = "$help_text\n\n$version_text"; - -# Normalise paragraph breaks. -s/^\n+//; -s/\n*$/\n/; -s/\n\n+/\n\n/g; - -# Join hyphenated lines. -s/([A-Za-z])-\n *([A-Za-z])/$1$2/g; - -# Temporarily exchange leading dots, apostrophes and backslashes for -# tokens. -s/^\./\x80/mg; -s/^'/\x81/mg; -s/\\/\x82/g; - -my $PAT_BUGS = _('Report +bugs|Email +bug +reports +to'); -my $PAT_AUTHOR = _('Written +by'); -my $PAT_OPTIONS = _('Options'); -my $PAT_EXAMPLES = _('Examples'); -my $PAT_FREE_SOFTWARE = _('This +is +free +software'); - -# Start a new paragraph (if required) for these. -s/([^\n])\n($PAT_BUGS|$PAT_AUTHOR)/$1\n\n$2/og; - -sub convert_option; - -while (length) -{ - # Convert some standard paragraph names. - if (s/^($PAT_OPTIONS): *\n//o) - { - $sect = _('OPTIONS'); - next; - } - elsif (s/^($PAT_EXAMPLES): *\n//o) - { - $sect = _('EXAMPLES'); - next; - } - - # Copyright section - if (/^Copyright +[(\xa9]/) - { - $sect = _('COPYRIGHT'); - $include{$sect} ||= ''; - $include{$sect} .= ".PP\n" if $include{$sect}; - - my $copy; - ($copy, $_) = split /\n\n/, $_, 2; - - for ($copy) - { - # Add back newline - s/\n*$/\n/; - - # Convert iso9959-1 copyright symbol or (c) to nroff - # character. - s/^Copyright +(?:\xa9|\([Cc]\))/Copyright \\(co/mg; - - # Insert line breaks before additional copyright messages - # and the disclaimer. - s/(.)\n(Copyright |$PAT_FREE_SOFTWARE)/$1\n.br\n$2/og; - } - - $include{$sect} .= $copy; - $_ ||= ''; - next; - } - - # Catch bug report text. - if (/^($PAT_BUGS) /o) - { - $sect = _('REPORTING BUGS'); - } - - # Author section. - elsif (/^($PAT_AUTHOR)/o) - { - $sect = _('AUTHOR'); - } - - # Examples, indicated by an indented leading $, % or > are - # rendered in a constant width font. - if (/^( +)([\$\%>] )\S/) - { - my $indent = $1; - my $prefix = $2; - my $break = '.IP'; - $include{$sect} ||= ''; - while (s/^$indent\Q$prefix\E(\S.*)\n*//) - { - $include{$sect} .= "$break\n\\f(CW$prefix$1\\fR\n"; - $break = '.br'; - } - - next; - } - - my $matched = ''; - $include{$sect} ||= ''; - - # Sub-sections have a trailing colon and the second line indented. - if (s/^(\S.*:) *\n / /) - { - $matched .= $& if %append; - $include{$sect} .= qq(.SS "$1"\n); - } - - my $indent = 0; - my $content = ''; - - # Option with description. - if (s/^( {1,10}([+-]\S.*?))(?:( +(?!-))|\n( {20,}))(\S.*)\n//) - { - $matched .= $& if %append; - $indent = length ($4 || "$1$3"); - $content = ".TP\n\x84$2\n\x84$5\n"; - unless ($4) - { - # Indent may be different on second line. - $indent = length $& if /^ {20,}/; - } - } - - # Option without description. - elsif (s/^ {1,10}([+-]\S.*)\n//) - { - $matched .= $& if %append; - $content = ".HP\n\x84$1\n"; - $indent = 80; # not continued - } - - # Indented paragraph with tag. - elsif (s/^( +(\S.*?) +)(\S.*)\n//) - { - $matched .= $& if %append; - $indent = length $1; - $content = ".TP\n\x84$2\n\x84$3\n"; - } - - # Indented paragraph. - elsif (s/^( +)(\S.*)\n//) - { - $matched .= $& if %append; - $indent = length $1; - $content = ".IP\n\x84$2\n"; - } - - # Left justified paragraph. - else - { - s/(.*)\n//; - $matched .= $& if %append; - $content = ".PP\n" if $include{$sect}; - $content .= "$1\n"; - } - - # Append continuations. - while ($indent ? s/^ {$indent}(\S.*)\n// : s/^(\S.*)\n//) - { - $matched .= $& if %append; - $content .= "\x84$1\n" - } - - # Move to next paragraph. - s/^\n+//; - - for ($content) - { - # Leading dot and apostrophe protection. - s/\x84\./\x80/g; - s/\x84'/\x81/g; - s/\x84//g; - - # Convert options. - s/(^| |\()(-[][\w=-]+)/$1 . convert_option $2/mge; - - # Escape remaining hyphens - s/-/\x83/g; - } - - # Check if matched paragraph contains /pat/. - if (%append) - { - for my $pat (keys %append) - { - if ($matched =~ $pat) - { - $content .= ".PP\n" unless $append{$pat} =~ /^\./; - $content .= $append{$pat}; - } - } - } - - $include{$sect} .= $content; -} - -# Refer to the real documentation. -unless ($opt_no_info) -{ - my $info_page = $opt_info || $program; - - $sect = _('SEE ALSO'); - $include{$sect} ||= ''; - $include{$sect} .= ".PP\n" if $include{$sect}; - $include{$sect} .= sprintf _(<<'EOT'), $program, $program, $info_page; -The full documentation for -.B %s -is maintained as a Texinfo manual. If the -.B info -and -.B %s -programs are properly installed at your site, the command -.IP -.B info %s -.PP -should give you access to the complete manual. -EOT -} - -# Output header. -print <, June 1995 -# -# 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 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -case $1 in - '') - echo "$0: No file. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: mdate-sh [--help] [--version] FILE - -Pretty-print the modification time of FILE. - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "mdate-sh $scriptversion" - exit $? - ;; -esac - -# Prevent date giving response in another language. -LANG=C -export LANG -LC_ALL=C -export LC_ALL -LC_TIME=C -export LC_TIME - -# GNU ls changes its time format in response to the TIME_STYLE -# variable. Since we cannot assume `unset' works, revert this -# variable to its documented default. -if test "${TIME_STYLE+set}" = set; then - TIME_STYLE=posix-long-iso - export TIME_STYLE -fi - -save_arg1=$1 - -# Find out how to get the extended ls output of a file or directory. -if ls -L /dev/null 1>/dev/null 2>&1; then - ls_command='ls -L -l -d' -else - ls_command='ls -l -d' -fi - -# A `ls -l' line looks as follows on OS/2. -# drwxrwx--- 0 Aug 11 2001 foo -# This differs from Unix, which adds ownership information. -# drwxrwx--- 2 root root 4096 Aug 11 2001 foo -# -# To find the date, we split the line on spaces and iterate on words -# until we find a month. This cannot work with files whose owner is a -# user named `Jan', or `Feb', etc. However, it's unlikely that `/' -# will be owned by a user whose name is a month. So we first look at -# the extended ls output of the root directory to decide how many -# words should be skipped to get the date. - -# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. -set x`ls -l -d /` - -# Find which argument is the month. -month= -command= -until test $month -do - shift - # Add another shift to the command. - command="$command shift;" - case $1 in - Jan) month=January; nummonth=1;; - Feb) month=February; nummonth=2;; - Mar) month=March; nummonth=3;; - Apr) month=April; nummonth=4;; - May) month=May; nummonth=5;; - Jun) month=June; nummonth=6;; - Jul) month=July; nummonth=7;; - Aug) month=August; nummonth=8;; - Sep) month=September; nummonth=9;; - Oct) month=October; nummonth=10;; - Nov) month=November; nummonth=11;; - Dec) month=December; nummonth=12;; - esac -done - -# Get the extended ls output of the file or directory. -set dummy x`eval "$ls_command \"\$save_arg1\""` - -# Remove all preceding arguments -eval $command - -# Because of the dummy argument above, month is in $2. -# -# On a POSIX system, we should have -# -# $# = 5 -# $1 = file size -# $2 = month -# $3 = day -# $4 = year or time -# $5 = filename -# -# On Darwin 7.7.0 and 7.6.0, we have -# -# $# = 4 -# $1 = day -# $2 = month -# $3 = year or time -# $4 = filename - -# Get the month. -case $2 in - Jan) month=January; nummonth=1;; - Feb) month=February; nummonth=2;; - Mar) month=March; nummonth=3;; - Apr) month=April; nummonth=4;; - May) month=May; nummonth=5;; - Jun) month=June; nummonth=6;; - Jul) month=July; nummonth=7;; - Aug) month=August; nummonth=8;; - Sep) month=September; nummonth=9;; - Oct) month=October; nummonth=10;; - Nov) month=November; nummonth=11;; - Dec) month=December; nummonth=12;; -esac - -case $3 in - ???*) day=$1;; - *) day=$3; shift;; -esac - -# Here we have to deal with the problem that the ls output gives either -# the time of day or the year. -case $3 in - *:*) set `date`; eval year=\$$# - case $2 in - Jan) nummonthtod=1;; - Feb) nummonthtod=2;; - Mar) nummonthtod=3;; - Apr) nummonthtod=4;; - May) nummonthtod=5;; - Jun) nummonthtod=6;; - Jul) nummonthtod=7;; - Aug) nummonthtod=8;; - Sep) nummonthtod=9;; - Oct) nummonthtod=10;; - Nov) nummonthtod=11;; - Dec) nummonthtod=12;; - esac - # For the first six month of the year the time notation can also - # be used for files modified in the last year. - if (expr $nummonth \> $nummonthtod) > /dev/null; - then - year=`expr $year - 1` - fi;; - *) year=$3;; -esac - -# The result. -echo $day $month $year - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/doc/recode.info b/doc/recode.info deleted file mode 100644 index b2a43c9..0000000 --- a/doc/recode.info +++ /dev/null @@ -1,6210 +0,0 @@ -This is recode.info, produced by makeinfo version 5.1 from recode.texi. - -INFO-DIR-SECTION Internationalization and character sets -START-INFO-DIR-ENTRY -* recode: (recode). Conversion between character sets and surfaces. -END-INFO-DIR-ENTRY - -This file documents the Recode program and library, which has the -purpose of converting files between various character sets and surfaces. - - Copyright (C) 1990, 93, 94, 96, 97, 98, 99, 00 Free Software -Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - - Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be stated in a -translation approved by the Foundation. - - -File: recode.info, Node: Top, Next: Tutorial, Prev: (dir), Up: (dir) - -Recode -****** - -This recoding library converts files between various coded character -sets and surface encodings. When this cannot be achieved exactly, it -may get rid of the offending characters or fall back on approximations. -The library recognises or produces more than 300 different character -sets and is able to convert files between almost any pair. Most RFC 1345 -character sets, and all character sets from a pre-installed 'iconv' -library, are supported. The 'recode' program is a handy front-end to -the library. - - This manual documents Recode 3.7-beta2. - -* Menu: - -* Tutorial:: Quick Tutorial -* Introduction:: Terminology and purpose -* Invoking recode:: How to use this program -* Library:: A recoding library -* Universal:: The universal charset -* iconv:: The 'iconv' library -* Tabular:: Tabular sources (RFC 1345) -* ASCII misc:: ASCII and some derivatives -* IBM and MS:: Some IBM or Microsoft charsets -* CDC:: Charsets for CDC machines -* Micros:: Other micro-computer charsets -* Miscellaneous:: Various other charsets -* Surfaces:: All about surfaces -* Internals:: Internal aspects -* Concept Index:: Concept Index -* Option Index:: Option Index -* Library Index:: Library Index -* Charset and Surface Index:: Charset and Surface Index - - -- The Detailed Node Listing -- - -Terminology and purpose - -* Charset overview:: Overview of charsets -* Surface overview:: Overview of surfaces -* Contributing:: Contributions and bug reports - -How to use this program - -* Synopsis:: Synopsis of 'recode' call -* Requests:: The REQUEST parameter -* Listings:: Asking for various lists -* Recoding:: Controlling how files are recoded -* Reversibility:: Reversibility issues -* Sequencing:: Selecting sequencing methods -* Mixed:: Using mixed charset input -* Emacs:: Using Recode within Emacs -* Debugging:: Debugging considerations - -A recoding library - -* Outer level:: Outer level functions -* Request level:: Request level functions -* Task level:: Task level functions -* Charset level:: Charset level functions -* Errors:: Handling errors - -The universal charset - -* UCS-2:: Universal Character Set, 2 bytes -* UCS-4:: Universal Character Set, 4 bytes -* UTF-7:: Universal Transformation Format, 7 bits -* UTF-8:: Universal Transformation Format, 8 bits -* UTF-16:: Universal Transformation Format, 16 bits -* count-characters:: Frequency count of characters -* dump-with-names:: Fully interpreted UCS dump - -ASCII and some derivatives - -* ASCII:: Usual ASCII -* ISO 8859:: ASCII extended by Latin Alphabets -* ASCII-BS:: ASCII 7-bits, 'BS' to overstrike -* flat:: ASCII without diacritics nor underline - -Some IBM or Microsoft charsets - -* EBCDIC:: EBCDIC codes -* IBM-PC:: IBM's PC code -* Icon-QNX:: Unisys' Icon code - -Charsets for CDC machines - -* Display Code:: Control Data's Display Code -* CDC-NOS:: ASCII 6/12 from NOS -* Bang-Bang:: ASCII "bang bang" - -Other micro-computer charsets - -* Apple-Mac:: Apple's Macintosh code -* AtariST:: Atari ST code - -Various other charsets - -* HTML:: World Wide Web representations -* LaTeX:: LaTeX macro calls -* Texinfo:: GNU project documentation files -* Vietnamese:: Vietnamese charsets -* African:: African charsets -* Others:: Cyrillic and other charsets -* Java:: Java code -* Texte:: Easy French conventions -* Mule:: Mule as a multiplexed charset - -All about surfaces - -* Permutations:: Permuting groups of bytes -* End lines:: Representation for end of lines -* MIME:: MIME contents encodings -* Dump:: Interpreted character dumps -* Test:: Artificial data for testing - -Internal aspects - -* Main flow:: Overall organisation -* New charsets:: Adding new charsets -* New surfaces:: Adding new surfaces -* Design:: Comments on the library design - - - -File: recode.info, Node: Tutorial, Next: Introduction, Prev: Top, Up: Top - -1 Quick Tutorial -**************** - -So, really, you just are in a hurry to use Recode, and do not feel like -studying this manual? Even reading this paragraph slows you down? We -might have a problem, as you will have to do some guess work, and might -not become very proficient unless you have a very solid intuition.... - - Let me use here, as a quick tutorial, an actual reply of mine to a -Recode user, who writes: - - My situation is this--I occasionally get email with special - characters in it. Sometimes this mail is from a user using IBM - software and sometimes it is a user using Mac software. I myself - am on a SPARC Solaris machine. - - Your situation is similar to mine, except that I _often_ receive -email needing recoding, that is, much more than _occasionally_! The -usual recodings I do are Mac to Latin-1, IBM page codes to Latin-1, -Easy-French to Latin-1, remove Quoted-Printable, remove Base64. These -are so frequent that I made myself a few two-keystroke Emacs commands to -filter the Emacs region. This is very convenient for me. I also resort -to many other email conversions, yet more rarely than the frequent cases -above. - - It _seems_ like this should be doable using Recode. However, when - I try something like 'recode mac macfile.txt' I get nothing out--no - error, no output, nothing. - - *Note:* For the following discussion to be true, you should have -something like 'export LANG=fr_FR.ISO-8859-1' in your environment, the -important bit here being the specification of an preferred charset. - - Presuming you are using some recent version of Recode, the command: - - recode mac macfile.txt - -is a request for recoding 'macfile.txt' over itself, overwriting the -original, from Macintosh usual character code and Macintosh end of -lines, to Latin-1 and Unix end of lines. This is overwrite mode. If -you want to use Recode as a filter, which is probably what you need, -rather do: - - recode mac - -and give your Macintosh file as standard input, you'll get the Latin-1 -file on standard output. The above command is an abbreviation for any -of: - - recode mac.. - recode mac..l1 - recode mac..Latin-1 - recode mac/CR..Latin-1/ - recode Macintosh..ISO_8859-1 - recode Macintosh/CR..ISO_8859-1/ - - That is, a 'CR' surface, encoding newlines with ASCII , is first -to be removed (this is a default surface for 'mac'), then the Macintosh -charset is converted to Latin-1 and no surface is added to the result -(there is no default surface for 'l1'). If you want 'mac' code -converted, but you know that newlines are already coded the Unix way, -just do: - - recode mac/ - -the slash then overriding the default surface with empty, that is, none. -Here are other easy recipes: - - recode pc to filter IBM-PC code and CR-LF (default) to Latin-1 - recode pc/ to filter IBM-PC code to Latin-1 - recode 850 to filter code page 850 and CR-LF (default) to Latin-1 - recode 850/ to filter code page 850 to Latin-1 - recode /qp to remove quoted printable - - The last one is indeed equivalent to any of: - - recode /qp.. - recode l1/qp..l1/ - recode ISO_8859-1/Quoted-Printable..ISO_8859-1/ - - Here are some reverse recipes: - - recode ..mac to filter Latin-1 to Macintosh code and CR (default) - recode ..mac/ to filter Latin-1 to Macintosh code - recode ..pc to filter Latin-1 to IBM-PC code and CR-LF (default) - recode ..pc/ to filter Latin-1 to IBM-PC code - recode ..850 to filter Latin-1 to code page 850 and CR-LF (default) - recode ..850/ to filter Latin-1 to code page 850 - recode ../qp to force quoted printable - - In all the above calls, replace 'recode' by 'recode -f' if you want -to proceed despite recoding errors. If you do not use '-f' and there is -an error, the recoding output will be interrupted after first error in -filter mode, or the file will not be replaced by a recoded copy in -overwrite mode. - - You may use 'recode -l' to get a list of available charsets and -surfaces, and 'recode --help' to get a quick summary of options. The -above output is meant for those having already read this manual, so let -me dare a suggestion: why could not you find a few more minutes in your -schedule to peek further down, right into the following chapters! - - -File: recode.info, Node: Introduction, Next: Invoking recode, Prev: Tutorial, Up: Top - -2 Terminology and purpose -************************* - -A few terms are used over and over in this manual, our wise reader will -learn their meaning right away. Both ISO (International Organization -for Standardisation) and IETF (Internet Engineering Task Force) have -their own terminology, this document does not try to stick to either one -in a strict way, while it does not want to throw more confusion in the -field. On the other hand, it would not be efficient using paraphrases -all the time, so Recode coins a few short words, which are explained -below. - - A "charset", in the context of Recode, is a particular association -between computer codes on one side, and a repertoire of intended -characters on the other side. Codes are usually taken from a set of -consecutive small integers, starting at 0. Some characters have a -graphical appearance (glyph) or displayable effect, others have special -uses like, for example, to control devices or to interact with -neighbouring codes to specify them more precisely. So, a _charset_ is -roughly one of those tables, giving a meaning to each of the codes from -the set of allowable values. MIME also uses the term charset with -approximately the same meaning. It does _not_ exactly corresponds to -what ISO calls a "coded character set", that is, a set of characters -with an encoding for them. An coded character set does not necessarily -use all available code positions, while a MIME charset usually tries to -specify them all. A MIME charset might be the union of a few disjoint -coded character sets. - - A "surface" is a term used in Recode only, and is a short for surface -transformation of a charset stream. This is any kind of mapping, -usually reversible, which associates physical bits in some medium for a -stream of characters taken from one or more charsets (usually one). A -surface is a kind of varnish added over a charset so it fits in actual -bits and bytes. How end of lines are exactly encoded is not really -pertinent to the charset, and so, there is surface for end of lines. -'Base64' is also a surface, as we may encode any charset in it. Other -examples would 'DES' enciphering, or 'gzip' compression (even if Recode -does not offer them currently): these are ways to give a real life to -theoretical charsets. The "trivial" surface consists into putting -characters into fixed width little chunks of bits, usually eight such -bits per character. But things are not always that simple. - - This Recode library, and the program by that name, have the purpose -of converting files between various charsets and surfaces. When this -cannot be done in exact ways, as it is often the case, the program may -get rid of the offending characters or fall back on approximations. -This library recognises or produces around 175 such charsets under 500 -names, and handle a dozen surfaces. Since it can convert each charset -to almost any other one, many thousands of different conversions are -possible. - - The Recode program and library do not usually know how to split and -sort out textual and non-textual information which may be mixed in a -single input file. For example, there is no surface which currently -addresses the problem of how lines are blocked into physical records, -when the blocking information is added as binary markers or counters -within files. So, Recode should be given textual streams which are -rather _pure_. - - This tool pays special attention to superimposition of diacritics for -some French representations. This orientation is mostly historical, it -does not impair the usefulness, generality or extensibility of the -program. 'recode' is both a French and English word. For those who pay -attention to those things, the proper pronunciation is French (that is, -'racud', with 'a' like in 'above', and 'u' like in 'cut'). - - The Recode program and library has been written by Franc,ois Pinard. -With time, it got to reuse works from other contributors, and notably, -those of Keld Simonsen and Bruno Haible. - -* Menu: - -* Charset overview:: Overview of charsets -* Surface overview:: Overview of surfaces -* Contributing:: Contributions and bug reports - - -File: recode.info, Node: Charset overview, Next: Surface overview, Prev: Introduction, Up: Introduction - -2.1 Overview of charsets -======================== - -Recoding is currently possible between many charsets, the bulk of which -is described by RFC 1345 tables or available in a pre-installed external -'iconv' library. *Note Tabular::, and *note iconv::. The Recode -library also handles some charsets in some specialised ways. These are: - - * 6-bit charsets based on CDC display code: 6/12 code from NOS; - bang-bang code from Universite' de Montre'al; - - * 7-bit ASCII: without any diacritics, or else: using backspace for - overstriking; Unisys' Icon convention; TeX/LaTeX coding; easy - French conventions for electronic mail; - - * 8-bit extensions to ASCII: ISO Latin-1, Atari ST code, IBM's code - for the PC, Apple's code for the Macintosh; - - * 8-bit non-ASCII codes: three flavours of EBCDIC; - - * 16-bit or 31-bit universal characters, and their transfer - encodings. - - The introduction of RFC 1345 in Recode has brought with it a few -charsets having the functionality of older ones, but yet being different -in subtle ways. The effects have not been fully investigated yet, so -for now, clashes are avoided, the old and new charsets are kept well -separate. - - Conversion is possible between almost any pair of charsets. Here is -a list of the exceptions. One may not recode _from_ the 'flat', -'count-characters' or 'dump-with-names' charsets, nor _from_ or _to_ the -'data', 'tree' or ':iconv:' charsets. Also, if we except the 'data' and -'tree' pseudo-charsets, charsets and surfaces live in disjoint recoding -spaces, one cannot really transform a surface into a charset or -vice-versa, as surfaces are only meant to be applied over charsets, or -removed from them. - - -File: recode.info, Node: Surface overview, Next: Contributing, Prev: Charset overview, Up: Introduction - -2.2 Overview of surfaces -======================== - -For various practical considerations, it sometimes happens that the -codes making up a text, written in a particular charset, cannot simply -be put out in a file one after another without creating problems or -breaking other things. Sometimes, 8-bit codes cannot be written on a -7-bit medium, variable length codes need kind of envelopes, newlines -require special treatment, etc. We sometimes have to apply "surfaces" -to a stream of codes, which surfaces are kind of tricks used to fit the -charset into those practical constraints. Moreover, similar surfaces or -tricks may be useful for many unrelated charsets, and many surfaces can -be used at once over a single charset. - - So, Recode has machinery to describe a combination of a charset with -surfaces used over it in a file. We would use the expression "pure -charset" for referring to a charset free of any surface, that is, the -conceptual association between integer codes and character intents. - - It is not always clear if some transformation will yield a charset or -a surface, especially for those transformations which are only -meaningful over a single charset. The Recode library is not overly -picky as identifying surfaces as such: when it is practical to consider -a specialised surface as if it were a charset, this is preferred, and -done. - - -File: recode.info, Node: Contributing, Prev: Surface overview, Up: Introduction - -2.3 Contributions and bug reports -================================= - -Even being the Recode author and current maintainer, I am no specialist -in charset standards. I only made Recode along the years to solve my -own needs, but felt it was applicable for the needs of others. Some FSF -people liked the program structure and suggested to make it more widely -available. I often rely on Recode users suggestions to decide what is -best to be done next. - - Properly protecting Recode about possible copyright fights is a pain -for me and for contributors, but we cannot avoid addressing the issue in -the long run. Besides, the Free Software Foundation, which mandates the -GNU project, is very sensible to this matter. GNU standards suggest -that we stay cautious before looking at copyrighted code. The safest -and simplest way for me is to gather ideas and reprogram them anew, even -if this might slow me down considerably. For contributions going beyond -a few lines of code here and there, the FSF definitely requires employer -disclaimers and copyright assignments in writing. - - When you contribute something to Recode, _please_ explain what it is -about. Do not take for granted that I know those charsets which are -familiar to you. Once again, I'm no expert, and you have to help me. -Your explanations could well find their way into this documentation, -too. Also, for contributing new charsets or new surfaces, as much as -possible, please provide good, solid, verifiable references for the -tables you used(1). - - Many users contributed to Recode already, I am grateful to them for -their interest and involvement. Some suggestions can be integrated -quickly while some others have to be delayed, I have to draw a line -somewhere when time comes to make a new release, about what would go in -it and what would go in the next. - - Please send suggestions, documentation errors and bug reports to - or, if you prefer, directly to -, Franc,ois Pinard. Do not be afraid to report -details, because this program is the mere aggregation of hundreds of -details. - - ---------- Footnotes ---------- - - (1) I'm not prone at accepting a charset you just invented, and which -nobody uses yet: convince your friends and community first! - - -File: recode.info, Node: Invoking recode, Next: Library, Prev: Introduction, Up: Top - -3 How to use this program -************************* - -With the synopsis of the 'recode' call, we stress the difference between -using this program as a file filter, or recoding many files at once. -The first parameter of any call states the recoding request, and this -deserves a section on its own. Options are then presented, but somewhat -grouped according to the related functionalities they control. - -* Menu: - -* Synopsis:: Synopsis of 'recode' call -* Requests:: The REQUEST parameter -* Listings:: Asking for various lists -* Recoding:: Controlling how files are recoded -* Reversibility:: Reversibility issues -* Sequencing:: Selecting sequencing methods -* Mixed:: Using mixed charset input -* Emacs:: Using Recode within Emacs -* Debugging:: Debugging considerations - - -File: recode.info, Node: Synopsis, Next: Requests, Prev: Invoking recode, Up: Invoking recode - -3.1 Synopsis of 'recode' call -============================= - -The general format of the program call is one of: - - recode [OPTION]... [CHARSET | REQUEST [FILE]... ] - - Some calls are used only to obtain lists produced by Recode itself, -without actually recoding any file. They are recognised through the -usage of listing options, and these options decide what meaning should -be given to an optional CHARSET parameter. *Note Listings::. - - In other calls, the first parameter (REQUEST) always explains which -transformations are expected on the files. There are many variations to -the aspect of this parameter. We will discuss more complex situations -later (*note Requests::), but for many simple cases, this parameter -merely looks like this(1): - - BEFORE..AFTER - -where BEFORE and AFTER each gives the name of a charset. Each FILE will -be read assuming it is coded with charset BEFORE, it will be recoded -over itself so to use the charset AFTER. If there is no FILE on the -'recode' command, the program rather acts as a Unix filter and -transforms standard input onto standard output. - - The capability of recoding many files at once is very convenient. -For example, one could easily prepare a distribution from Latin-1 to -MSDOS, this way: - - mkdir package - cp -p Makefile *.[ch] package - recode Latin-1..MSDOS package/* - zoo ah package.zoo package/* - rm -rf package - -(In this example, the non-mandatory '-p' option to 'cp' is for -preserving timestamps, and the 'zoo' program is an archiver from Rahul -Dhesi which once was quite popular.) - - The filter operation is especially useful when the input files should -not be altered. Let us make an example to illustrate this point. -Suppose that someone has a file named 'datum.txt', which is almost a TeX -file, except that diacriticised characters are written using Latin-1. -To complete the recoding of the diacriticised characters _only_ and -produce a file 'datum.tex', without destroying the original, one could -do: - - cp -p datum.txt datum.tex - recode -d l1..tex datum.tex - - However, using 'recode' as a filter will achieve the same goal more -neatly: - - recode -d l1..tex datum.tex - - This example also shows that 'l1' could be used instead of 'Latin-1'; -charset names often have such aliases. - - Recode has three modes are for when to set the exit status to -non-zero: - - * The most lenient setting is activated with option '-f', in which - case only system errors or library mis-usage causes the exit status - to be set. - - * By default, without '-f' nor '-s', Recode sets the exit status as - above, and also in case of invalid or untranslatable input. It - also tries (but not always succeed) to detect if output is going to - be ambiguous at some later recode-back time. - - * The stricter setting is activated with '-s', Recode then sets the - exit status as above, or if input is not canonically coded (and it - also prevents itself from *completing* recoding tables for making - the recoding reversible). - - ---------- Footnotes ---------- - - (1) In previous versions or Recode, a single colon ':' was used -instead of the two dots '..' for separating charsets, but this was -creating problems because colons are allowed in official charset names. -The old request syntax is still recognised for compatibility purposes, -but is deprecated. - - -File: recode.info, Node: Requests, Next: Listings, Prev: Synopsis, Up: Invoking recode - -3.2 The REQUEST parameter -========================= - -In the case where the REQUEST is merely written as BEFORE..AFTER, then -BEFORE and AFTER specify the start charset and the goal charset for the -recoding. - - For Recode, charset names may contain any character, besides a comma, -a forward slash, or two periods in a row. But in practice, charset -names are currently limited to alphabetic letters (upper or lower case), -digits, hyphens, underlines, periods, colons or round parentheses. - - The complete syntax for a valid REQUEST allows for unusual things, -which might be surprising at first. (Do not pay too much attention to -these facilities on first reading.) For example, REQUEST may also -contain intermediate charsets, like in the following example: - - BEFORE..INTERIM1..INTERIM2..AFTER - -meaning that Recode should internally produce the INTERIM1 charset from -the start charset, then work out of this INTERIM1 charset to internally -produce INTERIM2, and from there towards the goal charset. In fact, -Recode internally combines recipes and automatically uses interim -charsets, when there is no direct recipe for transforming BEFORE into -AFTER. But there might be many ways to do it. When many routes are -possible, the above "chaining" syntax may be used to more precisely -force the program towards a particular route, which it might not have -naturally selected otherwise. On the other hand, because Recode tries -to choose good routes, chaining is only needed to achieve some rare, -unusual effects. - - Moreover, many such requests (sub-requests, more precisely) may be -separated with commas (but no spaces at all), indicating a sequence of -recodings, where the output of one has to serve as the input of the -following one. For example, the two following requests are equivalent: - - BEFORE..INTERIM1..INTERIM2..AFTER - BEFORE..INTERIM1,INTERIM1..INTERIM2,INTERIM2..AFTER - -In this example, the charset input for any recoding sub-request is -identical to the charset output by the preceding sub-request. But it -does not have to be so in the general case. One might wonder what would -be the meaning of declaring the charset input for a recoding sub-request -of being of different nature than the charset output by a preceding -sub-request, when recodings are chained in this way. Such a strange -usage might have a meaning and be useful for the Recode expert, but they -are quite uncommon in practice. - - More useful is the distinction between the concept of charset, and -the concept of surfaces. An encoded charset is represented by: - - PURE-CHARSET/SURFACE1/SURFACE2... - -using slashes to introduce surfaces, if any. The order of application -of surfaces is usually important, they cannot be freely commuted. In -the given example, SURFACE1 is first applied over the PURE-CHARSET, then -SURFACE2 is applied over the result. Given this request: - - BEFORE/SURFACE1/SURFACE2..AFTER/SURFACE3 - -Recode will understand that the input files should have SURFACE2 removed -first (because it was applied last), then SURFACE1 should be removed. -The next step will be to translate the codes from charset BEFORE to -charset AFTER, prior to applying SURFACE3 over the result. - - Some charsets have one or more _implied_ surfaces. In this case, the -implied surfaces are automatically handled merely by naming the charset, -without any explicit surface to qualify it. Let's take an example to -illustrate this feature. The request 'pc..l1' will indeed decode MS-DOS -end of lines prior to converting IBM-PC codes to Latin-1, because 'pc' -is the name of a charset(1) which has 'CR-LF' for its usual surface. -The request 'pc/..l1' will _not_ decode end of lines, since the slash -introduces surfaces, and even if the surface list is empty, it -effectively defeats the automatic removal of surfaces for this charset. -So, empty surfaces are useful, indeed! - - Both charsets and surfaces may have predefined alternate names, or -aliases. However, and this is rather important to understand, implied -surfaces are attached to individual aliases rather than on genuine -charsets. Consequently, the official charset name and all of its -aliases do not necessarily share the same implied surfaces. The charset -and all its aliases may each have its own different set of implied -surfaces. - - Charset names, surface names, or their aliases may always be -abbreviated to any unambiguous prefix. Internally in Recode, -disambiguating tables are kept separate for charset names and surface -names. - - While recognising a charset name or a surface name (or aliases -thereof), Recode ignores all characters besides letters and digits, so -for example, the hyphens and underlines being part of an official -charset name may safely be omitted (no need to un-confuse them!). There -is also no distinction between upper and lower case for charset or -surface names. - - One of the BEFORE or AFTER keywords may be omitted. If the double -dot separator is omitted too, then the charset is interpreted as the -BEFORE charset.(2) - - When a charset name is omitted or left empty, the value of the -'DEFAULT_CHARSET' variable in the environment is used instead. If this -variable is not defined, the Recode library (from version 3.6 and up) -uses the current locale's encoding. On POSIX compliant systems, this -depends on the first non-empty value among the environment variables -LC_ALL, LC_CTYPE, LANG, and can be determined through the command -'locale charmap'. If the current locale's encoding may not be resolved, -then Recode presumes 'ASCII' (or, for Recode 3.6 only: 'CHAR'). - - If the charset name is omitted but followed by surfaces, the surfaces -then qualify the usual or default charset. For example, the request -'../x' is sufficient for applying an hexadecimal surface to the input -text(3). - - The allowable values for BEFORE or AFTER charsets, and various -surfaces, are described in the remainder of this document. - - ---------- Footnotes ---------- - - (1) More precisely, 'pc' is an alias for the charset 'IBM-PC'. - - (2) Both BEFORE and AFTER may be omitted, in which case the double -dot separator is mandatory. This is not very useful, as the recoding -reduces to a mere copy in that case. - - (3) MS-DOS is one of those systems for which the default charset has -implied surfaces, 'CR-LF' here. Such surfaces are automatically removed -or applied whenever the default charset is read or written, exactly as -it would go for any other charset. In the example above, on such -systems, the hexadecimal surface would then _replace_ the implied -surfaces. For _adding_ an hexadecimal surface without removing any, one -should write the request as '/../x'. - - -File: recode.info, Node: Listings, Next: Recoding, Prev: Requests, Up: Invoking recode - -3.3 Asking for various lists -============================ - -Many options control listing output generated by Recode itself, they are -not meant to accompany actual file recodings. These options are: - -'--version' - The program merely prints its version numbers on standard output, - and exits without doing anything else. - -'--help' - The program merely prints a page of help on standard output, and - exits without doing any recoding. - -'-C' -'--copyright' - Given this option, all other parameters and options are ignored. - The program prints briefly the copyright and copying conditions. - See the file 'COPYING' in the distribution for full statement of - the Copyright and copying conditions. - -'-h[LANGUAGE/][NAME]' -'--header[=[LANGUAGE/][NAME]]' - Instead of recoding files, Recode writes a LANGUAGE source file on - standard output and exits. This source is meant to be included in - a regular program written in the same programming LANGUAGE: its - purpose is to declare and initialise an array, named NAME, which - represents the requested recoding. The only acceptable values for - LANGUAGE are 'c' or 'perl', and may may be abbreviated. If - LANGUAGE is not specified, 'c' is assumed. If NAME is not - specified, then it defaults to 'BEFORE_AFTER'. Strings BEFORE and - AFTER are cleaned before being used according to the syntax of - LANGUAGE. - - Even if Recode tries its best, this option does not always succeed - in producing the requested source table, it then prints 'Recoding - is too complex for a mere table'. It will succeed however, - provided the recoding can be internally represented by only one - step after the optimisation phase, and if this merged step conveys - a one-to-one or a one-to-many explicit table. To increase the - probability that this happens, 'iconv' initialisation is currently - inhibited whenever this option is used. Also, when attempting to - produce sources tables, Recode relaxes its checking a tiny bit: it - ignores the algorithmic part of some tabular recodings, it also - avoids the processing of implied surfaces. But this is all fairly - technical. Better try and see! - - Most tables are produced using decimal numbers to refer to - character values(1). Yet, users who know all Recode tricks and - stunts could indeed force octal or hexadecimal output for the table - contents. For example: - - recode ibm297/test8..cp1252/x < /dev/null - - produces a sequence of hexadecimal values which represent a - conversion table from 'IBM297' to 'CP1252'. - - Beware that other options might affect the produced source tables, - these are: '-d', '-g' and, particularly, '-s'. - -'-k PAIRS' -'--known=PAIRS' - This particular option is meant to help identifying an unknown - charset, using as hints some already identified characters of the - charset. Some examples will help introducing the idea. - - Let's presume here that Recode is run in an ISO-8859-1 locale, and - that 'DEFAULT_CHARSET' is unset in the environment. Suppose you - have guessed that code 130 (decimal) of the unknown charset - represents a lower case 'e' with an acute accent. That is to say - that this code should map to code 233 (decimal) in the usual - charset. By executing: - - recode -k 130:233 - - you should obtain a listing similar to: - - AtariST atarist - CWI cphu cwi cwi2 - IBM437 437 cp437 ibm437 - IBM850 850 cp850 ibm850 - IBM851 851 cp851 ibm851 - IBM852 852 cp852 ibm852 - IBM857 857 cp857 ibm857 - IBM860 860 cp860 ibm860 - IBM861 861 cp861 cpis ibm861 - IBM863 863 cp863 ibm863 - IBM865 865 cp865 ibm865 - - You can give more than one clue at once, to restrict the list - further. Suppose you have _also_ guessed that code 211 of the - unknown charset represents an upper case 'E' with diaeresis, that - is, code 203 in the usual charset. By requesting: - - recode -k 130:233,211:203 - - you should obtain: - - IBM850 850 cp850 ibm850 - IBM852 852 cp852 ibm852 - IBM857 857 cp857 ibm857 - - The usual charset may be overridden by specifying one non-option - argument. For example, to request the list of charsets for which - code 130 maps to code 142 for the Macintosh, you may ask: - - recode -k 130:142 mac - - and get: - - AtariST atarist - CWI cphu cwi cwi2 - IBM437 437 cp437 ibm437 - IBM850 850 cp850 ibm850 - IBM851 851 cp851 ibm851 - IBM852 852 cp852 ibm852 - IBM857 857 cp857 ibm857 - IBM860 860 cp860 ibm860 - IBM861 861 cp861 cpis ibm861 - IBM863 863 cp863 ibm863 - IBM865 865 cp865 ibm865 - - which, of course, is identical to the result of the first example, - since the code 142 for the Macintosh is a small 'e' with acute. - - More formally, option '-k' lists all possible _before_ charsets for - the _after_ charset given as the sole non-option argument to - 'recode', but subject to restrictions given in PAIRS. If there is - no non-option argument, the _after_ charset is taken to be the - default charset for this 'recode'. - - The restrictions are given as a comma separated list of pairs, each - pair consisting of two numbers separated by a colon. The numbers - are taken as decimal when the initial digit is between '1' and '9'; - '0x' starts an hexadecimal number, or else '0' starts an octal - number. The first number is a code in any _before_ charset, while - the second number is a code in the specified _after_ charset. If - the first number would not be transformed into the second number by - recoding from some _before_ charset to the _after_ charset, then - this _before_ charset is rejected. A _before_ charset is listed - only if it is not rejected by any pair. The program will only test - those _before_ charsets having a tabular style internal description - (*note Tabular::), so should be the selected _after_ charset. - - The produced list is in fact a subset of the list produced by the - option '-l'. As for option '-l', the non-option argument is - interpreted as a charset name, possibly abbreviated to any non - ambiguous prefix. - -'-l[FORMAT]' -'--list[=FORMAT]' - This option asks for information about all charsets, or about one - particular charset. No file will be recoded. - - If there is no non-option arguments, Recode ignores the FORMAT - value of the option, it writes a sorted list of charset names on - standard output, one per line. When a charset name have aliases or - synonyms, they follow the true charset name on its line, sorted - from left to right. Each charset or alias is followed by its - implied surfaces, if any. This list is over two hundred lines. It - is best used with 'grep -i', as in: - - recode -l | grep -i greek - - Within a collection of names for a single charset, the Recode - library distinguishes one of them as being the genuine charset - name, while the others are said to be aliases. The list normally - integrates all charsets from the external 'iconv' library, unless - this is defeated through options like '--ignore=:iconv:' or '-x:'. - The portable 'libiconv' library relates its own aliases of a same - charset, and for a given set of aliases, if none of them are known - to Recode already, then Recode will pick one as being the genuine - charset. The 'iconv' library within GNU 'libc' makes all aliases - appear as different charsets, and each will be presented as a - charset by Recode, unless it is known otherwise. - - There might be one non-option argument, in which case it is - interpreted as a charset name, possibly abbreviated to any non - ambiguous prefix. This particular usage of the '-l' option is - obeyed _only_ for charsets having a tabular style internal - description (*note Tabular::). Even if most charsets have this - property, some do not, and the option '-l' cannot be used to detail - these particular charsets. For knowing if a particular charset can - be listed this way, you should merely try and see if this works. - The FORMAT value of the option is a keyword from the following - list. Keywords may be abbreviated by dropping suffix letters, and - even reduced to the first letter only: - - 'decimal' - This format asks for the production on standard output of a - concise tabular display of the charset, in which character - code values are expressed in decimal. - - 'octal' - This format uses octal instead of decimal in the concise - tabular display of the charset. - - 'hexadecimal' - This format uses hexadecimal instead of decimal in the concise - tabular display of the charset. - - 'full' - This format requests an extensive display of the charset on - standard output, using one line per character showing its - decimal, hexadecimal, octal and 'UCS-2' code values, and also - a descriptive comment which should be the 10646 name for the - character. - - The descriptive comment is given in English and ASCII, yet if - the English description is not available but a French one is, - then the French description is given instead, using Latin-1. - However, if the 'LANGUAGE' or 'LANG' environment variable - begins with the letters 'fr', then listing preference goes to - French when both descriptions are available. - - When option '-l' is used together with a CHARSET argument, the - FORMAT defaults to 'decimal'. - -'-T' -'--find-subsets' - This option is a maintainer tool for evaluating the redundancy of - those charsets, in Recode, which are internally represented by an - 'UCS-2' data table. After the listing has been produced, the - program exits without doing any recoding. The output is meant to - be sorted, like this: 'recode -T | sort'. The option triggers - Recode into comparing all pairs of charsets, seeking those which - are subsets of others. The concept and results are better - explained through a few examples. Consider these three sample - lines from '-T' output: - - [ 0] IBM891 == IBM903 - [ 1] IBM1004 < CP1252 - [ 12] INVARIANT < CSA_Z243.4-1985-1 - - The first line means that 'IBM891' and 'IBM903' are completely - identical as far as Recode is concerned, so one is fully redundant - to the other. The second line says that 'IBM1004' is wholly - contained within 'CP1252', yet there is a single character which is - in 'CP1252' without being in 'IBM1004'. The third line says that - 'INVARIANT' is wholly contained within 'CSA_Z243.4-1985-1', but - twelve characters are in 'CSA_Z243.4-1985-1' without being in - 'INVARIANT'. The whole output might most probably be reduced and - made more significant through a transitivity study. - - ---------- Footnotes ---------- - - (1) The author of Recode by far prefer expressing numbers in decimal -than octal or hexadecimal, as he considers that the current state of -technology should not force users anymore in such strange things. But -Unicode people see things differently, to the point Recode cannot escape -being tainted with some hexadecimal. - - -File: recode.info, Node: Recoding, Next: Reversibility, Prev: Listings, Up: Invoking recode - -3.4 Controlling how files are recoded -===================================== - -The following options have the purpose of giving the user some fine -grain control over the recoding operation themselves. - -'-c' -'--colons' - With 'Texte' Easy French conventions, use the column ':' instead of - the double-quote '"' for marking diaeresis. *Note Texte::. - -'-g' -'--graphics' - This option is only meaningful while getting _out_ of the 'IBM-PC' - charset. In this charset, characters 176 to 223 are used for - constructing rulers and boxes, using simple or double horizontal or - vertical lines. This option forces the automatic selection of - ASCII characters for approximating these rulers and boxes, at cost - of making the transformation irreversible. Option '-g' implies - '-f'. - -'-t' -'--touch' - The _touch_ option is meaningful only when files are recoded over - themselves. Without it, the time-stamps associated with files are - preserved, to reflect the fact that changing the code of a file - does not really alter its informational contents. When the user - wants the recoded files to be time-stamped at the recoding time, - this option inhibits the automatic protection of the time-stamps. - -'-v' -'--verbose' - Before doing any recoding, the program will first print on the - 'stderr' stream the list of all intermediate charsets planned for - recoding, starting with the BEFORE charset and ending with the - AFTER charset. It also prints an indication of the recoding - quality, as one of the word 'reversible', 'one to one', 'one to - many', 'many to one' or 'many to many'. - - This information will appear once or twice. It is shown a second - time only when the optimisation and step merging phase succeeds in - replacing many single steps by a new one. - - This option also has a second effect. The program will print on - 'stderr' one message per recoded FILE, so as to keep the user - informed of the progress of its command. - - An easy way to know beforehand the sequence or quality of a - recoding is by using the command such as: - - recode -v BEFORE..AFTER < /dev/null - - using the fact that, in Recode, an empty input file produces an - empty output file. - -'-x CHARSET' -'--ignore=CHARSET' - This option tells the program to ignore any recoding path through - the specified CHARSET, so disabling any single step using this - charset as a start or end point. This may be used when the user - wants to force Recode into using an alternate recoding path (yet - using chained requests offers a finer control, *note Requests::). - - CHARSET may be abbreviated to any unambiguous prefix. - - -File: recode.info, Node: Reversibility, Next: Sequencing, Prev: Recoding, Up: Invoking recode - -3.5 Reversibility issues -======================== - -The following options are somewhat related to reversibility issues: - -'-f' -'--force' - With this option, irreversible or otherwise erroneous recodings are - run to completion, and 'recode' does not exit with a non-zero - status if it would be only because irreversibility matters. *Note - Reversibility::. - - Without this option, Recode tries to protect you against recoding a - file irreversibly over itself(1). Whenever an irreversible - recoding is met, or any other recoding error, 'recode' produces a - warning on standard error. The current input file does not get - replaced by its recoded version, and 'recode' then proceeds with - the recoding of the next file. - - When the program is merely used as a filter, standard output will - have received a partially recoded copy of standard input, up to the - first error point. After all recodings have been done or - attempted, and if some recoding has been aborted, 'recode' exits - with a non-zero status. - - In releases of Recode prior to version 3.5, this option was always - selected, so it was rather meaningless. Nevertheless, users were - invited to start using '-f' right away in scripts calling Recode - whenever convenient, in preparation for the current behaviour. - -'-q' -'--quiet' -'--silent' - This option has the sole purpose of inhibiting warning messages - about irreversible recodings, and other such diagnostics. It has - no other effect, in particular, it does _not_ prevent recodings to - be aborted or 'recode' to return a non-zero exit status when - irreversible recodings are met. - - This option is set automatically for the children processes, when - recode splits itself in many collaborating copies. Doing so, the - diagnostic is issued only once by the parent. See option '-p'. - -'-s' -'--strict' - By using this option, the user requests that Recode be very strict - while recoding a file, merely losing in the transformation any - character which is not explicitly mapped from a charset to another. - Such a loss is not reversible and so, will bring Recode to fail, - unless the option '-f' is also given as a kind of counter-measure. - - Using '-s' without '-f' might render Recode very susceptible to the - slighest file abnormalities. Despite the fact that it might be - irritating to some users, such paranoia is sometimes wanted and - useful. - - Even if Recode tries hard to keep the recodings reversible, you -should not develop an unconditional confidence in its ability to do so. -You _ought_ to keep only reasonable expectations about reverse -recodings. In particular, consider: - - * Most transformations are fully reversible for all inputs, but lose - this property whenever '-s' is specified. - - * A few transformations are not meant to be reversible, by design. - - * Reversibility sometimes depends on actual file contents and cannot - be ascertained beforehand, without reading the file. - - * Reversibility is never absolute across successive versions of this - program. Even correcting a small bug in a mapping could induce - slight discrepancies later. - - * Reversibility is easily lost by merging. This is best explained - through an example. If you reversibly recode a file from charset A - to charset B, then you reversibly recode the result from charset B - to charset C, you cannot expect to recover the original file by - merely recoding from charset C directly to charset A. You will - instead have to recode from charset C back to charset B, and only - then from charset B to charset A. - - * Faulty files create a particular problem. Consider an example, - recoding from 'IBM-PC' to 'Latin-1'. End of lines are represented - as '\r\n' in 'IBM-PC' and as '\n' in 'Latin-1'. There is no way by - which a faulty 'IBM-PC' file containing a '\n' not preceded by '\r' - be translated into a 'Latin-1' file, and then back. - - * There is another difficulty arising from code equivalences. For - example, in a 'LaTeX' charset file, the string '\^\i{}' could be - recoded back and forth through another charset and become '\^{\i}'. - Even if the resulting file is equivalent to the original one, it is - not identical. - - Unless option '-s' is used, Recode automatically tries to fill -mappings with invented correspondences, often making them fully -reversible. This filling is not made at random. The algorithm tries to -stick to the identity mapping and, when this is not possible, it prefers -generating many small permutation cycles, each involving only a few -codes. - - For example, here is how 'IBM-PC' code 186 gets translated to -'control-U' in 'Latin-1'. 'Control-U' is 21. Code 21 is the 'IBM-PC' -section sign, which is 167 in 'Latin-1'. Recode cannot reciprocate 167 -to 21, because 167 is the masculine ordinal indicator within 'IBM-PC', -which is 186 in 'Latin-1'. Code 186 within 'IBM-PC' has no 'Latin-1' -equivalent; by assigning it back to 21, Recode closes this short -permutation loop. - - As a consequence of this map filling, Recode may sometimes produce -_funny_ characters. They may look annoying, they are nevertheless -helpful when one changes his (her) mind and wants to revert to the prior -recoding. If you cannot stand these, use option '-s', which asks for a -very strict recoding. - - This map filling sometimes has a few surprising consequences, which -some users wrongly interpreted as bugs. Here are two examples. - - 1. In some cases, Recode seems to copy a file without recoding it. - But in fact, it does. Consider a request: - - recode l1..us < File-Latin1 > File-ASCII - cmp File-Latin1 File-ASCII - - then 'cmp' will not report any difference. This is quite normal. 'Latin-1' - gets correctly recoded to ASCII for charsets commonalities (which - are the first 128 characters, in this case). The remaining last - 128 'Latin-1' characters have no ASCII correspondent. Instead of - losing them, Recode elects to map them to unspecified characters of - ASCII, so making the recoding reversible. The simplest way of - achieving this is merely to keep those last 128 characters - unchanged. The overall effect is copying the file verbatim. - - If you feel this behaviour is too generous and if you do not wish - to care about reversibility, simply use option '-s'. By doing so, - Recode will strictly map only those 'Latin-1' characters which have - an ASCII equivalent, and will merely drop those which do not. - Then, there is more chance that you will observe a difference - between the input and the output file. - - 2. Recoding the wrong way could sometimes give the false impression - that recoding has _almost_ been done properly. Consider the - requests: - - recode 437..l1 < File-Latin1 > Temp1 - recode 437..l1 < Temp1 > Temp2 - - so declaring wrongly 'File-Latin1' to be an IBM-PC file, and - recoding to 'Latin-1'. This is surely ill defined and not - meaningful. Yet, if you repeat this step a second time, you might - notice that many (not all) characters in 'Temp2' are identical to - those in 'File-Latin1'. Sometimes, people try to discover how - Recode works by experimenting a little at random, rather than - reading and understanding the documentation; results such as this - are surely confusing, as they provide those people with a false - feeling that they understood something. - - Reversible codings have this property that, if applied several - times in the same direction, they will eventually bring any - character back to its original value. Since Recode seeks small - permutation cycles when creating reversible codings, besides - characters unchanged by the recoding, most permutation cycles will - be of length 2, and fewer of length 3, etc. So, it is just - expectable that applying the recoding twice in the same direction - will recover most characters, but will fail to recover those - participating in permutation cycles of length 3. On the other end, - recoding six times in the same direction would recover all - characters in cycles of length 1, 2, 3 or 6. - - ---------- Footnotes ---------- - - (1) There are still some cases of ambiguous output which are rather -difficult to detect, and for which the protection is not active. - - -File: recode.info, Node: Sequencing, Next: Mixed, Prev: Reversibility, Up: Invoking recode - -3.6 Selecting sequencing methods -================================ - -This program uses a few techniques when it is discovered that many -passes are needed to comply with the REQUEST. For example, suppose that -four elementary steps were selected at recoding path optimisation time. -Then Recode will split itself into four different interconnected tasks, -logically equivalent to: - - STEP1 OUTPUT - - The splitting into subtasks is often done using Unix pipes. But the -splitting may also be completely avoided, and rather simulated by using -memory buffer, or intermediate files. The various '--sequence=STRATEGY' -options gives you control over the flow methods, by replacing STRATEGY -with 'memory', 'pipe' or 'files'. So, these options may be used to -override the default behaviour, which is also explained below. - -'--sequence=memory' - When the recoding requires a combination of two or more elementary - recoding steps, this option forces many passes over the data, using - in-memory buffers to hold all intermediary results. - -'-i' -'--sequence=files' - When the recoding requires a combination of two or more elementary - recoding steps, this option forces many passes over the data, using - intermediate files between passes. This is the default behaviour - when files are recoded over themselves. If this option is selected - in filter mode, that is, when the program reads standard input and - writes standard output, it might take longer for programs further - down the pipe chain to start receiving some recoded data. - -'-p' -'--sequence=pipe' - When the recoding requires a combination of two or more elementary - recoding steps, this option forces the program to fork itself into - a few copies interconnected with pipes, using the 'pipe(2)' system - call. All copies of the program operate in parallel. This is the - default behaviour in filter mode. If this option is used when - files are recoded over themselves, this should also save disk space - because some temporary files might not be needed, at the cost of - more system overhead. - - If, at installation time, the 'pipe(2)' call is said to be - unavailable, selecting option '-p' is equivalent to selecting - option '-i'. (This happens, for example, on MS-DOS systems.) - - -File: recode.info, Node: Mixed, Next: Emacs, Prev: Sequencing, Up: Invoking recode - -3.7 Using mixed charset input -============================= - -In real life and practice, textual files are often made up of many -charsets at once. Some parts of the file encode one charset, while -other parts encode another charset, and so forth. Usually, a file does -not toggle between more than two or three charsets. The means to -distinguish which charsets are encoded at various places is not always -available. Recode is able to handle only a few simple cases of mixed -input. - - The default Recode behaviour is to expect pure charset files, to be -recoded as other pure charset files. However, the following options -allow for a few precise kinds of mixed charset files. - -'-d' -'--diacritics' - While converting to or from one of 'HTML' or 'LaTeX' charset, limit - conversion to some subset of all characters. For 'HTML', limit - conversion to the subset of all non-ASCII characters. For 'LaTeX', - limit conversion to the subset of all non-English letters. This is - particularly useful, for example, when people create what would be - valid 'HTML', TeX or LaTeX files, if only they were using provided - sequences for applying diacritics instead of using the - diacriticised characters directly from the underlying character - set. - - While converting to 'HTML' or 'LaTeX' charset, this option assumes - that characters not in the said subset are properly coded or - protected already, Recode then transmit them literally. While - converting the other way, this option prevents translating back - coded or protected versions of characters not in the said subset. - *Note HTML::. *Note LaTeX::. - -'-S[LANGUAGE]' -'--source[=LANGUAGE]' - The bulk of the input file is expected to be written in 'ASCII', - except for parts, like comments and string constants, which are - written using another charset than 'ASCII'. When LANGUAGE is 'c', - the recoding will proceed only with the contents of comments or - strings, while everything else will be copied without recoding. - When LANGUAGE is 'po', the recoding will proceed only within - translator comments (those having whitespace immediately following - the initial '#') and with the contents of 'msgstr' strings. - - For the above things to work, the non-'ASCII' encoding of the - comment or string should be such that an 'ASCII' scan will - successfully find where the comment or string ends. - - Even if 'ASCII' is the usual charset for writing programs, some - compilers are able to directly read other charsets, like 'UTF-8', - say. There is currently no provision in Recode for reading mixed - charset sources which are not based on 'ASCII'. It is probable - that the need for mixed recoding is not as pressing in such cases. - - For example, after one does: - - recode -Spo pc/..u8 < INPUT.po > OUTPUT.po - - file 'OUTPUT.po' holds a copy of 'INPUT.po' in which _only_ - translator comments and the contents of 'msgstr' strings have been - recoded from the 'IBM-PC' charset to pure 'UTF-8', without - attempting conversion of end-of-lines. Machine generated comments - and original 'msgid' strings are not to be touched by this - recoding. - - If LANGUAGE is not specified, 'c' is assumed. - - -File: recode.info, Node: Emacs, Next: Debugging, Prev: Mixed, Up: Invoking recode - -3.8 Using Recode within Emacs -============================= - -The fact the 'recode' program acts as a filter, when given no file -arguments, makes it quite easy to use from within GNU Emacs. For -example, recoding the whole buffer from the 'IBM-PC' charset to current -charset (for example, 'UTF-8' on Unix) is easily done with: - - C-x h C-u M-| recode ibmpc RET - -'C-x h' selects the whole buffer, and 'C-u M-|' filters and replaces the -current region through the given shell command. Here is another -example, binding the keys 'C-c T' to the recoding of the current region -from Easy French to 'Latin-1' (on Unix) and the key 'C-u C-c T' from 'Latin-1' -(on Unix) to Easy French: - - (global-set-key "\C-cT" 'recode-texte) - - (defun recode-texte (flag) - (interactive "P") - (shell-command-on-region - (region-beginning) (region-end) - (concat "recode " (if flag "..txte" "txte")) t) - (exchange-point-and-mark)) - - -File: recode.info, Node: Debugging, Prev: Emacs, Up: Invoking recode - -3.9 Debugging considerations -============================ - -It is our experience that when Recode does not provide satisfying -results, either the 'recode' program was not called properly, correct -results raised some doubts nevertheless, or files to recode were -somewhat mangled. Genuine bugs are surely possible. - - Unless you already are a Recode expert, it might be a good idea to -quickly revisit the tutorial (*note Tutorial::) or the prior sections in -this chapter, to make sure that you properly formatted your recoding -request. In the case you intended to use Recode as a filter, make sure -that you did not forget to redirect your standard input (through using -the '<' symbol in the shell, say). Some Recode false mysteries are also -easily explained, *Note Reversibility::. - - For the other cases, some investigation is needed. To illustrate how -to proceed, let's presume that you want to recode the 'nicepage' file, -coded 'UTF-8', into 'HTML'. The problem is that the command 'recode -u8..h nicepage' yields: - - recode: Invalid input in step `UTF-8..ISO-10646-UCS-2' - - One good trick is to use 'recode' in filter mode instead of in file -replacement mode, *Note Synopsis::. Another good trick is to use the -'-v' option asking for a verbose description of the recoding steps. We -could rewrite our recoding call as 'recode -v u8..h temporary - recode -v ISO_10646-UCS-2..HTML_4.0 ', then Recode might have done a bit more that you -wanted. In this case, your input file was half-'UTF-8', half-'HTML' -already, that is, a mixed file (*note Mixed::). There is a special '-d' -switch for this case. So, your might be end up calling 'recode -fd -nicepage'. Until you are quite sure that you accept overwriting your -input file whatever what, I recommend that you stick with filter mode. - - If, after such experiments, you seriously think that Recode does not -behave properly, there might be a genuine bug either in the program or -the library itself, in which case I invite you to to contribute a bug -report, *Note Contributing::. - - -File: recode.info, Node: Library, Next: Universal, Prev: Invoking recode, Up: Top - -4 A recoding library -******************** - -The program named 'recode' is just an application of its recoding -library. The recoding library is available separately for other C -programs. A good way to acquire some familiarity with the recoding -library is to get acquainted with the 'recode' program itself. - - To use the recoding library once it is installed, a C program needs -to have the following lines: - - #include - #include - - const char *program_name; - -near its beginning, and the user should have '-lrecode' on the linking -call, so modules from the recoding library are found. - - The 'recode.h' header file uses the Boolean type setup by the system -header file 'stdbool.h'. This header file, which is now part of C -standards, does not likely exist everywhere. If you system does not -offer this system header file yet, the proper compilation of the -'recode.h' file could be guaranteed through the replacement of the -inclusion line by: - - typedef enum {false = 0, true = 1} bool; - - People wanting wider portability, or Autoconf lovers, might arrange -their 'configure.ac' for being able to write something more general. In -such contexts, a typical beginning of a program using the Recode library -might look something like: - - #if STDC_HEADERS - # include - #endif - - /* Some systems do not define EXIT_*, even with STDC_HEADERS. */ - #ifndef EXIT_SUCCESS - # define EXIT_SUCCESS 0 - #endif - #ifndef EXIT_FAILURE - # define EXIT_FAILURE 1 - #endif - /* The following test is to work around the gross typo in systems like Sony - NEWS-OS Release 4.0C, whereby EXIT_FAILURE is defined to 0, not 1. */ - #if !EXIT_FAILURE - # undef EXIT_FAILURE - # define EXIT_FAILURE 1 - #endif - - #if HAVE_STDBOOL_H - # include - #else - typedef enum {false = 0, true = 1} bool; - #endif - - #include - - const char *program_name; - - Yet, for the remainder of the discussion below, we will ignore all -these configuration matters, and merely presume that both 'stdlib.h' and -'stdbool.h' system header files are available. - - The library is still under development. As it stands, it contains -four identifiable sets of routines: the outer level functions, the -request level functions, the task level functions and the charset level -functions. There are discussed in separate sections. For effectively -using the recoding library in most applications, it should be rarely -needed to study anything beyond the main initialisation function at -outer level, and then, various functions at request level. - -* Menu: - -* Outer level:: Outer level functions -* Request level:: Request level functions -* Task level:: Task level functions -* Charset level:: Charset level functions -* Errors:: Handling errors - - -File: recode.info, Node: Outer level, Next: Request level, Prev: Library, Up: Library - -4.1 Outer level functions -========================= - -The outer level functions mainly prepare the whole recoding library for -use, or do actions which are unrelated to specific recodings. Here is -an example of a program which does not really make anything useful. - - #include - #include - #include - - const char *program_name; - - int - main (int argc, char *const *argv) - { - program_name = argv[0]; - RECODE_OUTER outer = recode_new_outer (RECODE_AUTO_ABORT_FLAG); - - recode_delete_outer (outer); - exit (EXIT_SUCCESS); - } - - The header file 'recode.h' declares an opaque 'RECODE_OUTER' -structure, which the programmer should use for allocating a variable in -his program (let's assume the programmer is a male, here, no prejudice -intended). This 'outer' variable is given as a first argument to all -outer level functions. - - The 'RECODE_OUTER' structure is really meant to be initialised only -once in the life of a program, and terminated with the program itself. -Program interfaces should pay attention to initialise it only once, -would it be only for speed considerations. A good deal of overhead goes -to outer level initialization, and if the outer level was initialized -afresh for each and every string translated, say, the Recode library -would appear immensely much slower that it was meant to be! - - Because outer level initialization is meant to be done only once, not -so much attention has been paid to avoid memory leaks at this level -within Recode. This is hardly a reason for not plugging such leaks at -any level: in the long run, they should all be chased and repaired. - - * Initialisation functions - - RECODE_OUTER recode_new_outer (FLAGS); - bool recode_delete_outer (OUTER); - - The recoding library absolutely needs to be initialised before - being used, and 'recode_new_outer' has to be called once, first. - Besides the OUTER it is meant to initialise, the function accepts - an integer value holding zero or more flags. If no flags, use '0'. - If more than one flag, they should be combined with the bitwise-or - ('|') operator. The possible flags are: - - 'RECODE_AUTO_ABORT_FLAG' - - When this flag is set, the library later issues diagnostics - itself, and aborts the calling program on errors. This is - merely a convenience, because if this flag was not given, the - calling program should always take care of checking the return - value of all other calls to the recoding library functions, - and when any error is detected, issue a diagnostic and abort - processing itself. - - 'RECODE_NO_ICONV_FLAG' - - When this flag is set, the library does not initialize nor use - the external 'iconv' library. This means that the charsets - and aliases provided by the 'iconv' external library and not - by Recode itself are not available. - - In previous incatations of the Recode library, FLAGS was a Boolean - instead of a collection of flags, meant to set - 'RECODE_AUTO_ABORT_FLAG'. This still works, but is deprecated. - - Regardless of the setting of 'RECODE_AUTO_ABORT', all recoding - library functions return a success status. Most functions are - geared for returning 'false' for an error, and 'true' if everything - went fine. Functions returning structures or strings return 'NULL' - instead of the result, when the result cannot be produced. If - RECODE_AUTO_ABORT is selected, functions either return 'true', or - do not return at all. - - As in the example above, 'recode_new_outer' is called only once in - most cases. Calling 'recode_new_outer' implies some overhead, so - calling it more than once should preferably be avoided. - - The termination function 'recode_delete_outer' reclaims the memory - allocated by 'recode_new_outer' for a given OUTER variable. - Calling 'recode_delete_outer' prior to program termination is more - aesthetic then useful, as all memory resources are automatically - reclaimed when the program ends. You may spare this terminating - call if you prefer. - - * The 'program_name' declaration - - As we just explained, the user may set the Recode library so that, - in case of problems error, it issues the diagnostic itself and - aborts the whole processing. This capability may be quite - convenient. When this feature is used, the aborting routine - includes the name of the running program in the diagnostic. On the - other hand, when this feature is not used, the library merely - return error codes, giving the library user fuller control over all - this. This behaviour is more like what usual libraries do: they - return codes and never abort. However, I would rather not force - library users to necessarily check all return codes themselves, by - leaving no other choice. In most simple applications, letting the - library diagnose and abort is much easier, and quite welcome. This - is precisely because both possibilities exist that the - 'program_name' variable is needed: it may be used by the library - _when_ the user sets it to diagnose itself. - - -File: recode.info, Node: Request level, Next: Task level, Prev: Outer level, Up: Library - -4.2 Request level functions -=========================== - -The request level functions are meant to cover most recoding needs -programmers may have; they should provide all usual functionality. -Their API is almost stable by now. - - To get started with request level functions, here is a full example -of a program which sole job is to filter 'ibmpc' code on its standard -input into 'latin1' code on its standard output. - - #include - #include - #include - #include - - const char *program_name; - - int - main (int argc, char *const *argv) - { - program_name = argv[0]; - RECODE_OUTER outer = recode_new_outer (true); - RECODE_REQUEST request = recode_new_request (outer); - bool success; - - recode_scan_request (request, "ibmpc..latin1"); - - success = recode_file_to_file (request, stdin, stdout); - - recode_delete_request (request); - recode_delete_outer (outer); - - exit (success ? EXIT_SUCCESS : EXIT_FAILURE); - } - - The header file 'recode.h' declares a 'RECODE_REQUEST' structure, -which the programmer should use for allocating a variable in his -program. This REQUEST variable is given as a first argument to all -request level functions, and in most cases, may be considered as opaque. - - Suppose an application is doing a lot of recoding using only a few -different requests. For speed considerations, the 'RECODE_REQUEST' -structure should ideally be cached for each kind of request, so the -request level initialisation is not redone for each and every string -translated. The speedup should be more apparent when Recode is able to -optimize the work by building on the fly, within the structure, new -specialized recoding steps and their associated data tables. - - * Initialisation functions - - RECODE_REQUEST recode_new_request (OUTER); - bool recode_delete_request (REQUEST); - - No REQUEST variable may not be used in other request level - functions of the recoding library before having been initialised by - 'recode_new_request'. There may be many such REQUEST variables, in - which case, they are independent of one another and they all need - to be initialised separately. To avoid memory leaks, a REQUEST - variable should not be initialised a second time without calling - 'recode_delete_request' to "un-initialise" it. - - Like for 'recode_delete_outer', calling 'recode_delete_request' - prior to program termination, in the example above, may be left - out. - - * Fields of 'struct recode_request' - - Here are the fields of a 'struct recode_request' which may be - meaningfully changed, once a REQUEST has been initialised by - 'recode_new_request', but before it gets used. It is not very - frequent, in practice, that these fields need to be changed. To - access the fields, you need to include 'recodext.h' _instead_ of - 'recode.h', in which case there also is a greater chance that you - need to recompile your programs if a new version of the recoding - library gets installed. - - 'verbose_flag' - This field is initially 'false'. When set to 'true', the - library will echo to stderr the sequence of elementary - recoding steps needed to achieve the requested recoding. - - 'diaeresis_char' - This field is initially the ASCII value of a double quote '"', - but it may also be the ASCII value of a colon ':'. In 'texte' - charset, some countries use double quotes to mark diaeresis, - while other countries prefer colons. This field contains the - diaeresis character for the 'texte' charset. - - 'make_header_flag' - This field is initially 'false'. When set to 'true', it - indicates that the program is merely trying to produce a - recoding table in source form rather than completing any - actual recoding. In such a case, the optimisation of step - sequence can be attempted much more aggressively. If the step - sequence cannot be reduced to a single step, table production - will fail. - - 'diacritics_only' - This field is initially 'false'. For 'HTML' and 'LaTeX' - charset, it is often convenient to recode the diacriticized - characters only, while just not recoding other HTML code using - ampersands or angular brackets, or LaTeX code using - backslashes. Set the field to 'true' for getting this - behaviour. In the other charset, one can edit text as well as - HTML or LaTeX directives. - - 'ascii_graphics' - This field is initially 'false', and relate to characters 176 - to 223 in the 'ibmpc' charset, which are use to draw boxes. - When set to 'true', while getting out of 'ibmpc', ASCII - characters are selected so to graphically approximate these - boxes. - - * Study of request strings - - bool recode_scan_request (REQUEST, "STRING"); - - The main role of a REQUEST variable is to describe a set of - recoding transformations. Function 'recode_scan_request' studies - the given STRING, and stores an internal representation of it into - REQUEST. Note that STRING may be a full-fledged Recode request, - possibly including surfaces specifications, intermediary charsets, - sequences, aliases or abbreviations (*note Requests::). - - The internal representation automatically receives some - pre-conditioning and optimisation, so the REQUEST may then later be - used many times to achieve many actual recodings. It would not be - efficient calling 'recode_scan_request' many times with the same - STRING, it is better having many REQUEST variables instead. - - * Actual recoding jobs - - Once the REQUEST variable holds the description of a recoding - transformation, a few functions use it for achieving an actual - recoding. Either input or output of a recoding may be string, an - in-memory buffer, or a file. - - Functions with names like 'recode_INPUT-TYPE_to_OUTPUT-TYPE' - request an actual recoding, and are described below. It is easy to - remember which arguments each function accepts, once grasped some - simple principles for each possible TYPE. However, one of the - recoding function escapes these principles and is discussed - separately, first. - - recode_string (REQUEST, STRING); - - The function 'recode_string' recodes STRING according to REQUEST, - and directly returns the resulting recoded string freshly - allocated, or 'NULL' if the recoding could not succeed for some - reason. When this function is used, it is the responsibility of - the programmer to ensure that the memory used by the returned - string is later reclaimed. - - char *recode_string_to_buffer (REQUEST, - INPUT_STRING, - &OUTPUT_BUFFER, &OUTPUT_LENGTH, &OUTPUT_ALLOCATED); - bool recode_string_to_file (REQUEST, - INPUT_FILE, - OUTPUT_FILE); - bool recode_buffer_to_buffer (REQUEST, - INPUT_BUFFER, INPUT_LENGTH, - &OUTPUT_BUFFER, &OUTPUT_LENGTH, &OUTPUT_ALLOCATED); - bool recode_buffer_to_file (REQUEST, - INPUT_BUFFER, INPUT_LENGTH, - OUTPUT_FILE); - bool recode_file_to_buffer (REQUEST, - INPUT_FILE, - &OUTPUT_BUFFER, &OUTPUT_LENGTH, &OUTPUT_ALLOCATED); - bool recode_file_to_file (REQUEST, - INPUT_FILE, - OUTPUT_FILE); - - All these functions return a 'bool' result, 'false' meaning that - the recoding was not successful, often because of reversibility - issues. The name of the function well indicates on which types it - reads and which type it produces. Let's discuss these three types - in turn. - - string - - A string is merely an in-memory buffer which is terminated by - a 'NUL' character (using as many bytes as needed), instead of - being described by a byte length. For input, a pointer to the - buffer is given through one argument. - - It is notable that there is no 'to_string' functions. Only - one function recodes into a string, and it is 'recode_string', - which has already been discussed separately, above. - - buffer - - A buffer is a sequence of bytes held in computer memory. For - input, two arguments provide a pointer to the start of the - buffer and its byte size. Note that for charsets using many - bytes per character, the size is given in bytes, not in - characters. - - For output, three arguments provide the address of three - variables, which will receive the buffer pointer, the used - buffer size in bytes, and the allocated buffer size in bytes. - If at the time of the call, the buffer pointer is 'NULL', then - the allocated buffer size should also be zero, and the buffer - will be allocated afresh by the recoding functions. However, - if the buffer pointer is not 'NULL', it should be already - allocated, the allocated buffer size then gives its size. If - the allocated size gets exceeded while the recoding goes, the - buffer will be automatically reallocated bigger, probably - elsewhere, and the allocated buffer size will be adjusted - accordingly. - - The second variable, giving the in-memory buffer size, will - receive the exact byte size which was needed for the recoding. - A 'NUL' character is guaranteed at the end of the produced - buffer, but is not counted in the byte size of the recoding. - Beyond that 'NUL', there might be some extra space after the - recoded data, extending to the allocated buffer size. - - file - - A file is a sequence of bytes held outside computer memory, - but buffered through it. For input, one argument provides a - pointer to a file already opened for read. The file is then - read and recoded from its current position until the end of - the file, effectively swallowing it in memory if the - destination of the recoding is a buffer. For reading a file - filtered through the recoding library, but only a little bit - at a time, one should rather use 'recode_filter_open' and - 'recode_filter_close' (these two functions are not yet - available). - - For output, one argument provides a pointer to a file already - opened for write. The result of the recoding is written to - that file starting at its current position. - - The following special function is still subject to change: - - void recode_format_table (REQUEST, LANGUAGE, "NAME"); - -and is not documented anymore for now. - - -File: recode.info, Node: Task level, Next: Charset level, Prev: Request level, Up: Library - -4.3 Task level functions -======================== - -The task level functions are used internally by the request level -functions, they allow more explicit control over files and memory -buffers holding input and output to recoding processes. The interface -specification of task level functions is still subject to change a bit. - - To get started with task level functions, here is a full example of a -program which sole job is to filter 'ibmpc' code on its standard input -into 'latin1' code on its standard output. That is, this program has -the same goal as the one from the previous section, but does its things -a bit differently. - - #include - #include - #include - - const char *program_name; - - int - main (int argc, char *const *argv) - { - program_name = argv[0]; - RECODE_OUTER outer = recode_new_outer (false); - RECODE_REQUEST request = recode_new_request (outer); - RECODE_TASK task; - bool success; - - recode_scan_request (request, "ibmpc..latin1"); - - task = recode_new_task (request); - task->input.name = ""; - task->output.name = ""; - success = recode_perform_task (task); - - recode_delete_task (task); - recode_delete_request (request); - recode_delete_outer (outer); - - exit (success ? EXIT_SUCCESS : EXIT_FAILURE); - } - - Note that in the example above, 'recodext.h' header is used instead -of 'recode.h'. By doing so, the various structures are not opaque -anymore, and their fields may be accessed by name. - - The header file 'recode.h' declares a 'RECODE_TASK' structure, which -the programmer should use for allocating a variable in his program. -This 'task' variable is given as a first argument to all task level -functions. The programmer ought to change and possibly consult a few -fields in this structure, using special functions. - - * Initialisation functions - - RECODE_TASK recode_new_task (REQUEST); - bool recode_delete_task (TASK); - - No TASK variable may be used in other task level functions of the - recoding library without having first been initialised with - 'recode_new_task'. There may be many such TASK variables, in which - case, they are independent of one another and they all need to be - initialised separately. To avoid memory leaks, a TASK variable - should not be initialised a second time without calling - 'recode_delete_task' to "un-initialise" it. This function also - accepts a REQUEST argument and associates the request to the task. - In fact, a task is essentially a set of recoding transformations - with the specification for its current input and its current - output. - - The REQUEST variable may be scanned before or after the call to - 'recode_new_task', it does not matter so far. Immediately after - initialisation, before further changes, the TASK variable - associates REQUEST empty in-memory buffers for both input and - output. The output buffer will later get allocated automatically - on the fly, as needed, by various task processors. - - Even if a call to 'recode_delete_task' is not strictly mandatory - before ending the program, it is cleaner to always include it. - Moreover, in some future version of the recoding library, it might - become required. - - * Fields of 'struct task_request' - - Here are the fields of a 'struct task_request' which may be - meaningfully changed, once a TASK has been initialised by - 'recode_new_task'. In fact, fields are expected to change. Once - again, to access the fields, you need to include 'recodext.h' - _instead_ of 'recode.h', in which case there also is a greater - chance that you need to recompile your programs if a new version of - the recoding library gets installed. - - 'request' - - The field 'request' points to the current recoding request, - but may be changed as needed between recoding calls, for - example when there is a need to achieve the construction of a - resulting text made up of many pieces, each being recoded - differently. - - 'input.name' - 'input.file' - - If 'input.name' is not 'NULL' at start of a recoding, this is - a request that a file by that name be first opened for reading - and later automatically closed once the whole file has been - read. If the file name is not 'NULL' but an empty string, it - means that standard input is to be used. The opened file - pointer is then held into 'input.file'. - - If 'input.name' is 'NULL' and 'input.file' is not, than - 'input.file' should point to a file already opened for read, - which is meant to be recoded. - - 'input.buffer' - 'input.cursor' - 'input.limit' - - When both 'input.name' and 'input.file' are 'NULL', three - pointers describe an in-memory buffer containing the text to - be recoded. The buffer extends from 'input.buffer' to - 'input.limit', yet the text to be recoded only extends from - 'input.cursor' to 'input.limit'. In most situations, - 'input.cursor' starts with the value that 'input.buffer' has. - (Its value will internally advance as the recoding goes, until - it reaches the value of 'input.limit'.) - - 'output.name' - 'output.file' - - If 'output.name' is not 'NULL' at start of a recoding, this is - a request that a file by that name be opened for write and - later automatically closed after the recoding is done. If the - file name is not 'NULL' but an empty string, it means that - standard output is to be used. The opened file pointer is - then held into 'output.file'. If several passes with - intermediate files are needed to produce the recoding, the - 'output.name' file is opened only for the final pass. - - If 'output.name' is 'NULL' and 'output.file' is not, then - 'output.file' should point to a file already opened for write, - which will receive the result of the recoding. - - 'output.buffer' - 'output.cursor' - 'output.limit' - - When both 'output.name' and 'output.file' are 'NULL', three - pointers describe an in-memory buffer meant to receive the - text, once it is recoded. The buffer is already allocated - from 'output.buffer' to 'output.limit'. In most situations, - 'output.cursor' starts with the value that 'output.buffer' - has. Once the recoding is done, 'output.cursor' will point at - the next free byte in the buffer, just after the recoded text, - so another recoding could be called without changing any of - these three pointers, for appending new information to it. - The number of recoded bytes in the buffer is the difference - between 'output.cursor' and 'output.buffer'. - - Each time 'output.cursor' reaches 'output.limit', the buffer - is reallocated bigger, possibly at a different location in - memory, always held up-to-date in 'output.buffer'. It is - still possible to call a task level function with no output - buffer at all to start with, in which case all three fields - should have 'NULL' as a value. This is the situation - immediately after a call to 'recode_new_task'. - - 'strategy' - This field, which is of type 'enum recode_sequence_strategy', - tells how various recoding steps (passes) will be - interconnected. Its initial value is - 'RECODE_STRATEGY_UNDECIDED', which is a constant defined in - the header file 'recodext.h'. Other possible values are: - - 'RECODE_SEQUENCE_IN_MEMORY' - Keep intermediate recodings in memory. - 'RECODE_SEQUENCE_WITH_FILES' - Do not fork, use intermediate files. - 'RECODE_SEQUENCE_WITH_PIPE' - Fork processes connected with 'pipe(2)'. - - The best for now is to leave this field alone, and let the - recoding library decide its strategy, as many combinations - have not been tested yet. - - 'byte_order_mark' - This field, which is preset to 'true', indicates that a byte - order mark is to be expected at the beginning of any canonical - 'UCS-2' or 'UTF-16' text, and that such a byte order mark - should be also produced for these charsets. - - 'fail_level' - This field, which is of type 'enum recode_error' (*note - Errors::), sets the error level at which task level functions - should report a failure. If an error being detected is equal - or greater than 'fail_level', the function will eventually - return 'false' instead of 'true'. The preset value for this - field is 'RECODE_NOT_CANONICAL', that means that if not reset - to another value, the library will report failure on _any_ - error. - - 'abort_level' - This field, which is of type 'enum recode_error' (*note - Errors::), sets the error level at which task level functions - should immediately interrupt their processing. If an error - being detected is equal or greater than 'abort_level', the - function returns immediately, but the returned value ('true' - or 'false') is still is decided from the setting of - 'fail_level', not 'abort_level'. The preset value for this - field is 'RECODE_MAXIMUM_ERROR', that means that is not reset - to another value, the library will never interrupt a recoding - task. - - 'error_so_far' - This field, which is of type 'enum recode_error' (*note - Errors::), maintains the maximum error level met so far while - the recoding task was proceeding. The preset value is - 'RECODE_NO_ERROR'. - - * Task execution - - recode_perform_task (TASK); - recode_filter_open (TASK, FILE); - recode_filter_close (TASK); - - The function 'recode_perform_task' reads as much input as possible, - and recode all of it on prescribed output, given a properly - initialised TASK. - - Functions 'recode_filter_open' and 'recode_filter_close' are only - planned for now. They are meant to read input in piecemeal ways. - Even if functionality already exists informally in the library, it - has not been made available yet through such interface functions. - - -File: recode.info, Node: Charset level, Next: Errors, Prev: Task level, Up: Library - -4.4 Charset level functions -=========================== - -Many functions are internal to the recoding library. Some of them have -been made external and available, for the 'recode' program had to retain -all its previous functionality while being transformed into a mere -application of the recoding library. These functions are not really -documented here for the time being, as we hope that many of them will -vanish over time. When this set of routines will stabilise, it would be -convenient to document them as an API for handling charset names and -contents. - - RECODE_CHARSET find_charset (NAME, CLEANING-TYPE); - bool list_all_charsets (CHARSET); - bool list_concise_charset (CHARSET, LIST-FORMAT); - bool list_full_charset (CHARSET); - - -File: recode.info, Node: Errors, Prev: Charset level, Up: Library - -4.5 Handling errors -=================== - -The 'recode' program, while using the Recode library, needs to control -whether recoding problems are reported or not, and then reflect these in -the exit status. The program should also instruct the library whether -the recoding should be abruptly interrupted when an error is met (so -sparing processing when it is known in advance that a wrong result would -be discarded anyway), or if it should proceed nevertheless. Here is how -the library groups errors into levels, listed here in order of -increasing severity. - -'RECODE_NO_ERROR' - - No error was met on previous library calls. - -'RECODE_NOT_CANONICAL' - - The input text was using one of the many alternative codings for - some phenomenon, but not the one Recode would have canonically - generated. So, if the reverse recoding is later attempted, it - would produce a text having the same _meaning_ as the original - text, yet not being byte identical. - - For example, a 'Base64' block in which end-of-lines appear - elsewhere that at every 76 characters is not canonical. An - e-circumflex in TeX which is coded as '\^{e}' instead of '\^e' is - not canonical. - -'RECODE_AMBIGUOUS_OUTPUT' - - It has been discovered that if the reverse recoding was attempted - on the text output by this recoding, we would not obtain the - original text, only because an ambiguity was generated by accident - in the output text. This ambiguity would then cause the wrong - interpretation to be taken. - - Here are a few examples. If the 'Latin-1' sequence 'e^' is - converted to Easy French and back, the result will be interpreted - as e-circumflex and so, will not reflect the intent of the original - two characters. Recoding an 'IBM-PC' text to 'Latin-1' and back, - where the input text contained an isolated 'LF', will have a - spurious 'CR' inserted before the 'LF'. - - Currently, there are many cases in the library where the production - of ambiguous output is not properly detected, as it is sometimes a - difficult problem to accomplish this detection, or to do it - speedily. - -'RECODE_UNTRANSLATABLE' - - One or more input character could not be recoded, because there is - just no representation for this character in the output charset. - - Here are a few examples. Non-strict mode often allows Recode to - compute on-the-fly mappings for unrepresentable characters, but - strict mode prohibits such attribution of reversible translations: - so strict mode might often trigger such an error. Most 'UCS-2' - codes used to represent Asian characters cannot be expressed in - various Latin charsets. - -'RECODE_INVALID_INPUT' - - The input text does not comply with the coding it is declared to - hold. So, there is no way by which a reverse recoding would - reproduce this text, because Recode should never produce invalid - output. - - Here are a few examples. In strict mode, 'ASCII' text is not - allowed to contain characters with the eight bit set. 'UTF-8' - encodings ought to be minimal(1). - -'RECODE_SYSTEM_ERROR' - - The underlying system reported an error while the recoding was - going on, likely an input/output error. (This error symbol is - currently unused in the library.) - -'RECODE_USER_ERROR' - - The programmer or user requested something the recoding library is - unable to provide, or used the API wrongly. (This error symbol is - currently unused in the library.) - -'RECODE_INTERNAL_ERROR' - - Something really wrong, which should normally never happen, was - detected within the recoding library. This might be due to genuine - bugs in the library, or maybe due to un-initialised or overwritten - arguments to the API. (This error symbol is currently unused in the - library.) - -'RECODE_MAXIMUM_ERROR' - - This error code should never be returned, it is only internally - used as a sentinel for the list of all possible error codes. - - One should be able to set the error level threshold for returning -failure at end of recoding, and also the threshold for immediate -interruption. If many errors occur while the recoding proceed, which -are not severe enough to interrupt the recoding, then the most severe -error is retained, while others are forgotten(2). So, in case of an -error, the possible actions currently are: - - * do nothing and let go, returning success at end of recoding, - * just let go for now, but return failure at end of recoding, - * interrupt recoding right away and return failure now. - -*Note Task level::, and particularly the description of the fields -'fail_level', 'abort_level' and 'error_so_far', for more information -about how errors are handled. - - ---------- Footnotes ---------- - - (1) The minimality of an 'UTF-8' encoding is guaranteed on output, -but currently, it is not checked on input. - - (2) Another approach would have been to define the level symbols as -masks instead, and to give masks to threshold setting routines, and to -retain all errors--yet I never met myself such a need in practice, and -so I fear it would be overkill. On the other hand, it might be -interesting to maintain counters about how many times each kind of error -occurred. - - -File: recode.info, Node: Universal, Next: iconv, Prev: Library, Up: Top - -5 The universal charset -*********************** - -Standard ISO 10646 defines a universal character set, intended to -encompass in the long run all languages written on this planet. It is -based on wide characters, and offer possibilities for two billion -characters (2^31). - - This charset was to become available in Recode under the name 'UCS', -with many external surfaces for it. But in the current version, only -surfaces of 'UCS' are offered, each presented as a genuine charset -rather than a surface. Such surfaces are only meaningful for the 'UCS' -charset, so it is not that useful to draw a line between the surfaces -and the only charset to which they may apply. - - 'UCS' stands for Universal Character Set. 'UCS-2' and 'UCS-4' are -fixed length encodings, using two or four bytes per character -respectively. 'UTF' stands for 'UCS' Transformation Format, and are -variable length encodings dedicated to 'UCS'. 'UTF-1' was based on -ISO 2022, it did not succeed(1). 'UTF-2' replaced it, it has been -called 'UTF-FSS' (File System Safe) in Unicode or Plan9 context, but is -better known today as 'UTF-8'. To complete the picture, there is -'UTF-16' based on 16 bits bytes, and 'UTF-7' which is meant for -transmissions limited to 7-bit bytes. Most often, one might see 'UTF-8' -used for external storage, and 'UCS-2' used for internal storage. - - When Recode is producing any representation of 'UCS', it uses the -replacement character 'U+FFFD' for any _valid_ character which is not -representable in the goal charset(2). This happens, for example, when -'UCS-2' is not capable to echo a wide 'UCS-4' character, or for a -similar reason, an 'UTF-8' sequence using more than three bytes. The -replacement character is meant to represent an existing character. So, -it is never produced to represent an invalid sequence or ill-formed -character in the input text. In such cases, Recode just gets rid of the -noise, while taking note of the error in its usual ways. - - Even if 'UTF-8' is an encoding, really, it is the encoding of a -single character set, and nothing else. It is useful to distinguish -between an encoding (a _surface_ within Recode) and a charset, but only -when the surface may be applied to several charsets. Specifying a -charset is a bit simpler than specifying a surface in a Recode request. -There would not be a practical advantage at imposing a more complex -syntax to Recode users, when it is simple to assimilate 'UTF-8' to a -charset. Similar considerations apply for 'UCS-2', 'UCS-4', 'UTF-16' -and 'UTF-7'. These are all considered to be charsets. - -* Menu: - -* UCS-2:: Universal Character Set, 2 bytes -* UCS-4:: Universal Character Set, 4 bytes -* UTF-7:: Universal Transformation Format, 7 bits -* UTF-8:: Universal Transformation Format, 8 bits -* UTF-16:: Universal Transformation Format, 16 bits -* count-characters:: Frequency count of characters -* dump-with-names:: Fully interpreted UCS dump - - ---------- Footnotes ---------- - - (1) It is not probable that Recode will ever support 'UTF-1'. - - (2) This is when the goal charset allows for 16-bits. For shorter -charsets, the '--strict' ('-s') option decides what happens: either the -character is dropped, or a reversible mapping is produced on the fly. - - -File: recode.info, Node: UCS-2, Next: UCS-4, Prev: Universal, Up: Universal - -5.1 Universal Character Set, 2 bytes -==================================== - -One surface of 'UCS' is usable for the subset defined by its first sixty -thousand characters (in fact, 31 * 2^11 codes), and uses exactly two -bytes per character. It is a mere dump of the internal memory -representation which is _natural_ for this subset and as such, conveys -with it endianness problems. - - A non-empty 'UCS-2' file normally begins with a so called "byte order -mark", having value '0xFEFF'. The value '0xFFFE' is not an 'UCS' -character, so if this value is seen at the beginning of a file, Recode -reacts by swapping all pairs of bytes. The library also properly reacts -to other occurrences of '0xFEFF' or '0xFFFE' elsewhere than at the -beginning, because concatenation of 'UCS-2' files should stay a simple -matter, but it might trigger a diagnostic about non canonical input. - - By default, when producing an 'UCS-2' file, Recode always outputs the -high order byte before the low order byte. But this could be easily -overridden through the '21-Permutation' surface (*note Permutations::). -For example, the command: - - recode u8..u2/21 < INPUT > OUTPUT - -asks for an 'UTF-8' to 'UCS-2' conversion, with swapped byte output. - - Use 'UCS-2' as a genuine charset. This charset is available in -Recode under the name 'ISO-10646-UCS-2'. Accepted aliases are 'UCS-2', -'BMP', 'rune' and 'u2'. - - The Recode library is able to combine 'UCS-2' some sequences of codes -into single code characters, to represent a few diacriticized -characters, ligatures or diphtongs which have been included to ease -mapping with other existing charsets. It is also able to explode such -single code characters into the corresponding sequence of codes. The -request syntax for triggering such operations is rudimentary and -temporary. The 'combined-UCS-2' pseudo character set is a special form -of 'UCS-2' in which known combinings have been replaced by the simpler -code. Using 'combined-UCS-2' instead of 'UCS-2' in an _after_ position -of a request forces a combining step, while using 'combined-UCS-2' -instead of 'UCS-2' in a _before_ position of a request forces an -exploding step. For the time being, one has to resort to advanced -request syntax to achieve other effects. For example: - - recode u8..co,u2..u8 < INPUT > OUTPUT - -copies an 'UTF-8' INPUT over OUTPUT, still to be in 'UTF-8', yet merging -combining characters into single codes whenever possible. - - -File: recode.info, Node: UCS-4, Next: UTF-7, Prev: UCS-2, Up: Universal - -5.2 Universal Character Set, 4 bytes -==================================== - -Another surface of 'UCS' uses exactly four bytes per character, and is a -mere dump of the internal memory representation which is _natural_ for -the whole charset and as such, conveys with it endianness problems. - - Use it as a genuine charset. This charset is available in Recode -under the name 'ISO-10646-UCS-4'. Accepted aliases are 'UCS', 'UCS-4', -'ISO_10646', '10646' and 'u4'. - - -File: recode.info, Node: UTF-7, Next: UTF-8, Prev: UCS-4, Up: Universal - -5.3 Universal Transformation Format, 7 bits -=========================================== - -'UTF-7' comes from IETF rather than ISO, and is described by RFC 2152, -in the MIME series. The 'UTF-7' encoding is meant to fit 'UCS-2' over -channels limited to seven bits per byte. It proceeds from a mix between -the spirit of 'Quoted-Printable' and methods of 'Base64', adapted to -Unicode contexts. - - This charset is available in Recode under the name -'UNICODE-1-1-UTF-7'. Accepted aliases are 'UTF-7', 'TF-7' and 'u7'. - - -File: recode.info, Node: UTF-8, Next: UTF-16, Prev: UTF-7, Up: Universal - -5.4 Universal Transformation Format, 8 bits -=========================================== - -Even if 'UTF-8' does not originally come from IETF, there is now RFC 2279 -to describe it. In letters sent on 1995-01-21 and 1995-04-20, Markus -Kuhn writes: - - 'UTF-8' is an 'ASCII' compatible multi-byte encoding of the ISO 10646 - universal character set ('UCS'). 'UCS' is a 31-bit superset of all - other character set standards. The first 256 characters of 'UCS' - are identical to those of ISO 8859-1 (Latin-1). The 'UCS-2' - encoding of UCS is a sequence of bigendian 16-bit words, the - 'UCS-4' encoding is a sequence of bigendian 32-bit words. The - 'UCS-2' subset of ISO 10646 is also known as "Unicode". As both - 'UCS-2' and 'UCS-4' require heavy modifications to traditional - 'ASCII' oriented system designs (e.g. Unix), the 'UTF-8' encoding - has been designed for these applications. - - In 'UTF-8', only 'ASCII' characters are encoded using bytes below - 128. All other non-ASCII characters are encoded as multi-byte - sequences consisting only of bytes in the range 128-253. This - avoids critical bytes like 'NUL' and '/' in 'UTF-8' strings, which - makes the 'UTF-8' encoding suitable for being handled by the - standard C string library and being used in Unix file names. Other - properties include the preserved lexical sorting order and that - 'UTF-8' allows easy self-synchronisation of software receiving - 'UTF-8' strings. - - 'UTF-8' is the most common external surface of 'UCS', each character -uses from one to six bytes, and is able to encode all 2^31 characters of -the 'UCS'. It is implemented as a charset, with the following -properties: - - * Strict 7-bit 'ASCII' is completely invariant under 'UTF-8', and - those are the only one-byte characters. 'UCS' values and 'ASCII' - values coincide. No multi-byte characters ever contain bytes less - than 128. 'NUL' _is_ 'NUL'. A multi-byte character always starts - with a byte of 192 or more, and is always followed by a number of - bytes between 128 to 191. That means that you may read at random - on disk or memory, and easily discover the start of the current, - next or previous character. You can count, skip or extract - characters with this only knowledge. - - * If you read the first byte of a multi-byte character in binary, it - contains many '1' bits in successions starting with the most - significant one (from the left), at least two. The length of this - '1' sequence equals the byte size of the character. All succeeding - bytes start by '10'. This is a lot of redundancy, making it fairly - easy to guess that a file is valid 'UTF-8', or to safely state that - it is not. - - * In a multi-byte character, if you remove all leading '1' bits of - the first byte of a multi-byte character, and the initial '10' bits - of all remaining bytes (so keeping 6 bits per byte for those), the - remaining bits concatenated are the UCS value. - -These properties also have a few nice consequences: - - * Conversion to/from values is algorithmically simple, and reasonably - speedy. - - * A sequence of N bytes can hold characters needing up to 2 + 5N bits - in their 'UCS' representation. Here, N is a number between 1 and - 6. So, 'UTF-8' is most economical when mapping ASCII (1 byte), - followed by 'UCS-2' (1 to 3 bytes) and 'UCS-4' (1 to 6 bytes). - - * The lexicographic sorting order of 'UCS' strings is preserved. - - * Bytes with value 254 or 255 never appear, and because of that, - these are sometimes used when escape mechanisms are needed. - - In some case, when little processing is done on a lot of strings, one -may choose for efficiency reasons to handle 'UTF-8' strings directly -even if variable length, as it is easy to get start of characters. -Character insertion or replacement might require moving the remainder of -the string in either direction. In most cases, it is faster and easier -to convert from 'UTF-8' to 'UCS-2' or 'UCS-4' prior to processing. - - This charset is available in Recode under the name 'UTF-8'. Accepted -aliases are 'UTF-2', 'UTF-FSS', 'FSS_UTF', 'TF-8' and 'u8'. - - -File: recode.info, Node: UTF-16, Next: count-characters, Prev: UTF-8, Up: Universal - -5.5 Universal Transformation Format, 16 bits -============================================ - -Another external surface of 'UCS' is also variable length, each -character using either two or four bytes. It is usable for the subset -defined by the first million characters (17 * 2^16) of 'UCS'. - - Martin J. Du"rst writes (to , on 1995-03-28): - - 'UTF-16' is another method that reserves two times 1024 codepoints - in Unicode and uses them to index around one million additional - characters. 'UTF-16' is a little bit like former multibyte codes, - but quite not so, as both the first and the second 16-bit code - clearly show what they are. The idea is that one million - codepoints should be enough for all the rare Chinese ideograms and - historical scripts that do not fit into the Base Multilingual Plane - of ISO 10646 (with just about 63,000 positions available, now that - 2,000 are gone). - - This charset is available in Recode under the name 'UTF-16'. -Accepted aliases are 'Unicode', 'TF-16' and 'u6'. - - -File: recode.info, Node: count-characters, Next: dump-with-names, Prev: UTF-16, Up: Universal - -5.6 Frequency count of characters -================================= - -A device may be used to obtain a list of characters in a file, and how -many times each character appears. Each count is followed by the -'UCS-2' value of the character and, when known, the RFC 1345 mnemonic -for that character. - - This charset is available in Recode under the name -'count-characters'. - - This 'count' feature has been implemented as a charset. This may -change in some later version, as it would sometimes be convenient to -count original bytes, instead of their 'UCS-2' equivalent. - - -File: recode.info, Node: dump-with-names, Prev: count-characters, Up: Universal - -5.7 Fully interpreted UCS dump -============================== - -Another device may be used to get fully interpreted dumps of an 'UCS-2' -stream of characters, with one 'UCS-2' character displayed on a full -output line. Each line receives the RFC 1345 mnemonic for the character -if it exists, the 'UCS-2' value of the character, and a descriptive -comment for that character. As each input character produces its own -output line, beware that the output file from this conversion may be -much, much bigger than the input file. - - This charset is available in Recode under the name 'dump-with-names'. - - This 'dump-with-names' feature has been implemented as a charset -rather than a surface. This is surely debatable. The current -implementation allows for dumping charsets other than 'UCS-2'. For -example, the command 'recode l2..full < INPUT' implies a necessary -conversion from 'Latin-2' to 'UCS-2', as 'dump-with-names' is only -connected out from 'UCS-2'. In such cases, Recode does not display the -original 'Latin-2' codes in the dump, only the corresponding 'UCS-2' -values. To give a simpler example, the command - - echo 'Hello, world!' | recode us..dump - -produces the following output: - - UCS2 Mne Description - - 0048 H latin capital letter h - 0065 e latin small letter e - 006C l latin small letter l - 006C l latin small letter l - 006F o latin small letter o - 002C , comma - 0020 SP space - 0077 w latin small letter w - 006F o latin small letter o - 0072 r latin small letter r - 006C l latin small letter l - 0064 d latin small letter d - 0021 ! exclamation mark - 000A LF line feed (lf) - - The descriptive comment is given in English and 'ASCII', yet if the -English description is not available but a French one is, then the -French description is given instead, using 'Latin-1'. However, if the -'LANGUAGE' or 'LANG' environment variable begins with the letters 'fr', -then listing preference goes to French when both descriptions are -available. - - Here is another example. To get the long description of the code 237 -in Latin-5 table, one may use the following command. - - echo -n 237 | recode l5/d..dump - -If your 'echo' does not grok '-n', use 'echo 237\c' instead. Here is -how to see what Unicode 'U+03C6' means, while getting rid of the title -lines. - - echo -n 0x03C6 | recode u2/x2..dump | tail +3 - - -File: recode.info, Node: iconv, Next: Tabular, Prev: Universal, Up: Top - -6 The 'iconv' library -********************* - -The Recode library is able to use the capabilities of an external, -pre-installed 'iconv' library, usually as provided by GNU 'libc' or the -portable 'libiconv' written by Bruno Haible. In fact, many capabilities -of the Recode library are duplicated in an external 'iconv' library, as -they likely share many charsets. We discuss, here, the issues related -to this duplication, and other peculiarities specific to the 'iconv' -library. - - As implemented, if a recoding request can be satisfied by the Recode -library both with and without using the 'iconv' library, the external -'iconv' library might be used. To sort out if the 'iconv' is indeed -used or not, just use the '-v' or '--verbose' option, *note Recoding::, -and check if ':iconv:' appears as an intermediate charset. - - The ':iconv:' charset represents a conceptual pivot charset within -the external 'iconv' library (in fact, this pivot exists, but is not -directly reachable). This charset has a ':' (a mere colon) and -':libiconv:' for aliases. It is not allowed to recode from or to this -charset directly. But when this charset is selected as an intermediate, -usually by automatic means, then the external 'iconv' Recode library is -called to handle the transformations. By using an '--ignore=:iconv:' -option on the 'recode' call or equivalently, but more simply, '-x:', -Recode is instructed to fully avoid this charset as an intermediate, -with the consequence that the external 'iconv' library is defeated. -Consider these two calls: - - recode l1..1250 < INPUT > OUTPUT - recode -x: l1..1250 < INPUT > OUTPUT - -Both should transform INPUT from 'ISO-8859-1' to 'CP1250' on OUTPUT. -The first call might use the external 'iconv' library, while the second -call surely avoids it. Whatever the path used, the results should -normally be identical. However, there might be observable differences. -Most of them might result from reversibility issues, as the external -'iconv' engine does not likely address reversibility in the same way. -Even if much less likely, some differences might result from slight -errors in the tables used, such differences should then be reported as -bugs. - - Discrepancies might be seen in the area of error detection and -recovery. The Recode library usually tries to detect canonicity errors -in input, and production of ambiguous output, but the external 'iconv' -library does not necessarily do it the same way. Moreover, the Recode -library may not always recover as nicely as possible when the external -'iconv' has no translation for a given character. - - The external 'iconv' libraries may offer different sets of charsets -and aliases from one library to another, and also between successive -versions of a single library. Best is to check the documentation of the -external 'iconv' library, as of the time Recode was installed, to know -which charsets and aliases are being provided. - - The '--ignore=:iconv:' or '-x:' options might be useful when there is -a need to make a recoding more exactly repeatable between machines or -installations, the idea being here to remove the variance possibly -introduced by the various implementations of an external 'iconv' -library. These options might also help deciding whether if some -recoding problem is genuine to Recode, or is induced by the external -'iconv' library. - - -File: recode.info, Node: Tabular, Next: ASCII misc, Prev: iconv, Up: Top - -7 Tabular sources (RFC 1345) -**************************** - -An important part of the tabular charset knowledge in Recode comes from RFC 1345 -or, alternatively, from the 'chset' tools, both maintained by Keld -Simonsen. The RFC 1345 document: - - "Character Mnemonics & Character Sets", K. Simonsen, Request for - Comments no. 1345, Network Working Group, June 1992. - -defines many character mnemonics and character sets. The Recode library -implements most of RFC 1345, however: - - * It does not recognise those charsets which overload character - positions: 'dk-us' and 'us-dk'. However, *Note Mixed::. - - * It does not recognise those charsets which combine two characters - for representing a third: 'ANSI_X3.110-1983', 'ISO_6937-2-add', - 'T.101-G2', 'T.61-8bit', 'iso-ir-90' and 'videotex-suppl'. - - * It does not recognise 16-bits charsets: 'GB_2312-80', - 'JIS_C6226-1978', 'JIS_C6226-1983', 'JIS_X0212-1990' and - 'KS_C_5601-1987'. - - * It interprets the charset 'isoir91' as 'NATS-DANO' (alias - 'iso-ir-9-1'), _not_ as 'JIS_C6229-1984-a' (alias 'iso-ir-91'). It - also interprets the charset 'isoir92' as 'NATS-DANO-ADD' (alias - 'iso-ir-9-2'), _not_ as 'JIS_C6229-1984-b' (alias 'iso-ir-92'). It - might be better just avoiding these two alias names. - - Keld Simonsen did most of RFC 1345 himself, with some -funding from Danish Standards and Nordic standards (INSTA) project. He -also did the character set design work, with substantial input from Olle -Jaernefors. Keld typed in almost all of the tables, some have been -contributed. A number of people have checked the tables in various -ways. The RFC lists a number of people who helped. - - Keld and the Recode maintainer have an arrangement by which any new -discovered information submitted by Recode users, about tabular -charsets, is forwarded to Keld, eventually merged into Keld's work, and -only then, reimported into Recode. Recode does not try to compete, nor -even establish itself as an alternate or diverging reference: RFC 1345 -and its new drafts stay the genuine source for most tabular information -conveyed by Recode. Keld has been more than collaborative so far, so -there is no reason that we act otherwise. In a word, Recode should be -perceived as the application of external references, but not as a -reference in itself. - - Internally, RFC 1345 associates which each character an unambiguous -mnemonic of a few characters, taken from ISO 646, which is a minimal -ASCII subset of 83 characters. The charset made up by these mnemonics -is available in Recode under the name 'RFC1345'. It has 'mnemonic' and -'1345' for aliases. As implemened, this charset exactly corresponds to -'mnemonic+ascii+38', using RFC 1345 nomenclature. Roughly said, ISO 646 -characters represent themselves, except for the ampersand ('&') which -appears doubled. A prefix of a single ampersand introduces a mnemonic. -For mnemonics using two characters, the prefix is immediately by the -mnemonic. For longer mnemonics, the prefix is followed by an underline -('_'), the mmemonic, and another underline. Conversions to this charset -are usually reversible. - - Currently, Recode does not offer any of the many other possible -variations of this family of representations. They will likely be -implemented in some future version, however. - -'ANSI_X3.4-1968' - '367', 'ANSI_X3.4-1986', 'ASCII', 'CP367', 'IBM367', 'ISO646-US', - 'ISO_646.irv:1991', 'US-ASCII', 'iso-ir-6' and 'us' are aliases for - this charset. Source: ISO 2375 registry. - -'ASMO_449' - 'ISO_9036', 'arabic7' and 'iso-ir-89' are aliases for this charset. - Source: ISO 2375 registry. - -'BS_4730' - 'ISO646-GB', 'gb', 'iso-ir-4' and 'uk' are aliases for this - charset. Source: ISO 2375 registry. - -'BS_viewdata' - 'iso-ir-47' is an alias for this charset. Source: ISO 2375 - registry. - -'CP1250' - '1250', 'ms-ee' and 'windows-1250' are aliases for this charset. - Source: UNICODE 1.0. - -'CP1251' - '1251', 'ms-cyrl' and 'windows-1251' are aliases for this charset. - Source: UNICODE 1.0. - -'CP1252' - '1252', 'ms-ansi' and 'windows-1252' are aliases for this charset. - Source: UNICODE 1.0. - -'CP1253' - '1253', 'ms-greek' and 'windows-1253' are aliases for this charset. - Source: UNICODE 1.0. - -'CP1254' - '1254', 'ms-turk' and 'windows-1254' are aliases for this charset. - Source: UNICODE 1.0. - -'CP1255' - '1255', 'ms-hebr' and 'windows-1255' are aliases for this charset. - Source: UNICODE 1.0. - -'CP1256' - '1256', 'ms-arab' and 'windows-1256' are aliases for this charset. - Source: UNICODE 1.0. - -'CP1257' - '1257', 'WinBaltRim' and 'windows-1257' are aliases for this - charset. Source: CEN/TC304 N283. - -'CSA_Z243.4-1985-1' - 'ISO646-CA', 'ca', 'csa7-1' and 'iso-ir-121' are aliases for this - charset. Source: ISO 2375 registry. - -'CSA_Z243.4-1985-2' - 'ISO646-CA2', 'csa7-2' and 'iso-ir-122' are aliases for this - charset. Source: ISO 2375 registry. - -'CSA_Z243.4-1985-gr' - 'iso-ir-123' is an alias for this charset. Source: ISO 2375 - registry. - -'CSN_369103' - 'KOI-8_L2', 'iso-ir-139' and 'koi8l2' are aliases for this charset. - Source: ISO 2375 registry. - -'CWI' - 'CWI-2' and 'cp-hu' are aliases for this charset. Source: - Computerworld Sza'mita'stechnika vol 3 issue 13 1988-06-29. - -'DEC-MCS' - 'dec' is an alias for this charset. VAX/VMS User's Manual, Order - Number: AI-Y517A-TE, April 1986. - -'DIN_66003' - 'ISO646-DE', 'de' and 'iso-ir-21' are aliases for this charset. - Source: ISO 2375 registry. - -'DS_2089' - 'DS2089', 'ISO646-DK' and 'dk' are aliases for this charset. - Source: Danish Standard, DS 2089, February 1974. - -'EBCDIC-AT-DE' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-AT-DE-A' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-CA-FR' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-DK-NO' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-DK-NO-A' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-ES' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-ES-A' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-ES-S' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-FI-SE' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-FI-SE-A' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-FR' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-IS-FRISS' - 'friss' is an alias for this charset. Source: Skyrsuvelar Rikisins - og Reykjavikurborgar, feb 1982. - -'EBCDIC-IT' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-PT' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-UK' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'EBCDIC-US' - Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987. - -'ECMA-cyrillic' - 'ECMA-113', 'ECMA-113:1986' and 'iso-ir-111' are aliases for this - charset. Source: ISO 2375 registry. - -'ES' - 'ISO646-ES' and 'iso-ir-17' are aliases for this charset. Source: - ISO 2375 registry. - -'ES2' - 'ISO646-ES2' and 'iso-ir-85' are aliases for this charset. Source: - ISO 2375 registry. - -'GB_1988-80' - 'ISO646-CN', 'cn' and 'iso-ir-57' are aliases for this charset. - Source: ISO 2375 registry. - -'GOST_19768-87' - 'ST_SEV_358-88' and 'iso-ir-153' are aliases for this charset. - Source: ISO 2375 registry. - -'IBM037' - '037', 'CP037', 'ebcdic-cp-ca', 'ebcdic-cp-nl', 'ebcdic-cp-us' and - 'ebcdic-cp-wt' are aliases for this charset. Source: IBM NLS RM - Vol2 SE09-8002-01, March 1990. - -'IBM038' - '038', 'CP038' and 'EBCDIC-INT' are aliases for this charset. - Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990. - -'IBM1004' - '1004', 'CP1004' and 'os2latin1' are aliases for this charset. - Source: CEN/TC304 N283, 1994-02-04. - -'IBM1026' - '1026' and 'CP1026' are aliases for this charset. Source: IBM NLS - RM Vol2 SE09-8002-01, March 1990. - -'IBM1047' - '1047' and 'CP1047' are aliases for this charset. Source: IBM - Character Data Representation Architecture. Registry SC09-1391-00 - p 150. - -'IBM256' - '256', 'CP256' and 'EBCDIC-INT1' are aliases for this charset. - Source: IBM Registry C-H 3-3220-050. - -'IBM273' - '273' and 'CP273' are aliases for this charset. Source: IBM NLS RM - Vol2 SE09-8002-01, March 1990. - -'IBM274' - '274', 'CP274' and 'EBCDIC-BE' are aliases for this charset. - Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990. - -'IBM275' - '275', 'CP275' and 'EBCDIC-BR' are aliases for this charset. - Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM277' - 'EBCDIC-CP-DK' and 'EBCDIC-CP-NO' are aliases for this charset. - Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM278' - '278', 'CP278', 'ebcdic-cp-fi' and 'ebcdic-cp-se' are aliases for - this charset. Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM280' - '280', 'CP280' and 'ebcdic-cp-it' are aliases for this charset. - Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM281' - '281', 'CP281' and 'EBCDIC-JP-E' are aliases for this charset. - Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990. - -'IBM284' - '284', 'CP284' and 'ebcdic-cp-es' are aliases for this charset. - Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM285' - '285', 'CP285' and 'ebcdic-cp-gb' are aliases for this charset. - Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM290' - '290', 'CP290' and 'EBCDIC-JP-kana' are aliases for this charset. - Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990. - -'IBM297' - '297', 'CP297' and 'ebcdic-cp-fr' are aliases for this charset. - Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM420' - '420', 'CP420' and 'ebcdic-cp-ar1' are aliases for this charset. - Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. IBM NLS RM p - 11-11. - -'IBM423' - '423', 'CP423' and 'ebcdic-cp-gr' are aliases for this charset. - Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM424' - '424', 'CP424' and 'ebcdic-cp-he' are aliases for this charset. - Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM437' - '437' and 'CP437' are aliases for this charset. Source: IBM NLS RM - Vol2 SE09-8002-01, March 1990. - -'IBM500' - '500', '500V1', 'CP500', 'ebcdic-cp-be' and 'ebcdic-cp-ch' are - aliases for this charset. Source: IBM NLS RM Vol2 SE09-8002-01, - March 1990. - -'IBM850' - '850' and 'CP850' are aliases for this charset. Source: IBM NLS RM - Vol2 SE09-8002-01, March 1990. Source: UNICODE 1.0. - -'IBM851' - '851' and 'CP851' are aliases for this charset. Source: IBM NLS RM - Vol2 SE09-8002-01, March 1990. - -'IBM852' - '852', 'CP852', 'pcl2' and 'pclatin2' are aliases for this charset. - Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM855' - '855' and 'CP855' are aliases for this charset. Source: IBM NLS RM - Vol2 SE09-8002-01, March 1990. - -'IBM857' - '857' and 'CP857' are aliases for this charset. Source: IBM NLS RM - Vol2 SE09-8002-01, March 1990. - -'IBM860' - '860' and 'CP860' are aliases for this charset. Source: IBM NLS RM - Vol2 SE09-8002-01, March 1990. - -'IBM861' - '861', 'CP861' and 'cp-is' are aliases for this charset. Source: - IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM862' - '862' and 'CP862' are aliases for this charset. Source: IBM NLS RM - Vol2 SE09-8002-01, March 1990. - -'IBM863' - '863' and 'CP863' are aliases for this charset. Source: IBM - Keyboard layouts and code pages, PN 07G4586 June 1991. - -'IBM864' - '864' and 'CP864' are aliases for this charset. Source: IBM - Keyboard layouts and code pages, PN 07G4586 June 1991. - -'IBM865' - '865' and 'CP865' are aliases for this charset. Source: IBM DOS - 3.3 Ref (Abridged), 94X9575 (Feb 1987). - -'IBM868' - '868', 'CP868' and 'cp-ar' are aliases for this charset. Source: - IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM869' - '869', 'CP869' and 'cp-gr' are aliases for this charset. Source: - IBM Keyboard layouts and code pages, PN 07G4586 June 1991. - -'IBM870' - '870', 'CP870', 'ebcdic-cp-roece' and 'ebcdic-cp-yu' are aliases - for this charset. Source: IBM NLS RM Vol2 SE09-8002-01, March - 1990. - -'IBM871' - '871', 'CP871' and 'ebcdic-cp-is' are aliases for this charset. - Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM875' - '875', 'CP875' and 'EBCDIC-Greek' are aliases for this charset. - Source: UNICODE 1.0. - -'IBM880' - '880', 'CP880' and 'EBCDIC-Cyrillic' are aliases for this charset. - Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IBM891' - '891' and 'CP891' are aliases for this charset. Source: IBM NLS RM - Vol2 SE09-8002-01, March 1990. - -'IBM903' - '903' and 'CP903' are aliases for this charset. Source: IBM NLS RM - Vol2 SE09-8002-01, March 1990. - -'IBM904' - '904' and 'CP904' are aliases for this charset. Source: IBM NLS RM - Vol2 SE09-8002-01, March 1990. - -'IBM905' - '905', 'CP905' and 'ebcdic-cp-tr' are aliases for this charset. - Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990. - -'IBM918' - '918', 'CP918' and 'ebcdic-cp-ar2' are aliases for this charset. - Source: IBM NLS RM Vol2 SE09-8002-01, March 1990. - -'IEC_P27-1' - 'iso-ir-143' is an alias for this charset. Source: ISO 2375 - registry. - -'INIS' - 'iso-ir-49' is an alias for this charset. Source: ISO 2375 - registry. - -'INIS-8' - 'iso-ir-50' is an alias for this charset. Source: ISO 2375 - registry. - -'INIS-cyrillic' - 'iso-ir-51' is an alias for this charset. Source: ISO 2375 - registry. - -'INVARIANT' - 'iso-ir-170' is an alias for this charset. - -'ISO-8859-1' - '819', 'CP819', 'IBM819', 'ISO8859-1', 'ISO_8859-1', - 'ISO_8859-1:1987', 'iso-ir-100', 'l1' and 'latin1' are aliases for - this charset. Source: ISO 2375 registry. - -'ISO-8859-10' - 'ISO8859-10', 'ISO_8859-10', 'ISO_8859-10:1993', 'L6', 'iso-ir-157' - and 'latin6' are aliases for this charset. Source: ISO 2375 - registry. - -'ISO-8859-13' - 'ISO8859-13', 'ISO_8859-13', 'ISO_8859-13:1998', 'iso-baltic', - 'iso-ir-179a', 'l7' and 'latin7' are aliases for this charset. - Source: ISO 2375 registry. - -'ISO-8859-14' - 'ISO8859-14', 'ISO_8859-14', 'ISO_8859-14:1998', 'iso-celtic', - 'iso-ir-199', 'l8' and 'latin8' are aliases for this charset. - Source: ISO 2375 registry. - -'ISO-8859-15' - 'ISO8859-15', 'ISO_8859-15', 'ISO_8859-15:1998', 'iso-ir-203', 'l9' - and 'latin9' are aliases for this charset. Source: ISO 2375 - registry. - -'ISO-8859-2' - '912', 'CP912', 'IBM912', 'ISO8859-2', 'ISO_8859-2', - 'ISO_8859-2:1987', 'iso-ir-101', 'l2' and 'latin2' are aliases for - this charset. Source: ISO 2375 registry. - -'ISO-8859-3' - 'ISO8859-3', 'ISO_8859-3', 'ISO_8859-3:1988', 'iso-ir-109', 'l3' - and 'latin3' are aliases for this charset. Source: ISO 2375 - registry. - -'ISO-8859-4' - 'ISO8859-4', 'ISO_8859-4', 'ISO_8859-4:1988', 'iso-ir-110', 'l4' - and 'latin4' are aliases for this charset. Source: ISO 2375 - registry. - -'ISO-8859-5' - 'ISO8859-5', 'ISO_8859-5', 'ISO_8859-5:1988', 'cyrillic' and - 'iso-ir-144' are aliases for this charset. Source: ISO 2375 - registry. - -'ISO-8859-6' - 'ASMO-708', 'ECMA-114', 'ISO8859-6', 'ISO_8859-6', - 'ISO_8859-6:1987', 'arabic' and 'iso-ir-127' are aliases for this - charset. Source: ISO 2375 registry. - -'ISO-8859-7' - 'ECMA-118', 'ELOT_928', 'ISO8859-7', 'ISO_8859-7', - 'ISO_8859-7:1987', 'greek', 'greek8' and 'iso-ir-126' are aliases - for this charset. Source: ISO 2375 registry. - -'ISO-8859-8' - 'ISO8859-8', 'ISO_8859-8', 'ISO_8859-8:1988', 'hebrew' and - 'iso-ir-138' are aliases for this charset. Source: ISO 2375 - registry. - -'ISO-8859-9' - 'ISO8859-9', 'ISO_8859-9', 'ISO_8859-9:1989', 'iso-ir-148', 'l5' - and 'latin5' are aliases for this charset. Source: ISO 2375 - registry. - -'ISO_10367-box' - 'iso-ir-155' is an alias for this charset. Source: ISO 2375 - registry. - -'ISO_2033-1983' - 'e13b' and 'iso-ir-98' are aliases for this charset. Source: ISO - 2375 registry. - -'ISO_5427' - 'iso-ir-37' is an alias for this charset. Source: ISO 2375 - registry. - -'ISO_5427-ext' - 'ISO_5427:1981' and 'iso-ir-54' are aliases for this charset. - Source: ISO 2375 registry. - -'ISO_5428' - 'ISO_5428:1980' and 'iso-ir-55' are aliases for this charset. - Source: ISO 2375 registry. - -'ISO_646.basic' - 'ISO_646.basic:1983' and 'ref' are aliases for this charset. - Source: ISO 2375 registry. - -'ISO_646.irv' - 'ISO_646.irv:1983', 'irv' and 'iso-ir-2' are aliases for this - charset. Source: ISO 2375 registry. - -'ISO_6937-2-25' - 'iso-ir-152' is an alias for this charset. Source: ISO 2375 - registry. - -'ISO_8859-supp' - 'iso-ir-154' and 'latin1-2-5' are aliases for this charset. - Source: ISO 2375 registry. - -'IT' - 'ISO646-IT' and 'iso-ir-15' are aliases for this charset. Source: - ISO 2375 registry. - -'JIS_C6220-1969-jp' - 'JIS_C6220-1969', 'iso-ir-13', 'katakana' and 'x0201-7' are aliases - for this charset. Source: ISO 2375 registry. - -'JIS_C6220-1969-ro' - 'ISO646-JP', 'iso-ir-14' and 'jp' are aliases for this charset. - Source: ISO 2375 registry. - -'JIS_C6229-1984-a' - 'jp-ocr-a' is an alias for this charset. Source: ISO 2375 - registry. - -'JIS_C6229-1984-b' - 'ISO646-JP-OCR-B' and 'jp-ocr-b' are aliases for this charset. - Source: ISO 2375 registry. - -'JIS_C6229-1984-b-add' - 'iso-ir-93' and 'jp-ocr-b-add' are aliases for this charset. - Source: ISO 2375 registry. - -'JIS_C6229-1984-hand' - 'iso-ir-94' and 'jp-ocr-hand' are aliases for this charset. - Source: ISO 2375 registry. - -'JIS_C6229-1984-hand-add' - 'iso-ir-95' and 'jp-ocr-hand-add' are aliases for this charset. - Source: ISO 2375 registry. - -'JIS_C6229-1984-kana' - 'iso-ir-96' is an alias for this charset. Source: ISO 2375 - registry. - -'JIS_X0201' - 'X0201' is an alias for this charset. - -'JUS_I.B1.002' - 'ISO646-YU', 'iso-ir-141', 'js' and 'yu' are aliases for this - charset. Source: ISO 2375 registry. - -'JUS_I.B1.003-mac' - 'iso-ir-147' and 'macedonian' are aliases for this charset. - Source: ISO 2375 registry. - -'JUS_I.B1.003-serb' - 'iso-ir-146' and 'serbian' are aliases for this charset. Source: - ISO 2375 registry. - -'KOI-7' - Source: Andrey A. Chernov . - -'KOI-8' - 'GOST_19768-74' is an alias for this charset. Source: Andrey A. - Chernov . - -'KOI8-R' - Source: RFC1489 via Gabor Kiss . And Andrey A. - Chernov . - -'KOI8-RU' - Source: http://cad.ntu-kpi.kiev.ua/multiling/koi8-ru/. - -'KOI8-U' - Source: RFC 2319. Mibenum: 2088. Source: - http://www.net.ua/KOI8-U/. - -'KSC5636' - 'ISO646-KR' is an alias for this charset. - -'Latin-greek-1' - 'iso-ir-27' is an alias for this charset. Source: ISO 2375 - registry. - -'MSZ_7795.3' - 'ISO646-HU', 'hu' and 'iso-ir-86' are aliases for this charset. - Source: ISO 2375 registry. - -'NATS-DANO' - 'iso-ir-9-1' is an alias for this charset. Source: ISO 2375 - registry. - -'NATS-DANO-ADD' - 'iso-ir-9-2' is an alias for this charset. Source: ISO 2375 - registry. - -'NATS-SEFI' - 'iso-ir-8-1' is an alias for this charset. Source: ISO 2375 - registry. - -'NATS-SEFI-ADD' - 'iso-ir-8-2' is an alias for this charset. Source: ISO 2375 - registry. - -'NC_NC00-10' - 'ISO646-CU', 'NC_NC00-10:81', 'cuba' and 'iso-ir-151' are aliases - for this charset. Source: ISO 2375 registry. - -'NF_Z_62-010' - 'ISO646-FR', 'fr' and 'iso-ir-69' are aliases for this charset. - Source: ISO 2375 registry. - -'NF_Z_62-010_(1973)' - 'ISO646-FR1' and 'iso-ir-25' are aliases for this charset. Source: - ISO 2375 registry. - -'NS_4551-1' - 'ISO646-NO', 'iso-ir-60' and 'no' are aliases for this charset. - Source: ISO 2375 registry. - -'NS_4551-2' - 'ISO646-NO2', 'iso-ir-61' and 'no2' are aliases for this charset. - Source: ISO 2375 registry. - -'NeXTSTEP' - 'next' is an alias for this charset. Source: Peter Svanberg - - psv@nada.kth.se. - -'PT' - 'ISO646-PT' and 'iso-ir-16' are aliases for this charset. Source: - ISO 2375 registry. - -'PT2' - 'ISO646-PT2' and 'iso-ir-84' are aliases for this charset. Source: - ISO 2375 registry. - -'SEN_850200_B' - 'FI', 'ISO646-FI', 'ISO646-SE', 'SS636127', 'iso-ir-10' and 'se' - are aliases for this charset. Source: ISO 2375 registry. - -'SEN_850200_C' - 'ISO646-SE2', 'iso-ir-11' and 'se2' are aliases for this charset. - Source: ISO 2375 registry. - -'T.61-7bit' - 'iso-ir-102' is an alias for this charset. Source: ISO 2375 - registry. - -'baltic' - 'iso-ir-179' is an alias for this charset. Source: ISO 2375 - registry. &g1esc x2d56 &g2esc x2e56 &g3esc x2f56. - -'greek-ccitt' - 'iso-ir-150' is an alias for this charset. Source: ISO 2375 - registry. - -'greek7' - 'iso-ir-88' is an alias for this charset. Source: ISO 2375 - registry. - -'greek7-old' - 'iso-ir-18' is an alias for this charset. Source: ISO 2375 - registry. - -'hp-roman8' - 'r8' and 'roman8' are aliases for this charset. Source: LaserJet - IIP Printer User's Manual,. HP part no 33471-90901, - Hewlet-Packard, June 1989. - -'latin-greek' - 'iso-ir-19' is an alias for this charset. Source: ISO 2375 - registry. - -'mac-is' - -'macintosh' - 'mac' is an alias for this charset. Source: The Unicode Standard - ver 1.0, ISBN 0-201-56788-1, Oct 1991. - -'macintosh_ce' - 'macce' is an alias for this charset. Source: Macintosh CE fonts. - -'sami' - 'iso-ir-158', 'lap' and 'latin-lap' are aliases for this charset. - Source: ISO 2375 registry. - - -File: recode.info, Node: ASCII misc, Next: IBM and MS, Prev: Tabular, Up: Top - -8 ASCII and some derivatives -**************************** - -* Menu: - -* ASCII:: Usual ASCII -* ISO 8859:: ASCII extended by Latin Alphabets -* ASCII-BS:: ASCII 7-bits, 'BS' to overstrike -* flat:: ASCII without diacritics nor underline - - -File: recode.info, Node: ASCII, Next: ISO 8859, Prev: ASCII misc, Up: ASCII misc - -8.1 Usual ASCII -=============== - -This charset is available in Recode under the name 'ASCII'. In fact, -its true name is 'ANSI_X3.4-1968' as per RFC 1345, accepted aliases -being 'ANSI_X3.4-1986', 'ASCII', 'IBM367', 'ISO646-US', -'ISO_646.irv:1991', 'US-ASCII', 'cp367', 'iso-ir-6' and 'us'. The -shortest way of specifying it in Recode is 'us'. - - This documentation used to include ASCII tables. They have been -removed since the 'recode' program can now recreate these easily: - - recode -lf us for commented ASCII - recode -ld us for concise decimal table - recode -lo us for concise octal table - recode -lh us for concise hexadecimal table - - -File: recode.info, Node: ISO 8859, Next: ASCII-BS, Prev: ASCII, Up: ASCII misc - -8.2 ASCII extended by Latin Alphabets -===================================== - -There are many Latin charsets. The following has been written by Tim -Lasko , a long while ago: - - ISO Latin-1, or more completely ISO Latin Alphabet No 1, is now an - international standard as of February 1987 (IS 8859, Part 1). For - those American USEnet'rs that care, the 8-bit ASCII standard, which - is essentially the same code, is going through the final - administrative processes prior to publication. ISO Latin-1 (IS - 8859/1) is actually one of an entire family of eight-bit one-byte - character sets, all having ASCII on the left hand side, and with - varying repertoires on the right hand side: - - * Latin Alphabet No 1 (caters to Western Europe - now approved). - * Latin Alphabet No 2 (caters to Eastern Europe - now approved). - * Latin Alphabet No 3 (caters to SE Europe + others - in draft - ballot). - * Latin Alphabet No 4 (caters to Northern Europe - in draft - ballot). - * Latin-Cyrillic alphabet (right half all Cyrillic - processing - currently suspended pending USSR input). - * Latin-Arabic alphabet (right half all Arabic - now approved). - * Latin-Greek alphabet (right half Greek + symbols - in draft - ballot). - * Latin-Hebrew alphabet (right half Hebrew + symbols - - proposed). - - The ISO Latin Alphabet 1 is available as a charset in Recode under -the name 'Latin-1'. In fact, its true name is 'ISO_8859-1:1987' as per -RFC 1345, accepted aliases being 'CP819', 'IBM819', 'ISO-8859-1', -'ISO_8859-1', 'iso-ir-100', 'l1' and 'Latin-1'. The shortest way of -specifying it in Recode is 'l1'. - - It is an eight-bit code which coincides with ASCII for the lower -half. This documentation used to include Latin-1 tables. They have -been removed since the 'recode' program can now recreate these easily: - - recode -lf l1 for commented ISO Latin-1 - recode -ld l1 for concise decimal table - recode -lo l1 for concise octal table - recode -lh l1 for concise hexadecimal table - - -File: recode.info, Node: ASCII-BS, Next: flat, Prev: ISO 8859, Up: ASCII misc - -8.3 ASCII 7-bits, 'BS' to overstrike -==================================== - -This charset is available in Recode under the name 'ASCII-BS', with 'BS' -as an acceptable alias. - - The file is straight ASCII, seven bits only. According to the -definition of ASCII, diacritics are applied by a sequence of three -characters: the letter, one 'BS', the diacritic mark. We deviate -slightly from this by exchanging the diacritic mark and the letter so, -on a screen device, the diacritic will disappear and let the letter -alone. At recognition time, both methods are acceptable. - - The French quotes are coded by the sequences: '< BS "' or '" BS <' -for the opening quote and '> BS "' or '" BS >' for the closing quote. -This artificial convention was inherited in straight 'ASCII-BS' from -habits around 'Bang-Bang' entry, and is not well known. But we decided -to stick to it so that 'ASCII-BS' charset will not lose French quotes. - - The 'ASCII-BS' charset is independent of 'ASCII', and different. The -following examples demonstrate this, knowing at advance that '!2' is the -'Bang-Bang' way of representing an 'e' with an acute accent. Compare: - - % echo \!2 | recode -v bang..l1/d - Request: Bang-Bang..ISO-8859-1/Decimal-1 - 233, 10 - -with: - - % echo \!2 | recode -v bang..bs/d - Request: Bang-Bang..ISO-8859-1..ASCII-BS/Decimal-1 - 39, 8, 101, 10 - - In the first case, the 'e' with an acute accent is merely transmitted -by the 'Latin-1..ASCII' mapping, not having a special recoding rule for -it. In the 'Latin-1..ASCII-BS' case, the acute accent is applied over -the 'e' with a backspace: diacriticised characters have special rules. -For the 'ASCII-BS' charset, reversibility is still possible, but there -might be difficult cases. - - -File: recode.info, Node: flat, Prev: ASCII-BS, Up: ASCII misc - -8.4 ASCII without diacritics nor underline -========================================== - -This charset is available in Recode under the name 'flat'. - - This code is ASCII expunged of all diacritics and underlines, as long -as they are applied using three character sequences, with 'BS' in the -middle. Also, despite slightly unrelated, each control character is -represented by a sequence of two or three graphic characters. The -newline character, however, keeps its functionality and is not -represented. - - Note that charset 'flat' is a terminal charset. We can convert _to_ -'flat', but not _from_ it. - - -File: recode.info, Node: IBM and MS, Next: CDC, Prev: ASCII misc, Up: Top - -9 Some IBM or Microsoft charsets -******************************** - -Recode provides various IBM or Microsoft code pages (*note Tabular::). -An easy way to find them all at once out of Recode itself is through the -command: - - recode -l | egrep -i '(CP|IBM)[0-9]' - -But also, see few special charsets presented in the incoming sections. - -* Menu: - -* EBCDIC:: EBCDIC codes -* IBM-PC:: IBM's PC code -* Icon-QNX:: Unisys' Icon code - - -File: recode.info, Node: EBCDIC, Next: IBM-PC, Prev: IBM and MS, Up: IBM and MS - -9.1 EBCDIC code -=============== - -This charset is the IBM's External Binary Coded Decimal for Interchange -Coding. This is an eight bits code. The following three variants were -implemented in Recode independently of RFC 1345: - -'EBCDIC' - In Recode, the 'us..ebcdic' conversion is identical to 'dd - conv=ebcdic' conversion, and Recode 'ebcdic..us' conversion is - identical to 'dd conv=ascii' conversion. This charset also - represents the way Control Data Corporation relates EBCDIC to - 8-bits ASCII. - -'EBCDIC-CCC' - In Recode, the 'us..ebcdic-ccc' or 'ebcdic-ccc..us' conversions - represent the way Concurrent Computer Corporation (formerly Perkin - Elmer) relates EBCDIC to 8-bits ASCII. - -'EBCDIC-IBM' - In Recode, the 'us..ebcdic-ibm' conversion is _almost_ identical to - the GNU 'dd conv=ibm' conversion. Given the exact 'dd conv=ibm' - conversion table, Recode once said: - - Codes 91 and 213 both recode to 173 - Codes 93 and 229 both recode to 189 - No character recodes to 74 - No character recodes to 106 - - So I arbitrarily chose to recode 213 by 74 and 229 by 106. This - makes the 'EBCDIC-IBM' recoding reversible, but this is not - necessarily the best correction. In any case, I think that GNU - 'dd' should be amended. 'dd' and Recode should ideally agree on - the same correction. So, this table might change once again. - - RFC 1345 brings into Recode 15 other EBCDIC charsets, and 21 other -charsets having EBCDIC in at least one of their alias names. You can -get a list of all these by executing: - - recode -l | grep -i ebcdic - - Note that Recode may convert a pure stream of EBCDIC characters, but -it does not know how to handle binary data between records which is -sometimes used to delimit them and build physical blocks. If end of -lines are not marked, fixed record size may produce something readable, -but 'VB' or 'VBS' blocking is likely to yield some garbage in the -converted results. - - -File: recode.info, Node: IBM-PC, Next: Icon-QNX, Prev: EBCDIC, Up: IBM and MS - -9.2 IBM's PC code -================= - -This charset is available in Recode under the name 'IBM-PC', with 'dos', -'MSDOS' and 'pc' as acceptable aliases. The shortest way of specifying -it in Recode is 'pc'. - - The charset is aimed towards a PC microcomputer from IBM or any -compatible. This is an eight-bit code. This charset is fairly old in -Recode, its tables were produced a long while ago by mere inspection of -a printed chart of the IBM-PC codes and glyph. - - It has 'CR-LF' as its implied surface. This means that, if the -original end of lines have to be preserved while going out of 'IBM-PC', -they should currently be added back through the usage of a surface on -the other charset, or better, just never removed. Here are examples for -both cases: - - recode pc..l2/cl < INPUT > OUTPUT - recode pc/..l2 < INPUT > OUTPUT - - RFC 1345 brings into Recode 44 'IBM' charsets or code pages, and also -8 other code pages. You can get a list of these all these by -executing:(1) - - recode -l | egrep -i '(CP|IBM)[0-9]' - -All charset or aliases beginning with letters 'CP' or 'IBM' also have -'CR-LF' as their implied surface. The same is true for a purely numeric -alias in the same family. For example, all of '819', 'CP819' and -'IBM819' imply 'CR-LF' as a surface. Note that 'ISO-8859-1' does _not_ -imply a surface, despite it shares the same tabular data as '819'. - - There are a few discrepancies between this 'IBM-PC' charset and the -very similar RFC 1345 charset 'ibm437', which have not been analysed -yet, so the charsets are being kept separate for now. This might change -in the future, and the 'IBM-PC' charset might disappear. Wizards would -be interested in comparing the output of these two commands: - - recode -vh IBM-PC..Latin-1 - recode -vh IBM437..Latin-1 - -The first command uses the charset prior to RFC 1345 introduction. Both -methods give different recodings. These differences are annoying, the -fuzziness will have to be explained and settle down one day. - - ---------- Footnotes ---------- - - (1) On DOS/Windows, stock shells do not know that apostrophes quote -special characters like '|', so one needs to use double quotes instead -of apostrophes. - - -File: recode.info, Node: Icon-QNX, Prev: IBM-PC, Up: IBM and MS - -9.3 Unisys' Icon code -===================== - -This charset is available in Recode under the name 'Icon-QNX', with -'QNX' as an acceptable alias. - - The file is using Unisys' Icon way to represent diacritics with code -25 escape sequences, under the system QNX. This is a seven-bit code, -even if eight-bit codes can flow through as part of IBM-PC charset. - - -File: recode.info, Node: CDC, Next: Micros, Prev: IBM and MS, Up: Top - -10 Charsets for CDC machines -**************************** - -What is now Recode evolved out, through many transformations really, -from a set of programs which were originally written in "COMPASS", -Control Data Corporation's assembler, with bits in FORTRAN, and later -rewritten in CDC 6000 Pascal. The CDC heritage shows by the fact some -old CDC charsets are still supported. - - The Recode author used to be familiar with CDC Scope-NOS/BE and -Kronos-NOS, and many CDC formats. Reading CDC tapes directly on other -machines is often a challenge, and Recode does not always solve it. It -helps having tapes created in coded mode instead of binary mode, and -using 'S' (Stranger) tapes instead of 'I' (Internal) tapes. ANSI labels -and multi-file tapes might be the source of trouble. There are ways to -handle a few Cyber Record Manager formats, but some of them might be -quite difficult to decode properly after the transfer is done. - - Recode is usable only for a small subset of NOS text formats, and -surely not with binary textual formats, like 'UPDATE' or 'MODIFY' -sources, for example. Recode is not especially suited for reading 8/12 -or 56/60 packing, yet this could easily arranged if there was a demand -for it. It does not have the ability to translate Display Code -directly, as the ASCII conversion implied by tape drivers or FTP does -the initial approximation. Recode can decode 6/12 caret notation over -Display Code already mapped to ASCII. - -* Menu: - -* Display Code:: Control Data's Display Code -* CDC-NOS:: ASCII 6/12 from NOS -* Bang-Bang:: ASCII "bang bang" - - -File: recode.info, Node: Display Code, Next: CDC-NOS, Prev: CDC, Up: CDC - -10.1 Control Data's Display Code -================================ - -This code is not available in Recode, but repeated here for reference. -This is a 6-bit code used on CDC mainframes. - - Octal display code to graphic Octal display code to octal ASCII - - 00 : 20 P 40 5 60 # 00 072 20 120 40 065 60 043 - 01 A 21 Q 41 6 61 [ 01 101 21 121 41 066 61 133 - 02 B 22 R 42 7 62 ] 02 102 22 122 42 067 62 135 - 03 C 23 S 43 8 63 % 03 103 23 123 43 070 63 045 - 04 D 24 T 44 9 64 " 04 104 24 124 44 071 64 042 - 05 E 25 U 45 + 65 _ 05 105 25 125 45 053 65 137 - 06 F 26 V 46 - 66 ! 06 106 26 126 46 055 66 041 - 07 G 27 W 47 * 67 & 07 107 27 127 47 052 67 046 - 10 H 30 X 50 / 70 ' 10 110 30 130 50 057 70 047 - 11 I 31 Y 51 ( 71 ? 11 111 31 131 51 050 71 077 - 12 J 32 Z 52 ) 72 < 12 112 32 132 52 051 72 074 - 13 K 33 0 53 $ 73 > 13 113 33 060 53 044 73 076 - 14 L 34 1 54 = 74 @ 14 114 34 061 54 075 74 100 - 15 M 35 2 55 75 \ 15 115 35 062 55 040 75 134 - 16 N 36 3 56 , 76 ^ 16 116 36 063 56 054 76 136 - 17 O 37 4 57 . 77 ; 17 117 37 064 57 056 77 073 - - In older times, ':' used octal 63, and octal 0 was not a character. -The table above shows the ASCII glyph interpretation of codes 60 to 77, -yet these 16 codes were once defined differently. - - There is no explicit end of line in Display Code, and the Cyber -Record Manager introduced many new ways to represent them, the -traditional end of lines being reachable by setting 'RT' to 'Z'. If -6-bit bytes in a file are sequentially counted from 1, a traditional end -of line does exist if bytes 10*N+9 and 10N+10 are both zero for a given -N, in which case these two bytes are not to be interpreted as '::'. -Also, up to 9 immediately preceeding zero bytes, going backward, are to -be considered as part of the end of line and not interpreted as ':'(1). - - ---------- Footnotes ---------- - - (1) This convention replaced an older one saying that up to 4 -immediately preceeding _pairs_ of zero bytes, going backward, are to be -considered as part of the end of line and not interpreted as '::'. - - -File: recode.info, Node: CDC-NOS, Next: Bang-Bang, Prev: Display Code, Up: CDC - -10.2 ASCII 6/12 from NOS -======================== - -This charset is available in Recode under the name 'CDC-NOS', with 'NOS' -as an acceptable alias. - - This is one of the charsets in use on CDC Cyber NOS systems to -represent ASCII, sometimes named "NOS 6/12" code for coding ASCII. This -code is also known as "caret ASCII". It is based on a six bits character -set in which small letters and control characters are coded using a '^' -escape and, sometimes, a '@' escape. - - The routines given here presume that the six bits code is already -expressed in ASCII by the communication channel, with embedded ASCII '^' -and '@' escapes. - - Here is a table showing which characters are being used to encode -each ASCII character. - - 000 ^5 020 ^# 040 060 0 100 @A 120 P 140 @G 160 ^P - 001 ^6 021 ^[ 041 ! 061 1 101 A 121 Q 141 ^A 161 ^Q - 002 ^7 022 ^] 042 " 062 2 102 B 122 R 142 ^B 162 ^R - 003 ^8 023 ^% 043 # 063 3 103 C 123 S 143 ^C 163 ^S - 004 ^9 024 ^" 044 $ 064 4 104 D 124 T 144 ^D 164 ^T - 005 ^+ 025 ^_ 045 % 065 5 105 E 125 U 145 ^E 165 ^U - 006 ^- 026 ^! 046 & 066 6 106 F 126 V 146 ^F 166 ^V - 007 ^* 027 ^& 047 ' 067 7 107 G 127 W 147 ^G 167 ^W - 010 ^/ 030 ^' 050 ( 070 8 110 H 130 X 150 ^H 170 ^X - 011 ^( 031 ^? 051 ) 071 9 111 I 131 Y 151 ^I 171 ^Y - 012 ^) 032 ^< 052 * 072 @D 112 J 132 Z 152 ^J 172 ^Z - 013 ^$ 033 ^> 053 + 073 ; 113 K 133 [ 153 ^K 173 ^0 - 014 ^= 034 ^@ 054 , 074 < 114 L 134 \ 154 ^L 174 ^1 - 015 ^ 035 ^\ 055 - 075 = 115 M 135 ] 155 ^M 175 ^2 - 016 ^, 036 ^^ 056 . 076 > 116 N 136 @B 156 ^N 176 ^3 - 017 ^. 037 ^; 057 / 077 ? 117 O 137 _ 157 ^O 177 ^4 - - -File: recode.info, Node: Bang-Bang, Prev: CDC-NOS, Up: CDC - -10.3 ASCII "bang bang" -====================== - -This charset is available in Recode under the name 'Bang-Bang'. - - This code, in use on Cybers at Universite' de Montre'al mainly, -served to code a lot of French texts. The original name of this charset -is "ASCII code' Display". This code is also known as "Bang-bang". It -is based on a six bits character set in which capitals, French -diacritics and a few others are coded using an '!' escape followed by a -single character, and control characters using a double '!' escape -followed by a single character. - - The routines given here presume that the six bits code is already -expressed in ASCII by the communication channel, with embedded ASCII '!' -escapes. - - Here is a table showing which characters are being used to encode -each ASCII character. - - 000 !!@ 020 !!P 040 060 0 100 @ 120 !P 140 !@ 160 P - 001 !!A 021 !!Q 041 !" 061 1 101 !A 121 !Q 141 A 161 Q - 002 !!B 022 !!R 042 " 062 2 102 !B 122 !R 142 B 162 R - 003 !!C 023 !!S 043 # 063 3 103 !C 123 !S 143 C 163 S - 004 !!D 024 !!T 044 $ 064 4 104 !D 124 !T 144 D 164 T - 005 !!E 025 !!U 045 % 065 5 105 !E 125 !U 145 E 165 U - 006 !!F 026 !!V 046 & 066 6 106 !F 126 !V 146 F 166 V - 007 !!G 027 !!W 047 ' 067 7 107 !G 127 !W 147 G 167 W - 010 !!H 030 !!X 050 ( 070 8 110 !H 130 !X 150 H 170 X - 011 !!I 031 !!Y 051 ) 071 9 111 !I 131 !Y 151 I 171 Y - 012 !!J 032 !!Z 052 * 072 : 112 !J 132 !Z 152 J 172 Z - 013 !!K 033 !![ 053 + 073 ; 113 !K 133 [ 153 K 173 ![ - 014 !!L 034 !!\ 054 , 074 < 114 !L 134 \ 154 L 174 !\ - 015 !!M 035 !!] 055 - 075 = 115 !M 135 ] 155 M 175 !] - 016 !!N 036 !!^ 056 . 076 > 116 !N 136 ^ 156 N 176 !^ - 017 !!O 037 !!_ 057 / 077 ? 117 !O 137 _ 157 O 177 !_ - - -File: recode.info, Node: Micros, Next: Miscellaneous, Prev: CDC, Up: Top - -11 Other micro-computer charsets -******************************** - -The 'NeXT' charset, which used to be especially provided in releases of -Recode before 3.5, has been integrated since as one RFC 1345 table. - -* Menu: - -* Apple-Mac:: Apple's Macintosh code -* AtariST:: Atari ST code - - -File: recode.info, Node: Apple-Mac, Next: AtariST, Prev: Micros, Up: Micros - -11.1 Apple's Macintosh code -=========================== - -This charset is available in Recode under the name 'Apple-Mac'. The -shortest way of specifying it in Recode is 'ap'. - - The charset is aimed towards a Macintosh micro-computer from Apple. -This is an eight bit code. The file is the data fork only. This -charset is fairly old in Recode, its tables were produced a long while -ago by mere inspection of a printed chart of the Macintosh codes and -glyph. - - It has 'CR' as its implied surface. This means that, if the original -end of lines have to be preserved while going out of 'Apple-Mac', they -should currently be added back through the usage of a surface on the -other charset, or better, just never removed. Here are examples for -both cases: - - recode ap..l2/cr < INPUT > OUTPUT - recode ap/..l2 < INPUT > OUTPUT - - RFC 1345 brings into Recode 2 other Macintosh charsets. You can -discover them by using 'grep' over the output of 'recode -l': - - recode -l | grep -i mac - -Charsets 'macintosh' and 'macintosh_ce', as well as their aliases 'mac' -and 'macce' also have 'CR' as their implied surface. - - There are a few discrepancies between the 'Apple-Mac' charset and the -very similar RFC 1345 charset 'macintosh', which have not been analysed -yet, so the charsets are being kept separate for now. This might change -in the future, and the 'Apple-Mac' charset might disappear. Wizards -would be interested in comparing the output of these two commands: - - recode -vh Apple-Mac..Latin-1 - recode -vh macintosh..Latin-1 - -The first command use the charset prior to RFC 1345 introduction. Both -methods give different recodings. These differences are annoying, the -fuzziness will have to be explained and settle down one day. - - As a side note, some people ask if there is a Macintosh port of -Recode. I'm not aware of any. I presume that if the tool fills a need -for Macintosh users, someone will port it one of these days? - - -File: recode.info, Node: AtariST, Prev: Apple-Mac, Up: Micros - -11.2 Atari ST code -================== - -This charset is available in Recode under the name 'AtariST'. - - This is the character set used on the Atari ST/TT/Falcon. This is -similar to 'IBM-PC', but differs in some details: it includes some more -accented characters, the graphic characters are mostly replaced by -Hebrew characters, and there is a true German 'sharp s' different from -Greek 'beta'. - - About the end-of-line conversions: the canonical end-of-line on the -Atari is '\r\n', but unlike 'IBM-PC', the OS makes no difference between -text and binary input/output; it is up to the application how to -interpret the data. In fact, most of the libraries that come with -compilers can grok both '\r\n' and '\n' as end of lines. Many of the -users who also have access to Unix systems prefer '\n' to ease porting -Unix utilities. So, for easing reversibility, Recode tries to let '\r' -undisturbed through recodings. - - -File: recode.info, Node: Miscellaneous, Next: Surfaces, Prev: Micros, Up: Top - -12 Various other charsets -************************* - -A few charsets do not fit well in the previous chapters, and are grouped -here. Some of them were added to Recode long ago, at a time this tool -was mainly meant for handling texts written in French. The bias still -shows when these charsets are linked to 'Latin-1' instead of the wider -'Unicode', but this is being corrected as Recode evolves. - -* Menu: - -* HTML:: World Wide Web representations -* LaTeX:: LaTeX macro calls -* Texinfo:: GNU project documentation files -* Vietnamese:: Vietnamese charsets -* African:: African charsets -* Others:: Cyrillic and other charsets -* Java:: Java code -* Texte:: Easy French conventions -* Mule:: Mule as a multiplexed charset - - -File: recode.info, Node: HTML, Next: LaTeX, Prev: Miscellaneous, Up: Miscellaneous - -12.1 World Wide Web representations -=================================== - -Character entities have been introduced by SGML and made widely popular -through HTML, the markup language in use for the World Wide Web, or Web -or WWW for short. For representing _unusual_ characters, HTML texts use -special sequences, beginning with an ampersand '&' and ending with a -semicolon ';'. The sequence may itself start with a number sigh '#' and -be followed by digits, so forming a "numeric character reference", or -else be an alphabetic identifier, so forming a "character entity -reference". - - The HTML standards have been revised into different HTML levels over -time, and the list of allowable character entities differ in them. The -later XML, meant to simplify many things, has an option -('standalone=yes') which much restricts that list. The Recode library -is able to convert character references between their mnemonic form and -their numeric form, depending on aimed HTML standard level. It also -can, of course, convert between HTML and various other charsets. - - Here is a list of those HTML variants which Recode supports. Some -notes have been provided by Franc,ois Yergeau . - -'XML-standalone' - This charset is available in Recode under the name - 'XML-standalone', with 'h0' as an acceptable alias. It is - documented in section 4.1 of . It - only knows '&', '>', '<', '"' and '''. - -'HTML_1.1' - This charset is available in Recode under the name 'HTML_1.1', with - 'h1' as an acceptable alias. HTML 1.0 was never really documented. - -'HTML_2.0' - This charset is available in Recode under the name 'HTML_2.0', and - has 'RFC1866', '1866' and 'h2' for aliases. HTML 2.0 entities are - listed in RFC 1866. Basically, there is an entity for each - _alphabetical_ character in the right part of ISO 8859-1. In - addition, there are four entities for syntax-significant ASCII - characters: '&', '>', '<' and '"'. - -'HTML-i18n' - This charset is available in Recode under the name 'HTML-i18n', and - has 'RFC2070' and '2070' for aliases. RFC 2070 added entities to - cover the whole right part of ISO 8859-1. The list is conveniently - accessible at - . In - addition, four i18n-related entities were added: '‌' - ('‌'), '‍' ('‍'), '‎' ('‎') and '‏' - ('‏'). - -'HTML_3.2' - This charset is available in Recode under the name 'HTML_3.2', with - 'h3' as an acceptable alias. HTML 3.2 - (http://www.w3.org/TR/REC-html32.html) took up the full Latin-1 - list but not the i18n-related entities from RFC 2070. - -'HTML_4.0' - This charset is available in Recode under the name 'HTML_4.0', and - has 'h4' and 'h' for aliases. Beware that the particular alias 'h' - is not _tied_ to HTML 4.0, but to the highest HTML level supported - by Recode; so it might later represent HTML level 5 if this is ever - created. HTML 4.0 (http://www.w3.org/TR/REC-html40/) has the whole - Latin-1 list, a set of entities for symbols, mathematical symbols, - and Greek letters, and another set for markup-significant and - internationalization characters comprising the 4 ASCII entities, - the 4 i18n-related from RFC 2070 plus some more. See - . - - Printable characters from Latin-1 may be used directly in an HTML -text. However, partly because people have deficient keyboards, partly -because people want to transmit HTML texts over non 8-bit clean channels -while not using MIME, it is common (yet debatable) to use character -entity references even for Latin-1 characters, when they fall outside -ASCII (that is, when they have the 8th bit set). - - When you recode from another charset to 'HTML', beware that all -occurrences of double quotes, ampersands, and left or right angle -brackets are translated into special sequences. However, in practice, -people often use ampersands and angle brackets in the other charset for -introducing HTML commands, compromising it: it is not pure HTML, not it -is pure other charset. These particular translations can be rather -inconvenient, they may be specifically inhibited through the command -option '-d' (*note Mixed::). - - Codes not having a mnemonic entity are output by Recode using the -'&#NNN;' notation, where NNN is a decimal representation of the UCS code -value. When there is an entity name for a character, it is always -preferred over a numeric character reference. ASCII printable -characters are always generated directly. So is the newline. While -reading HTML, Recode supports numeric character reference as alternate -writings, even when written as hexadecimal numbers, as in '�'. -This is documented in: - - http://www.w3.org/TR/REC-html40/intro/sgmltut.html#h-3.2.3 - - When Recode translates to HTML, the translation occurs according to -the HTML level as selected by the goal charset. When translating _from_ -HTML, Recode not only accepts the character entity references known at -that level, but also those of all other levels, as well as a few -alternative special sequences, to be forgiving to files using other HTML -standards. - - Recode can be used to _normalise_ an HTML file using oldish -conventions. For example, it accepts '&AE;', as this once was a valid -writing, somewhere. However, it should always produce 'Æ' instead -of '&AE;'. Yet, this is not completely true. If one does: - - recode h3..h3 < INPUT - -the operation will be optimised into a mere copy, and you can get '&AE;' -this way, if you had some in your input file. But if you explicitly -defeat the optimisation, like this maybe: - - recode h3..u2,u2..h3 < INPUT - -then '&AE;' should be normalised into 'Æ' by the operation. - - -File: recode.info, Node: LaTeX, Next: Texinfo, Prev: HTML, Up: Miscellaneous - -12.2 LaTeX macro calls -====================== - -This charset is available in Recode under the name 'LaTeX' and has -'ltex' as an alias. It is used for ASCII files coded to be read by -LaTeX or, in certain cases, by TeX. - - Whenever you recode from another charset to 'LaTeX', beware that all -occurrences of backslashes '\' are translated into the string -'\backslash{}'. However, in practice, people often use backslashes in -the other charset for introducing TeX commands, compromising it: it is -not pure TeX, nor it is pure other charset. This translation of -backslashes into '\backslash{}' can be rather inconvenient, it may be -inhibited through the command option '-d' (*note Mixed::). - - -File: recode.info, Node: Texinfo, Next: Vietnamese, Prev: LaTeX, Up: Miscellaneous - -12.3 GNU project documentation files -==================================== - -This charset is available in Recode under the name 'Texinfo' and has -'texi' and 'ti' for aliases. It is used by the GNU project for its -documentation. Texinfo files may be converted into Info files by the -'makeinfo' program and into nice printed manuals by the TeX system. - - Even if Recode may transform other charsets to Texinfo, it may not -read Texinfo files yet. In these times, usages are also changing -between versions of Texinfo, and Recode only partially succeeds in -correctly following these changes. So, for now, Texinfo support in -Recode should be considered as work still in progress (!). - - -File: recode.info, Node: Vietnamese, Next: African, Prev: Texinfo, Up: Miscellaneous - -12.4 Vietnamese charsets -======================== - -We are currently experimenting the implementation, in Recode, of a few -character sets and transliterated forms to handle the Vietnamese -language. They are quite briefly summarised, here. - -'TCVN' - The TCVN charset has an incomplete name. It might be one of the - three charset 'VN1', 'VN2' or 'VN3'. Yes 'VN2' might be a second - version of 'VISCII'. To be clarified. - -'VISCII' - This is an 8-bit character set which seems to be rather popular for - writing Vietnamese. - -'VPS' - This is an 8-bit character set for Vietnamese. No much reference. - -'VIQR' - The VIQR convention is a 7-bit, 'ASCII' transliteration for - Vietnamese. - -'VNI' - The VNI convention is a 8-bit, 'Latin-1' transliteration for - Vietnamese. - - Still lacking for Vietnamese in Recode, are the charsets 'CP1129' and -'CP1258'. - - -File: recode.info, Node: African, Next: Others, Prev: Vietnamese, Up: Miscellaneous - -12.5 African charsets -===================== - -Some African character sets are available for a few languages, when -these are heavily used in countries where French is also currently -spoken. - - One African charset is usable for Bambara, Ewondo and Fulfude, as -well as for French. This charset is available in Recode under the name -'AFRFUL-102-BPI_OCIL'. Accepted aliases are 'bambara', 'bra', 'ewondo' -and 'fulfude'. Transliterated forms of the same are available under the -name 'AFRFUL-103-BPI_OCIL'. Accepted aliases are 't-bambara', 't-bra', -'t-ewondo' and 't-fulfude'. - - Another African charset is usable for Lingala, Sango and Wolof, as -well as for French. This charset is available in Recode under the name -'AFRLIN-104-BPI_OCIL'. Accepted aliases are 'lingala', 'lin', 'sango' -and 'wolof'. Transliterated forms of the same are available under the -name 'AFRLIN-105-BPI_OCIL'. Accepted aliases are 't-lingala', 't-lin', -'t-sango' and 't-wolof'. - - To ease exchange with 'ISO-8859-1', there is a charset conveying -transliterated forms for Latin-1 in a way which is compatible with the -other African charsets in this series. This charset is available in -Recode under the name 'AFRL1-101-BPI_OCIL'. Accepted aliases are -'t-fra' and 't-francais'. - - -File: recode.info, Node: Others, Next: Java, Prev: African, Up: Miscellaneous - -12.6 Cyrillic and other charsets -================================ - -The following Cyrillic charsets are already available in Recode through RFC 1345 -tables: 'CP1251' with aliases '1251', ' ms-cyrl' and 'windows-1251'; -'CSN_369103' with aliases 'ISO-IR-139' and 'KOI8_L2'; 'ECMA-cyrillic' -with aliases 'ECMA-113', 'ECMA-113:1986' and 'iso-ir-111', 'IBM880' with -aliases '880', 'CP880' and 'EBCDIC-Cyrillic'; 'INIS-cyrillic' with alias -'iso-ir-51'; 'ISO-8859-5' with aliases 'cyrillic', ' ISO-8859-5:1988' -and 'iso-ir-144'; 'KOI-7'; 'KOI-8' with alias 'GOST_19768-74'; 'KOI8-R'; -'KOI8-RU' and finally 'KOI8-U'. - - There seems to remain some confusion in Roman charsets for Cyrillic -languages, and because a few users requested it repeatedly, Recode now -offers special services in that area. Consider these charsets as -experimental and debatable, as the extraneous tables describing them are -still a bit fuzzy or non-standard. Hopefully, in the long run, these -charsets will be covered in Keld Simonsen's works to the satisfaction of -everybody, and this section will merely disappear. - -'KEYBCS2' - This charset is available under the name 'KEYBCS2', with - 'Kamenicky' as an accepted alias. - -'CORK' - This charset is available under the name 'CORK', with 'T1' as an - accepted alias. - -'KOI-8_CS2' - This charset is available under the name 'KOI-8_CS2'. - - -File: recode.info, Node: Java, Next: Texte, Prev: Others, Up: Miscellaneous - -12.7 Java code -============== - -This charset is available under the name 'Java', and should be -considered experimental for now. - - ASCII characters represent themselves. Character outside ASCII are -coded as '\uNNNN', where 'NNNN' stands for the four-digit hexadecimal -value of the character within Unicode. The canonical representation -uses lower case for the 'u' prefix and for the hexadecimal digits, yet -Recode also accepts upper case. - - There is currently no attempt to distinguish Java comments from Java -strings while the recoding goes, and this may be corrected some day. - - -File: recode.info, Node: Texte, Next: Mule, Prev: Java, Up: Miscellaneous - -12.8 Easy French conventions -============================ - -This charset is available in Recode under the name 'Texte' and has -'txte' for an alias. It is a seven bits code, identical to 'ASCII-BS', -save for French diacritics which are noted using a slightly different -convention. - - At text entry time, these conventions provide a little speed up. At -read time, they slightly improve the readability over a few alternate -ways of coding diacritics. Of course, it would better to have a -specialised keyboard to make direct eight bits entries and fonts for -immediately displaying eight bit ISO Latin-1 characters. But not -everybody is so fortunate. In a few mailing environments, and sadly -enough, it still happens that the eight bit is often willing-fully -destroyed. - - Easy French has been in use in France for a while. I only slightly -adapted it (the diaeresis option) to make it more comfortable to several -usages in Que'bec originating from Universite' de Montre'al. In fact, -the main problem for me was not to necessarily to invent Easy French, -but to recognise the "best" convention to use, (best is not being -defined, here) and to try to solve the main pitfalls associated with the -selected convention. Shortly said, we have: - -'e'' - for 'e' (and some other vowels) with an acute accent, -'e`' - for 'e' (and some other vowels) with a grave accent, -'e^' - for 'e' (and some other vowels) with a circumflex accent, -'e"' - for 'e' (and some other vowels) with a diaeresis, -'c,' - for 'c' with a cedilla. - -There is no attempt at expressing the 'ae' and 'oe' diphthongs. French -also uses tildes over 'n' and 'a', but seldomly, and this is not -represented either. In some countries, ':' is used instead of '"' to -mark diaeresis. Recode supports only one convention per call, depending -on the '-c' option of the 'recode' command. French quotes (sometimes -called "angle quotes") are noted the same way English quotes are noted -in TeX, _id est_ by '``' and ''''. No effort has been put to preserve -Latin ligatures ('ae', 'oe') which are representable in several other -charsets. So, these ligatures may be lost through Easy French -conventions. - - The convention is prone to losing information, because the diacritic -meaning overloads some characters that already have other uses. To -alleviate this, some knowledge of the French language is boosted into -the recognition routines. So, the following subtleties are -systematically obeyed by the various recognisers. - - 1. A comma which follows a 'c' is interpreted as a cedilla only if it - is followed by one of the vowels 'a', 'o' or 'u'. - - 2. A single quote which follows a 'e' does not necessarily means an - acute accent if it is followed by a single other one. For example: - - 'e'' - will give an 'e' with an acute accent. - 'e''' - will give a simple 'e', with a closing quotation mark. - 'e'''' - will give an 'e' with an acute accent, followed by a closing - quotation mark. - - There is a problem induced by this convention if there are English - quotations with a French text. In sentences like: - - There's a meeting at Archie's restaurant. - - the single quotes will be mistaken twice for acute accents. So - English contractions and suffix possessives could be mangled. - - 3. A double quote or colon, depending on '-c' option, which follows a - vowel is interpreted as diaeresis only if it is followed by another - letter. But there are in French several words that _end_ with a - diaeresis, and the Recode library is aware of them. There are - words ending in "igue", either feminine words without a relative - masculine (besaigue" and cigue"), or feminine words with a relative - masculine(1) (aigue", ambigue", contigue", exigue", subaigue" and - suraigue"). There are also words not ending in "igue", but - instead, either ending by "i"(2) (ai", congai", goi", hai"kai", - inoui", sai", samurai", thai" and tokai"), ending by "e" (canoe") - or ending by "u"(3) (Esau"). - - Just to complete this topic, note that it would be wrong to make a - rule for all words ending in "igue" as needing a diaerisis, as - there are counter-examples (becfigue, be`sigue, bigue, bordigue, - bourdigue, brigue, contre-digue, digue, d'intrigue, fatigue, figue, - garrigue, gigue, igue, intrigue, ligue, prodigue, sarigue and - zigue). - - ---------- Footnotes ---------- - - (1) There are supposed to be seven words in this case. So, one is -missing. - - (2) Look at one of the following sentences (the second has to be -interpreted with the '-c' option): - - "Ai"e! Voici le proble`me que j'ai" - Ai:e! Voici le proble`me que j'ai: - - There is an ambiguity between an ai", the small animal, and the -indicative future of _avoir_ (first person singular), when followed by -what could be a diaeresis mark. Hopefully, the case is solved by the -fact that an apostrophe always precedes the verb and almost never the -animal. - - (3) I did not pay attention to proper nouns, but this one showed up -as being fairly evident. - - -File: recode.info, Node: Mule, Prev: Texte, Up: Miscellaneous - -12.9 Mule as a multiplexed charset -================================== - -This version of Recode barely starts supporting multiplexed or -super-charsets, that is, those encoding methods by which a single text -stream may contain a combination of more than one constituent charset. -The only multiplexed charset in Recode is 'Mule', and even then, it is -only very partially implemented: the only correspondence available is -with 'Latin-1'. The author fastly implemented this only because he -needed this for himself. However, it is intended that Mule support to -become more real in subsequent releases of Recode. - - Multiplexed charsets are not to be confused with mixed charset texts -(*note Mixed::). For mixed charset input, the rules allowing to -distinguish which charset is current, at any given place, are kind of -informal, and driven from the semantics of what the file contains. On -the other side, multiplexed charsets are _designed_ to be interpreted -fairly precisely, and quite independently of any informational context. - - The spelling 'Mule' originally stands for '_mul_tilingual -_e_nhancement to GNU Emacs', it is the result of a collective effort -orchestrated by Handa Ken'ichi since 1993. When 'Mule' got rewritten in -the main development stream of GNU Emacs 20, the FSF renamed it 'MULE', -meaning '_mul_tilingual _e_nvironment in GNU Emacs'. Even if the -charset 'Mule' is meant to stay internal to GNU Emacs, it sometimes -breaks loose in external files, and as a consequence, a recoding tool is -sometimes needed. Within Emacs, 'Mule' comes with 'Leim', which stands -for '_l_ibraries of _e_macs _i_nput _m_ethods'. One of these libraries -is named 'quail'(1). - - ---------- Footnotes ---------- - - (1) Usually, quail means quail egg in Japanese, while egg alone is -usually chicken egg. Both quail egg and chicken egg are popular food in -Japan. The 'quail' input system has been named because it is smaller -that the previous 'EGG' system. As for 'EGG', it is the translation of -'TAMAGO'. This word comes from the Japanese sentence '_ta_kusan -_ma_tasete _go_mennasai', meaning 'sorry to have let you wait so long'. -Of course, the publication of 'EGG' has been delayed many times... -(Story by Takahashi Naoto) - - -File: recode.info, Node: Surfaces, Next: Internals, Prev: Miscellaneous, Up: Top - -13 All about surfaces -********************* - -A "surface" is the varnish added over a charset so it fits in actual -bits and bytes. How end of lines are exactly encoded is not really -pertinent to the charset, and so, there is surface for end of lines. -'Base64' is also a surface, as we may encode any charset in it. Other -examples would DES enciphering, or gzip compression (even if Recode does -not offer them currently): these are ways to give a real life to -theoretical charsets. - - The "trivial surface" consists of using a fixed number of bits (often -eight) for each character, the bits together hold the integer value of -the index for the character in its charset table. There are many kinds -of surfaces, beyond the trivial one, all having the purpose of -increasing selected qualities for the storage or transmission. For -example, surfaces might increase the resistance to channel limits -('Base64'), the transmission speed ('gzip'), the information privacy -('DES'), the conformance to operating system conventions ('CR-LF'), the -blocking into records ('VB'), and surely other things as well(1). Many -surfaces may be applied to a stream of characters from a charset, the -order of application of surfaces is important, and surfaces should be -removed in the reverse order of their application. - - Even if surfaces may generally be applied to various charsets, some -surfaces were specifically designed for a particular charset, and would -not make much sense if applied to other charsets. In such cases, these -conceptual surfaces have been implemented as Recode charsets, instead of -as surfaces. This choice yields to cleaner syntax and usage. *Note -Universal::. - - Surfaces are implemented within Recode as special charsets which may -only transform to or from the 'data' or 'tree' special charsets. Clever -users may use this knowledge for writing surface names in requests -exactly as if they were pure charsets, when the only need is to change -surfaces without any kind of recoding between real charsets. In such -contexts, either 'data' or 'tree' may also be used as if it were some -kind of generic, anonymous charset: the request 'data..SURFACE' merely -adds the given SURFACE, while the request 'SURFACE..data' removes it. - - The Recode library distinguishes between mere data surfaces, and -structural surfaces, also called tree surfaces for short. Structural -surfaces might allow, in the long run, transformations between a few -specialised representations of structural information like MIME parts, -Perl or Python initialisers, LISP S-expressions, XML, Emacs outlines, -etc. - - We are still experimenting with surfaces in Recode. The concept -opens the doors to many avenues; it is not clear yet which ones are -worth pursuing, and which should be abandoned. In particular, -implementation of structural surfaces is barely starting, there is not -even a commitment that tree surfaces will stay in Recode, if they do -prove to be more cumbersome than useful. This chapter presents all -surfaces currently available. - -* Menu: - -* Permutations:: Permuting groups of bytes -* End lines:: Representation for end of lines -* MIME:: MIME contents encodings -* Dump:: Interpreted character dumps -* Test:: Artificial data for testing - - ---------- Footnotes ---------- - - (1) These are mere examples to explain the concept, Recode only has -'Base64' and 'CR-LF', actually. - - -File: recode.info, Node: Permutations, Next: End lines, Prev: Surfaces, Up: Surfaces - -13.1 Permuting groups of bytes -============================== - -A permutation is a surface transformation which reorders groups of -eight-bit bytes. A _21_ permutation exchanges pairs of successive -bytes. If the text contains an odd number of bytes, the last byte is -merely copied. An _4321_ permutation inverts the order of quadruples of -bytes. If the text does not contains a multiple of four bytes, the -remaining bytes are nevertheless permuted as _321_ if there are three -bytes, _21_ if there are two bytes, or merely copied otherwise. - -'21' - This surface is available in Recode under the name '21-Permutation' - and has 'swabytes' for an alias. - -'4321' - This surface is available in Recode under the name - '4321-Permutation'. - - -File: recode.info, Node: End lines, Next: MIME, Prev: Permutations, Up: Surfaces - -13.2 Representation for end of lines -==================================== - -The same charset might slightly differ, from one system to another, for -the single fact that end of lines are not represented identically on all -systems. The representation for an end of line within Recode is the -'ASCII' or 'UCS' code with value 10, or 'LF'. Other conventions for -representing end of lines are available through surfaces. - -'CR' - This convention is popular on Apple's Macintosh machines. When - this surface is applied, each line is terminated by 'CR', which has - 'ASCII' value 13. Unless the library is operating in strict mode, - adding or removing the surface will in fact _exchange_ 'CR' and - 'LF', for better reversibility. However, in strict mode, the - exchange does not happen, any 'CR' will be copied verbatim while - applying the surface, and any 'LF' will be copied verbatim while - removing it. - - This surface is available in Recode under the name 'CR', it does - not have any aliases. This is the implied surface for the Apple - Macintosh related charsets. - -'CR-LF' - This convention is popular on Microsoft systems running on IBM PCs - and compatible. When this surface is applied, each line is - terminated by a sequence of two characters: one 'CR' followed by - one 'LF', in that order. - - For compatibility with oldish MS-DOS systems, removing a 'CR-LF' - surface will discard the first encountered 'C-z', which has 'ASCII' - value 26, and everything following it in the text. Adding this - surface will not, however, append a 'C-z' to the result. - - This surface is available in Recode under the name 'CR-LF' and has - 'cl' for an alias. This is the implied surface for the IBM or - Microsoft related charsets or code pages. - - Some other charsets might have their own representation for an end of -line, which is different from 'LF'. For example, this is the case of -various 'EBCDIC' charsets, or 'Icon-QNX'. The recoding of end of lines -is intimately tied into such charsets, it is not available separately as -surfaces. - - -File: recode.info, Node: MIME, Next: Dump, Prev: End lines, Up: Surfaces - -13.3 MIME contents encodings -============================ - -RFC 2045 defines two 7-bit surfaces, meant to prepare 8-bit messages for -transmission. Base64 is especially usable for binary entities, while -Quoted-Printable is especially usable for text entities, in those case -the lower 128 characters of the underlying charset coincide with ASCII. - -'Base64' - This surface is available in Recode under the name 'Base64', with - 'b64' and '64' as acceptable aliases. - -'Quoted-Printable' - This surface is available in Recode under the name - 'Quoted-Printable', with 'quote-printable' and 'QP' as acceptable - aliases. - - Note that 'UTF-7', which may be also considered as a MIME surface, is -provided as a genuine charset instead, as it necessary relates to -'UCS-2' and nothing else. *Note UTF-7::. - - A little historical note, also showing the three levels of acceptance -of Internet standards. MIME changed from a "Proposed Standard" -(RFC 1341-1344, 1992) to a "Draft Standard" (RFC 1521-1523) in 1993, and -was _recycled_ as a "Draft Standard" in 1996-11. It is not yet a "Full -Standard". - - -File: recode.info, Node: Dump, Next: Test, Prev: MIME, Up: Surfaces - -13.4 Interpreted character dumps -================================ - -Dumps are surfaces meant to express, in ways which are a bit more -readable, the bit patterns used to represent characters. They allow the -inspection or debugging of character streams, but also, they may assist -a bit the production of C source code which, once compiled, would hold -in memory a copy of the original coding. However, Recode does not -attempt, in any way, to produce complete C source files in dumps. User -hand editing or 'Makefile' trickery is still needed for adding missing -lines. Dumps may be given in decimal, hexadecimal and octal, and be -based over chunks of either one, two or four eight-bit bytes. -Formatting has been chosen to respect the C language syntax for number -constants, with commas and newlines inserted appropriately. - - However, when dumping two or four byte chunks, the last chunk may be -incomplete. This is observable through the usage of narrower expression -for that last chunk only. Such a shorter chunk would not be compiled -properly within a C initialiser, as all members of an array share a -single type, and so, have identical sizes. - -'Octal-1' - This surface corresponds to an octal expression of each input byte. - - It is available in Recode under the name 'Octal-1', with 'o1' and - 'o' as acceptable aliases. - -'Octal-2' - This surface corresponds to an octal expression of each pair of - input bytes, except for the last pair, which may be short. - - It is available in Recode under the name 'Octal-2' and has 'o2' for - an alias. - -'Octal-4' - This surface corresponds to an octal expression of each quadruple - of input bytes, except for the last quadruple, which may be short. - - It is available in Recode under the name 'Octal-4' and has 'o4' for - an alias. - -'Decimal-1' - This surface corresponds to an decimal expression of each input - byte. - - It is available in Recode under the name 'Decimal-1', with 'd1' and - 'd' as acceptable aliases. - -'Decimal-2' - This surface corresponds to an decimal expression of each pair of - input bytes, except for the last pair, which may be short. - - It is available in Recode under the name 'Decimal-2' and has 'd2' - for an alias. - -'Decimal-4' - This surface corresponds to an decimal expression of each quadruple - of input bytes, except for the last quadruple, which may be short. - - It is available in Recode under the name 'Decimal-4' and has 'd4' - for an alias. - -'Hexadecimal-1' - This surface corresponds to an hexadecimal expression of each input - byte. - - It is available in Recode under the name 'Hexadecimal-1', with 'x1' - and 'x' as acceptable aliases. - -'Hexadecimal-2' - This surface corresponds to an hexadecimal expression of each pair - of input bytes, except for the last pair, which may be short. - - It is available in Recode under the name 'Hexadecimal-2', with 'x2' - for an alias. - -'Hexadecimal-4' - This surface corresponds to an hexadecimal expression of each - quadruple of input bytes, except for the last quadruple, which may - be short. - - It is available in Recode under the name 'Hexadecimal-4', with 'x4' - for an alias. - - When removing a dump surface, that is, when reading a dump results -back into a sequence of bytes, the narrower expression for a short last -chunk is recognised, so dumping is a fully reversible operation. -However, in case you want to produce dumps by other means than through -Recode, beware that for decimal dumps, the library has to rely on the -number of spaces to establish the original byte size of the chunk. - - Although the library might report reversibility errors, removing a -dump surface is a rather forgiving process: one may mix bases, group a -variable number of data per source line, or use shorter chunks in places -other than at the far end. Also, source lines not beginning with a -number are skipped. So, Recode should often be able to read a whole C -header file, wrapping the results of a previous dump, and regenerate the -original byte string. - - -File: recode.info, Node: Test, Prev: Dump, Up: Surfaces - -13.5 Artificial data for testing -================================ - -A few pseudo-surfaces exist to generate debugging data out of thin air. -These surfaces are only meant for the expert Recode user, and are only -useful in a few contexts, like for generating binary permutations from -the recoding or acting on them. - - Debugging surfaces, _when removed_, insert their generated data at -the beginning of the output stream, and copy all the input stream after -the generated data, unchanged. This strange removal constraint comes -from the fact that debugging surfaces are usually specified in the -_before_ position instead of the _after_ position within a request. -With debugging surfaces, one often recodes file '/dev/null' in filter -mode. Specifying many debugging surfaces at once has an accumulation -effect on the output, and since surfaces are removed from right to left, -each generating its data at the beginning of previous output, the net -effect is an _impression_ that debugging surfaces are generated from -left to right, each appending to the result of the previous. In any -case, any real input data gets appended after what was generated. - -'test7' - When removed, this surface produces 128 single bytes, the first - having value 0, the second having value 1, and so forth until all - 128 values have been generated. - -'test8' - When removed, this surface produces 256 single bytes, the first - having value 0, the second having value 1, and so forth until all - 256 values have been generated. - -'test15' - When removed, this surface produces 64509 double bytes, the first - having value 0, the second having value 1, and so forth until all - values have been generated, but excluding risky 'UCS-2' values, - like all codes from the surrogate 'UCS-2' area (for 'UTF-16'), the - byte order mark, and values known as invalid 'UCS-2'. - -'test16' - When removed, this surface produces 65536 double bytes, the first - having value 0, the second having value 1, and so forth until all - 65536 values have been generated. - - As an example, the command 'recode l5/test8..dump < /dev/null' is a -convoluted way to produce an output similar to 'recode -lf l5'. It says -to generate all possible 256 bytes and interpret them as 'ISO-8859-9' -codes, while converting them to 'UCS-2'. Resulting 'UCS-2' characters -are dumped one per line, accompanied with their explicative name. - - -File: recode.info, Node: Internals, Next: Concept Index, Prev: Surfaces, Up: Top - -14 Internal aspects -******************* - -The incoming explanations of the internals of Recode should help people -who want to dive into Recode sources for adding new charsets. Adding -new charsets does not require much knowledge about the overall -organisation of Recode. You can rather concentrate of your new charset, -letting the remainder of the Recode mechanics take care of -interconnecting it with all others charsets. - - If you intend to play seriously at modifying Recode, beware that you -may need some other GNU tools which were not required when you first -installed Recode. If you modify or create any '.l' file, then you need -Flex, and some better 'awk' like 'mawk', GNU 'awk', or 'nawk'. If you -modify the documentation (and you should!), you need 'makeinfo'. If you -are really audacious, you may also want Perl for modifying tabular -processing, then 'm4', Autoconf, Automake and 'libtool' for adjusting -configuration matters. - -* Menu: - -* Main flow:: Overall organisation -* New charsets:: Adding new charsets -* New surfaces:: Adding new surfaces -* Design:: Comments on the library design - - -File: recode.info, Node: Main flow, Next: New charsets, Prev: Internals, Up: Internals - -14.1 Overall organisation -========================= - -The Recode mechanics slowly evolved for many years, and it would be -tedious to explain all problems I met and mistakes I did all along, -yielding the current behaviour. Surely, one of the key choices was to -stop trying to do all conversions in memory, one line or one buffer at a -time. It has been fruitful to use the character stream paradigm, and -the elementary recoding steps now convert a whole stream to another. -Most of the control complexity in Recode exists so that each elementary -recoding step stays simple, making easier to add new ones. The whole -point of Recode, as I see it, is providing a comfortable nest for -growing new charset conversions. - - The main Recode driver constructs, while initialising all conversion -modules, a table giving all the conversion routines available ("single -step"s) and for each, the starting charset and the ending charset. If -we consider these charsets as being the nodes of a directed graph, each -single step may be considered as oriented arc from one node to the -other. A cost is attributed to each arc: for example, a high penalty is -given to single steps which are prone to losing characters, a lower -penalty is given to those which need studying more than one input -character for producing an output character, etc. - - Given a starting code and a goal code, Recode computes the most -economical route through the elementary recodings, that is, the best -sequence of conversions that will transform the input charset into the -final charset. To speed up execution, Recode looks for subsequences of -conversions which are simple enough to be merged, and then dynamically -creates new single steps to represent these mergings. - - A "double step" in Recode is a special concept representing a -sequence of two single steps, the output of the first single step being -the special charset 'UCS-2', the input of the second single step being -also 'UCS-2'. Special Recode machinery dynamically produces efficient, -reversible, merge-able single steps out of these double steps. - - I made some statistics about how many internal recoding steps are -required between any two charsets chosen at random. The initial -recoding layout, before optimisation, always uses between 1 and 5 steps. -Optimisation could sometimes produce mere copies, which are counted as -no steps at all. In other cases, optimisation is unable to save any -step. The number of steps after optimisation is currently between 0 and -5 steps. Of course, the _expected_ number of steps is affected by -optimisation: it drops from 2.8 to 1.8. This means that Recode uses a -theoretical average of a bit less than one step per recoding job. This -looks good. This was computed using reversible recodings. In strict -mode, optimisation might be defeated somewhat. Number of steps run -between 1 and 6, both before and after optimisation, and the expected -number of steps decreases by a lesser amount, going from 2.2 to 1.3. -This is still manageable. - - -File: recode.info, Node: New charsets, Next: New surfaces, Prev: Main flow, Up: Internals - -14.2 Adding new charsets -======================== - -The main part of Recode is written in C, as are most single steps. A -few single steps need to recognise sequences of multiple characters, -they are often better written in Flex. It is easy for a programmer to -add a new charset to Recode. All it requires is making a few functions -kept in a single '.c' file, adjusting 'Makefile.am' and remaking Recode. - - One of the function should convert from any previous charset to the -new one. Any previous charset will do, but try to select it so you will -not lose too much information while converting. The other function -should convert from the new charset to any older one. You do not have -to select the same old charset than what you selected for the previous -routine. Once again, select any charset for which you will not lose too -much information while converting. - - If, for any of these two functions, you have to read multiple bytes -of the old charset before recognising the character to produce, you -might prefer programming it in Flex in a separate '.l' file. Prototype -your C or Flex files after one of those which exist already, so to keep -the sources uniform. Besides, at 'make' time, all '.l' files are -automatically merged into a single big one by the script 'mergelex.awk'. - - There are a few hidden rules about how to write new Recode modules, -for allowing the automatic creation of 'decsteps.h' and 'initsteps.h' at -'make' time, or the proper merging of all Flex files. Mimetism is a -simple approach which relieves me of explaining all these rules! Start -with a module closely resembling what you intend to do. Here is some -advice for picking up a model. First decide if your new charset module -is to be be driven by algorithms rather than by tables. For algorithmic -recodings, see 'iconqnx.c' for C code, or 'txtelat1.l' for Flex code. -For table driven recodings, see 'ebcdic.c' for one-to-one style -recodings, 'lat1html.c' for one-to-many style recodings, or 'atarist.c' -for double-step style recodings. Just select an example from the style -that better fits your application. - - Each of your source files should have its own initialisation -function, named 'module_CHARSET', which is meant to be executed -_quickly_ once, prior to any recoding. It should declare the name of -your charsets and the single steps (or elementary recodings) you -provide, by calling 'declare_step' one or more times. Besides the -charset names, 'declare_step' expects a description of the recoding -quality (see 'recodext.h') and two functions you also provide. - - The first such function has the purpose of allocating structures, -pre-conditioning conversion tables, etc. It is also the way of further -modifying the 'STEP' structure. This function is executed if and only -if the single step is retained in an actual recoding sequence. If you -do not need such delayed initialisation, merely use 'NULL' for the -function argument. - - The second function executes the elementary recoding on a whole file. -There are a few cases when you can spare writing this function: - - * Some single steps do nothing else than a pure copy of the input - onto the output, in this case, you can use the predefined function - 'file_one_to_one', while having a delayed initialisation for - presetting the 'STEP' field 'one_to_one' to the predefined value - 'one_to_same'. - - * Some single steps are driven by a table which recodes one character - into another; if the recoding does nothing else, you can use the - predefined function 'file_one_to_one', while having a delayed - initialisation for presetting the 'STEP' field 'one_to_one' with - your table. - - * Some single steps are driven by a table which recodes one character - into a string; if the recoding does nothing else, you can use the - predefined function 'file_one_to_many', while having a delayed - initialisation for presetting the 'STEP' field 'one_to_many' with - your table. - - If you have a recoding table handy in a suitable format but do not -use one of the predefined recoding functions, it is still a good idea to -use a delayed initialisation to save it anyway, because 'recode' option -'-h' will take advantage of this information when available. - - Finally, edit 'Makefile.am' to add the source file name of your -routines to the 'C_STEPS' or 'L_STEPS' macro definition, depending on -the fact your routines is written in C or in Flex. - - -File: recode.info, Node: New surfaces, Next: Design, Prev: New charsets, Up: Internals - -14.3 Adding new surfaces -======================== - -Adding a new surface is technically quite similar to adding a new -charset. *Note New charsets::. A surface is provided as a set of two -transformations: one from the predefined special charset 'data' or -'tree' to the new surface, meant to apply the surface, the other from -the new surface to the predefined special charset 'data' or 'tree', -meant to remove the surface. - - Internally in Recode, function 'declare_step' especially recognises -when a charset is so related to 'data' or 'tree', and then takes -appropriate actions so that charset gets indeed installed as a surface. - - -File: recode.info, Node: Design, Prev: New surfaces, Up: Internals - -14.4 Comments on the library design -=================================== - - * Why a shared library? - - There are many different approaches to reduce system requirements - to handle all tables needed in the Recode library. One of them is - to have the tables in an external format and only read them in on - demand. After having pondered this for a while, I finally decided - against it, mainly because it involves its own kind of installation - complexity, and it is not clear to me that it would be as - interesting as I first imagined. - - It looks more efficient to see all tables and algorithms already - mapped into virtual memory from the start of the execution, yet not - loaded in actual memory, than to go through many disk accesses for - opening various data files once the program is already started, as - this would be needed with other solutions. Using a shared library - also has the indirect effect of making various algorithms handily - available, right in the same modules providing the tables. This - alleviates much the burden of the maintenance. - - Of course, I would like to later make an exception for only a few - tables, built locally by users for their own particular needs once - Recode is installed. Recode should just go and fetch them. But I - do not perceive this as very urgent, yet useful enough to be worth - implementing. - - Currently, all tables needed for recoding are precompiled into - binaries, and all these binaries are then made into a shared - library. As an initial step, I turned Recode into a main program - and a non-shared library, this allowed me to tidy up the API, get - rid of all global variables, etc. It required a surprising amount - of program source massaging. But once this cleaned enough, it was - easy to use Gordon Matzigkeit's 'libtool' package, and take - advantage of the Automake interface to neatly turn the non-shared - library into a shared one. - - Sites linking with the Recode library, whose system does not - support any form of shared libraries, might end up with bulky - executables. Surely, the Recode library will have to be used - statically, and might not very nicely usable on such systems. It - seems that progress has a price for those being slow at it. - - There is a locality problem I did not address yet. Currently, the - Recode library takes many cycles to initialise itself, calling each - module in turn for it to set up associated knowledge about - charsets, aliases, elementary steps, recoding weights, etc. - _Then_, the recoding sequence is decided out of the command given. - I would not be surprised if initialisation was taking a perceivable - fraction of a second on slower machines. One thing to do, most - probably not right in version 3.5, but the version after, would - have Recode to pre-load all tables and dump them at installation - time. The result would then be compiled and added to the library. - This would spare many initialisation cycles, but more importantly, - would avoid calling all library modules, scattered through the - virtual memory, and so, possibly causing many spurious page - exceptions each time the initialisation is requested, at least once - per program execution. - - * Why not a central charset? - - It would be simpler, and I would like, if something like ISO 10646 - was used as a turning template for all charsets in Recode. Even if - I think it could help to a certain extent, I'm still not fully sure - it would be sufficient in all cases. Moreover, some people - disagree about using ISO 10646 as the central charset, to the point - I cannot totally ignore them, and surely, Recode is not a mean for - me to force my own opinions on people. I would like that Recode be - practical more than dogmatic, and reflect usage more than - religions. - - Currently, if you ask Recode to go from CHARSET1 to CHARSET2 chosen - at random, it is highly probable that the best path will be quickly - found as: - - CHARSET1..UCS-2..CHARSET2 - - That is, it will almost always use the 'UCS' as a trampoline - between charsets. However, 'UCS-2' will be immediately be - optimised out, and CHARSET1..CHARSET2 will often be performed in a - single step through a permutation table generated on the fly for - the circumstance (1). - - In those few cases where 'UCS-2' is not selected as a conceptual - intermediate, I plan to study if it could be made so. But I guess - some cases will remain where 'UCS-2' is not a proper choice. Even - if 'UCS' is often the good choice, I do not intend to forcefully - restrain Recode around 'UCS-2' (nor 'UCS-4') for now. We might - come to that one day, but it will come out of the natural evolution - of Recode. It will then reflect a fact, rather than a preset - dogma. - - * Why not 'iconv'? - - The 'iconv' routine and library allows for converting characters - from an input buffer to an input buffer, synchronously advancing - both buffer cursors. If the output buffer is not big enough to - receive all of the conversion, the routine returns with the input - cursor set at the position where the conversion could later be - resumed, and the output cursor set to indicate until where the - output buffer has been filled. Despite this scheme is simple and - nice, the Recode library does not offer it currently. Why not? - - When long sequences of decodings, stepwise recodings, and - re-encodings are involved, as it happens in true life, - synchronising the input buffer back to where it should have - stopped, when the output buffer becomes full, is a difficult - problem. Oh, we could make it simpler at the expense of losing - space or speed: by inserting markers between each input character - and counting them at the output end; by processing only one - character in a time through the whole sequence; by repeatedly - attempting to recode various subsets of the input buffer, binary - searching on their length until the output just fits. The overhead - of such solutions looks prohibitive to me, and the gain very - minimal. I do not see a real advantage, nowadays, imposing a fixed - length to an output buffer. It makes things so much simpler and - efficient to just let the output buffer size float a bit. - - Of course, if the above problem was solved, the 'iconv' library - should be easily emulated, given that Recode has similar knowledge - about charsets, of course. This either solved or not, the 'iconv' - program remains trivial (given similar knowledge about charsets). - I also presume that the 'genxlt' program would be easy too, but I - do not have enough detailed specifications of it to be sure. - - A lot of years ago, Recode was using a similar scheme, and I found - it rather hard to manage for some cases. I rethought the overall - structure of Recode for getting away from that scheme, and never - regretted it. I perceive 'iconv' as an artificial solution which - surely has some elegances and virtues, but I do not find it really - useful as it stands: one always has to wrap 'iconv' into something - more refined, extending it for real cases. From past experience, I - think it is unduly hard to fully implement this scheme. It would - be awkward that we do contortions for the sole purpose of - implementing exactly its specification, without real, properly - grounded reasons (other then the fact some people once thought it - was worth standardising). It is much better to immediately aim for - the refinement we need, without uselessly forcing us into the - dubious detour 'iconv' represents. - - Some may argue that if Recode was using a comprehensive charset as - a turning template, as discussed in a previous point, this would - make 'iconv' easier to implement. Some may be tempted to say that - the cases which are hard to handle are not really needed, nor - interesting, anyway. I feel and fear a bit some pressure wanting - that Recode be split into the part that well fits the 'iconv' - model, and the part that does not fit, considering this second part - less important, with the idea of dropping it one of these days, - maybe. My guess is that users of the Recode library, whatever its - form, would not like to have such arbitrary limitations. In the - long run, we should not have to explain to our users that some - recodings may not be made available just because they do not fit - the simple model we had in mind when we did it. Instead, we should - try to stay open to the difficulties of real life. There is still - a lot of complex needs for Asian people, say, that Recode does not - currently address, while it should. Not only the doors should stay - open, but we should force them wider! - - ---------- Footnotes ---------- - - (1) If strict mapping is requested, another efficient device will be -used instead of a permutation. - - -File: recode.info, Node: Concept Index, Next: Option Index, Prev: Internals, Up: Top - -Concept Index -************* - -[index] -* Menu: - -* abbreviated names for charsets and surfaces: Requests. (line 87) -* adding new charsets: New charsets. (line 6) -* adding new surfaces: New surfaces. (line 6) -* African charsets: African. (line 6) -* aliases: Requests. (line 79) -* alternate names for charsets and surfaces: Requests. (line 79) -* ambiguous output, error message: Errors. (line 33) -* ASCII table, recreating with Recode: ASCII. (line 12) -* Autoconf: Library. (line 31) -* average number of recoding steps: Main flow. (line 40) -* 'bool' data type: Library. (line 22) -* box-drawing characters: Recoding. (line 16) -* bug reports, where to send: Contributing. (line 37) -* byte order mark: UCS-2. (line 12) -* byte order swapping: Permutations. (line 6) -* caret ASCII code: CDC-NOS. (line 9) -* CDC charsets: CDC. (line 6) -* CDC Display Code, a table: Display Code. (line 6) -* chaining of charsets in a request: Requests. (line 22) -* character entities: HTML. (line 6) -* character entity references: HTML. (line 6) -* character mnemonics, documentation: Tabular. (line 6) -* character streams, description: dump-with-names. (line 6) -* charset level functions: Charset level. (line 6) -* charset names, valid characters: Requests. (line 10) -* charset, default: Requests. (line 103) -* charset, pure: Surface overview. (line 17) -* charset, what it is: Introduction. (line 15) -* charsets for CDC machines: CDC. (line 6) -* charsets, aliases: Requests. (line 79) -* charsets, chaining in a request: Requests. (line 22) -* charsets, guessing: Listings. (line 65) -* charsets, overview: Charset overview. (line 6) -* 'chset' tools: Tabular. (line 6) -* codepages: IBM and MS. (line 6) -* combining characters: UCS-2. (line 33) -* commutativity of surfaces: Requests. (line 56) -* 'configure.ac': Library. (line 31) -* contributing charsets: Contributing. (line 6) -* conversions, unavailable: Charset overview. (line 33) -* convert a subset of characters: Mixed. (line 20) -* convert strings and comments: Mixed. (line 39) -* copyright conditions, printing: Listings. (line 19) -* counting characters: count-characters. (line 6) -* CR surface, in Macintosh charsets: Apple-Mac. (line 15) -* CR-LF surface, in IBM-PC charsets: IBM-PC. (line 30) -* Ctrl-Z, discarding: End lines. (line 32) -* Cyrillic charsets: Others. (line 6) -* debugging surfaces: Test. (line 11) -* default charset: Requests. (line 103) -* description of individual characters: dump-with-names. (line 6) -* details about recoding: Recoding. (line 35) -* deviations from RFC 1345: Tabular. (line 14) -* diacritics and underlines, removing: flat. (line 8) -* diacritics, with 'ASCII-BS' charset: ASCII-BS. (line 9) -* diaeresis: Recoding. (line 11) -* disable map filling: Reversibility. (line 48) -* double step: Main flow. (line 34) -* dumping characters: Dump. (line 6) -* dumping characters, with description: dump-with-names. (line 6) -* Easy French: Texte. (line 20) -* EBCDIC charsets: EBCDIC. (line 6) -* end of line format: End lines. (line 6) -* endiannes, changing: Permutations. (line 6) -* entities: HTML. (line 6) -* error handling: Errors. (line 6) -* error level threshold: Errors. (line 100) -* error messages: Errors. (line 6) -* error messages, suppressing: Reversibility. (line 36) -* exceptions to available conversions: Charset overview. (line 33) -* exit status: Synopsis. (line 64) -* file sequencing: Sequencing. (line 28) -* file time stamps: Recoding. (line 26) -* filter operation: Synopsis. (line 27) -* force recoding: Reversibility. (line 10) -* French description of charsets: Listings. (line 211) -* guessing charsets: Listings. (line 65) -* Haible, Bruno: iconv. (line 6) -* handling errors: Errors. (line 6) -* help page, printing: Listings. (line 14) -* HTML: HTML. (line 6) -* HTML normalization: HTML. (line 110) -* IBM codepages: IBM and MS. (line 6) -* IBM graphics characters: Recoding. (line 16) -* 'iconv': Design. (line 98) -* 'iconv' library: iconv. (line 6) -* identifying subsets in charsets: Listings. (line 223) -* ignore charsets: Recoding. (line 60) -* implied surfaces: Requests. (line 68) -* impossible conversions: Charset overview. (line 33) -* information about charsets: Listings. (line 154) -* initialisation functions, outer: Outer level. (line 45) -* initialisation functions, request: Request level. (line 52) -* initialisation functions, task: Task level. (line 56) -* interface, with 'iconv' library: iconv. (line 6) -* intermediate charsets: Requests. (line 22) -* internal functions: Charset level. (line 6) -* internal recoding bug, error message: Errors. (line 88) -* internals: Internals. (line 6) -* invalid input, error message: Errors. (line 65) -* invocation of 'recode', synopsis: Synopsis. (line 6) -* irreversible recoding: Reversibility. (line 10) -* ISO 10646: Universal. (line 6) -* languages, programming: Listings. (line 26) -* LaTeX files: LaTeX. (line 6) -* Latin charsets: ISO 8859. (line 6) -* Latin-1 table, recreating with Recode: ISO 8859. (line 38) -* leaks, memory: Outer level. (line 40) -* letter case, in charset and surface names: Requests. (line 92) -* 'libiconv': iconv. (line 6) -* library, 'iconv': iconv. (line 6) -* listing charsets: Listings. (line 154) -* Macintosh charset: Apple-Mac. (line 6) -* map filling: Reversibility. (line 96) -* map filling, disable: Reversibility. (line 48) -* markup language: HTML. (line 6) -* memory leaks: Outer level. (line 40) -* memory sequencing: Sequencing. (line 22) -* MIME encodings: MIME. (line 6) -* misuse of recoding library, error message: Errors. (line 82) -* MS-DOS charsets: IBM-PC. (line 6) -* MULE, in Emacs: Mule. (line 22) -* multiplexed charsets: Mule. (line 6) -* names of charsets and surfaces, abbreviation: Requests. (line 87) -* new charsets, how to add: New charsets. (line 6) -* new surfaces, how to add: New surfaces. (line 6) -* NeXT charsets: Micros. (line 6) -* non canonical input, error message: Errors. (line 20) -* normilise an HTML file: HTML. (line 110) -* NOS 6/12 code: CDC-NOS. (line 9) -* numeric character references: HTML. (line 6) -* outer level functions: Outer level. (line 6) -* partial conversion: Mixed. (line 20) -* permutations of groups of bytes: Permutations. (line 6) -* pipe sequencing: Sequencing. (line 38) -* portability: Library. (line 31) -* programming language support: Listings. (line 26) -* 'program_name' variable: Library. (line 11) -* 'program_name' variable <1>: Outer level. (line 99) -* pseudo-charsets: Charset overview. (line 33) -* pure charset: Surface overview. (line 17) -* quality of recoding: Recoding. (line 35) -* Recode internals: Internals. (line 6) -* Recode request syntax: Requests. (line 15) -* Recode use, a tutorial: Tutorial. (line 6) -* Recode version, printing: Listings. (line 10) -* Recode, a Macintosh port: Apple-Mac. (line 46) -* Recode, and RFC 1345: Tabular. (line 42) -* Recode, main flow of operation: Main flow. (line 6) -* 'recode', operation as filter: Synopsis. (line 27) -* 'recode', synopsis of invocation: Synopsis. (line 6) -* 'recode.h' header: Library. (line 11) -* 'recodext.h' header: Task level. (line 46) -* recoding details: Recoding. (line 35) -* recoding library: Library. (line 6) -* recoding path, rejection: Recoding. (line 60) -* recoding steps, statistics: Main flow. (line 40) -* removing diacritics and underlines: flat. (line 8) -* reporting bugs: Contributing. (line 37) -* request level functions: Request level. (line 6) -* request, syntax: Requests. (line 15) -* reversibility of recoding: Reversibility. (line 59) -* RFC 1345: Tabular. (line 6) -* RFC 2045: MIME. (line 6) -* sequencing: Sequencing. (line 6) -* SGML: HTML. (line 6) -* shared library implementation: Design. (line 6) -* silent operation: Reversibility. (line 36) -* single step: Main flow. (line 17) -* source file generation: Listings. (line 26) -* speed considerations: Outer level. (line 32) -* speed considerations <1>: Request level. (line 44) -* status code: Synopsis. (line 64) -* 'stdbool.h' header: Library. (line 22) -* strict operation: Reversibility. (line 48) -* string and comments conversion: Mixed. (line 39) -* structural surfaces: Surfaces. (line 43) -* subsets in charsets: Listings. (line 223) -* super-charsets: Mule. (line 6) -* supported programming languages: Listings. (line 26) -* suppressing diagnostic messages: Reversibility. (line 36) -* surface, what it is: Introduction. (line 31) -* surface, what it is <1>: Surfaces. (line 6) -* surfaces, aliases: Requests. (line 79) -* surfaces, commutativity: Requests. (line 56) -* surfaces, implementation in Recode: Surfaces. (line 34) -* surfaces, implied: Requests. (line 68) -* surfaces, overview: Surface overview. (line 6) -* surfaces, structural: Surfaces. (line 43) -* surfaces, syntax: Requests. (line 51) -* surfaces, trees: Surfaces. (line 43) -* system detected problem, error message: Errors. (line 76) -* task execution: Task level. (line 222) -* task level functions: Task level. (line 6) -* TeX files: LaTeX. (line 6) -* Texinfo files: Texinfo. (line 6) -* threshold for error reporting: Errors. (line 100) -* time stamps of files: Recoding. (line 26) -* trivial surface: Surfaces. (line 14) -* tutorial: Tutorial. (line 6) -* unavailable conversions: Charset overview. (line 33) -* Unicode: UCS-2. (line 6) -* unknown charsets: Listings. (line 65) -* unreachable charsets: Charset overview. (line 33) -* untranslatable input, error message: Errors. (line 53) -* valid characters in charset names: Requests. (line 10) -* verbose operation: Recoding. (line 35) -* Vietnamese charsets: Vietnamese. (line 6) -* Web: HTML. (line 6) -* World Wide Web: HTML. (line 6) -* WWW: HTML. (line 6) -* XML: HTML. (line 6) - - -File: recode.info, Node: Option Index, Next: Library Index, Prev: Concept Index, Up: Top - -Option Index -************ - -This is an alphabetical list of all command-line options accepted by -'recode'. - -[index] -* Menu: - -* --colons: Recoding. (line 11) -* --copyright: Listings. (line 19) -* --diacritics: Mixed. (line 20) -* --find-subsets: Listings. (line 223) -* --force: Reversibility. (line 10) -* --graphics: Recoding. (line 16) -* --header: Listings. (line 26) -* --help: Listings. (line 14) -* --ignore: Recoding. (line 60) -* --known=: Listings. (line 65) -* --list: Listings. (line 154) -* --quiet: Reversibility. (line 36) -* --sequence: Sequencing. (line 22) -* --silent: Reversibility. (line 36) -* --source: Mixed. (line 39) -* --strict: Reversibility. (line 48) -* --touch: Recoding. (line 26) -* --verbose: Recoding. (line 35) -* --version: Listings. (line 10) -* -C: Listings. (line 19) -* -c: Recoding. (line 11) -* -d: Mixed. (line 20) -* -f: Reversibility. (line 10) -* -g: Recoding. (line 16) -* -h: Listings. (line 26) -* -i: Sequencing. (line 28) -* -k: Listings. (line 65) -* -l: Listings. (line 154) -* -p: Sequencing. (line 38) -* -q: Reversibility. (line 36) -* -s: Reversibility. (line 48) -* -S: Mixed. (line 39) -* -T: Listings. (line 223) -* -t: Recoding. (line 26) -* -v: Recoding. (line 35) -* -x: Recoding. (line 60) - - -File: recode.info, Node: Library Index, Next: Charset and Surface Index, Prev: Option Index, Up: Top - -Library Index -************* - -This is an alphabetical index of important functions, data structures, -and variables in the Recode library. - -[index] -* Menu: - -* abort_level: Task level. (line 205) -* ascii_graphics: Request level. (line 111) -* byte_order_mark: Task level. (line 189) -* declare_step: New surfaces. (line 13) -* DEFAULT_CHARSET: Requests. (line 103) -* diacritics_only: Request level. (line 102) -* diaeresis_char: Request level. (line 86) -* error_so_far: Task level. (line 217) -* fail_level: Task level. (line 195) -* file_one_to_many: New charsets. (line 70) -* file_one_to_one: New charsets. (line 58) -* find_charset: Charset level. (line 15) -* LANG, when listing charsets: Listings. (line 211) -* LANGUAGE, when listing charsets: Listings. (line 211) -* list_all_charsets: Charset level. (line 15) -* list_concise_charset: Charset level. (line 15) -* list_full_charset: Charset level. (line 15) -* make_header_flag: Request level. (line 93) -* RECODE_AMBIGUOUS_OUTPUT: Errors. (line 33) -* recode_buffer_to_buffer: Request level. (line 157) -* recode_buffer_to_file: Request level. (line 157) -* recode_delete_outer: Outer level. (line 50) -* recode_delete_request: Request level. (line 57) -* recode_delete_task: Task level. (line 58) -* recode_file_to_buffer: Request level. (line 157) -* recode_file_to_file: Request level. (line 157) -* recode_filter_close: Task level. (line 224) -* recode_filter_close, not available: Request level. (line 223) -* recode_filter_open: Task level. (line 224) -* recode_filter_open, not available: Request level. (line 223) -* recode_format_table: Request level. (line 238) -* RECODE_INTERNAL_ERROR: Errors. (line 88) -* RECODE_INVALID_INPUT: Errors. (line 65) -* RECODE_MAXIMUM_ERROR: Task level. (line 205) -* RECODE_MAXIMUM_ERROR <1>: Errors. (line 96) -* recode_new_outer: Outer level. (line 50) -* recode_new_request: Request level. (line 57) -* recode_new_task: Task level. (line 58) -* RECODE_NOT_CANONICAL: Errors. (line 20) -* RECODE_NO_ERROR: Errors. (line 16) -* RECODE_OUTER structure: Outer level. (line 26) -* recode_perform_task: Task level. (line 224) -* RECODE_REQUEST structure: Request level. (line 39) -* recode_request structure: Request level. (line 69) -* recode_scan_request: Request level. (line 121) -* RECODE_SEQUENCE_IN_MEMORY: Task level. (line 178) -* RECODE_SEQUENCE_WITH_FILES: Task level. (line 180) -* RECODE_SEQUENCE_WITH_PIPE: Task level. (line 182) -* RECODE_STRATEGY_UNDECIDED: Task level. (line 171) -* recode_string: Request level. (line 150) -* recode_string_to_buffer: Request level. (line 157) -* recode_string_to_file: Request level. (line 157) -* RECODE_SYSTEM_ERROR: Errors. (line 76) -* RECODE_TASK structure: Task level. (line 50) -* RECODE_UNTRANSLATABLE: Errors. (line 53) -* RECODE_USER_ERROR: Errors. (line 82) -* strategy: Task level. (line 171) -* task_request structure: Task level. (line 85) -* verbose_flag: Request level. (line 81) - - -File: recode.info, Node: Charset and Surface Index, Prev: Library Index, Up: Top - -Charset and Surface Index -************************* - -This is an alphabetical list of all the charsets and surfaces supported -by Recode, and their aliases. - -[index] -* Menu: - -* 037: Tabular. (line 222) -* 038: Tabular. (line 227) -* 1004: Tabular. (line 231) -* 1026: Tabular. (line 235) -* 1047: Tabular. (line 239) -* 10646: UCS-4. (line 10) -* 1129, not available: Vietnamese. (line 30) -* 1250: Tabular. (line 89) -* 1251: Tabular. (line 93) -* 1252: Tabular. (line 97) -* 1253: Tabular. (line 101) -* 1254: Tabular. (line 105) -* 1255: Tabular. (line 109) -* 1256: Tabular. (line 113) -* 1257: Tabular. (line 117) -* 1258, not available: Vietnamese. (line 30) -* 1345: Tabular. (line 53) -* 1866: HTML. (line 37) -* 2070: HTML. (line 46) -* 21-Permutation: Permutations. (line 15) -* 256: Tabular. (line 244) -* 273: Tabular. (line 248) -* 274: Tabular. (line 252) -* 275: Tabular. (line 256) -* 278: Tabular. (line 264) -* 280: Tabular. (line 268) -* 281: Tabular. (line 272) -* 284: Tabular. (line 276) -* 285: Tabular. (line 280) -* 290: Tabular. (line 284) -* 297: Tabular. (line 288) -* 367: Tabular. (line 72) -* 420: Tabular. (line 292) -* 423: Tabular. (line 297) -* 424: Tabular. (line 301) -* 4321-Permutation: Permutations. (line 19) -* 437: Tabular. (line 305) -* 500: Tabular. (line 309) -* 500V1: Tabular. (line 309) -* 64: MIME. (line 11) -* 819: Tabular. (line 422) -* 850: Tabular. (line 314) -* 851: Tabular. (line 318) -* 852: Tabular. (line 322) -* 855: Tabular. (line 326) -* 857: Tabular. (line 330) -* 860: Tabular. (line 334) -* 861: Tabular. (line 338) -* 862: Tabular. (line 342) -* 863: Tabular. (line 346) -* 864: Tabular. (line 350) -* 865: Tabular. (line 354) -* 868: Tabular. (line 358) -* 869: Tabular. (line 362) -* 870: Tabular. (line 366) -* 871: Tabular. (line 371) -* 875: Tabular. (line 375) -* 880: Tabular. (line 379) -* 891: Tabular. (line 383) -* 903: Tabular. (line 387) -* 904: Tabular. (line 391) -* 905: Tabular. (line 395) -* 912: Tabular. (line 447) -* 918: Tabular. (line 399) -* AFRFUL-102-BPI_OCIL, and aliases: African. (line 10) -* AFRFUL-103-BPI_OCIL, and aliases: African. (line 10) -* AFRL1-101-BPI_OCIL: African. (line 24) -* AFRLIN-104-BPI_OCIL: African. (line 17) -* AFRLIN-105-BPI_OCIL: African. (line 17) -* ANSI_X3.110-1983, not recognised by recode: Tabular. (line 21) -* ANSI_X3.4-1968, aliases and source: Tabular. (line 72) -* ANSI_X3.4-1968, and its aliases: ASCII. (line 6) -* ANSI_X3.4-1986: Tabular. (line 72) -* Apple-Mac: Apple-Mac. (line 6) -* arabic: Tabular. (line 467) -* arabic7: Tabular. (line 77) -* ASCII: Requests. (line 103) -* ASCII <1>: Tabular. (line 72) -* ASCII, an alias for the ANSI_X3.4-1968 charset: ASCII. (line 6) -* ASCII-BS, and its aliases: ASCII-BS. (line 6) -* ASMO-708: Tabular. (line 467) -* ASMO_449, aliases and source: Tabular. (line 77) -* AtariST: AtariST. (line 6) -* b64: MIME. (line 11) -* baltic, aliases and source: Tabular. (line 663) -* bambara: African. (line 10) -* Bang-Bang: Bang-Bang. (line 6) -* Base64: MIME. (line 11) -* BMP: UCS-2. (line 29) -* bra: African. (line 10) -* BS, an alias for ASCII-BS charset: ASCII-BS. (line 6) -* BS_4730, aliases and source: Tabular. (line 81) -* BS_viewdata, aliases and source: Tabular. (line 85) -* ca: Tabular. (line 121) -* CDC-NOS, and its aliases: CDC-NOS. (line 6) -* CHAR: Requests. (line 103) -* cl: End lines. (line 37) -* cn: Tabular. (line 214) -* combined-UCS-2: UCS-2. (line 33) -* CORK: Others. (line 28) -* count-characters: count-characters. (line 6) -* count-characters, not as before charset: Charset overview. (line 33) -* cp-ar: Tabular. (line 358) -* cp-gr: Tabular. (line 362) -* cp-hu: Tabular. (line 137) -* cp-is: Tabular. (line 338) -* CP037: Tabular. (line 222) -* CP038: Tabular. (line 227) -* CP1004: Tabular. (line 231) -* CP1026: Tabular. (line 235) -* CP1047: Tabular. (line 239) -* CP1129, not available: Vietnamese. (line 30) -* CP1250, aliases and source: Tabular. (line 89) -* CP1251, aliases and source: Tabular. (line 93) -* CP1252, aliases and source: Tabular. (line 97) -* CP1253, aliases and source: Tabular. (line 101) -* CP1254, aliases and source: Tabular. (line 105) -* CP1255, aliases and source: Tabular. (line 109) -* CP1256, aliases and source: Tabular. (line 113) -* CP1257, aliases and source: Tabular. (line 117) -* CP1258, not available: Vietnamese. (line 30) -* CP256: Tabular. (line 244) -* CP273: Tabular. (line 248) -* CP274: Tabular. (line 252) -* CP275: Tabular. (line 256) -* CP278: Tabular. (line 264) -* CP280: Tabular. (line 268) -* CP281: Tabular. (line 272) -* CP284: Tabular. (line 276) -* CP285: Tabular. (line 280) -* CP290: Tabular. (line 284) -* CP297: Tabular. (line 288) -* CP367: Tabular. (line 72) -* cp367: ASCII. (line 6) -* CP420: Tabular. (line 292) -* CP423: Tabular. (line 297) -* CP424: Tabular. (line 301) -* CP437: Tabular. (line 305) -* CP500: Tabular. (line 309) -* CP819: Tabular. (line 422) -* CP850: Tabular. (line 314) -* CP851: Tabular. (line 318) -* CP852: Tabular. (line 322) -* CP855: Tabular. (line 326) -* CP857: Tabular. (line 330) -* CP860: Tabular. (line 334) -* CP861: Tabular. (line 338) -* CP862: Tabular. (line 342) -* CP863: Tabular. (line 346) -* CP864: Tabular. (line 350) -* CP865: Tabular. (line 354) -* CP868: Tabular. (line 358) -* CP869: Tabular. (line 362) -* CP870: Tabular. (line 366) -* CP871: Tabular. (line 371) -* CP875: Tabular. (line 375) -* CP880: Tabular. (line 379) -* CP891: Tabular. (line 383) -* CP903: Tabular. (line 387) -* CP904: Tabular. (line 391) -* CP905: Tabular. (line 395) -* CP912: Tabular. (line 447) -* CP918: Tabular. (line 399) -* CR, a surface: End lines. (line 13) -* CR-LF, a surface: End lines. (line 27) -* csa7-1: Tabular. (line 121) -* csa7-2: Tabular. (line 125) -* CSA_Z243.4-1985-1, aliases and source: Tabular. (line 121) -* CSA_Z243.4-1985-2, aliases and source: Tabular. (line 125) -* CSA_Z243.4-1985-gr, aliases and source: Tabular. (line 129) -* CSN_369103, aliases and source: Tabular. (line 133) -* cuba: Tabular. (line 619) -* CWI, aliases and source: Tabular. (line 137) -* CWI-2: Tabular. (line 137) -* cyrillic: Tabular. (line 462) -* d1: Dump. (line 45) -* d2: Dump. (line 52) -* d4: Dump. (line 59) -* data, a special charset: Surfaces. (line 34) -* data, not with charsets: Charset overview. (line 33) -* de: Tabular. (line 145) -* dec: Tabular. (line 141) -* DEC-MCS, aliases and source: Tabular. (line 141) -* Decimal-1: Dump. (line 45) -* Decimal-2: Dump. (line 52) -* Decimal-4: Dump. (line 59) -* DIN_66003, aliases and source: Tabular. (line 145) -* dk: Tabular. (line 149) -* dk-us, not recognised by recode: Tabular. (line 18) -* dos: IBM-PC. (line 6) -* DS2089: Tabular. (line 149) -* DS_2089, aliases and source: Tabular. (line 149) -* dump-with-names: dump-with-names. (line 6) -* dump-with-names, not as before charset: Charset overview. (line 33) -* e13b: Tabular. (line 491) -* EBCDIC, a charset: EBCDIC. (line 12) -* EBCDIC-AT-DE, aliases and source: Tabular. (line 153) -* EBCDIC-AT-DE-A, aliases and source: Tabular. (line 156) -* EBCDIC-BE: Tabular. (line 252) -* EBCDIC-BR: Tabular. (line 256) -* EBCDIC-CA-FR, aliases and source: Tabular. (line 159) -* EBCDIC-CCC: EBCDIC. (line 19) -* ebcdic-cp-ar1: Tabular. (line 292) -* ebcdic-cp-ar2: Tabular. (line 399) -* ebcdic-cp-be: Tabular. (line 309) -* ebcdic-cp-ca: Tabular. (line 222) -* ebcdic-cp-ch: Tabular. (line 309) -* EBCDIC-CP-DK: Tabular. (line 260) -* ebcdic-cp-es: Tabular. (line 276) -* ebcdic-cp-fi: Tabular. (line 264) -* ebcdic-cp-fr: Tabular. (line 288) -* ebcdic-cp-gb: Tabular. (line 280) -* ebcdic-cp-gr: Tabular. (line 297) -* ebcdic-cp-he: Tabular. (line 301) -* ebcdic-cp-is: Tabular. (line 371) -* ebcdic-cp-it: Tabular. (line 268) -* ebcdic-cp-nl: Tabular. (line 222) -* EBCDIC-CP-NO: Tabular. (line 260) -* ebcdic-cp-roece: Tabular. (line 366) -* ebcdic-cp-se: Tabular. (line 264) -* ebcdic-cp-tr: Tabular. (line 395) -* ebcdic-cp-us: Tabular. (line 222) -* ebcdic-cp-wt: Tabular. (line 222) -* ebcdic-cp-yu: Tabular. (line 366) -* EBCDIC-Cyrillic: Tabular. (line 379) -* EBCDIC-DK-NO, aliases and source: Tabular. (line 162) -* EBCDIC-DK-NO-A, aliases and source: Tabular. (line 165) -* EBCDIC-ES, aliases and source: Tabular. (line 168) -* EBCDIC-ES-A, aliases and source: Tabular. (line 171) -* EBCDIC-ES-S, aliases and source: Tabular. (line 174) -* EBCDIC-FI-SE, aliases and source: Tabular. (line 177) -* EBCDIC-FI-SE-A, aliases and source: Tabular. (line 180) -* EBCDIC-FR, aliases and source: Tabular. (line 183) -* EBCDIC-Greek: Tabular. (line 375) -* EBCDIC-IBM: EBCDIC. (line 24) -* EBCDIC-INT: Tabular. (line 227) -* EBCDIC-INT1: Tabular. (line 244) -* EBCDIC-IS-FRISS, aliases and source: Tabular. (line 186) -* EBCDIC-IT, aliases and source: Tabular. (line 190) -* EBCDIC-JP-E: Tabular. (line 272) -* EBCDIC-JP-kana: Tabular. (line 284) -* EBCDIC-PT, aliases and source: Tabular. (line 193) -* EBCDIC-UK, aliases and source: Tabular. (line 196) -* EBCDIC-US, aliases and source: Tabular. (line 199) -* ECMA-113: Tabular. (line 202) -* ECMA-113(1986): Tabular. (line 202) -* ECMA-114: Tabular. (line 467) -* ECMA-118: Tabular. (line 472) -* ECMA-cyrillic, aliases and source: Tabular. (line 202) -* ELOT_928: Tabular. (line 472) -* ES, aliases and source: Tabular. (line 206) -* ES2, aliases and source: Tabular. (line 210) -* ewondo: African. (line 10) -* FI: Tabular. (line 651) -* flat, a charset: flat. (line 6) -* flat, not as before charset: Charset overview. (line 33) -* fr: Tabular. (line 623) -* friss: Tabular. (line 186) -* FSS_UTF: UTF-8. (line 82) -* fulfude: African. (line 10) -* gb: Tabular. (line 81) -* GB_1988-80, aliases and source: Tabular. (line 214) -* GB_2312-80, not recognised by recode: Tabular. (line 25) -* GOST_19768-74: Tabular. (line 577) -* GOST_19768-87, aliases and source: Tabular. (line 218) -* greek: Tabular. (line 472) -* greek-ccitt, aliases and source: Tabular. (line 667) -* greek7, aliases and source: Tabular. (line 671) -* greek7-old, aliases and source: Tabular. (line 675) -* greek8: Tabular. (line 472) -* h: HTML. (line 63) -* h0: HTML. (line 27) -* h1: HTML. (line 33) -* h2: HTML. (line 37) -* h3: HTML. (line 56) -* h4: HTML. (line 63) -* hebrew: Tabular. (line 477) -* Hexadecimal-1: Dump. (line 66) -* Hexadecimal-2: Dump. (line 73) -* Hexadecimal-4: Dump. (line 80) -* hp-roman8, aliases and source: Tabular. (line 679) -* HTML-i18n: HTML. (line 46) -* HTML_1.1: HTML. (line 33) -* HTML_2.0: HTML. (line 37) -* HTML_3.2: HTML. (line 56) -* hu: Tabular. (line 599) -* IBM-PC: IBM-PC. (line 6) -* IBM-PC charset, and CR-LF surface: Requests. (line 68) -* IBM037, aliases and source: Tabular. (line 222) -* IBM038, aliases and source: Tabular. (line 227) -* IBM1004, aliases and source: Tabular. (line 231) -* IBM1026, aliases and source: Tabular. (line 235) -* IBM1047, aliases and source: Tabular. (line 239) -* IBM256, aliases and source: Tabular. (line 244) -* IBM273, aliases and source: Tabular. (line 248) -* IBM274, aliases and source: Tabular. (line 252) -* IBM275, aliases and source: Tabular. (line 256) -* IBM277, aliases and source: Tabular. (line 260) -* IBM278, aliases and source: Tabular. (line 264) -* IBM280, aliases and source: Tabular. (line 268) -* IBM281, aliases and source: Tabular. (line 272) -* IBM284, aliases and source: Tabular. (line 276) -* IBM285, aliases and source: Tabular. (line 280) -* IBM290, aliases and source: Tabular. (line 284) -* IBM297, aliases and source: Tabular. (line 288) -* IBM367: Tabular. (line 72) -* IBM367 <1>: ASCII. (line 6) -* IBM420, aliases and source: Tabular. (line 292) -* IBM423, aliases and source: Tabular. (line 297) -* IBM424, aliases and source: Tabular. (line 301) -* ibm437: IBM-PC. (line 36) -* IBM437, aliases and source: Tabular. (line 305) -* IBM500, aliases and source: Tabular. (line 309) -* IBM819: Tabular. (line 422) -* IBM819, and CR-LF surface: IBM-PC. (line 30) -* IBM850, aliases and source: Tabular. (line 314) -* IBM851, aliases and source: Tabular. (line 318) -* IBM852, aliases and source: Tabular. (line 322) -* IBM855, aliases and source: Tabular. (line 326) -* IBM857, aliases and source: Tabular. (line 330) -* IBM860, aliases and source: Tabular. (line 334) -* IBM861, aliases and source: Tabular. (line 338) -* IBM862, aliases and source: Tabular. (line 342) -* IBM863, aliases and source: Tabular. (line 346) -* IBM864, aliases and source: Tabular. (line 350) -* IBM865, aliases and source: Tabular. (line 354) -* IBM868, aliases and source: Tabular. (line 358) -* IBM869, aliases and source: Tabular. (line 362) -* IBM870, aliases and source: Tabular. (line 366) -* IBM871, aliases and source: Tabular. (line 371) -* IBM875, aliases and source: Tabular. (line 375) -* IBM880, aliases and source: Tabular. (line 379) -* IBM891, aliases and source: Tabular. (line 383) -* IBM903, aliases and source: Tabular. (line 387) -* IBM904, aliases and source: Tabular. (line 391) -* IBM905, aliases and source: Tabular. (line 395) -* IBM912: Tabular. (line 447) -* IBM918, aliases and source: Tabular. (line 399) -* Icon-QNX, and aliases: Icon-QNX. (line 6) -* iconv: iconv. (line 20) -* iconv, not in requests: Charset overview. (line 33) -* IEC_P27-1, aliases and source: Tabular. (line 403) -* INIS, aliases and source: Tabular. (line 407) -* INIS-8, aliases and source: Tabular. (line 411) -* INIS-cyrillic, aliases and source: Tabular. (line 415) -* INVARIANT, aliases and source: Tabular. (line 419) -* irv: Tabular. (line 511) -* ISO-10646-UCS-2, and aliases: UCS-2. (line 29) -* ISO-10646-UCS-4, and aliases: UCS-4. (line 10) -* ISO-8859-1, aliases and source: Tabular. (line 422) -* ISO-8859-10, aliases and source: Tabular. (line 427) -* ISO-8859-13, aliases and source: Tabular. (line 432) -* ISO-8859-14, aliases and source: Tabular. (line 437) -* ISO-8859-15, aliases and source: Tabular. (line 442) -* ISO-8859-2, aliases and source: Tabular. (line 447) -* ISO-8859-3, aliases and source: Tabular. (line 452) -* ISO-8859-4, aliases and source: Tabular. (line 457) -* ISO-8859-5, aliases and source: Tabular. (line 462) -* ISO-8859-6, aliases and source: Tabular. (line 467) -* ISO-8859-7, aliases and source: Tabular. (line 472) -* ISO-8859-8, aliases and source: Tabular. (line 477) -* ISO-8859-9, aliases and source: Tabular. (line 482) -* iso-baltic: Tabular. (line 432) -* iso-celtic: Tabular. (line 437) -* iso-ir-10: Tabular. (line 651) -* iso-ir-100: Tabular. (line 422) -* iso-ir-101: Tabular. (line 447) -* iso-ir-102: Tabular. (line 659) -* iso-ir-109: Tabular. (line 452) -* iso-ir-11: Tabular. (line 655) -* iso-ir-110: Tabular. (line 457) -* iso-ir-111: Tabular. (line 202) -* iso-ir-121: Tabular. (line 121) -* iso-ir-122: Tabular. (line 125) -* iso-ir-123: Tabular. (line 129) -* iso-ir-126: Tabular. (line 472) -* iso-ir-127: Tabular. (line 467) -* iso-ir-13: Tabular. (line 527) -* iso-ir-138: Tabular. (line 477) -* iso-ir-139: Tabular. (line 133) -* iso-ir-14: Tabular. (line 531) -* iso-ir-141: Tabular. (line 562) -* iso-ir-143: Tabular. (line 403) -* iso-ir-144: Tabular. (line 462) -* iso-ir-146: Tabular. (line 570) -* iso-ir-147: Tabular. (line 566) -* iso-ir-148: Tabular. (line 482) -* iso-ir-15: Tabular. (line 523) -* iso-ir-150: Tabular. (line 667) -* iso-ir-151: Tabular. (line 619) -* iso-ir-152: Tabular. (line 515) -* iso-ir-153: Tabular. (line 218) -* iso-ir-154: Tabular. (line 519) -* iso-ir-155: Tabular. (line 487) -* iso-ir-157: Tabular. (line 427) -* iso-ir-158: Tabular. (line 697) -* iso-ir-16: Tabular. (line 643) -* iso-ir-17: Tabular. (line 206) -* iso-ir-170: Tabular. (line 419) -* iso-ir-179: Tabular. (line 663) -* iso-ir-179a: Tabular. (line 432) -* iso-ir-18: Tabular. (line 675) -* iso-ir-19: Tabular. (line 684) -* iso-ir-199: Tabular. (line 437) -* iso-ir-2: Tabular. (line 511) -* iso-ir-203: Tabular. (line 442) -* iso-ir-21: Tabular. (line 145) -* iso-ir-25: Tabular. (line 627) -* iso-ir-27: Tabular. (line 595) -* iso-ir-37: Tabular. (line 495) -* iso-ir-4: Tabular. (line 81) -* iso-ir-47: Tabular. (line 85) -* iso-ir-49: Tabular. (line 407) -* iso-ir-50: Tabular. (line 411) -* iso-ir-51: Tabular. (line 415) -* iso-ir-54: Tabular. (line 499) -* iso-ir-55: Tabular. (line 503) -* iso-ir-57: Tabular. (line 214) -* iso-ir-6: Tabular. (line 72) -* iso-ir-6 <1>: ASCII. (line 6) -* iso-ir-60: Tabular. (line 631) -* iso-ir-61: Tabular. (line 635) -* iso-ir-69: Tabular. (line 623) -* iso-ir-8-1: Tabular. (line 611) -* iso-ir-8-2: Tabular. (line 615) -* iso-ir-84: Tabular. (line 647) -* iso-ir-85: Tabular. (line 210) -* iso-ir-86: Tabular. (line 599) -* iso-ir-88: Tabular. (line 671) -* iso-ir-89: Tabular. (line 77) -* iso-ir-9-1: Tabular. (line 603) -* iso-ir-9-2: Tabular. (line 607) -* iso-ir-90, not recognised by recode: Tabular. (line 21) -* iso-ir-93: Tabular. (line 543) -* iso-ir-94: Tabular. (line 547) -* iso-ir-95: Tabular. (line 551) -* iso-ir-96: Tabular. (line 555) -* iso-ir-98: Tabular. (line 491) -* ISO646-CA: Tabular. (line 121) -* ISO646-CA2: Tabular. (line 125) -* ISO646-CN: Tabular. (line 214) -* ISO646-CU: Tabular. (line 619) -* ISO646-DE: Tabular. (line 145) -* ISO646-DK: Tabular. (line 149) -* ISO646-ES: Tabular. (line 206) -* ISO646-ES2: Tabular. (line 210) -* ISO646-FI: Tabular. (line 651) -* ISO646-FR: Tabular. (line 623) -* ISO646-FR1: Tabular. (line 627) -* ISO646-GB: Tabular. (line 81) -* ISO646-HU: Tabular. (line 599) -* ISO646-IT: Tabular. (line 523) -* ISO646-JP: Tabular. (line 531) -* ISO646-JP-OCR-B: Tabular. (line 539) -* ISO646-KR: Tabular. (line 592) -* ISO646-NO: Tabular. (line 631) -* ISO646-NO2: Tabular. (line 635) -* ISO646-PT: Tabular. (line 643) -* ISO646-PT2: Tabular. (line 647) -* ISO646-SE: Tabular. (line 651) -* ISO646-SE2: Tabular. (line 655) -* ISO646-US: Tabular. (line 72) -* ISO646-YU: Tabular. (line 562) -* ISO8859-1: Tabular. (line 422) -* ISO8859-10: Tabular. (line 427) -* ISO8859-13: Tabular. (line 432) -* ISO8859-14: Tabular. (line 437) -* ISO8859-15: Tabular. (line 442) -* ISO8859-2: Tabular. (line 447) -* ISO8859-3: Tabular. (line 452) -* ISO8859-4: Tabular. (line 457) -* ISO8859-5: Tabular. (line 462) -* ISO8859-6: Tabular. (line 467) -* ISO8859-7: Tabular. (line 472) -* ISO8859-8: Tabular. (line 477) -* ISO8859-9: Tabular. (line 482) -* isoir91: Tabular. (line 29) -* isoir92: Tabular. (line 29) -* ISO_10367-box, aliases and source: Tabular. (line 487) -* ISO_10646: UCS-4. (line 10) -* ISO_2033-1983, aliases and source: Tabular. (line 491) -* ISO_5427(1981): Tabular. (line 499) -* ISO_5427, aliases and source: Tabular. (line 495) -* ISO_5427-ext, aliases and source: Tabular. (line 499) -* ISO_5428(1980): Tabular. (line 503) -* ISO_5428, aliases and source: Tabular. (line 503) -* ISO_646.basic(1983): Tabular. (line 507) -* ISO_646.basic, aliases and source: Tabular. (line 507) -* ISO_646.irv(1983): Tabular. (line 511) -* ISO_646.irv(1991): Tabular. (line 72) -* ISO_646.irv, aliases and source: Tabular. (line 511) -* ISO_6937-2-25, aliases and source: Tabular. (line 515) -* ISO_6937-2-add, not recognised by recode: Tabular. (line 21) -* ISO_8859-1: Tabular. (line 422) -* ISO_8859-1(1987): Tabular. (line 422) -* ISO_8859-10: Tabular. (line 427) -* ISO_8859-10(1993): Tabular. (line 427) -* ISO_8859-13: Tabular. (line 432) -* ISO_8859-13(1998): Tabular. (line 432) -* ISO_8859-14: Tabular. (line 437) -* ISO_8859-14(1998): Tabular. (line 437) -* ISO_8859-15: Tabular. (line 442) -* ISO_8859-15(1998): Tabular. (line 442) -* ISO_8859-2: Tabular. (line 447) -* ISO_8859-2(1987): Tabular. (line 447) -* ISO_8859-3: Tabular. (line 452) -* ISO_8859-3(1988): Tabular. (line 452) -* ISO_8859-4: Tabular. (line 457) -* ISO_8859-4(1988): Tabular. (line 457) -* ISO_8859-5: Tabular. (line 462) -* ISO_8859-5(1988): Tabular. (line 462) -* ISO_8859-6: Tabular. (line 467) -* ISO_8859-6(1987): Tabular. (line 467) -* ISO_8859-7: Tabular. (line 472) -* ISO_8859-7(1987): Tabular. (line 472) -* ISO_8859-8: Tabular. (line 477) -* ISO_8859-8(1988): Tabular. (line 477) -* ISO_8859-9: Tabular. (line 482) -* ISO_8859-9(1989): Tabular. (line 482) -* ISO_8859-supp, aliases and source: Tabular. (line 519) -* ISO_9036: Tabular. (line 77) -* IT, aliases and source: Tabular. (line 523) -* Java: Java. (line 6) -* JIS_C6220-1969: Tabular. (line 527) -* JIS_C6220-1969-jp, aliases and source: Tabular. (line 527) -* JIS_C6220-1969-ro, aliases and source: Tabular. (line 531) -* JIS_C6226-1978, not recognised by recode: Tabular. (line 25) -* JIS_C6229-1984-a, aliases and source: Tabular. (line 535) -* JIS_C6229-1984-b, aliases and source: Tabular. (line 539) -* JIS_C6229-1984-b-add, aliases and source: Tabular. (line 543) -* JIS_C6229-1984-hand, aliases and source: Tabular. (line 547) -* JIS_C6229-1984-hand-add, aliases and source: Tabular. (line 551) -* JIS_C6229-1984-kana, aliases and source: Tabular. (line 555) -* JIS_X0201, aliases and source: Tabular. (line 559) -* JIS_X0212-1990, not recognised by recode: Tabular. (line 25) -* jp: Tabular. (line 531) -* jp-ocr-a: Tabular. (line 535) -* jp-ocr-b: Tabular. (line 539) -* jp-ocr-b-add: Tabular. (line 543) -* jp-ocr-hand: Tabular. (line 547) -* jp-ocr-hand-add: Tabular. (line 551) -* js: Tabular. (line 562) -* JUS_I.B1.002, aliases and source: Tabular. (line 562) -* JUS_I.B1.003-mac, aliases and source: Tabular. (line 566) -* JUS_I.B1.003-serb, aliases and source: Tabular. (line 570) -* Kamenicky: Others. (line 24) -* katakana: Tabular. (line 527) -* KEYBCS2: Others. (line 24) -* KOI-7, aliases and source: Tabular. (line 574) -* KOI-8, aliases and source: Tabular. (line 577) -* KOI-8_CS2: Others. (line 32) -* KOI-8_L2: Tabular. (line 133) -* KOI8-R, aliases and source: Tabular. (line 581) -* KOI8-RU, aliases and source: Tabular. (line 585) -* KOI8-U, aliases and source: Tabular. (line 588) -* koi8l2: Tabular. (line 133) -* KSC5636, aliases and source: Tabular. (line 592) -* KS_C_5601-1987, not recognised by recode: Tabular. (line 25) -* l1: Tabular. (line 422) -* l2: Tabular. (line 447) -* l3: Tabular. (line 452) -* l4: Tabular. (line 457) -* l5: Tabular. (line 482) -* L6: Tabular. (line 427) -* l7: Tabular. (line 432) -* l8: Tabular. (line 437) -* l9: Tabular. (line 442) -* lap: Tabular. (line 697) -* LaTeX, a charset: LaTeX. (line 6) -* Latin-1: ISO 8859. (line 32) -* latin-greek, aliases and source: Tabular. (line 684) -* Latin-greek-1, aliases and source: Tabular. (line 595) -* latin-lap: Tabular. (line 697) -* latin1: Tabular. (line 422) -* latin1-2-5: Tabular. (line 519) -* latin2: Tabular. (line 447) -* latin3: Tabular. (line 452) -* latin4: Tabular. (line 457) -* latin5: Tabular. (line 482) -* latin6: Tabular. (line 427) -* latin7: Tabular. (line 432) -* latin8: Tabular. (line 437) -* latin9: Tabular. (line 442) -* lin: African. (line 17) -* lingala: African. (line 17) -* ltex: LaTeX. (line 6) -* mac: Tabular. (line 690) -* mac <1>: Apple-Mac. (line 29) -* mac-is, aliases and source: Tabular. (line 688) -* macce: Tabular. (line 694) -* macce <1>: Apple-Mac. (line 29) -* macedonian: Tabular. (line 566) -* macintosh, a charset, and its aliases: Apple-Mac. (line 29) -* macintosh, aliases and source: Tabular. (line 690) -* macintosh_ce, aliases and source: Tabular. (line 694) -* macintosh_ce, and its aliases: Apple-Mac. (line 29) -* mnemonic, an alias for RFC1345 charset: Tabular. (line 53) -* ms-ansi: Tabular. (line 97) -* ms-arab: Tabular. (line 113) -* ms-cyrl: Tabular. (line 93) -* ms-ee: Tabular. (line 89) -* ms-greek: Tabular. (line 101) -* ms-hebr: Tabular. (line 109) -* ms-turk: Tabular. (line 105) -* MSDOS: IBM-PC. (line 6) -* MSZ_7795.3, aliases and source: Tabular. (line 599) -* Mule, a charset: Mule. (line 6) -* NATS-DANO, aliases and source: Tabular. (line 603) -* NATS-DANO-ADD, aliases and source: Tabular. (line 607) -* NATS-SEFI, aliases and source: Tabular. (line 611) -* NATS-SEFI-ADD, aliases and source: Tabular. (line 615) -* NC_NC00-10(81): Tabular. (line 619) -* NC_NC00-10, aliases and source: Tabular. (line 619) -* next: Tabular. (line 639) -* NeXTSTEP, aliases and source: Tabular. (line 639) -* NF_Z_62-010, aliases and source: Tabular. (line 623) -* NF_Z_62-010_(1973), aliases and source: Tabular. (line 627) -* no: Tabular. (line 631) -* no2: Tabular. (line 635) -* NOS: CDC-NOS. (line 6) -* NS_4551-1, aliases and source: Tabular. (line 631) -* NS_4551-2, aliases and source: Tabular. (line 635) -* o1: Dump. (line 25) -* o2: Dump. (line 31) -* o4: Dump. (line 38) -* Octal-1: Dump. (line 25) -* Octal-2: Dump. (line 31) -* Octal-4: Dump. (line 38) -* os2latin1: Tabular. (line 231) -* pc: IBM-PC. (line 6) -* pcl2: Tabular. (line 322) -* pclatin2: Tabular. (line 322) -* PT, aliases and source: Tabular. (line 643) -* PT2, aliases and source: Tabular. (line 647) -* QNX, an alias for a charset: Icon-QNX. (line 6) -* QP: MIME. (line 16) -* quote-printable: MIME. (line 16) -* Quoted-Printable: MIME. (line 16) -* r8: Tabular. (line 679) -* ref: Tabular. (line 507) -* RFC1345, a charset, and its aliases: Tabular. (line 53) -* RFC1866: HTML. (line 37) -* RFC2070: HTML. (line 46) -* roman8: Tabular. (line 679) -* rune: UCS-2. (line 29) -* sami, aliases and source: Tabular. (line 697) -* sango: African. (line 17) -* se: Tabular. (line 651) -* se2: Tabular. (line 655) -* SEN_850200_B, aliases and source: Tabular. (line 651) -* SEN_850200_C, aliases and source: Tabular. (line 655) -* serbian: Tabular. (line 570) -* SS636127: Tabular. (line 651) -* ST_SEV_358-88: Tabular. (line 218) -* swabytes: Permutations. (line 15) -* t-bambara: African. (line 10) -* t-bra: African. (line 10) -* t-ewondo: African. (line 10) -* t-fra: African. (line 24) -* t-francais: African. (line 24) -* t-fulfude: African. (line 10) -* t-lin: African. (line 17) -* t-lingala: African. (line 17) -* t-sango: African. (line 17) -* t-wolof: African. (line 17) -* T.101-G2, not recognised by recode: Tabular. (line 21) -* T.61-7bit, aliases and source: Tabular. (line 659) -* T.61-8bit, not recognised by recode: Tabular. (line 21) -* T1: Others. (line 28) -* TCVN, for Vienamese: Vietnamese. (line 11) -* test15: Test. (line 35) -* test16: Test. (line 42) -* test7: Test. (line 25) -* test8: Test. (line 30) -* texi: Texinfo. (line 6) -* Texinfo, a charset: Texinfo. (line 6) -* Texte: Texte. (line 6) -* TF-16: UTF-16. (line 23) -* TF-7: UTF-7. (line 12) -* TF-8: UTF-8. (line 82) -* ti: Texinfo. (line 6) -* tree, a special charset: Surfaces. (line 34) -* txte: Texte. (line 6) -* u2: UCS-2. (line 29) -* u4: UCS-4. (line 10) -* u6: UTF-16. (line 23) -* u7: UTF-7. (line 12) -* u8: UTF-8. (line 82) -* UCS: Universal. (line 11) -* UCS-2: UCS-2. (line 6) -* UCS-4: UCS-4. (line 6) -* uk: Tabular. (line 81) -* Unicode, an alias for UTF-16: UTF-16. (line 23) -* UNICODE-1-1-UTF-7, and aliases: UTF-7. (line 12) -* us: Tabular. (line 72) -* us <1>: ASCII. (line 6) -* US-ASCII: Tabular. (line 72) -* US-ASCII <1>: ASCII. (line 6) -* us-dk, not recognised by recode: Tabular. (line 18) -* UTF-1: Universal. (line 18) -* UTF-16, and aliases: UTF-16. (line 6) -* UTF-7: UTF-7. (line 6) -* UTF-8: UTF-8. (line 6) -* UTF-8, aliases: UTF-8. (line 82) -* UTF-FSS: UTF-8. (line 82) -* VIQR: Vietnamese. (line 23) -* VISCII: Vietnamese. (line 16) -* VN1, maybe not available: Vietnamese. (line 11) -* VN2, maybe not available: Vietnamese. (line 11) -* VN3, maybe not available: Vietnamese. (line 11) -* VNI: Vietnamese. (line 27) -* VPS: Vietnamese. (line 20) -* WinBaltRim: Tabular. (line 117) -* windows-1250: Tabular. (line 89) -* windows-1251: Tabular. (line 93) -* windows-1252: Tabular. (line 97) -* windows-1253: Tabular. (line 101) -* windows-1254: Tabular. (line 105) -* windows-1255: Tabular. (line 109) -* windows-1256: Tabular. (line 113) -* windows-1257: Tabular. (line 117) -* wolof: African. (line 17) -* X0201: Tabular. (line 559) -* x0201-7: Tabular. (line 527) -* x1: Dump. (line 66) -* x2: Dump. (line 73) -* x4: Dump. (line 80) -* XML-standalone: HTML. (line 27) -* yu: Tabular. (line 562) - - - -Tag Table: -Node: Top1125 -Node: Tutorial5584 -Node: Introduction10019 -Node: Charset overview14252 -Node: Surface overview16059 -Node: Contributing17527 -Ref: Contributing-Footnote-119761 -Node: Invoking recode19895 -Node: Synopsis20849 -Ref: Synopsis-Footnote-124032 -Node: Requests24329 -Ref: Requests-Footnote-130364 -Ref: Requests-Footnote-230431 -Ref: Requests-Footnote-330609 -Node: Listings31068 -Ref: Listings-Footnote-142351 -Node: Recoding42674 -Node: Reversibility45495 -Ref: Reversibility-Footnote-153939 -Node: Sequencing54076 -Node: Mixed56514 -Node: Emacs59882 -Node: Debugging60916 -Node: Library65186 -Node: Outer level68147 -Node: Request level73492 -Node: Task level84472 -Node: Charset level95120 -Node: Errors95962 -Ref: Errors-Footnote-1100815 -Ref: Errors-Footnote-2100929 -Node: Universal101290 -Ref: Universal-Footnote-1104402 -Ref: Universal-Footnote-2104468 -Node: UCS-2104681 -Node: UCS-4107206 -Node: UTF-7107746 -Node: UTF-8108341 -Node: UTF-16112643 -Node: count-characters113791 -Node: dump-with-names114462 -Node: iconv117011 -Node: Tabular120441 -Node: ASCII misc142661 -Node: ASCII143029 -Node: ISO 8859143845 -Node: ASCII-BS146132 -Node: flat147970 -Node: IBM and MS148641 -Node: EBCDIC149185 -Node: IBM-PC151281 -Ref: IBM-PC-Footnote-1153397 -Node: Icon-QNX153556 -Node: CDC153980 -Node: Display Code155659 -Ref: Display Code-Footnote-1157939 -Node: CDC-NOS158144 -Node: Bang-Bang160105 -Node: Micros162034 -Node: Apple-Mac162417 -Node: AtariST164452 -Node: Miscellaneous165438 -Node: HTML166357 -Node: LaTeX172340 -Node: Texinfo173114 -Node: Vietnamese173886 -Node: African174862 -Node: Others176212 -Node: Java177665 -Node: Texte178332 -Ref: Texte-Footnote-1182877 -Ref: Texte-Footnote-2182957 -Ref: Texte-Footnote-3183432 -Node: Mule183529 -Ref: Mule-Footnote-1185310 -Node: Surfaces185827 -Ref: Surfaces-Footnote-1189248 -Node: Permutations189352 -Node: End lines190193 -Node: MIME192394 -Node: Dump193581 -Node: Test197745 -Node: Internals200223 -Node: Main flow201451 -Node: New charsets204553 -Node: New surfaces209090 -Node: Design209816 -Ref: Design-Footnote-1218972 -Node: Concept Index219076 -Node: Option Index234695 -Node: Library Index237548 -Node: Charset and Surface Index242123 - -End Tag Table diff --git a/doc/recode.texi b/doc/recode.texi index b9feda8..c8b203a 100644 --- a/doc/recode.texi +++ b/doc/recode.texi @@ -21,7 +21,7 @@ This file documents the Recode program and library, which has the purpose of converting files between various character sets and surfaces. -Copyright (C) 1990, 93, 94, 96, 97, 98, 99, 00 Free Software Foundation, Inc. +Copyright (C) 1990--2023 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -53,7 +53,7 @@ by the Foundation. @page @vskip 0pt plus 1filll -Copyright @copyright{} 1993, 94, 97, 98, 99, 00 Free Software Foundation, Inc. +Copyright @copyright{} 1993--2018 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -123,7 +123,6 @@ How to use this program * Listings:: Asking for various lists * Recoding:: Controlling how files are recoded * Reversibility:: Reversibility issues -* Sequencing:: Selecting sequencing methods * Mixed:: Using mixed charset input * Emacs:: Using Recode within Emacs * Debugging:: Debugging considerations @@ -167,14 +166,16 @@ Charsets for CDC machines Other micro-computer charsets -* Apple-Mac:: Apple's Macintosh code +* Mac OS:: Apple's Macintosh code * AtariST:: Atari ST code Various other charsets * HTML:: World Wide Web representations * LaTeX:: LaTeX macro calls +* BibTeX:: BibTeX macro calls * Texinfo:: GNU project documentation files +* ISO 5426 and ANSEL:: Bibliographic character sets * Vietnamese:: Vietnamese charsets * African:: African charsets * Others:: Cyrillic and other charsets @@ -403,9 +404,15 @@ those of Keld Simonsen and Bruno Haible. @cindex charsets, overview Recoding is currently possible between many charsets, the bulk of which is described by @w{RFC 1345} tables or available in a pre-installed -external @code{iconv} library. @xref{Tabular}, and @pxref{iconv}. The -Recode library also handles some charsets in some specialised -ways. These are: +external @code{iconv} library. @xref{Tabular}, and +@pxref{iconv}@footnote{Because @code{iconv} can vary from system to +system, and is itself a complex tool, it can cause recode to behave in +unexpected ways. Therefore, by default it is only used when a conversion +would not be possible without it. To request that @code{iconv} be used, +use @code{--prefer-iconv}; see @xref{prefer-iconv}. Conversely, you can +disable it with the @code{-x:} option; see @xref{disable-iconv}.}. The +Recode library also handles some charsets in some specialised ways. +These are: @itemize @bullet @item @@ -419,7 +426,7 @@ French conventions for electronic mail; @item 8-bit extensions to ASCII: ISO @w{Latin-1}, Atari ST code, IBM's code for -the PC, Apple's code for the Macintosh; +the PC, Apple's code for the Macintosh, ISO 5426 and ANSEL library codes; @item 8-bit non-ASCII codes: three flavours of EBCDIC; @@ -447,8 +454,8 @@ now, clashes are avoided, the old and new charsets are kept well separate. Conversion is possible between almost any pair of charsets. Here is a list of the exceptions. One may not recode @emph{from} the @code{flat}, @code{count-characters} or @code{dump-with-names} charsets, nor @emph{from} -or @emph{to} the @code{data}, @code{tree} or @code{:iconv:} charsets. -Also, if we except the @code{data} and @code{tree} pseudo-charsets, charsets +or @emph{to} the @code{data} or @code{:iconv:} charsets. +Also, if we except the @code{data} pseudo-charset, charsets and surfaces live in disjoint recoding spaces, one cannot really transform a surface into a charset or vice-versa, as surfaces are only meant to be applied over charsets, or removed from them. @@ -508,7 +515,7 @@ are familiar to you. Once again, I'm no expert, and you have to help me. Your explanations could well find their way into this documentation, too. Also, for contributing new charsets or new surfaces, as much as possible, please provide good, solid, verifiable references for the tables you -used@footnote{I'm not prone at accepting a charset you just invented, +used@footnote{I'm not prone to accept a charset you just invented, and which nobody uses yet: convince your friends and community first!}. Many users contributed to Recode already, I am grateful to them for @@ -519,9 +526,8 @@ go in the next. @cindex bug reports, where to send @cindex reporting bugs -Please send suggestions, documentation errors and bug reports to -@email{recode-bugs@@iro.umontreal.ca} or, if you prefer, directly to -@email{pinard@@iro.umontreal.ca}, Fran@,{c}ois Pinard. Do not be afraid +Please report suggestions, documentation errors and bugs at +@uref{https://github.com/rrthomas/recode}. Do not be afraid to report details, because this program is the mere aggregation of hundreds of details. @@ -541,7 +547,6 @@ control. * Listings:: Asking for various lists * Recoding:: Controlling how files are recoded * Reversibility:: Reversibility issues -* Sequencing:: Selecting sequencing methods * Mixed:: Using mixed charset input * Emacs:: Using Recode within Emacs * Debugging:: Debugging considerations @@ -567,11 +572,10 @@ In other calls, the first parameter (@var{request}) always explains which transformations are expected on the files. There are many variations to the aspect of this parameter. We will discuss more complex situations later (@pxref{Requests}), but for many simple cases, this parameter -merely looks like this@footnote{In previous versions or Recode, a single +merely looks like this@footnote{In previous versions of Recode, a single colon @samp{:} was used instead of the two dots @samp{..} for separating -charsets, but this was creating problems because colons are allowed in -official charset names. The old request syntax is still recognised for -compatibility purposes, but is deprecated.}: +charsets, but this created problems, because colons are allowed in +official charset names.}: @example @var{before}..@var{after} @@ -645,7 +649,7 @@ be ambiguous at some later recode-back time. @item The stricter setting is activated with @samp{-s}, Recode then sets the exit status as above, or if input is not canonically coded (and it also -prevents itself from *completing* recoding tables for making the +prevents itself from @emph{completing} recoding tables for making the recoding reversible). @end itemize @@ -790,13 +794,12 @@ not very useful, as the recoding reduces to a mere copy in that case.} @tindex CHAR When a charset name is omitted or left empty, the value of the @code{DEFAULT_CHARSET} variable in the environment is used instead. -If this variable is not defined, the Recode library (from version -3.6 and up) uses the current locale's encoding. On POSIX compliant -systems, this depends on the first non-empty value among the environment -variables LC_ALL, LC_CTYPE, LANG, and can be determined through the +If this variable is not defined, the Recode library uses the current locale's +encoding. On POSIX systems, this depends on the first non-empty value +among the environment variables @code{LC_ALL}, @code{LC_CTYPE}, +and @code{LANG}, and can be determined through the command @samp{locale charmap}. If the current locale's encoding may not -be resolved, then Recode presumes @code{ASCII} (or, for Recode -3.6 only: @code{CHAR}). +be resolved, then Recode presumes @code{ASCII}. If the charset name is omitted but followed by surfaces, the surfaces then qualify the usual or default charset. For example, the request @@ -904,7 +907,7 @@ This particular option is meant to help identifying an unknown charset, using as hints some already identified characters of the charset. Some examples will help introducing the idea. -Let's presume here that Recode is run in an ISO-8859-1 locale, and +Let's presume here that Recode is run in a UTF-8 locale, and that @code{DEFAULT_CHARSET} is unset in the environment. Suppose you have guessed that code 130 (decimal) of the unknown charset represents a lower case @samp{e} with an acute accent. That is to say @@ -919,17 +922,17 @@ recode -k 130:233 you should obtain a listing similar to: @example -AtariST atarist -CWI cphu cwi cwi2 -IBM437 437 cp437 ibm437 -IBM850 850 cp850 ibm850 -IBM851 851 cp851 ibm851 -IBM852 852 cp852 ibm852 -IBM857 857 cp857 ibm857 -IBM860 860 cp860 ibm860 -IBM861 861 cp861 cpis ibm861 -IBM863 863 cp863 ibm863 -IBM865 865 cp865 ibm865 +AtariST +CWI cp-hu CWI-2 +IBM437/CR-LF 437/CR-LF CP437/CR-LF +IBM850/CR-LF 850/CR-LF CP850/CR-LF +IBM851/CR-LF 851/CR-LF CP851/CR-LF +IBM852/CR-LF 852/CR-LF CP852/CR-LF pcl2 pclatin2 +IBM857/CR-LF 857/CR-LF CP857/CR-LF +IBM860/CR-LF 860/CR-LF CP860/CR-LF +IBM861/CR-LF 861/CR-LF CP861/CR-LF cp-is +IBM863/CR-LF 863/CR-LF CP863/CR-LF +IBM865/CR-LF 865/CR-LF CP865/CR-LF @end example You can give more than one clue at once, to restrict the list further. @@ -945,9 +948,9 @@ recode -k 130:233,211:203 you should obtain: @example -IBM850 850 cp850 ibm850 -IBM852 852 cp852 ibm852 -IBM857 857 cp857 ibm857 +IBM850/CR-LF 850/CR-LF CP850/CR-LF +IBM852/CR-LF 852/CR-LF CP852/CR-LF pcl2 pclatin2 +IBM857/CR-LF 857/CR-LF CP857/CR-LF @end example The usual charset may be overridden by specifying one non-option argument. @@ -962,17 +965,17 @@ recode -k 130:142 mac and get: @example -AtariST atarist -CWI cphu cwi cwi2 -IBM437 437 cp437 ibm437 -IBM850 850 cp850 ibm850 -IBM851 851 cp851 ibm851 -IBM852 852 cp852 ibm852 -IBM857 857 cp857 ibm857 -IBM860 860 cp860 ibm860 -IBM861 861 cp861 cpis ibm861 -IBM863 863 cp863 ibm863 -IBM865 865 cp865 ibm865 +AtariST +CWI cp-hu CWI-2 +IBM437/CR-LF 437/CR-LF CP437/CR-LF +IBM850/CR-LF 850/CR-LF CP850/CR-LF +IBM851/CR-LF 851/CR-LF CP851/CR-LF +IBM852/CR-LF 852/CR-LF CP852/CR-LF pcl2 pclatin2 +IBM857/CR-LF 857/CR-LF CP857/CR-LF +IBM860/CR-LF 860/CR-LF CP860/CR-LF +IBM861/CR-LF 861/CR-LF CP861/CR-LF cp-is +IBM863/CR-LF 863/CR-LF CP863/CR-LF +IBM865/CR-LF 865/CR-LF CP865/CR-LF @end example @noindent @@ -1023,6 +1026,7 @@ is over two hundred lines. It is best used with @samp{grep -i}, as in: recode -l | grep -i greek @end example +@anchor{disable-iconv} Within a collection of names for a single charset, the Recode library distinguishes one of them as being the genuine charset name, while the others are said to be aliases. The list normally integrates @@ -1066,14 +1070,13 @@ using one line per character showing its decimal, hexadecimal, octal and @code{UCS-2} code values, and also a descriptive comment which should be the 10646 name for the character. -@vindex LANGUAGE@r{, when listing charsets} -@vindex LANG@r{, when listing charsets} +@vindex LC_MESSAGES@r{, when listing charsets} @cindex French description of charsets The descriptive comment is given in English and ASCII, yet if the English description is not available but a French one is, then the French description -is given instead, using @w{Latin-1}. However, if the @code{LANGUAGE} -or @code{LANG} environment variable begins with the letters @samp{fr}, -then listing preference goes to French when both descriptions are available. +is given instead, using @w{Latin-1}. However, if the @code{LC_MESSAGES} +environment variable begins with the letters @samp{fr}, then listing +preference goes to French when both descriptions are available. @end table When option @samp{-l} is used together with a @var{charset} argument, @@ -1204,7 +1207,7 @@ requests offers a finer control, @pxref{Requests}). @var{charset} may be abbreviated to any unambiguous prefix. @end table -@node Reversibility, Sequencing, Recoding, Invoking recode +@node Reversibility, Mixed, Recoding, Invoking recode @section Reversibility issues The following options are somewhat related to reversibility issues: @@ -1234,11 +1237,6 @@ received a partially recoded copy of standard input, up to the first error point. After all recodings have been done or attempted, and if some recoding has been aborted, @code{recode} exits with a non-zero status. -In releases of Recode prior to version 3.5, this option was always -selected, so it was rather meaningless. Nevertheless, users were invited -to start using @samp{-f} right away in scripts calling Recode -whenever convenient, in preparation for the current behaviour. - @item -q @itemx --quiet @itemx --silent @@ -1411,68 +1409,7 @@ length 3. On the other end, recoding six times in the same direction would recover all characters in cycles of length 1, 2, 3 or 6. @end enumerate -@node Sequencing, Mixed, Reversibility, Invoking recode -@section Selecting sequencing methods - -@cindex sequencing -This program uses a few techniques when it is discovered that many -passes are needed to comply with the @var{request}. For example, -suppose that four elementary steps were selected at recoding path -optimisation time. Then Recode will split itself into four -different interconnected tasks, logically equivalent to: - -@example -@var{step1} <@var{input} | @var{step2} | @var{step3} | @var{step4} >@var{output} -@end example - -The splitting into subtasks is often done using Unix pipes. -But the splitting may also be completely avoided, and rather -simulated by using memory buffer, or intermediate files. The various -@samp{--sequence=@var{strategy}} options gives you control over the flow -methods, by replacing @var{strategy} with @samp{memory}, @samp{pipe} -or @samp{files}. So, these options may be used to override the default -behaviour, which is also explained below. - -@table @samp -@item --sequence=memory -@opindex --sequence -@cindex memory sequencing -When the recoding requires a combination of two or more elementary -recoding steps, this option forces many passes over the data, using -in-memory buffers to hold all intermediary results. -@c This should be the default behaviour when -@c files to be recoded are @emph{small} enough. - -@item -i -@itemx --sequence=files -@opindex -i -@cindex file sequencing -When the recoding requires a combination of two or more elementary -recoding steps, this option forces many passes over the data, using -intermediate files between passes. This is the default behaviour when -files are recoded over themselves. If this option is selected in filter -mode, that is, when the program reads standard input and writes standard -output, it might take longer for programs further down the pipe chain to -start receiving some recoded data. - -@item -p -@itemx --sequence=pipe -@opindex -p -@cindex pipe sequencing -When the recoding requires a combination of two or more elementary -recoding steps, this option forces the program to fork itself into a few -copies interconnected with pipes, using the @code{pipe(2)} system call. -All copies of the program operate in parallel. This is the default -behaviour in filter mode. If this option is used when files are recoded -over themselves, this should also save disk space because some temporary -files might not be needed, at the cost of more system overhead. - -If, at installation time, the @code{pipe(2)} call is said to be -unavailable, selecting option @samp{-p} is equivalent to selecting -option @samp{-i}. (This happens, for example, on MS-DOS systems.) -@end table - -@node Mixed, Emacs, Sequencing, Invoking recode +@node Mixed, Emacs, Reversibility, Invoking recode @section Using mixed charset input In real life and practice, textual files are often made up of many charsets @@ -1487,40 +1424,6 @@ The default Recode behaviour is to expect pure charset files, to be recoded as other pure charset files. However, the following options allow for a few precise kinds of mixed charset files. -@ignore -Some notes on transliteration and substitution. - -Transliteration is still much study, discussion and work to come, but -when generic transliteration will be added in Recode, it will be -added @emph{through} the Recode library. - -However, I agree that it might be @emph{convenient} that the -@samp{latin1..fi} conversion works by letting all ASCII characters -through, but then, the result would be a mix of ASCII and @code{fi}, it -would not be pure @code{fi} anymore. It would be convenient because, -in practice, people might write programs in ASCII, keeping comments or -strings directly in @code{fi}, all in the same file. The original files -are indeed mixed, and people sometimes expect that Recode will do mixed -conversions. - -A conversion does not become @emph{right} because it is altered to be -more convenient. And recode is not @emph{wrong} because it does not -offer some conveniences people would like to have. As long as Recode -main job is producing @code{fi}, than @samp{[} is just not representable -in @code{fi}, and recode is rather right in not letting @samp{[} -through. It has to do something special about it. The character might -be thrown away, transliterated or replaced by a substitute, or mapped to -some other code for reversibility purposes. - -Transliteration or substitution are currently not implemented in Recode, -yet for the last few years, I've been saving documentation about these -phenomena. The transliteration which you are asking for, here, is that -the '[' character in @w{Latin-1}, for example, be transliterated to -A-umlaut in @code{fi}, which is a bit non-meaningful. Remember, there -is no @samp{[} in @code{fi}. - -@end ignore - @table @samp @item -d @itemx --diacritics @@ -1528,22 +1431,22 @@ is no @samp{[} in @code{fi}. @opindex --diacritics @cindex convert a subset of characters @cindex partial conversion -While converting to or from one of @code{HTML} or @code{LaTeX} +While converting to or from one of @code{HTML}, @code{LaTeX} or @code{BibTeX} charset, limit conversion to some subset of all characters. For @code{HTML}, limit conversion to the subset of all non-ASCII -characters. For @code{LaTeX}, limit conversion to the subset of all +characters. For @code{LaTeX} or @code{BibTeX}, limit conversion to the subset of all non-English letters. This is particularly useful, for example, when people create what would be valid @code{HTML}, @TeX{} or La@TeX{} files, if only they were using provided sequences for applying diacritics instead of using the diacriticised characters directly from the underlying character set. -While converting to @code{HTML} or @code{LaTeX} charset, this option +While converting to @code{HTML}, @code{LaTeX} or @code{BibTeX} charset, this option assumes that characters not in the said subset are properly coded -or protected already, Recode then transmit them literally. +or protected already; Recode then transmits them literally. While converting the other way, this option prevents translating back coded or protected versions of characters not in the said subset. -@xref{HTML}. @xref{LaTeX}. +@xref{HTML}. @xref{LaTeX}. @xref{BibTeX}. @ignore @item -M @@ -1735,6 +1638,7 @@ To use the recoding library once it is installed, a C program needs to have the following lines: @example +#include #include #include @@ -1745,64 +1649,7 @@ const char *program_name; near its beginning, and the user should have @samp{-lrecode} on the linking call, so modules from the recoding library are found. -@cindex @code{stdbool.h} header -@cindex @code{bool} data type -The @code{recode.h} header file uses the Boolean type setup by the -system header file @code{stdbool.h}. This header file, which is now -part of C standards, does not likely exist everywhere. If you system -does not offer this system header file yet, the proper compilation of -the @code{recode.h} file could be guaranteed through the replacement -of the inclusion line by: - -@example -typedef enum @{false = 0, true = 1@} bool; -@end example - -@cindex Autoconf -@cindex portability -@cindex @file{configure.ac} -People wanting wider portability, or Autoconf lovers, might arrange -their @file{configure.ac} for being able to write something more -general. In such contexts, a typical beginning of a program using the -Recode library might look something like: - -@example -@group -#if STDC_HEADERS -# include -#endif - -/* Some systems do not define EXIT_*, even with STDC_HEADERS. */ -#ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -#endif -#ifndef EXIT_FAILURE -# define EXIT_FAILURE 1 -#endif -/* The following test is to work around the gross typo in systems like Sony - NEWS-OS Release 4.0C, whereby EXIT_FAILURE is defined to 0, not 1. */ -#if !EXIT_FAILURE -# undef EXIT_FAILURE -# define EXIT_FAILURE 1 -#endif - -#if HAVE_STDBOOL_H -# include -#else -typedef enum @{false = 0, true = 1@} bool; -#endif - -#include - -const char *program_name; -@end group -@end example - -Yet, for the remainder of the discussion below, we will ignore all these -configuration matters, and merely presume that both @code{stdlib.h} -and @code{stdbool.h} system header files are available. - -The library is still under development. As it stands, it contains +The library contains four identifiable sets of routines: the outer level functions, the request level functions, the task level functions and the charset level functions. There are discussed in separate sections. For effectively @@ -1900,14 +1747,25 @@ diagnostic and abort processing itself. @item RECODE_NO_ICONV_FLAG -When this flag is set, the library does not initialize nor use the +When this flag is set, the library does not initialize or use the external @code{iconv} library. This means that the charsets and aliases provided by the @code{iconv} external library and not by Recode itself are not available. +@item RECODE_STRICT_MAPPING_FLAG + +When this flag is set (corresponding to the @samp{--strict} command-line +option), untranslatable characters are discarded, but an error is +returned on completion unless @samp{RECODE_FORCE_FLAG} is also set. + +@item RECODE_FORCE_FLAG + +When this flag is set (corresponding to the @samp{--force} command-line +option), errors caused by untranslatable characters are ignored. + @end table -In previous incatations of the Recode library, @var{flags} +In previous incarnations of the Recode library, @var{flags} was a Boolean instead of a collection of flags, meant to set @code{RECODE_AUTO_ABORT_FLAG}. This still works, but is deprecated. @@ -1972,7 +1830,7 @@ int main (int argc, char *const *argv) @{ program_name = argv[0]; - RECODE_OUTER outer = recode_new_outer (true); + RECODE_OUTER outer = recode_new_outer (RECODE_AUTO_ABORT_FLAG); RECODE_REQUEST request = recode_new_request (outer); bool success; @@ -2062,7 +1920,7 @@ will fail. @item diacritics_only @vindex diacritics_only -This field is initially @code{false}. For @code{HTML} and @code{LaTeX} +This field is initially @code{false}. For @code{HTML}, @code{LaTeX} and @code{BibTeX} charset, it is often convenient to recode the diacriticized characters only, while just not recoding other HTML code using ampersands or angular brackets, or La@TeX{} code using backslashes. Set the field to @code{true} @@ -2247,7 +2105,7 @@ int main (int argc, char *const *argv) @{ program_name = argv[0]; - RECODE_OUTER outer = recode_new_outer (false); + RECODE_OUTER outer = recode_new_outer (0); RECODE_REQUEST request = recode_new_request (outer); RECODE_TASK task; bool success; @@ -2393,30 +2251,6 @@ task level function with no output buffer at all to start with, in which case all three fields should have @code{NULL} as a value. This is the situation immediately after a call to @code{recode_new_task}. -@item strategy -@vindex strategy -@vindex RECODE_STRATEGY_UNDECIDED -This field, which is of type @code{enum recode_sequence_strategy}, tells -how various recoding steps (passes) will be interconnected. Its initial -value is @code{RECODE_STRATEGY_UNDECIDED}, which is a constant defined in -the header file @file{recodext.h}. Other possible values are: - -@table @code -@item RECODE_SEQUENCE_IN_MEMORY -@vindex RECODE_SEQUENCE_IN_MEMORY -Keep intermediate recodings in memory. -@item RECODE_SEQUENCE_WITH_FILES -@vindex RECODE_SEQUENCE_WITH_FILES -Do not fork, use intermediate files. -@item RECODE_SEQUENCE_WITH_PIPE -@vindex RECODE_SEQUENCE_WITH_PIPE -Fork processes connected with @code{pipe(2)}. -@end table - -@c FIXME -The best for now is to leave this field alone, and let the recoding -library decide its strategy, as many combinations have not been tested yet. - @item byte_order_mark @vindex byte_order_mark This field, which is preset to @code{true}, indicates that a byte order @@ -2568,6 +2402,13 @@ mode prohibits such attribution of reversible translations: so strict mode might often trigger such an error. Most @code{UCS-2} codes used to represent Asian characters cannot be expressed in various Latin charsets. +Since iconv does not distinguish untranslatable from invalid input, +Recode has to use a workaround to detect when input is untranslatable. +Unfortunately, it cannot currently tell how much input is untranslatable, +so it cannot reliably skip such input: typically the input is then diagnosed +as invalid. Two possible workarounds are to set the @code{abort_level} +to @code{RECODE_UNTRANSLATABLE}, or not to use iconv. + @item RECODE_INVALID_INPUT @vindex RECODE_INVALID_INPUT @cindex invalid input, error message @@ -2748,9 +2589,11 @@ elsewhere than at the beginning, because concatenation of @code{UCS-2} files should stay a simple matter, but it might trigger a diagnostic about non canonical input. -By default, when producing an @code{UCS-2} file, Recode always -outputs the high order byte before the low order byte. But this could be -easily overridden through the @code{21-Permutation} surface +By default, when producing an @code{UCS-2} file, Recode always outputs +the high order byte before the low order byte. Note that this may not +be the case if @code{iconv} is used; in that case, you may be able to +use the charset @code{UCS-2BE} to specify big-endian UCS-2. The order +can also be easily overridden through the @code{21-Permutation} surface (@pxref{Permutations}). For example, the command: @example @@ -3026,9 +2869,9 @@ UCS2 Mne Description The descriptive comment is given in English and @code{ASCII}, yet if the English description is not available but a French one is, then the French description is given instead, using @code{Latin-1}. However, -if the @code{LANGUAGE} or @code{LANG} environment variable begins with -the letters @samp{fr}, then listing preference goes to French when both -descriptions are available. +if the @code{LC_MESSAGES} environment variable begins with the letters +@samp{fr}, then listing preference goes to French when both descriptions +are available. Here is another example. To get the long description of the code 237 in @w{Latin-5} table, one may use the following command. @@ -3062,42 +2905,61 @@ an external @code{iconv} library, as they likely share many charsets. We discuss, here, the issues related to this duplication, and other peculiarities specific to the @code{iconv} library. -As implemented, if a recoding request can be satisfied by the -Recode library both with and without using the @code{iconv} -library, the external @code{iconv} library might be used. To sort out -if the @code{iconv} is indeed used or not, just use the @samp{-v} or -@samp{--verbose} option, @pxref{Recoding}, and check if @samp{:iconv:} -appears as an intermediate charset. +The @code{RECODE_STRICT_MAPPING_FLAG} option, corresponding to the +@samp{--strict} flag, is implemented by adding @code{iconv} option +@code{//IGNORE} to the @samp{after} encoding. This has the side effect +that untranslatable input is only signalled at the end of the +conversion, whereas with Recode's built-in conversion routines the error +will be signalled immediately. + +If the string @code{-translit} is appended to the @var{after} encoding, +characters being converted are transliterated when needed and possible. +This means that when a character cannot be represented in the target +character set, it can be approximated through one or several similar +looking characters. Characters that are outside of the target character +set and cannot be transliterated are replaced with a question mark (?) +in the output. This corresponds to the @code{iconv} option +@code{//TRANSLIT}. + +To check whether @code{iconv} is used for a particular conversion, +just use the @samp{-v} or @samp{--verbose} option, @pxref{Recoding}, and +check whether @samp{:iconv:} appears as an intermediate charset. @tindex iconv -The @code{:iconv:} charset represents a conceptual pivot charset -within the external @code{iconv} library (in fact, this pivot exists, -but is not directly reachable). This charset has a @code{:} (a mere -colon) and @code{:libiconv:} for aliases. It is not allowed to recode -from or to this charset directly. But when this charset is selected -as an intermediate, usually by automatic means, then the external -@code{iconv} Recode library is called to handle the transformations. By -using an @samp{--ignore=:iconv:} option on the @code{recode} call or -equivalently, but more simply, @samp{-x:}, Recode is instructed to fully -avoid this charset as an intermediate, with the consequence that the -external @code{iconv} library is defeated. Consider these two calls: +@anchor{prefer-iconv} +The @code{:iconv:} charset represents a conceptual pivot charset within +the external @code{iconv} library (in fact, this pivot exists, but is +not directly reachable). This charset has a @code{:} (a mere colon) and +@code{:libiconv:} for aliases. It is not allowed to recode from or to +this charset directly. But when this charset is selected as an +intermediate, usually by automatic means, then the external @code{iconv} +Recode library is called to handle the transformations. By using an +@samp{--ignore=:iconv:} option on the @code{recode} call or +equivalently, but more simply, @samp{-x:}, Recode is instructed to avoid +this charset as an intermediate, with the consequence that the external +@code{iconv} library is not used. You can also use +@code{--prefer-iconv} to use @code{iconv} if possible. Consider these +calls: @example recode l1..1250 < @var{input} > @var{output} recode -x: l1..1250 < @var{input} > @var{output} +recode --prefer-iconv l1..1250 < @var{input} > @var{output} @end example @noindent -Both should transform @var{input} from @code{ISO-8859-1} to -@code{CP1250} on @var{output}. The first call might use the external -@code{iconv} library, while the second call surely avoids it. Whatever -the path used, the results should normally be identical. However, -there might be observable differences. Most of them might result from -reversibility issues, as the external @code{iconv} engine does not -likely address reversibility in the same way. Even if much less likely, -some differences might result from slight errors in the tables used, -such differences should then be reported as bugs. +All should transform @var{input} from @code{ISO-8859-1} to @code{CP1250} +on @var{output}. The first call might use the external @code{iconv} +library, while the second call definitely avoids it. The third call +will use the external @code{iconv} library if it supports the required +conversion. Whatever the path used, the results should normally be +identical. However, there might be observable differences. Most of +them might result from reversibility issues, as the external +@code{iconv} engine does not likely address reversibility in the same +way. Even if much less likely, some differences might result from +slight errors in the tables used, such differences should then be +reported as bugs. Discrepancies might be seen in the area of error detection and recovery. The Recode library usually tries to detect canonicity errors in @@ -3214,8 +3076,7 @@ is followed by an underline (@kbd{_}), the mmemonic, and another underline. Conversions to this charset are usually reversible. Currently, Recode does not offer any of the many other possible -variations of this family of representations. They will likely be -implemented in some future version, however. +variations of this family of representations. @table @code @include rfc1345.texi @@ -3511,20 +3372,14 @@ same tabular data as @code{819}. @tindex ibm437 There are a few discrepancies between this @code{IBM-PC} charset and the -very similar @w{RFC 1345} charset @code{ibm437}, which have not been analysed -yet, so the charsets are being kept separate for now. This might change in -the future, and the @code{IBM-PC} charset might disappear. Wizards would -be interested in comparing the output of these two commands: - -@example -recode -vh IBM-PC..Latin-1 -recode -vh IBM437..Latin-1 -@end example - -@noindent -The first command uses the charset prior to @w{RFC 1345} introduction. -Both methods give different recodings. These differences are annoying, -the fuzziness will have to be explained and settle down one day. +very similar @w{RFC 1345} charset @code{ibm437}. The @code{IBM-PC} charset +has two extra characters at positions 20 (Latin-1 @code{0xB6}, Pilcrow) +and 21 (Latin-1 @code{0xA7}, Section sign); further, it has position 250 +as @code{0xB7}, middle dot, while @code{ibm437} has middle dot at position +249. According to this comparison of code tables: +@uref{https://www.haible.de/bruno/charsets/conversion-tables/CP437.html} +the source for @w{RFC 1345}, @file{dkuug.dk/IBM437.TXT} is the only +source that thus defines this mapping. @node Icon-QNX, , IBM-PC, IBM and MS @section Unisys' Icon code @@ -3702,40 +3557,15 @@ ASCII character. @node Micros, Miscellaneous, CDC, Top @chapter Other micro-computer charsets -@cindex NeXT charsets -The @code{NeXT} charset, which used to be especially provided in releases of -Recode before 3.5, has been integrated since as one @w{RFC 1345} table. - @menu -* Apple-Mac:: Apple's Macintosh code +* Mac OS:: Apple's Macintosh code * AtariST:: Atari ST code @end menu -@node Apple-Mac, AtariST, Micros, Micros +@node Mac OS, AtariST, Micros, Micros @section Apple's Macintosh code -@tindex Apple-Mac -@cindex Macintosh charset -This charset is available in Recode under the name @code{Apple-Mac}. -The shortest way of specifying it in Recode is @code{ap}. - -The charset is aimed towards a Macintosh micro-computer from Apple. -This is an eight bit code. The file is the data fork only. This charset -is fairly old in Recode, its tables were produced a long while ago -by mere inspection of a printed chart of the Macintosh codes and glyph. - -@cindex CR surface, in Macintosh charsets -It has @code{CR} as its implied surface. This means that, if the original -end of lines have to be preserved while going out of @code{Apple-Mac}, they -should currently be added back through the usage of a surface on the other -charset, or better, just never removed. Here are examples for both cases: - -@example -recode ap..l2/cr < @var{input} > @var{output} -recode ap/..l2 < @var{input} > @var{output} -@end example - -@w{RFC 1345} brings into Recode 2 other Macintosh charsets. You can +@w{RFC 1345} brings 2 Macintosh charsets. You can discover them by using @code{grep} over the output of @samp{recode -l}: @example @@ -3748,30 +3578,9 @@ recode -l | grep -i mac @tindex mac @tindex macce Charsets @code{macintosh} and @code{macintosh_ce}, as well as their aliases -@code{mac} and @code{macce} also have @code{CR} as their implied surface. - -There are a few discrepancies between the @code{Apple-Mac} charset and -the very similar @w{RFC 1345} charset @code{macintosh}, which have not been -analysed yet, so the charsets are being kept separate for now. This might -change in the future, and the @code{Apple-Mac} charset might disappear. -Wizards would be interested in comparing the output of these two commands: - -@example -recode -vh Apple-Mac..Latin-1 -recode -vh macintosh..Latin-1 -@end example - -@noindent -The first command use the charset prior to @w{RFC 1345} introduction. -Both methods give different recodings. These differences are annoying, -the fuzziness will have to be explained and settle down one day. - -@cindex Recode, a Macintosh port -As a side note, some people ask if there is a Macintosh port of Recode. -I'm not aware of any. I presume that if the tool -fills a need for Macintosh users, someone will port it one of these days? +@code{mac} and @code{macce} have @code{CR} as their implied surface. -@node AtariST, , Apple-Mac, Micros +@node AtariST, , Mac OS, Micros @section Atari ST code @tindex AtariST @@ -3803,7 +3612,9 @@ wider @code{Unicode}, but this is being corrected as Recode evolves. @menu * HTML:: World Wide Web representations * LaTeX:: LaTeX macro calls +* BibTeX:: BibTeX macro calls * Texinfo:: GNU project documentation files +* ISO 5426 and ANSEL:: Bibliographic character sets * Vietnamese:: Vietnamese charsets * African:: African charsets * Others:: Cyrillic and other charsets @@ -3970,7 +3781,7 @@ recode h3..u2,u2..h3 < @var{input} @noindent then @samp{&AE;} should be normalised into @samp{Æ} by the operation. -@node LaTeX, Texinfo, HTML, Miscellaneous +@node LaTeX, BibTeX, HTML, Miscellaneous @section La@TeX{} macro calls @tindex LaTeX@r{, a charset} @@ -3989,7 +3800,22 @@ it is not pure @TeX{}, nor it is pure other charset. This translation of backslashes into @samp{\backslash@{@}} can be rather inconvenient, it may be inhibited through the command option @samp{-d} (@pxref{Mixed}). -@node Texinfo, Vietnamese, LaTeX, Miscellaneous +@node BibTeX, Texinfo, LaTeX, Miscellaneous +@section Bib@TeX{} macro calls + +@tindex BibTeX@r{, a charset} +@tindex btex +@cindex Bib@TeX{} files +@cindex @TeX{} files +This charset is available in Recode under the name @code{BibTeX} +with aliases @code{bibtex} and @code{btex}. It is used for ASCII files coded to be +read by Bib@TeX{} or, in certain cases, by La@TeX{} or @TeX{}. + +This charset is very similar to @code{LaTeX}. The only difference is that +diacritics are enclosed between @samp{@{@}}. Refer to @code{LaTeX} +charset for further information. @xref{LaTeX}. + +@node Texinfo, ISO 5426 and ANSEL, BibTeX, Miscellaneous @section GNU project documentation files @tindex Texinfo@r{, a charset} @@ -4008,17 +3834,26 @@ between versions of Texinfo, and Recode only partially succeeds in correctly following these changes. So, for now, Texinfo support in Recode should be considered as work still in progress (!). -@node Vietnamese, African, Texinfo, Miscellaneous +@node ISO 5426 and ANSEL, Vietnamese, Texinfo, Miscellaneous +@section Bibliographic character sets + +@tindex ISO 5426@r{, a charset} +@tindex ANSEL@r{, a charset} +@cindex Bibliographic charsets +These two character sets are intended to work with ASCII for exchange of +bibliographic information. + +@node Vietnamese, African, ISO 5426 and ANSEL, Miscellaneous @section Vietnamese charsets @cindex Vietnamese charsets -We are currently experimenting the implementation, in Recode, of a few +We are currently trying the implementation, in Recode, of a few character sets and transliterated forms to handle the Vietnamese language. They are quite briefly summarised, here. @table @code @item TCVN -@tindex TCVN@r{, for Vienamese} +@tindex TCVN@r{, for Vietnamese} @tindex VN1@r{, maybe not available} @tindex VN2@r{, maybe not available} @tindex VN3@r{, maybe not available} @@ -4312,7 +4147,7 @@ super-charsets, that is, those encoding methods by which a single text stream may contain a combination of more than one constituent charset. The only multiplexed charset in Recode is @code{Mule}, and even then, it is only very partially implemented: the only correspondence -available is with @code{Latin-1}. The author fastly implemented this +available is with @code{Latin-1}. The author quickly implemented this only because he needed this for himself. However, it is intended that Mule support to become more real in subsequent releases of Recode. @@ -4324,7 +4159,7 @@ multiplexed charsets are @emph{designed} to be interpreted fairly precisely, and quite independently of any informational context. @cindex MULE, in Emacs -The spelling @code{Mule} originally stands for @cite{@emph{mul}tilingual +The spelling @code{Mule} originally stood for @cite{@emph{mul}tilingual @emph{e}nhancement to GNU Emacs}, it is the result of a collective effort orchestrated by Handa Ken'ichi since 1993. When @code{Mule} got rewritten in the main development stream of GNU Emacs 20, the FSF renamed @@ -4337,7 +4172,7 @@ of @emph{e}macs @emph{i}nput @emph{m}ethods}. One of these libraries is named @code{quail}@footnote{Usually, quail means quail egg in Japanese, while egg alone is usually chicken egg. Both quail egg and chicken egg are popular food in Japan. The @code{quail} input system has -been named because it is smaller that the previous @code{EGG} system. +been named because it is smaller than the previous @code{EGG} system. As for @code{EGG}, it is the translation of @code{TAMAGO}. This word comes from the Japanese sentence @cite{@emph{ta}kusan @emph{ma}tasete @emph{go}mennasai}, meaning @cite{sorry to have let you wait so long}. @@ -4381,32 +4216,17 @@ and usage. @xref{Universal}. @cindex surfaces, implementation in Recode @tindex data@r{, a special charset} -@tindex tree@r{, a special charset} Surfaces are implemented within Recode as special charsets -which may only transform to or from the @code{data} or @code{tree} -special charsets. Clever users may use this knowledge for writing +which may only transform to or from the @code{data} +special charset. Clever users may use this knowledge for writing surface names in requests exactly as if they were pure charsets, when the only need is to change surfaces without any kind of recoding between -real charsets. In such contexts, either @code{data} or @code{tree} may -also be used as if it were some kind of generic, anonymous charset: the +real charsets. In such contexts @code{data} may also be used as if it +were some kind of generic, anonymous charset: the request @samp{data..@var{surface}} merely adds the given @var{surface}, while the request @samp{@var{surface}..data} removes it. -@cindex structural surfaces -@cindex surfaces, structural -@cindex surfaces, trees -The Recode library distinguishes between mere data surfaces, and -structural surfaces, also called tree surfaces for short. Structural -surfaces might allow, in the long run, transformations between a few -specialised representations of structural information like MIME parts, -Perl or Python initialisers, LISP S-expressions, XML, Emacs outlines, etc. - -We are still experimenting with surfaces in Recode. The concept opens -the doors to many avenues; it is not clear yet which ones are worth pursuing, -and which should be abandoned. In particular, implementation of structural -surfaces is barely starting, there is not even a commitment that tree -surfaces will stay in Recode, if they do prove to be more cumbersome -than useful. This chapter presents all surfaces currently available. +This chapter presents all surfaces currently available. @menu * Permutations:: Permuting groups of bytes @@ -4846,31 +4666,6 @@ If you do not need such delayed initialisation, merely use @code{NULL} for the function argument. The second function executes the elementary recoding on a whole file. -There are a few cases when you can spare writing this function: - -@c FIXME: functions file_one_to_one and file_one_to_many don't exist! -@itemize @bullet -@item -@findex file_one_to_one -Some single steps do nothing else than a pure copy of the input onto the -output, in this case, you can use the predefined function -@code{file_one_to_one}, while having a delayed initialisation for -presetting the @code{STEP} field @code{one_to_one} to the predefined -value @code{one_to_same}. - -@item -Some single steps are driven by a table which recodes one character into -another; if the recoding does nothing else, you can use the predefined -function @code{file_one_to_one}, while having a delayed initialisation -for presetting the @code{STEP} field @code{one_to_one} with your table. - -@item -@findex file_one_to_many -Some single steps are driven by a table which recodes one character into -a string; if the recoding does nothing else, you can use the predefined -function @code{file_one_to_many}, while having a delayed initialisation -for presetting the @code{STEP} field @code{one_to_many} with your table. -@end itemize If you have a recoding table handy in a suitable format but do not use one of the predefined recoding functions, it is still a good idea to use @@ -4879,7 +4674,7 @@ a delayed initialisation to save it anyway, because @code{recode} option Finally, edit @file{Makefile.am} to add the source file name of your routines to the @code{C_STEPS} or @code{L_STEPS} macro definition, depending on -the fact your routines is written in C or in Flex. +whether your routines are written in C or Flex. @node New surfaces, Design, New charsets, Internals @section Adding new surfaces @@ -4888,14 +4683,13 @@ the fact your routines is written in C or in Flex. Adding a new surface is technically quite similar to adding a new charset. @xref{New charsets}. A surface is provided as a set of two transformations: -one from the predefined special charset @code{data} or @code{tree} to the +one from the predefined special charset @code{data} to the new surface, meant to apply the surface, the other from the new surface -to the predefined special charset @code{data} or @code{tree}, meant to -remove the surface. +to the predefined special charset @code{data}, meant to remove the surface. @findex declare_step Internally in Recode, function @code{declare_step} especially -recognises when a charset is so related to @code{data} or @code{tree}, +recognises when a charset is so related to @code{data}, and then takes appropriate actions so that charset gets indeed installed as a surface. @@ -4945,10 +4739,8 @@ There is a locality problem I did not address yet. Currently, the Recode library takes many cycles to initialise itself, calling each module in turn for it to set up associated knowledge about charsets, aliases, elementary steps, recoding weights, etc. @emph{Then}, the -recoding sequence is decided out of the command given. I would not be -surprised if initialisation was taking a perceivable fraction of a second -on slower machines. One thing to do, most probably not right in version -3.5, but the version after, would have Recode to pre-load all tables +recoding sequence is decided out of the command given. +One thing to do would have Recode to pre-load all tables and dump them at installation time. The result would then be compiled and added to the library. This would spare many initialisation cycles, but more importantly, would avoid calling all library modules, scattered through the @@ -4962,7 +4754,7 @@ used as a turning template for all charsets in Recode. Even if I think it could help to a certain extent, I'm still not fully sure it would be sufficient in all cases. Moreover, some people disagree about using @w{ISO 10646} as the central charset, to the point I cannot totally -ignore them, and surely, Recode is not a mean for me to force my +ignore them, and surely, Recode is not a means for me to force my own opinions on people. I would like that Recode be practical more than dogmatic, and reflect usage more than religions. diff --git a/doc/stamp-vti b/doc/stamp-vti deleted file mode 100644 index 265e4b2..0000000 --- a/doc/stamp-vti +++ /dev/null @@ -1,4 +0,0 @@ -@set UPDATED 12 March 2008 -@set UPDATED-MONTH March 2008 -@set EDITION 3.7-beta2 -@set VERSION 3.7-beta2 diff --git a/doc/texinfo.tex b/doc/texinfo.tex deleted file mode 100644 index 8083622..0000000 --- a/doc/texinfo.tex +++ /dev/null @@ -1,7482 +0,0 @@ -% texinfo.tex -- TeX macros to handle Texinfo files. -% -% Load plain if necessary, i.e., if running under initex. -\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi -% -\def\texinfoversion{2006-10-04.17} -% -% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, -% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free -% Software Foundation, Inc. -% -% This texinfo.tex file 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 2, or (at -% your option) any later version. -% -% This texinfo.tex 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. -% -% You should have received a copy of the GNU General Public License -% along with this texinfo.tex file; see the file COPYING. If not, write -% to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -% Boston, MA 02110-1301, USA. -% -% As a special exception, when this file is read by TeX when processing -% a Texinfo source document, you may use the result without -% restriction. (This has been our intent since Texinfo was invented.) -% -% Please try the latest version of texinfo.tex before submitting bug -% reports; you can get the latest version from: -% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or -% ftp://tug.org/tex/texinfo.tex -% (and all CTAN mirrors, see http://www.ctan.org). -% The texinfo.tex in any given distribution could well be out -% of date, so if that's what you're using, please check. -% -% Send bug reports to bug-texinfo@gnu.org. Please include including a -% complete document in each bug report with which we can reproduce the -% problem. Patches are, of course, greatly appreciated. -% -% To process a Texinfo manual with TeX, it's most reliable to use the -% texi2dvi shell script that comes with the distribution. For a simple -% manual foo.texi, however, you can get away with this: -% tex foo.texi -% texindex foo.?? -% tex foo.texi -% tex foo.texi -% dvips foo.dvi -o # or whatever; this makes foo.ps. -% The extra TeX runs get the cross-reference information correct. -% Sometimes one run after texindex suffices, and sometimes you need more -% than two; texi2dvi does it as many times as necessary. -% -% It is possible to adapt texinfo.tex for other languages, to some -% extent. You can get the existing language-specific files from the -% full Texinfo distribution. -% -% The GNU Texinfo home page is http://www.gnu.org/software/texinfo. - - -\message{Loading texinfo [version \texinfoversion]:} - -% If in a .fmt file, print the version number -% and turn on active characters that we couldn't do earlier because -% they might have appeared in the input file name. -\everyjob{\message{[Texinfo version \texinfoversion]}% - \catcode`+=\active \catcode`\_=\active} - -\message{Basics,} -\chardef\other=12 - -% We never want plain's \outer definition of \+ in Texinfo. -% For @tex, we can use \tabalign. -\let\+ = \relax - -% Save some plain tex macros whose names we will redefine. -\let\ptexb=\b -\let\ptexbullet=\bullet -\let\ptexc=\c -\let\ptexcomma=\, -\let\ptexdot=\. -\let\ptexdots=\dots -\let\ptexend=\end -\let\ptexequiv=\equiv -\let\ptexexclam=\! -\let\ptexfootnote=\footnote -\let\ptexgtr=> -\let\ptexhat=^ -\let\ptexi=\i -\let\ptexindent=\indent -\let\ptexinsert=\insert -\let\ptexlbrace=\{ -\let\ptexless=< -\let\ptexnewwrite\newwrite -\let\ptexnoindent=\noindent -\let\ptexplus=+ -\let\ptexrbrace=\} -\let\ptexslash=\/ -\let\ptexstar=\* -\let\ptext=\t - -% If this character appears in an error message or help string, it -% starts a new line in the output. -\newlinechar = `^^J - -% Use TeX 3.0's \inputlineno to get the line number, for better error -% messages, but if we're using an old version of TeX, don't do anything. -% -\ifx\inputlineno\thisisundefined - \let\linenumber = \empty % Pre-3.0. -\else - \def\linenumber{l.\the\inputlineno:\space} -\fi - -% Set up fixed words for English if not already set. -\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi -\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi -\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi -\ifx\putwordin\undefined \gdef\putwordin{in}\fi -\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi -\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi -\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi -\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi -\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi -\ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi -\ifx\putwordof\undefined \gdef\putwordof{of}\fi -\ifx\putwordon\undefined \gdef\putwordon{on}\fi -\ifx\putwordpage\undefined \gdef\putwordpage{page}\fi -\ifx\putwordsection\undefined \gdef\putwordsection{section}\fi -\ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi -\ifx\putwordsee\undefined \gdef\putwordsee{see}\fi -\ifx\putwordSee\undefined \gdef\putwordSee{See}\fi -\ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi -\ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi -% -\ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi -\ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi -\ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi -\ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi -\ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi -\ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi -\ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi -\ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi -\ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi -\ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi -\ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi -\ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi -% -\ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi -\ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi -\ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi -\ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi -\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi - -% Since the category of space is not known, we have to be careful. -\chardef\spacecat = 10 -\def\spaceisspace{\catcode`\ =\spacecat} - -% sometimes characters are active, so we need control sequences. -\chardef\colonChar = `\: -\chardef\commaChar = `\, -\chardef\dashChar = `\- -\chardef\dotChar = `\. -\chardef\exclamChar= `\! -\chardef\lquoteChar= `\` -\chardef\questChar = `\? -\chardef\rquoteChar= `\' -\chardef\semiChar = `\; -\chardef\underChar = `\_ - -% Ignore a token. -% -\def\gobble#1{} - -% The following is used inside several \edef's. -\def\makecsname#1{\expandafter\noexpand\csname#1\endcsname} - -% Hyphenation fixes. -\hyphenation{ - Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script - ap-pen-dix bit-map bit-maps - data-base data-bases eshell fall-ing half-way long-est man-u-script - man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm - par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces - spell-ing spell-ings - stand-alone strong-est time-stamp time-stamps which-ever white-space - wide-spread wrap-around -} - -% Margin to add to right of even pages, to left of odd pages. -\newdimen\bindingoffset -\newdimen\normaloffset -\newdimen\pagewidth \newdimen\pageheight - -% For a final copy, take out the rectangles -% that mark overfull boxes (in case you have decided -% that the text looks ok even though it passes the margin). -% -\def\finalout{\overfullrule=0pt} - -% @| inserts a changebar to the left of the current line. It should -% surround any changed text. This approach does *not* work if the -% change spans more than two lines of output. To handle that, we would -% have adopt a much more difficult approach (putting marks into the main -% vertical list for the beginning and end of each change). -% -\def\|{% - % \vadjust can only be used in horizontal mode. - \leavevmode - % - % Append this vertical mode material after the current line in the output. - \vadjust{% - % We want to insert a rule with the height and depth of the current - % leading; that is exactly what \strutbox is supposed to record. - \vskip-\baselineskip - % - % \vadjust-items are inserted at the left edge of the type. So - % the \llap here moves out into the left-hand margin. - \llap{% - % - % For a thicker or thinner bar, change the `1pt'. - \vrule height\baselineskip width1pt - % - % This is the space between the bar and the text. - \hskip 12pt - }% - }% -} - -% Sometimes it is convenient to have everything in the transcript file -% and nothing on the terminal. We don't just call \tracingall here, -% since that produces some useless output on the terminal. We also make -% some effort to order the tracing commands to reduce output in the log -% file; cf. trace.sty in LaTeX. -% -\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% -\def\loggingall{% - \tracingstats2 - \tracingpages1 - \tracinglostchars2 % 2 gives us more in etex - \tracingparagraphs1 - \tracingoutput1 - \tracingmacros2 - \tracingrestores1 - \showboxbreadth\maxdimen \showboxdepth\maxdimen - \ifx\eTeXversion\undefined\else % etex gives us more logging - \tracingscantokens1 - \tracingifs1 - \tracinggroups1 - \tracingnesting2 - \tracingassigns1 - \fi - \tracingcommands3 % 3 gives us more in etex - \errorcontextlines16 -}% - -% add check for \lastpenalty to plain's definitions. If the last thing -% we did was a \nobreak, we don't want to insert more space. -% -\def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount - \removelastskip\penalty-50\smallskip\fi\fi} -\def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount - \removelastskip\penalty-100\medskip\fi\fi} -\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount - \removelastskip\penalty-200\bigskip\fi\fi} - -% For @cropmarks command. -% Do @cropmarks to get crop marks. -% -\newif\ifcropmarks -\let\cropmarks = \cropmarkstrue -% -% Dimensions to add cropmarks at corners. -% Added by P. A. MacKay, 12 Nov. 1986 -% -\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines -\newdimen\cornerlong \cornerlong=1pc -\newdimen\cornerthick \cornerthick=.3pt -\newdimen\topandbottommargin \topandbottommargin=.75in - -% Main output routine. -\chardef\PAGE = 255 -\output = {\onepageout{\pagecontents\PAGE}} - -\newbox\headlinebox -\newbox\footlinebox - -% \onepageout takes a vbox as an argument. Note that \pagecontents -% does insertions, but you have to call it yourself. -\def\onepageout#1{% - \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi - % - \ifodd\pageno \advance\hoffset by \bindingoffset - \else \advance\hoffset by -\bindingoffset\fi - % - % Do this outside of the \shipout so @code etc. will be expanded in - % the headline as they should be, not taken literally (outputting ''code). - \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% - \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% - % - {% - % Have to do this stuff outside the \shipout because we want it to - % take effect in \write's, yet the group defined by the \vbox ends - % before the \shipout runs. - % - \indexdummies % don't expand commands in the output. - \normalturnoffactive % \ in index entries must not stay \, e.g., if - % the page break happens to be in the middle of an example. - % We don't want .vr (or whatever) entries like this: - % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} - % "\acronym" won't work when it's read back in; - % it needs to be - % {\code {{\tt \backslashcurfont }acronym} - \shipout\vbox{% - % Do this early so pdf references go to the beginning of the page. - \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi - % - \ifcropmarks \vbox to \outervsize\bgroup - \hsize = \outerhsize - \vskip-\topandbottommargin - \vtop to0pt{% - \line{\ewtop\hfil\ewtop}% - \nointerlineskip - \line{% - \vbox{\moveleft\cornerthick\nstop}% - \hfill - \vbox{\moveright\cornerthick\nstop}% - }% - \vss}% - \vskip\topandbottommargin - \line\bgroup - \hfil % center the page within the outer (page) hsize. - \ifodd\pageno\hskip\bindingoffset\fi - \vbox\bgroup - \fi - % - \unvbox\headlinebox - \pagebody{#1}% - \ifdim\ht\footlinebox > 0pt - % Only leave this space if the footline is nonempty. - % (We lessened \vsize for it in \oddfootingyyy.) - % The \baselineskip=24pt in plain's \makefootline has no effect. - \vskip 24pt - \unvbox\footlinebox - \fi - % - \ifcropmarks - \egroup % end of \vbox\bgroup - \hfil\egroup % end of (centering) \line\bgroup - \vskip\topandbottommargin plus1fill minus1fill - \boxmaxdepth = \cornerthick - \vbox to0pt{\vss - \line{% - \vbox{\moveleft\cornerthick\nsbot}% - \hfill - \vbox{\moveright\cornerthick\nsbot}% - }% - \nointerlineskip - \line{\ewbot\hfil\ewbot}% - }% - \egroup % \vbox from first cropmarks clause - \fi - }% end of \shipout\vbox - }% end of group with \indexdummies - \advancepageno - \ifnum\outputpenalty>-20000 \else\dosupereject\fi -} - -\newinsert\margin \dimen\margin=\maxdimen - -\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}} -{\catcode`\@ =11 -\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi -% marginal hacks, juha@viisa.uucp (Juha Takala) -\ifvoid\margin\else % marginal info is present - \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi -\dimen@=\dp#1 \unvbox#1 -\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi -\ifr@ggedbottom \kern-\dimen@ \vfil \fi} -} - -% Here are the rules for the cropmarks. Note that they are -% offset so that the space between them is truly \outerhsize or \outervsize -% (P. A. MacKay, 12 November, 1986) -% -\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong} -\def\nstop{\vbox - {\hrule height\cornerthick depth\cornerlong width\cornerthick}} -\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong} -\def\nsbot{\vbox - {\hrule height\cornerlong depth\cornerthick width\cornerthick}} - -% Parse an argument, then pass it to #1. The argument is the rest of -% the input line (except we remove a trailing comment). #1 should be a -% macro which expects an ordinary undelimited TeX argument. -% -\def\parsearg{\parseargusing{}} -\def\parseargusing#1#2{% - \def\argtorun{#2}% - \begingroup - \obeylines - \spaceisspace - #1% - \parseargline\empty% Insert the \empty token, see \finishparsearg below. -} - -{\obeylines % - \gdef\parseargline#1^^M{% - \endgroup % End of the group started in \parsearg. - \argremovecomment #1\comment\ArgTerm% - }% -} - -% First remove any @comment, then any @c comment. -\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} -\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} - -% Each occurence of `\^^M' or `\^^M' is replaced by a single space. -% -% \argremovec might leave us with trailing space, e.g., -% @end itemize @c foo -% This space token undergoes the same procedure and is eventually removed -% by \finishparsearg. -% -\def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M} -\def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M} -\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% - \def\temp{#3}% - \ifx\temp\empty - % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: - \let\temp\finishparsearg - \else - \let\temp\argcheckspaces - \fi - % Put the space token in: - \temp#1 #3\ArgTerm -} - -% If a _delimited_ argument is enclosed in braces, they get stripped; so -% to get _exactly_ the rest of the line, we had to prevent such situation. -% We prepended an \empty token at the very beginning and we expand it now, -% just before passing the control to \argtorun. -% (Similarily, we have to think about #3 of \argcheckspacesY above: it is -% either the null string, or it ends with \^^M---thus there is no danger -% that a pair of braces would be stripped. -% -% But first, we have to remove the trailing space token. -% -\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} - -% \parseargdef\foo{...} -% is roughly equivalent to -% \def\foo{\parsearg\Xfoo} -% \def\Xfoo#1{...} -% -% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my -% favourite TeX trick. --kasal, 16nov03 - -\def\parseargdef#1{% - \expandafter \doparseargdef \csname\string#1\endcsname #1% -} -\def\doparseargdef#1#2{% - \def#2{\parsearg#1}% - \def#1##1% -} - -% Several utility definitions with active space: -{ - \obeyspaces - \gdef\obeyedspace{ } - - % Make each space character in the input produce a normal interword - % space in the output. Don't allow a line break at this space, as this - % is used only in environments like @example, where each line of input - % should produce a line of output anyway. - % - \gdef\sepspaces{\obeyspaces\let =\tie} - - % If an index command is used in an @example environment, any spaces - % therein should become regular spaces in the raw index file, not the - % expansion of \tie (\leavevmode \penalty \@M \ ). - \gdef\unsepspaces{\let =\space} -} - - -\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} - -% Define the framework for environments in texinfo.tex. It's used like this: -% -% \envdef\foo{...} -% \def\Efoo{...} -% -% It's the responsibility of \envdef to insert \begingroup before the -% actual body; @end closes the group after calling \Efoo. \envdef also -% defines \thisenv, so the current environment is known; @end checks -% whether the environment name matches. The \checkenv macro can also be -% used to check whether the current environment is the one expected. -% -% Non-false conditionals (@iftex, @ifset) don't fit into this, so they -% are not treated as enviroments; they don't open a group. (The -% implementation of @end takes care not to call \endgroup in this -% special case.) - - -% At runtime, environments start with this: -\def\startenvironment#1{\begingroup\def\thisenv{#1}} -% initialize -\let\thisenv\empty - -% ... but they get defined via ``\envdef\foo{...}'': -\long\def\envdef#1#2{\def#1{\startenvironment#1#2}} -\def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}} - -% Check whether we're in the right environment: -\def\checkenv#1{% - \def\temp{#1}% - \ifx\thisenv\temp - \else - \badenverr - \fi -} - -% Evironment mismatch, #1 expected: -\def\badenverr{% - \errhelp = \EMsimple - \errmessage{This command can appear only \inenvironment\temp, - not \inenvironment\thisenv}% -} -\def\inenvironment#1{% - \ifx#1\empty - out of any environment% - \else - in environment \expandafter\string#1% - \fi -} - -% @end foo executes the definition of \Efoo. -% But first, it executes a specialized version of \checkenv -% -\parseargdef\end{% - \if 1\csname iscond.#1\endcsname - \else - % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03 - \expandafter\checkenv\csname#1\endcsname - \csname E#1\endcsname - \endgroup - \fi -} - -\newhelp\EMsimple{Press RETURN to continue.} - - -%% Simple single-character @ commands - -% @@ prints an @ -% Kludge this until the fonts are right (grr). -\def\@{{\tt\char64}} - -% This is turned off because it was never documented -% and you can use @w{...} around a quote to suppress ligatures. -%% Define @` and @' to be the same as ` and ' -%% but suppressing ligatures. -%\def\`{{`}} -%\def\'{{'}} - -% Used to generate quoted braces. -\def\mylbrace {{\tt\char123}} -\def\myrbrace {{\tt\char125}} -\let\{=\mylbrace -\let\}=\myrbrace -\begingroup - % Definitions to produce \{ and \} commands for indices, - % and @{ and @} for the aux/toc files. - \catcode`\{ = \other \catcode`\} = \other - \catcode`\[ = 1 \catcode`\] = 2 - \catcode`\! = 0 \catcode`\\ = \other - !gdef!lbracecmd[\{]% - !gdef!rbracecmd[\}]% - !gdef!lbraceatcmd[@{]% - !gdef!rbraceatcmd[@}]% -!endgroup - -% @comma{} to avoid , parsing problems. -\let\comma = , - -% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent -% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. -\let\, = \c -\let\dotaccent = \. -\def\ringaccent#1{{\accent23 #1}} -\let\tieaccent = \t -\let\ubaraccent = \b -\let\udotaccent = \d - -% Other special characters: @questiondown @exclamdown @ordf @ordm -% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. -\def\questiondown{?`} -\def\exclamdown{!`} -\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} -\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} - -% Dotless i and dotless j, used for accents. -\def\imacro{i} -\def\jmacro{j} -\def\dotless#1{% - \def\temp{#1}% - \ifx\temp\imacro \ptexi - \else\ifx\temp\jmacro \j - \else \errmessage{@dotless can be used only with i or j}% - \fi\fi -} - -% The \TeX{} logo, as in plain, but resetting the spacing so that a -% period following counts as ending a sentence. (Idea found in latex.) -% -\edef\TeX{\TeX \spacefactor=1000 } - -% @LaTeX{} logo. Not quite the same results as the definition in -% latex.ltx, since we use a different font for the raised A; it's most -% convenient for us to use an explicitly smaller font, rather than using -% the \scriptstyle font (since we don't reset \scriptstyle and -% \scriptscriptstyle). -% -\def\LaTeX{% - L\kern-.36em - {\setbox0=\hbox{T}% - \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}% - \kern-.15em - \TeX -} - -% Be sure we're in horizontal mode when doing a tie, since we make space -% equivalent to this in @example-like environments. Otherwise, a space -% at the beginning of a line will start with \penalty -- and -% since \penalty is valid in vertical mode, we'd end up putting the -% penalty on the vertical list instead of in the new paragraph. -{\catcode`@ = 11 - % Avoid using \@M directly, because that causes trouble - % if the definition is written into an index file. - \global\let\tiepenalty = \@M - \gdef\tie{\leavevmode\penalty\tiepenalty\ } -} - -% @: forces normal size whitespace following. -\def\:{\spacefactor=1000 } - -% @* forces a line break. -\def\*{\hfil\break\hbox{}\ignorespaces} - -% @/ allows a line break. -\let\/=\allowbreak - -% @. is an end-of-sentence period. -\def\.{.\spacefactor=\endofsentencespacefactor\space} - -% @! is an end-of-sentence bang. -\def\!{!\spacefactor=\endofsentencespacefactor\space} - -% @? is an end-of-sentence query. -\def\?{?\spacefactor=\endofsentencespacefactor\space} - -% @frenchspacing on|off says whether to put extra space after punctuation. -% -\def\onword{on} -\def\offword{off} -% -\parseargdef\frenchspacing{% - \def\temp{#1}% - \ifx\temp\onword \plainfrenchspacing - \else\ifx\temp\offword \plainnonfrenchspacing - \else - \errhelp = \EMsimple - \errmessage{Unknown @frenchspacing option `\temp', must be on/off}% - \fi\fi -} - -% @w prevents a word break. Without the \leavevmode, @w at the -% beginning of a paragraph, when TeX is still in vertical mode, would -% produce a whole line of output instead of starting the paragraph. -\def\w#1{\leavevmode\hbox{#1}} - -% @group ... @end group forces ... to be all on one page, by enclosing -% it in a TeX vbox. We use \vtop instead of \vbox to construct the box -% to keep its height that of a normal line. According to the rules for -% \topskip (p.114 of the TeXbook), the glue inserted is -% max (\topskip - \ht (first item), 0). If that height is large, -% therefore, no glue is inserted, and the space between the headline and -% the text is small, which looks bad. -% -% Another complication is that the group might be very large. This can -% cause the glue on the previous page to be unduly stretched, because it -% does not have much material. In this case, it's better to add an -% explicit \vfill so that the extra space is at the bottom. The -% threshold for doing this is if the group is more than \vfilllimit -% percent of a page (\vfilllimit can be changed inside of @tex). -% -\newbox\groupbox -\def\vfilllimit{0.7} -% -\envdef\group{% - \ifnum\catcode`\^^M=\active \else - \errhelp = \groupinvalidhelp - \errmessage{@group invalid in context where filling is enabled}% - \fi - \startsavinginserts - % - \setbox\groupbox = \vtop\bgroup - % Do @comment since we are called inside an environment such as - % @example, where each end-of-line in the input causes an - % end-of-line in the output. We don't want the end-of-line after - % the `@group' to put extra space in the output. Since @group - % should appear on a line by itself (according to the Texinfo - % manual), we don't worry about eating any user text. - \comment -} -% -% The \vtop produces a box with normal height and large depth; thus, TeX puts -% \baselineskip glue before it, and (when the next line of text is done) -% \lineskip glue after it. Thus, space below is not quite equal to space -% above. But it's pretty close. -\def\Egroup{% - % To get correct interline space between the last line of the group - % and the first line afterwards, we have to propagate \prevdepth. - \endgraf % Not \par, as it may have been set to \lisppar. - \global\dimen1 = \prevdepth - \egroup % End the \vtop. - % \dimen0 is the vertical size of the group's box. - \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox - % \dimen2 is how much space is left on the page (more or less). - \dimen2 = \pageheight \advance\dimen2 by -\pagetotal - % if the group doesn't fit on the current page, and it's a big big - % group, force a page break. - \ifdim \dimen0 > \dimen2 - \ifdim \pagetotal < \vfilllimit\pageheight - \page - \fi - \fi - \box\groupbox - \prevdepth = \dimen1 - \checkinserts -} -% -% TeX puts in an \escapechar (i.e., `@') at the beginning of the help -% message, so this ends up printing `@group can only ...'. -% -\newhelp\groupinvalidhelp{% -group can only be used in environments such as @example,^^J% -where each line of input produces a line of output.} - -% @need space-in-mils -% forces a page break if there is not space-in-mils remaining. - -\newdimen\mil \mil=0.001in - -% Old definition--didn't work. -%\parseargdef\need{\par % -%% This method tries to make TeX break the page naturally -%% if the depth of the box does not fit. -%{\baselineskip=0pt% -%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak -%\prevdepth=-1000pt -%}} - -\parseargdef\need{% - % Ensure vertical mode, so we don't make a big box in the middle of a - % paragraph. - \par - % - % If the @need value is less than one line space, it's useless. - \dimen0 = #1\mil - \dimen2 = \ht\strutbox - \advance\dimen2 by \dp\strutbox - \ifdim\dimen0 > \dimen2 - % - % Do a \strut just to make the height of this box be normal, so the - % normal leading is inserted relative to the preceding line. - % And a page break here is fine. - \vtop to #1\mil{\strut\vfil}% - % - % TeX does not even consider page breaks if a penalty added to the - % main vertical list is 10000 or more. But in order to see if the - % empty box we just added fits on the page, we must make it consider - % page breaks. On the other hand, we don't want to actually break the - % page after the empty box. So we use a penalty of 9999. - % - % There is an extremely small chance that TeX will actually break the - % page at this \penalty, if there are no other feasible breakpoints in - % sight. (If the user is using lots of big @group commands, which - % almost-but-not-quite fill up a page, TeX will have a hard time doing - % good page breaking, for example.) However, I could not construct an - % example where a page broke at this \penalty; if it happens in a real - % document, then we can reconsider our strategy. - \penalty9999 - % - % Back up by the size of the box, whether we did a page break or not. - \kern -#1\mil - % - % Do not allow a page break right after this kern. - \nobreak - \fi -} - -% @br forces paragraph break (and is undocumented). - -\let\br = \par - -% @page forces the start of a new page. -% -\def\page{\par\vfill\supereject} - -% @exdent text.... -% outputs text on separate line in roman font, starting at standard page margin - -% This records the amount of indent in the innermost environment. -% That's how much \exdent should take out. -\newskip\exdentamount - -% This defn is used inside fill environments such as @defun. -\parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break} - -% This defn is used inside nofill environments such as @example. -\parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount - \leftline{\hskip\leftskip{\rm#1}}}} - -% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current -% paragraph. For more general purposes, use the \margin insertion -% class. WHICH is `l' or `r'. -% -\newskip\inmarginspacing \inmarginspacing=1cm -\def\strutdepth{\dp\strutbox} -% -\def\doinmargin#1#2{\strut\vadjust{% - \nobreak - \kern-\strutdepth - \vtop to \strutdepth{% - \baselineskip=\strutdepth - \vss - % if you have multiple lines of stuff to put here, you'll need to - % make the vbox yourself of the appropriate size. - \ifx#1l% - \llap{\ignorespaces #2\hskip\inmarginspacing}% - \else - \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}% - \fi - \null - }% -}} -\def\inleftmargin{\doinmargin l} -\def\inrightmargin{\doinmargin r} -% -% @inmargin{TEXT [, RIGHT-TEXT]} -% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; -% else use TEXT for both). -% -\def\inmargin#1{\parseinmargin #1,,\finish} -\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. - \setbox0 = \hbox{\ignorespaces #2}% - \ifdim\wd0 > 0pt - \def\lefttext{#1}% have both texts - \def\righttext{#2}% - \else - \def\lefttext{#1}% have only one text - \def\righttext{#1}% - \fi - % - \ifodd\pageno - \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin - \else - \def\temp{\inleftmargin\lefttext}% - \fi - \temp -} - -% @include file insert text of that file as input. -% -\def\include{\parseargusing\filenamecatcodes\includezzz} -\def\includezzz#1{% - \pushthisfilestack - \def\thisfile{#1}% - {% - \makevalueexpandable - \def\temp{\input #1 }% - \expandafter - }\temp - \popthisfilestack -} -\def\filenamecatcodes{% - \catcode`\\=\other - \catcode`~=\other - \catcode`^=\other - \catcode`_=\other - \catcode`|=\other - \catcode`<=\other - \catcode`>=\other - \catcode`+=\other - \catcode`-=\other -} - -\def\pushthisfilestack{% - \expandafter\pushthisfilestackX\popthisfilestack\StackTerm -} -\def\pushthisfilestackX{% - \expandafter\pushthisfilestackY\thisfile\StackTerm -} -\def\pushthisfilestackY #1\StackTerm #2\StackTerm {% - \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}% -} - -\def\popthisfilestack{\errthisfilestackempty} -\def\errthisfilestackempty{\errmessage{Internal error: - the stack of filenames is empty.}} - -\def\thisfile{} - -% @center line -% outputs that line, centered. -% -\parseargdef\center{% - \ifhmode - \let\next\centerH - \else - \let\next\centerV - \fi - \next{\hfil \ignorespaces#1\unskip \hfil}% -} -\def\centerH#1{% - {% - \hfil\break - \advance\hsize by -\leftskip - \advance\hsize by -\rightskip - \line{#1}% - \break - }% -} -\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}} - -% @sp n outputs n lines of vertical space - -\parseargdef\sp{\vskip #1\baselineskip} - -% @comment ...line which is ignored... -% @c is the same as @comment -% @ignore ... @end ignore is another way to write a comment - -\def\comment{\begingroup \catcode`\^^M=\other% -\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% -\commentxxx} -{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} - -\let\c=\comment - -% @paragraphindent NCHARS -% We'll use ems for NCHARS, close enough. -% NCHARS can also be the word `asis' or `none'. -% We cannot feasibly implement @paragraphindent asis, though. -% -\def\asisword{asis} % no translation, these are keywords -\def\noneword{none} -% -\parseargdef\paragraphindent{% - \def\temp{#1}% - \ifx\temp\asisword - \else - \ifx\temp\noneword - \defaultparindent = 0pt - \else - \defaultparindent = #1em - \fi - \fi - \parindent = \defaultparindent -} - -% @exampleindent NCHARS -% We'll use ems for NCHARS like @paragraphindent. -% It seems @exampleindent asis isn't necessary, but -% I preserve it to make it similar to @paragraphindent. -\parseargdef\exampleindent{% - \def\temp{#1}% - \ifx\temp\asisword - \else - \ifx\temp\noneword - \lispnarrowing = 0pt - \else - \lispnarrowing = #1em - \fi - \fi -} - -% @firstparagraphindent WORD -% If WORD is `none', then suppress indentation of the first paragraph -% after a section heading. If WORD is `insert', then do indent at such -% paragraphs. -% -% The paragraph indentation is suppressed or not by calling -% \suppressfirstparagraphindent, which the sectioning commands do. -% We switch the definition of this back and forth according to WORD. -% By default, we suppress indentation. -% -\def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent} -\def\insertword{insert} -% -\parseargdef\firstparagraphindent{% - \def\temp{#1}% - \ifx\temp\noneword - \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent - \else\ifx\temp\insertword - \let\suppressfirstparagraphindent = \relax - \else - \errhelp = \EMsimple - \errmessage{Unknown @firstparagraphindent option `\temp'}% - \fi\fi -} - -% Here is how we actually suppress indentation. Redefine \everypar to -% \kern backwards by \parindent, and then reset itself to empty. -% -% We also make \indent itself not actually do anything until the next -% paragraph. -% -\gdef\dosuppressfirstparagraphindent{% - \gdef\indent{% - \restorefirstparagraphindent - \indent - }% - \gdef\noindent{% - \restorefirstparagraphindent - \noindent - }% - \global\everypar = {% - \kern -\parindent - \restorefirstparagraphindent - }% -} - -\gdef\restorefirstparagraphindent{% - \global \let \indent = \ptexindent - \global \let \noindent = \ptexnoindent - \global \everypar = {}% -} - - -% @asis just yields its argument. Used with @table, for example. -% -\def\asis#1{#1} - -% @math outputs its argument in math mode. -% -% One complication: _ usually means subscripts, but it could also mean -% an actual _ character, as in @math{@var{some_variable} + 1}. So make -% _ active, and distinguish by seeing if the current family is \slfam, -% which is what @var uses. -{ - \catcode`\_ = \active - \gdef\mathunderscore{% - \catcode`\_=\active - \def_{\ifnum\fam=\slfam \_\else\sb\fi}% - } -} -% Another complication: we want \\ (and @\) to output a \ character. -% FYI, plain.tex uses \\ as a temporary control sequence (why?), but -% this is not advertised and we don't care. Texinfo does not -% otherwise define @\. -% -% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. -\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} -% -\def\math{% - \tex - \mathunderscore - \let\\ = \mathbackslash - \mathactive - $\finishmath -} -\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. - -% Some active characters (such as <) are spaced differently in math. -% We have to reset their definitions in case the @math was an argument -% to a command which sets the catcodes (such as @item or @section). -% -{ - \catcode`^ = \active - \catcode`< = \active - \catcode`> = \active - \catcode`+ = \active - \gdef\mathactive{% - \let^ = \ptexhat - \let< = \ptexless - \let> = \ptexgtr - \let+ = \ptexplus - } -} - -% @bullet and @minus need the same treatment as @math, just above. -\def\bullet{$\ptexbullet$} -\def\minus{$-$} - -% @dots{} outputs an ellipsis using the current font. -% We do .5em per period so that it has the same spacing in the cm -% typewriter fonts as three actual period characters; on the other hand, -% in other typewriter fonts three periods are wider than 1.5em. So do -% whichever is larger. -% -\def\dots{% - \leavevmode - \setbox0=\hbox{...}% get width of three periods - \ifdim\wd0 > 1.5em - \dimen0 = \wd0 - \else - \dimen0 = 1.5em - \fi - \hbox to \dimen0{% - \hskip 0pt plus.25fil - .\hskip 0pt plus1fil - .\hskip 0pt plus1fil - .\hskip 0pt plus.5fil - }% -} - -% @enddots{} is an end-of-sentence ellipsis. -% -\def\enddots{% - \dots - \spacefactor=\endofsentencespacefactor -} - -% @comma{} is so commas can be inserted into text without messing up -% Texinfo's parsing. -% -\let\comma = , - -% @refill is a no-op. -\let\refill=\relax - -% If working on a large document in chapters, it is convenient to -% be able to disable indexing, cross-referencing, and contents, for test runs. -% This is done with @novalidate (before @setfilename). -% -\newif\iflinks \linkstrue % by default we want the aux files. -\let\novalidate = \linksfalse - -% @setfilename is done at the beginning of every texinfo file. -% So open here the files we need to have open while reading the input. -% This makes it possible to make a .fmt file for texinfo. -\def\setfilename{% - \fixbackslash % Turn off hack to swallow `\input texinfo'. - \iflinks - \tryauxfile - % Open the new aux file. TeX will close it automatically at exit. - \immediate\openout\auxfile=\jobname.aux - \fi % \openindices needs to do some work in any case. - \openindices - \let\setfilename=\comment % Ignore extra @setfilename cmds. - % - % If texinfo.cnf is present on the system, read it. - % Useful for site-wide @afourpaper, etc. - \openin 1 texinfo.cnf - \ifeof 1 \else \input texinfo.cnf \fi - \closein 1 - % - \comment % Ignore the actual filename. -} - -% Called from \setfilename. -% -\def\openindices{% - \newindex{cp}% - \newcodeindex{fn}% - \newcodeindex{vr}% - \newcodeindex{tp}% - \newcodeindex{ky}% - \newcodeindex{pg}% -} - -% @bye. -\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend} - - -\message{pdf,} -% adobe `portable' document format -\newcount\tempnum -\newcount\lnkcount -\newtoks\filename -\newcount\filenamelength -\newcount\pgn -\newtoks\toksA -\newtoks\toksB -\newtoks\toksC -\newtoks\toksD -\newbox\boxA -\newcount\countA -\newif\ifpdf -\newif\ifpdfmakepagedest - -% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 -% can be set). So we test for \relax and 0 as well as \undefined, -% borrowed from ifpdf.sty. -\ifx\pdfoutput\undefined -\else - \ifx\pdfoutput\relax - \else - \ifcase\pdfoutput - \else - \pdftrue - \fi - \fi -\fi - -% PDF uses PostScript string constants for the names of xref targets, -% for display in the outlines, and in other places. Thus, we have to -% double any backslashes. Otherwise, a name like "\node" will be -% interpreted as a newline (\n), followed by o, d, e. Not good. -% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html -% (and related messages, the final outcome is that it is up to the TeX -% user to double the backslashes and otherwise make the string valid, so -% that's what we do). - -% double active backslashes. -% -{\catcode`\@=0 \catcode`\\=\active - @gdef@activebackslashdouble{% - @catcode`@\=@active - @let\=@doublebackslash} -} - -% To handle parens, we must adopt a different approach, since parens are -% not active characters. hyperref.dtx (which has the same problem as -% us) handles it with this amazing macro to replace tokens. I've -% tinkered with it a little for texinfo, but it's definitely from there. -% -% #1 is the tokens to replace. -% #2 is the replacement. -% #3 is the control sequence with the string. -% -\def\HyPsdSubst#1#2#3{% - \def\HyPsdReplace##1#1##2\END{% - ##1% - \ifx\\##2\\% - \else - #2% - \HyReturnAfterFi{% - \HyPsdReplace##2\END - }% - \fi - }% - \xdef#3{\expandafter\HyPsdReplace#3#1\END}% -} -\long\def\HyReturnAfterFi#1\fi{\fi#1} - -% #1 is a control sequence in which to do the replacements. -\def\backslashparens#1{% - \xdef#1{#1}% redefine it as its expansion; the definition is simply - % \lastnode when called from \setref -> \pdfmkdest. - \HyPsdSubst{(}{\realbackslash(}{#1}% - \HyPsdSubst{)}{\realbackslash)}{#1}% -} - -\ifpdf - \input pdfcolor - \pdfcatalog{/PageMode /UseOutlines}% - % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). - \def\dopdfimage#1#2#3{% - \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% - \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% - % without \immediate, pdftex seg faults when the same image is - % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) - \ifnum\pdftexversion < 14 - \immediate\pdfimage - \else - \immediate\pdfximage - \fi - \ifdim \wd0 >0pt width \imagewidth \fi - \ifdim \wd2 >0pt height \imageheight \fi - \ifnum\pdftexversion<13 - #1.pdf% - \else - {#1.pdf}% - \fi - \ifnum\pdftexversion < 14 \else - \pdfrefximage \pdflastximage - \fi} - \def\pdfmkdest#1{{% - % We have to set dummies so commands such as @code, and characters - % such as \, aren't expanded when present in a section title. - \atdummies - \activebackslashdouble - \def\pdfdestname{#1}% - \backslashparens\pdfdestname - \pdfdest name{\pdfdestname} xyz% - }}% - % - % used to mark target names; must be expandable. - \def\pdfmkpgn#1{#1}% - % - \let\linkcolor = \Blue % was Cyan, but that seems light? - \def\endlink{\Black\pdfendlink} - % Adding outlines to PDF; macros for calculating structure of outlines - % come from Petr Olsak - \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% - \else \csname#1\endcsname \fi} - \def\advancenumber#1{\tempnum=\expnumber{#1}\relax - \advance\tempnum by 1 - \expandafter\xdef\csname#1\endcsname{\the\tempnum}} - % - % #1 is the section text, which is what will be displayed in the - % outline by the pdf viewer. #2 is the pdf expression for the number - % of subentries (or empty, for subsubsections). #3 is the node text, - % which might be empty if this toc entry had no corresponding node. - % #4 is the page number - % - \def\dopdfoutline#1#2#3#4{% - % Generate a link to the node text if that exists; else, use the - % page number. We could generate a destination for the section - % text in the case where a section has no node, but it doesn't - % seem worth the trouble, since most documents are normally structured. - \def\pdfoutlinedest{#3}% - \ifx\pdfoutlinedest\empty - \def\pdfoutlinedest{#4}% - \else - % Doubled backslashes in the name. - {\activebackslashdouble \xdef\pdfoutlinedest{#3}% - \backslashparens\pdfoutlinedest}% - \fi - % - % Also double the backslashes in the display string. - {\activebackslashdouble \xdef\pdfoutlinetext{#1}% - \backslashparens\pdfoutlinetext}% - % - \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% - } - % - \def\pdfmakeoutlines{% - \begingroup - % Thanh's hack / proper braces in bookmarks - \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace - \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace - % - % Read toc silently, to get counts of subentries for \pdfoutline. - \def\numchapentry##1##2##3##4{% - \def\thischapnum{##2}% - \def\thissecnum{0}% - \def\thissubsecnum{0}% - }% - \def\numsecentry##1##2##3##4{% - \advancenumber{chap\thischapnum}% - \def\thissecnum{##2}% - \def\thissubsecnum{0}% - }% - \def\numsubsecentry##1##2##3##4{% - \advancenumber{sec\thissecnum}% - \def\thissubsecnum{##2}% - }% - \def\numsubsubsecentry##1##2##3##4{% - \advancenumber{subsec\thissubsecnum}% - }% - \def\thischapnum{0}% - \def\thissecnum{0}% - \def\thissubsecnum{0}% - % - % use \def rather than \let here because we redefine \chapentry et - % al. a second time, below. - \def\appentry{\numchapentry}% - \def\appsecentry{\numsecentry}% - \def\appsubsecentry{\numsubsecentry}% - \def\appsubsubsecentry{\numsubsubsecentry}% - \def\unnchapentry{\numchapentry}% - \def\unnsecentry{\numsecentry}% - \def\unnsubsecentry{\numsubsecentry}% - \def\unnsubsubsecentry{\numsubsubsecentry}% - \readdatafile{toc}% - % - % Read toc second time, this time actually producing the outlines. - % The `-' means take the \expnumber as the absolute number of - % subentries, which we calculated on our first read of the .toc above. - % - % We use the node names as the destinations. - \def\numchapentry##1##2##3##4{% - \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}% - \def\numsecentry##1##2##3##4{% - \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}% - \def\numsubsecentry##1##2##3##4{% - \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}% - \def\numsubsubsecentry##1##2##3##4{% count is always zero - \dopdfoutline{##1}{}{##3}{##4}}% - % - % PDF outlines are displayed using system fonts, instead of - % document fonts. Therefore we cannot use special characters, - % since the encoding is unknown. For example, the eogonek from - % Latin 2 (0xea) gets translated to a | character. Info from - % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. - % - % xx to do this right, we have to translate 8-bit characters to - % their "best" equivalent, based on the @documentencoding. Right - % now, I guess we'll just let the pdf reader have its way. - \indexnofonts - \setupdatafile - \catcode`\\=\active \otherbackslash - \input \jobname.toc - \endgroup - } - % - \def\skipspaces#1{\def\PP{#1}\def\D{|}% - \ifx\PP\D\let\nextsp\relax - \else\let\nextsp\skipspaces - \ifx\p\space\else\addtokens{\filename}{\PP}% - \advance\filenamelength by 1 - \fi - \fi - \nextsp} - \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax} - \ifnum\pdftexversion < 14 - \let \startlink \pdfannotlink - \else - \let \startlink \pdfstartlink - \fi - % make a live url in pdf output. - \def\pdfurl#1{% - \begingroup - % it seems we really need yet another set of dummies; have not - % tried to figure out what each command should do in the context - % of @url. for now, just make @/ a no-op, that's the only one - % people have actually reported a problem with. - % - \normalturnoffactive - \def\@{@}% - \let\/=\empty - \makevalueexpandable - \leavevmode\Red - \startlink attr{/Border [0 0 0]}% - user{/Subtype /Link /A << /S /URI /URI (#1) >>}% - \endgroup} - \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} - \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} - \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} - \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} - \def\maketoks{% - \expandafter\poptoks\the\toksA|ENDTOKS|\relax - \ifx\first0\adn0 - \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 - \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 - \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 - \else - \ifnum0=\countA\else\makelink\fi - \ifx\first.\let\next=\done\else - \let\next=\maketoks - \addtokens{\toksB}{\the\toksD} - \ifx\first,\addtokens{\toksB}{\space}\fi - \fi - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi - \next} - \def\makelink{\addtokens{\toksB}% - {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} - \def\pdflink#1{% - \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} - \linkcolor #1\endlink} - \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} -\else - \let\pdfmkdest = \gobble - \let\pdfurl = \gobble - \let\endlink = \relax - \let\linkcolor = \relax - \let\pdfmakeoutlines = \relax -\fi % \ifx\pdfoutput - - -\message{fonts,} - -% Change the current font style to #1, remembering it in \curfontstyle. -% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in -% italics, not bold italics. -% -\def\setfontstyle#1{% - \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd. - \csname ten#1\endcsname % change the current font -} - -% Select #1 fonts with the current style. -% -\def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname} - -\def\rm{\fam=0 \setfontstyle{rm}} -\def\it{\fam=\itfam \setfontstyle{it}} -\def\sl{\fam=\slfam \setfontstyle{sl}} -\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf} -\def\tt{\fam=\ttfam \setfontstyle{tt}} - -% Texinfo sort of supports the sans serif font style, which plain TeX does not. -% So we set up a \sf. -\newfam\sffam -\def\sf{\fam=\sffam \setfontstyle{sf}} -\let\li = \sf % Sometimes we call it \li, not \sf. - -% We don't need math for this font style. -\def\ttsl{\setfontstyle{ttsl}} - - -% Default leading. -\newdimen\textleading \textleading = 13.2pt - -% Set the baselineskip to #1, and the lineskip and strut size -% correspondingly. There is no deep meaning behind these magic numbers -% used as factors; they just match (closely enough) what Knuth defined. -% -\def\lineskipfactor{.08333} -\def\strutheightpercent{.70833} -\def\strutdepthpercent {.29167} -% -\def\setleading#1{% - \normalbaselineskip = #1\relax - \normallineskip = \lineskipfactor\normalbaselineskip - \normalbaselines - \setbox\strutbox =\hbox{% - \vrule width0pt height\strutheightpercent\baselineskip - depth \strutdepthpercent \baselineskip - }% -} - - -% Set the font macro #1 to the font named #2, adding on the -% specified font prefix (normally `cm'). -% #3 is the font's design size, #4 is a scale factor -\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4} - - -% Use cm as the default font prefix. -% To specify the font prefix, you must define \fontprefix -% before you read in texinfo.tex. -\ifx\fontprefix\undefined -\def\fontprefix{cm} -\fi -% Support font families that don't use the same naming scheme as CM. -\def\rmshape{r} -\def\rmbshape{bx} %where the normal face is bold -\def\bfshape{b} -\def\bxshape{bx} -\def\ttshape{tt} -\def\ttbshape{tt} -\def\ttslshape{sltt} -\def\itshape{ti} -\def\itbshape{bxti} -\def\slshape{sl} -\def\slbshape{bxsl} -\def\sfshape{ss} -\def\sfbshape{ss} -\def\scshape{csc} -\def\scbshape{csc} - -% Definitions for a main text size of 11pt. This is the default in -% Texinfo. -% -\def\definetextfontsizexi{ -% Text fonts (11.2pt, magstep1). -\def\textnominalsize{11pt} -\edef\mainmagstep{\magstephalf} -\setfont\textrm\rmshape{10}{\mainmagstep} -\setfont\texttt\ttshape{10}{\mainmagstep} -\setfont\textbf\bfshape{10}{\mainmagstep} -\setfont\textit\itshape{10}{\mainmagstep} -\setfont\textsl\slshape{10}{\mainmagstep} -\setfont\textsf\sfshape{10}{\mainmagstep} -\setfont\textsc\scshape{10}{\mainmagstep} -\setfont\textttsl\ttslshape{10}{\mainmagstep} -\font\texti=cmmi10 scaled \mainmagstep -\font\textsy=cmsy10 scaled \mainmagstep - -% A few fonts for @defun names and args. -\setfont\defbf\bfshape{10}{\magstep1} -\setfont\deftt\ttshape{10}{\magstep1} -\setfont\defttsl\ttslshape{10}{\magstep1} -\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} - -% Fonts for indices, footnotes, small examples (9pt). -\def\smallnominalsize{9pt} -\setfont\smallrm\rmshape{9}{1000} -\setfont\smalltt\ttshape{9}{1000} -\setfont\smallbf\bfshape{10}{900} -\setfont\smallit\itshape{9}{1000} -\setfont\smallsl\slshape{9}{1000} -\setfont\smallsf\sfshape{9}{1000} -\setfont\smallsc\scshape{10}{900} -\setfont\smallttsl\ttslshape{10}{900} -\font\smalli=cmmi9 -\font\smallsy=cmsy9 - -% Fonts for small examples (8pt). -\def\smallernominalsize{8pt} -\setfont\smallerrm\rmshape{8}{1000} -\setfont\smallertt\ttshape{8}{1000} -\setfont\smallerbf\bfshape{10}{800} -\setfont\smallerit\itshape{8}{1000} -\setfont\smallersl\slshape{8}{1000} -\setfont\smallersf\sfshape{8}{1000} -\setfont\smallersc\scshape{10}{800} -\setfont\smallerttsl\ttslshape{10}{800} -\font\smalleri=cmmi8 -\font\smallersy=cmsy8 - -% Fonts for title page (20.4pt): -\def\titlenominalsize{20pt} -\setfont\titlerm\rmbshape{12}{\magstep3} -\setfont\titleit\itbshape{10}{\magstep4} -\setfont\titlesl\slbshape{10}{\magstep4} -\setfont\titlett\ttbshape{12}{\magstep3} -\setfont\titlettsl\ttslshape{10}{\magstep4} -\setfont\titlesf\sfbshape{17}{\magstep1} -\let\titlebf=\titlerm -\setfont\titlesc\scbshape{10}{\magstep4} -\font\titlei=cmmi12 scaled \magstep3 -\font\titlesy=cmsy10 scaled \magstep4 -\def\authorrm{\secrm} -\def\authortt{\sectt} - -% Chapter (and unnumbered) fonts (17.28pt). -\def\chapnominalsize{17pt} -\setfont\chaprm\rmbshape{12}{\magstep2} -\setfont\chapit\itbshape{10}{\magstep3} -\setfont\chapsl\slbshape{10}{\magstep3} -\setfont\chaptt\ttbshape{12}{\magstep2} -\setfont\chapttsl\ttslshape{10}{\magstep3} -\setfont\chapsf\sfbshape{17}{1000} -\let\chapbf=\chaprm -\setfont\chapsc\scbshape{10}{\magstep3} -\font\chapi=cmmi12 scaled \magstep2 -\font\chapsy=cmsy10 scaled \magstep3 - -% Section fonts (14.4pt). -\def\secnominalsize{14pt} -\setfont\secrm\rmbshape{12}{\magstep1} -\setfont\secit\itbshape{10}{\magstep2} -\setfont\secsl\slbshape{10}{\magstep2} -\setfont\sectt\ttbshape{12}{\magstep1} -\setfont\secttsl\ttslshape{10}{\magstep2} -\setfont\secsf\sfbshape{12}{\magstep1} -\let\secbf\secrm -\setfont\secsc\scbshape{10}{\magstep2} -\font\seci=cmmi12 scaled \magstep1 -\font\secsy=cmsy10 scaled \magstep2 - -% Subsection fonts (13.15pt). -\def\ssecnominalsize{13pt} -\setfont\ssecrm\rmbshape{12}{\magstephalf} -\setfont\ssecit\itbshape{10}{1315} -\setfont\ssecsl\slbshape{10}{1315} -\setfont\ssectt\ttbshape{12}{\magstephalf} -\setfont\ssecttsl\ttslshape{10}{1315} -\setfont\ssecsf\sfbshape{12}{\magstephalf} -\let\ssecbf\ssecrm -\setfont\ssecsc\scbshape{10}{1315} -\font\sseci=cmmi12 scaled \magstephalf -\font\ssecsy=cmsy10 scaled 1315 - -% Reduced fonts for @acro in text (10pt). -\def\reducednominalsize{10pt} -\setfont\reducedrm\rmshape{10}{1000} -\setfont\reducedtt\ttshape{10}{1000} -\setfont\reducedbf\bfshape{10}{1000} -\setfont\reducedit\itshape{10}{1000} -\setfont\reducedsl\slshape{10}{1000} -\setfont\reducedsf\sfshape{10}{1000} -\setfont\reducedsc\scshape{10}{1000} -\setfont\reducedttsl\ttslshape{10}{1000} -\font\reducedi=cmmi10 -\font\reducedsy=cmsy10 - -% reset the current fonts -\textfonts -\rm -} % end of 11pt text font size definitions - - -% Definitions to make the main text be 10pt Computer Modern, with -% section, chapter, etc., sizes following suit. This is for the GNU -% Press printing of the Emacs 22 manual. Maybe other manuals in the -% future. Used with @smallbook, which sets the leading to 12pt. -% -\def\definetextfontsizex{% -% Text fonts (10pt). -\def\textnominalsize{10pt} -\edef\mainmagstep{1000} -\setfont\textrm\rmshape{10}{\mainmagstep} -\setfont\texttt\ttshape{10}{\mainmagstep} -\setfont\textbf\bfshape{10}{\mainmagstep} -\setfont\textit\itshape{10}{\mainmagstep} -\setfont\textsl\slshape{10}{\mainmagstep} -\setfont\textsf\sfshape{10}{\mainmagstep} -\setfont\textsc\scshape{10}{\mainmagstep} -\setfont\textttsl\ttslshape{10}{\mainmagstep} -\font\texti=cmmi10 scaled \mainmagstep -\font\textsy=cmsy10 scaled \mainmagstep - -% A few fonts for @defun names and args. -\setfont\defbf\bfshape{10}{\magstephalf} -\setfont\deftt\ttshape{10}{\magstephalf} -\setfont\defttsl\ttslshape{10}{\magstephalf} -\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} - -% Fonts for indices, footnotes, small examples (9pt). -\def\smallnominalsize{9pt} -\setfont\smallrm\rmshape{9}{1000} -\setfont\smalltt\ttshape{9}{1000} -\setfont\smallbf\bfshape{10}{900} -\setfont\smallit\itshape{9}{1000} -\setfont\smallsl\slshape{9}{1000} -\setfont\smallsf\sfshape{9}{1000} -\setfont\smallsc\scshape{10}{900} -\setfont\smallttsl\ttslshape{10}{900} -\font\smalli=cmmi9 -\font\smallsy=cmsy9 - -% Fonts for small examples (8pt). -\def\smallernominalsize{8pt} -\setfont\smallerrm\rmshape{8}{1000} -\setfont\smallertt\ttshape{8}{1000} -\setfont\smallerbf\bfshape{10}{800} -\setfont\smallerit\itshape{8}{1000} -\setfont\smallersl\slshape{8}{1000} -\setfont\smallersf\sfshape{8}{1000} -\setfont\smallersc\scshape{10}{800} -\setfont\smallerttsl\ttslshape{10}{800} -\font\smalleri=cmmi8 -\font\smallersy=cmsy8 - -% Fonts for title page (20.4pt): -\def\titlenominalsize{20pt} -\setfont\titlerm\rmbshape{12}{\magstep3} -\setfont\titleit\itbshape{10}{\magstep4} -\setfont\titlesl\slbshape{10}{\magstep4} -\setfont\titlett\ttbshape{12}{\magstep3} -\setfont\titlettsl\ttslshape{10}{\magstep4} -\setfont\titlesf\sfbshape{17}{\magstep1} -\let\titlebf=\titlerm -\setfont\titlesc\scbshape{10}{\magstep4} -\font\titlei=cmmi12 scaled \magstep3 -\font\titlesy=cmsy10 scaled \magstep4 -\def\authorrm{\secrm} -\def\authortt{\sectt} - -% Chapter fonts (14.4pt). -\def\chapnominalsize{14pt} -\setfont\chaprm\rmbshape{12}{\magstep1} -\setfont\chapit\itbshape{10}{\magstep2} -\setfont\chapsl\slbshape{10}{\magstep2} -\setfont\chaptt\ttbshape{12}{\magstep1} -\setfont\chapttsl\ttslshape{10}{\magstep2} -\setfont\chapsf\sfbshape{12}{\magstep1} -\let\chapbf\chaprm -\setfont\chapsc\scbshape{10}{\magstep2} -\font\chapi=cmmi12 scaled \magstep1 -\font\chapsy=cmsy10 scaled \magstep2 - -% Section fonts (12pt). -\def\secnominalsize{12pt} -\setfont\secrm\rmbshape{12}{1000} -\setfont\secit\itbshape{10}{\magstep1} -\setfont\secsl\slbshape{10}{\magstep1} -\setfont\sectt\ttbshape{12}{1000} -\setfont\secttsl\ttslshape{10}{\magstep1} -\setfont\secsf\sfbshape{12}{1000} -\let\secbf\secrm -\setfont\secsc\scbshape{10}{\magstep1} -\font\seci=cmmi12 -\font\secsy=cmsy10 scaled \magstep1 - -% Subsection fonts (10pt). -\def\ssecnominalsize{10pt} -\setfont\ssecrm\rmbshape{10}{1000} -\setfont\ssecit\itbshape{10}{1000} -\setfont\ssecsl\slbshape{10}{1000} -\setfont\ssectt\ttbshape{10}{1000} -\setfont\ssecttsl\ttslshape{10}{1000} -\setfont\ssecsf\sfbshape{10}{1000} -\let\ssecbf\ssecrm -\setfont\ssecsc\scbshape{10}{1000} -\font\sseci=cmmi10 -\font\ssecsy=cmsy10 - -% Reduced fonts for @acro in text (9pt). -\def\reducednominalsize{9pt} -\setfont\reducedrm\rmshape{9}{1000} -\setfont\reducedtt\ttshape{9}{1000} -\setfont\reducedbf\bfshape{10}{900} -\setfont\reducedit\itshape{9}{1000} -\setfont\reducedsl\slshape{9}{1000} -\setfont\reducedsf\sfshape{9}{1000} -\setfont\reducedsc\scshape{10}{900} -\setfont\reducedttsl\ttslshape{10}{900} -\font\reducedi=cmmi9 -\font\reducedsy=cmsy9 - -% reduce space between paragraphs -\divide\parskip by 2 - -% reset the current fonts -\textfonts -\rm -} % end of 10pt text font size definitions - - -% We provide the user-level command -% @fonttextsize 10 -% (or 11) to redefine the text font size. pt is assumed. -% -\def\xword{10} -\def\xiword{11} -% -\parseargdef\fonttextsize{% - \def\textsizearg{#1}% - \wlog{doing @fonttextsize \textsizearg}% - % - % Set \globaldefs so that documents can use this inside @tex, since - % makeinfo 4.8 does not support it, but we need it nonetheless. - % - \begingroup \globaldefs=1 - \ifx\textsizearg\xword \definetextfontsizex - \else \ifx\textsizearg\xiword \definetextfontsizexi - \else - \errhelp=\EMsimple - \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} - \fi\fi - \endgroup -} - - -% In order for the font changes to affect most math symbols and letters, -% we have to define the \textfont of the standard families. Since -% texinfo doesn't allow for producing subscripts and superscripts except -% in the main text, we don't bother to reset \scriptfont and -% \scriptscriptfont (which would also require loading a lot more fonts). -% -\def\resetmathfonts{% - \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy - \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf - \textfont\ttfam=\tentt \textfont\sffam=\tensf -} - -% The font-changing commands redefine the meanings of \tenSTYLE, instead -% of just \STYLE. We do this because \STYLE needs to also set the -% current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire -% \tenSTYLE to set the current font. -% -% Each font-changing command also sets the names \lsize (one size lower) -% and \lllsize (three sizes lower). These relative commands are used in -% the LaTeX logo and acronyms. -% -% This all needs generalizing, badly. -% -\def\textfonts{% - \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl - \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc - \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy - \let\tenttsl=\textttsl - \def\curfontsize{text}% - \def\lsize{reduced}\def\lllsize{smaller}% - \resetmathfonts \setleading{\textleading}} -\def\titlefonts{% - \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl - \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc - \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy - \let\tenttsl=\titlettsl - \def\curfontsize{title}% - \def\lsize{chap}\def\lllsize{subsec}% - \resetmathfonts \setleading{25pt}} -\def\titlefont#1{{\titlefonts\rm #1}} -\def\chapfonts{% - \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl - \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc - \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy - \let\tenttsl=\chapttsl - \def\curfontsize{chap}% - \def\lsize{sec}\def\lllsize{text}% - \resetmathfonts \setleading{19pt}} -\def\secfonts{% - \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl - \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc - \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy - \let\tenttsl=\secttsl - \def\curfontsize{sec}% - \def\lsize{subsec}\def\lllsize{reduced}% - \resetmathfonts \setleading{16pt}} -\def\subsecfonts{% - \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl - \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc - \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy - \let\tenttsl=\ssecttsl - \def\curfontsize{ssec}% - \def\lsize{text}\def\lllsize{small}% - \resetmathfonts \setleading{15pt}} -\let\subsubsecfonts = \subsecfonts -\def\reducedfonts{% - \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl - \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc - \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy - \let\tenttsl=\reducedttsl - \def\curfontsize{reduced}% - \def\lsize{small}\def\lllsize{smaller}% - \resetmathfonts \setleading{10.5pt}} -\def\smallfonts{% - \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl - \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc - \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy - \let\tenttsl=\smallttsl - \def\curfontsize{small}% - \def\lsize{smaller}\def\lllsize{smaller}% - \resetmathfonts \setleading{10.5pt}} -\def\smallerfonts{% - \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl - \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc - \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy - \let\tenttsl=\smallerttsl - \def\curfontsize{smaller}% - \def\lsize{smaller}\def\lllsize{smaller}% - \resetmathfonts \setleading{9.5pt}} - -% Set the fonts to use with the @small... environments. -\let\smallexamplefonts = \smallfonts - -% About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample -% can fit this many characters: -% 8.5x11=86 smallbook=72 a4=90 a5=69 -% If we use \scriptfonts (8pt), then we can fit this many characters: -% 8.5x11=90+ smallbook=80 a4=90+ a5=77 -% For me, subjectively, the few extra characters that fit aren't worth -% the additional smallness of 8pt. So I'm making the default 9pt. -% -% By the way, for comparison, here's what fits with @example (10pt): -% 8.5x11=71 smallbook=60 a4=75 a5=58 -% -% I wish the USA used A4 paper. -% --karl, 24jan03. - - -% Set up the default fonts, so we can use them for creating boxes. -% -\definetextfontsizexi - -% Define these so they can be easily changed for other fonts. -\def\angleleft{$\langle$} -\def\angleright{$\rangle$} - -% Count depth in font-changes, for error checks -\newcount\fontdepth \fontdepth=0 - -% Fonts for short table of contents. -\setfont\shortcontrm\rmshape{12}{1000} -\setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12 -\setfont\shortcontsl\slshape{12}{1000} -\setfont\shortconttt\ttshape{12}{1000} - -%% Add scribe-like font environments, plus @l for inline lisp (usually sans -%% serif) and @ii for TeX italic - -% \smartitalic{ARG} outputs arg in italics, followed by an italic correction -% unless the following character is such as not to need one. -\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else - \ptexslash\fi\fi\fi} -\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} -\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} - -% like \smartslanted except unconditionally uses \ttsl. -% @var is set to this for defun arguments. -\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} - -% like \smartslanted except unconditionally use \sl. We never want -% ttsl for book titles, do we? -\def\cite#1{{\sl #1}\futurelet\next\smartitalicx} - -\let\i=\smartitalic -\let\slanted=\smartslanted -\let\var=\smartslanted -\let\dfn=\smartslanted -\let\emph=\smartitalic - -% @b, explicit bold. -\def\b#1{{\bf #1}} -\let\strong=\b - -% @sansserif, explicit sans. -\def\sansserif#1{{\sf #1}} - -% We can't just use \exhyphenpenalty, because that only has effect at -% the end of a paragraph. Restore normal hyphenation at the end of the -% group within which \nohyphenation is presumably called. -% -\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} -\def\restorehyphenation{\hyphenchar\font = `- } - -% Set sfcode to normal for the chars that usually have another value. -% Can't use plain's \frenchspacing because it uses the `\x notation, and -% sometimes \x has an active definition that messes things up. -% -\catcode`@=11 - \def\plainfrenchspacing{% - \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m - \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m - \def\endofsentencespacefactor{1000}% for @. and friends - } - \def\plainnonfrenchspacing{% - \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000 - \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 - \def\endofsentencespacefactor{3000}% for @. and friends - } -\catcode`@=\other -\def\endofsentencespacefactor{3000}% default - -\def\t#1{% - {\tt \rawbackslash \plainfrenchspacing #1}% - \null -} -\def\samp#1{`\tclose{#1}'\null} -\setfont\keyrm\rmshape{8}{1000} -\font\keysy=cmsy9 -\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% - \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% - \vbox{\hrule\kern-0.4pt - \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% - \kern-0.4pt\hrule}% - \kern-.06em\raise0.4pt\hbox{\angleright}}}} -% The old definition, with no lozenge: -%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} -\def\ctrl #1{{\tt \rawbackslash \hat}#1} - -% @file, @option are the same as @samp. -\let\file=\samp -\let\option=\samp - -% @code is a modification of @t, -% which makes spaces the same size as normal in the surrounding text. -\def\tclose#1{% - {% - % Change normal interword space to be same as for the current font. - \spaceskip = \fontdimen2\font - % - % Switch to typewriter. - \tt - % - % But `\ ' produces the large typewriter interword space. - \def\ {{\spaceskip = 0pt{} }}% - % - % Turn off hyphenation. - \nohyphenation - % - \rawbackslash - \plainfrenchspacing - #1% - }% - \null -} - -% We *must* turn on hyphenation at `-' and `_' in @code. -% Otherwise, it is too hard to avoid overfull hboxes -% in the Emacs manual, the Library manual, etc. - -% Unfortunately, TeX uses one parameter (\hyphenchar) to control -% both hyphenation at - and hyphenation within words. -% We must therefore turn them both off (\tclose does that) -% and arrange explicitly to hyphenate at a dash. -% -- rms. -{ - \catcode`\-=\active \catcode`\_=\active - \catcode`\'=\active \catcode`\`=\active - % - \global\def\code{\begingroup - \catcode\rquoteChar=\active \catcode\lquoteChar=\active - \let'\codequoteright \let`\codequoteleft - % - \catcode\dashChar=\active \catcode\underChar=\active - \ifallowcodebreaks - \let-\codedash - \let_\codeunder - \else - \let-\realdash - \let_\realunder - \fi - \codex - } -} - -\def\realdash{-} -\def\codedash{-\discretionary{}{}{}} -\def\codeunder{% - % this is all so @math{@code{var_name}+1} can work. In math mode, _ - % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.) - % will therefore expand the active definition of _, which is us - % (inside @code that is), therefore an endless loop. - \ifusingtt{\ifmmode - \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_. - \else\normalunderscore \fi - \discretionary{}{}{}}% - {\_}% -} -\def\codex #1{\tclose{#1}\endgroup} - -% An additional complication: the above will allow breaks after, e.g., -% each of the four underscores in __typeof__. This is undesirable in -% some manuals, especially if they don't have long identifiers in -% general. @allowcodebreaks provides a way to control this. -% -\newif\ifallowcodebreaks \allowcodebreakstrue - -\def\keywordtrue{true} -\def\keywordfalse{false} - -\parseargdef\allowcodebreaks{% - \def\txiarg{#1}% - \ifx\txiarg\keywordtrue - \allowcodebreakstrue - \else\ifx\txiarg\keywordfalse - \allowcodebreaksfalse - \else - \errhelp = \EMsimple - \errmessage{Unknown @allowcodebreaks option `\txiarg'}% - \fi\fi -} - -% @kbd is like @code, except that if the argument is just one @key command, -% then @kbd has no effect. - -% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), -% `example' (@kbd uses ttsl only inside of @example and friends), -% or `code' (@kbd uses normal tty font always). -\parseargdef\kbdinputstyle{% - \def\txiarg{#1}% - \ifx\txiarg\worddistinct - \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% - \else\ifx\txiarg\wordexample - \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% - \else\ifx\txiarg\wordcode - \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% - \else - \errhelp = \EMsimple - \errmessage{Unknown @kbdinputstyle option `\txiarg'}% - \fi\fi\fi -} -\def\worddistinct{distinct} -\def\wordexample{example} -\def\wordcode{code} - -% Default is `distinct.' -\kbdinputstyle distinct - -\def\xkey{\key} -\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% -\ifx\one\xkey\ifx\threex\three \key{#2}% -\else{\tclose{\kbdfont\look}}\fi -\else{\tclose{\kbdfont\look}}\fi} - -% For @indicateurl, @env, @command quotes seem unnecessary, so use \code. -\let\indicateurl=\code -\let\env=\code -\let\command=\code - -% @uref (abbreviation for `urlref') takes an optional (comma-separated) -% second argument specifying the text to display and an optional third -% arg as text to display instead of (rather than in addition to) the url -% itself. First (mandatory) arg is the url. Perhaps eventually put in -% a hypertex \special here. -% -\def\uref#1{\douref #1,,,\finish} -\def\douref#1,#2,#3,#4\finish{\begingroup - \unsepspaces - \pdfurl{#1}% - \setbox0 = \hbox{\ignorespaces #3}% - \ifdim\wd0 > 0pt - \unhbox0 % third arg given, show only that - \else - \setbox0 = \hbox{\ignorespaces #2}% - \ifdim\wd0 > 0pt - \ifpdf - \unhbox0 % PDF: 2nd arg given, show only it - \else - \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url - \fi - \else - \code{#1}% only url given, so show it - \fi - \fi - \endlink -\endgroup} - -% @url synonym for @uref, since that's how everyone uses it. -% -\let\url=\uref - -% rms does not like angle brackets --karl, 17may97. -% So now @email is just like @uref, unless we are pdf. -% -%\def\email#1{\angleleft{\tt #1}\angleright} -\ifpdf - \def\email#1{\doemail#1,,\finish} - \def\doemail#1,#2,#3\finish{\begingroup - \unsepspaces - \pdfurl{mailto:#1}% - \setbox0 = \hbox{\ignorespaces #2}% - \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi - \endlink - \endgroup} -\else - \let\email=\uref -\fi - -% Check if we are currently using a typewriter font. Since all the -% Computer Modern typewriter fonts have zero interword stretch (and -% shrink), and it is reasonable to expect all typewriter fonts to have -% this property, we can check that font parameter. -% -\def\ifmonospace{\ifdim\fontdimen3\font=0pt } - -% Typeset a dimension, e.g., `in' or `pt'. The only reason for the -% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. -% -\def\dmn#1{\thinspace #1} - -\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par} - -% @l was never documented to mean ``switch to the Lisp font'', -% and it is not used as such in any manual I can find. We need it for -% Polish suppressed-l. --karl, 22sep96. -%\def\l#1{{\li #1}\null} - -% Explicit font changes: @r, @sc, undocumented @ii. -\def\r#1{{\rm #1}} % roman font -\def\sc#1{{\smallcaps#1}} % smallcaps font -\def\ii#1{{\it #1}} % italic font - -% @acronym for "FBI", "NATO", and the like. -% We print this one point size smaller, since it's intended for -% all-uppercase. -% -\def\acronym#1{\doacronym #1,,\finish} -\def\doacronym#1,#2,#3\finish{% - {\selectfonts\lsize #1}% - \def\temp{#2}% - \ifx\temp\empty \else - \space ({\unsepspaces \ignorespaces \temp \unskip})% - \fi -} - -% @abbr for "Comput. J." and the like. -% No font change, but don't do end-of-sentence spacing. -% -\def\abbr#1{\doabbr #1,,\finish} -\def\doabbr#1,#2,#3\finish{% - {\plainfrenchspacing #1}% - \def\temp{#2}% - \ifx\temp\empty \else - \space ({\unsepspaces \ignorespaces \temp \unskip})% - \fi -} - -% @pounds{} is a sterling sign, which Knuth put in the CM italic font. -% -\def\pounds{{\it\$}} - -% @euro{} comes from a separate font, depending on the current style. -% We use the free feym* fonts from the eurosym package by Henrik -% Theiling, which support regular, slanted, bold and bold slanted (and -% "outlined" (blackboard board, sort of) versions, which we don't need). -% It is available from http://www.ctan.org/tex-archive/fonts/eurosym. -% -% Although only regular is the truly official Euro symbol, we ignore -% that. The Euro is designed to be slightly taller than the regular -% font height. -% -% feymr - regular -% feymo - slanted -% feybr - bold -% feybo - bold slanted -% -% There is no good (free) typewriter version, to my knowledge. -% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. -% Hmm. -% -% Also doesn't work in math. Do we need to do math with euro symbols? -% Hope not. -% -% -\def\euro{{\eurofont e}} -\def\eurofont{% - % We set the font at each command, rather than predefining it in - % \textfonts and the other font-switching commands, so that - % installations which never need the symbol don't have to have the - % font installed. - % - % There is only one designed size (nominal 10pt), so we always scale - % that to the current nominal size. - % - % By the way, simply using "at 1em" works for cmr10 and the like, but - % does not work for cmbx10 and other extended/shrunken fonts. - % - \def\eurosize{\csname\curfontsize nominalsize\endcsname}% - % - \ifx\curfontstyle\bfstylename - % bold: - \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize - \else - % regular: - \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize - \fi - \thiseurofont -} - -% @registeredsymbol - R in a circle. The font for the R should really -% be smaller yet, but lllsize is the best we can do for now. -% Adapted from the plain.tex definition of \copyright. -% -\def\registeredsymbol{% - $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}% - \hfil\crcr\Orb}}% - }$% -} - -% @textdegree - the normal degrees sign. -% -\def\textdegree{$^\circ$} - -% Laurent Siebenmann reports \Orb undefined with: -% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 -% so we'll define it if necessary. -% -\ifx\Orb\undefined -\def\Orb{\mathhexbox20D} -\fi - - -\message{page headings,} - -\newskip\titlepagetopglue \titlepagetopglue = 1.5in -\newskip\titlepagebottomglue \titlepagebottomglue = 2pc - -% First the title page. Must do @settitle before @titlepage. -\newif\ifseenauthor -\newif\iffinishedtitlepage - -% Do an implicit @contents or @shortcontents after @end titlepage if the -% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage. -% -\newif\ifsetcontentsaftertitlepage - \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue -\newif\ifsetshortcontentsaftertitlepage - \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue - -\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% - \endgroup\page\hbox{}\page} - -\envdef\titlepage{% - % Open one extra group, as we want to close it in the middle of \Etitlepage. - \begingroup - \parindent=0pt \textfonts - % Leave some space at the very top of the page. - \vglue\titlepagetopglue - % No rule at page bottom unless we print one at the top with @title. - \finishedtitlepagetrue - % - % Most title ``pages'' are actually two pages long, with space - % at the top of the second. We don't want the ragged left on the second. - \let\oldpage = \page - \def\page{% - \iffinishedtitlepage\else - \finishtitlepage - \fi - \let\page = \oldpage - \page - \null - }% -} - -\def\Etitlepage{% - \iffinishedtitlepage\else - \finishtitlepage - \fi - % It is important to do the page break before ending the group, - % because the headline and footline are only empty inside the group. - % If we use the new definition of \page, we always get a blank page - % after the title page, which we certainly don't want. - \oldpage - \endgroup - % - % Need this before the \...aftertitlepage checks so that if they are - % in effect the toc pages will come out with page numbers. - \HEADINGSon - % - % If they want short, they certainly want long too. - \ifsetshortcontentsaftertitlepage - \shortcontents - \contents - \global\let\shortcontents = \relax - \global\let\contents = \relax - \fi - % - \ifsetcontentsaftertitlepage - \contents - \global\let\contents = \relax - \global\let\shortcontents = \relax - \fi -} - -\def\finishtitlepage{% - \vskip4pt \hrule height 2pt width \hsize - \vskip\titlepagebottomglue - \finishedtitlepagetrue -} - -%%% Macros to be used within @titlepage: - -\let\subtitlerm=\tenrm -\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} - -\def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines - \let\tt=\authortt} - -\parseargdef\title{% - \checkenv\titlepage - \leftline{\titlefonts\rm #1} - % print a rule at the page bottom also. - \finishedtitlepagefalse - \vskip4pt \hrule height 4pt width \hsize \vskip4pt -} - -\parseargdef\subtitle{% - \checkenv\titlepage - {\subtitlefont \rightline{#1}}% -} - -% @author should come last, but may come many times. -% It can also be used inside @quotation. -% -\parseargdef\author{% - \def\temp{\quotation}% - \ifx\thisenv\temp - \def\quotationauthor{#1}% printed in \Equotation. - \else - \checkenv\titlepage - \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi - {\authorfont \leftline{#1}}% - \fi -} - - -%%% Set up page headings and footings. - -\let\thispage=\folio - -\newtoks\evenheadline % headline on even pages -\newtoks\oddheadline % headline on odd pages -\newtoks\evenfootline % footline on even pages -\newtoks\oddfootline % footline on odd pages - -% Now make TeX use those variables -\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline - \else \the\evenheadline \fi}} -\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline - \else \the\evenfootline \fi}\HEADINGShook} -\let\HEADINGShook=\relax - -% Commands to set those variables. -% For example, this is what @headings on does -% @evenheading @thistitle|@thispage|@thischapter -% @oddheading @thischapter|@thispage|@thistitle -% @evenfooting @thisfile|| -% @oddfooting ||@thisfile - - -\def\evenheading{\parsearg\evenheadingxxx} -\def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish} -\def\evenheadingyyy #1\|#2\|#3\|#4\finish{% -\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\def\oddheading{\parsearg\oddheadingxxx} -\def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish} -\def\oddheadingyyy #1\|#2\|#3\|#4\finish{% -\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}% - -\def\evenfooting{\parsearg\evenfootingxxx} -\def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish} -\def\evenfootingyyy #1\|#2\|#3\|#4\finish{% -\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\def\oddfooting{\parsearg\oddfootingxxx} -\def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish} -\def\oddfootingyyy #1\|#2\|#3\|#4\finish{% - \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% - % - % Leave some space for the footline. Hopefully ok to assume - % @evenfooting will not be used by itself. - \global\advance\pageheight by -12pt - \global\advance\vsize by -12pt -} - -\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} - - -% @headings double turns headings on for double-sided printing. -% @headings single turns headings on for single-sided printing. -% @headings off turns them off. -% @headings on same as @headings double, retained for compatibility. -% @headings after turns on double-sided headings after this page. -% @headings doubleafter turns on double-sided headings after this page. -% @headings singleafter turns on single-sided headings after this page. -% By default, they are off at the start of a document, -% and turned `on' after @end titlepage. - -\def\headings #1 {\csname HEADINGS#1\endcsname} - -\def\HEADINGSoff{% -\global\evenheadline={\hfil} \global\evenfootline={\hfil} -\global\oddheadline={\hfil} \global\oddfootline={\hfil}} -\HEADINGSoff -% When we turn headings on, set the page number to 1. -% For double-sided printing, put current file name in lower left corner, -% chapter name on inside top of right hand pages, document -% title on inside top of left hand pages, and page numbers on outside top -% edge of all pages. -\def\HEADINGSdouble{% -\global\pageno=1 -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\folio\hfil\thistitle}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -\global\let\contentsalignmacro = \chapoddpage -} -\let\contentsalignmacro = \chappager - -% For single-sided printing, chapter title goes across top left of page, -% page number on top right. -\def\HEADINGSsingle{% -\global\pageno=1 -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\thischapter\hfil\folio}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -\global\let\contentsalignmacro = \chappager -} -\def\HEADINGSon{\HEADINGSdouble} - -\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} -\let\HEADINGSdoubleafter=\HEADINGSafter -\def\HEADINGSdoublex{% -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\folio\hfil\thistitle}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -\global\let\contentsalignmacro = \chapoddpage -} - -\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex} -\def\HEADINGSsinglex{% -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\thischapter\hfil\folio}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -\global\let\contentsalignmacro = \chappager -} - -% Subroutines used in generating headings -% This produces Day Month Year style of output. -% Only define if not already defined, in case a txi-??.tex file has set -% up a different format (e.g., txi-cs.tex does this). -\ifx\today\undefined -\def\today{% - \number\day\space - \ifcase\month - \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr - \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug - \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec - \fi - \space\number\year} -\fi - -% @settitle line... specifies the title of the document, for headings. -% It generates no output of its own. -\def\thistitle{\putwordNoTitle} -\def\settitle{\parsearg{\gdef\thistitle}} - - -\message{tables,} -% Tables -- @table, @ftable, @vtable, @item(x). - -% default indentation of table text -\newdimen\tableindent \tableindent=.8in -% default indentation of @itemize and @enumerate text -\newdimen\itemindent \itemindent=.3in -% margin between end of table item and start of table text. -\newdimen\itemmargin \itemmargin=.1in - -% used internally for \itemindent minus \itemmargin -\newdimen\itemmax - -% Note @table, @ftable, and @vtable define @item, @itemx, etc., with -% these defs. -% They also define \itemindex -% to index the item name in whatever manner is desired (perhaps none). - -\newif\ifitemxneedsnegativevskip - -\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi} - -\def\internalBitem{\smallbreak \parsearg\itemzzz} -\def\internalBitemx{\itemxpar \parsearg\itemzzz} - -\def\itemzzz #1{\begingroup % - \advance\hsize by -\rightskip - \advance\hsize by -\tableindent - \setbox0=\hbox{\itemindicate{#1}}% - \itemindex{#1}% - \nobreak % This prevents a break before @itemx. - % - % If the item text does not fit in the space we have, put it on a line - % by itself, and do not allow a page break either before or after that - % line. We do not start a paragraph here because then if the next - % command is, e.g., @kindex, the whatsit would get put into the - % horizontal list on a line by itself, resulting in extra blank space. - \ifdim \wd0>\itemmax - % - % Make this a paragraph so we get the \parskip glue and wrapping, - % but leave it ragged-right. - \begingroup - \advance\leftskip by-\tableindent - \advance\hsize by\tableindent - \advance\rightskip by0pt plus1fil - \leavevmode\unhbox0\par - \endgroup - % - % We're going to be starting a paragraph, but we don't want the - % \parskip glue -- logically it's part of the @item we just started. - \nobreak \vskip-\parskip - % - % Stop a page break at the \parskip glue coming up. However, if - % what follows is an environment such as @example, there will be no - % \parskip glue; then the negative vskip we just inserted would - % cause the example and the item to crash together. So we use this - % bizarre value of 10001 as a signal to \aboveenvbreak to insert - % \parskip glue after all. Section titles are handled this way also. - % - \penalty 10001 - \endgroup - \itemxneedsnegativevskipfalse - \else - % The item text fits into the space. Start a paragraph, so that the - % following text (if any) will end up on the same line. - \noindent - % Do this with kerns and \unhbox so that if there is a footnote in - % the item text, it can migrate to the main vertical list and - % eventually be printed. - \nobreak\kern-\tableindent - \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0 - \unhbox0 - \nobreak\kern\dimen0 - \endgroup - \itemxneedsnegativevskiptrue - \fi -} - -\def\item{\errmessage{@item while not in a list environment}} -\def\itemx{\errmessage{@itemx while not in a list environment}} - -% @table, @ftable, @vtable. -\envdef\table{% - \let\itemindex\gobble - \tablecheck{table}% -} -\envdef\ftable{% - \def\itemindex ##1{\doind {fn}{\code{##1}}}% - \tablecheck{ftable}% -} -\envdef\vtable{% - \def\itemindex ##1{\doind {vr}{\code{##1}}}% - \tablecheck{vtable}% -} -\def\tablecheck#1{% - \ifnum \the\catcode`\^^M=\active - \endgroup - \errmessage{This command won't work in this context; perhaps the problem is - that we are \inenvironment\thisenv}% - \def\next{\doignore{#1}}% - \else - \let\next\tablex - \fi - \next -} -\def\tablex#1{% - \def\itemindicate{#1}% - \parsearg\tabley -} -\def\tabley#1{% - {% - \makevalueexpandable - \edef\temp{\noexpand\tablez #1\space\space\space}% - \expandafter - }\temp \endtablez -} -\def\tablez #1 #2 #3 #4\endtablez{% - \aboveenvbreak - \ifnum 0#1>0 \advance \leftskip by #1\mil \fi - \ifnum 0#2>0 \tableindent=#2\mil \fi - \ifnum 0#3>0 \advance \rightskip by #3\mil \fi - \itemmax=\tableindent - \advance \itemmax by -\itemmargin - \advance \leftskip by \tableindent - \exdentamount=\tableindent - \parindent = 0pt - \parskip = \smallskipamount - \ifdim \parskip=0pt \parskip=2pt \fi - \let\item = \internalBitem - \let\itemx = \internalBitemx -} -\def\Etable{\endgraf\afterenvbreak} -\let\Eftable\Etable -\let\Evtable\Etable -\let\Eitemize\Etable -\let\Eenumerate\Etable - -% This is the counter used by @enumerate, which is really @itemize - -\newcount \itemno - -\envdef\itemize{\parsearg\doitemize} - -\def\doitemize#1{% - \aboveenvbreak - \itemmax=\itemindent - \advance\itemmax by -\itemmargin - \advance\leftskip by \itemindent - \exdentamount=\itemindent - \parindent=0pt - \parskip=\smallskipamount - \ifdim\parskip=0pt \parskip=2pt \fi - \def\itemcontents{#1}% - % @itemize with no arg is equivalent to @itemize @bullet. - \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi - \let\item=\itemizeitem -} - -% Definition of @item while inside @itemize and @enumerate. -% -\def\itemizeitem{% - \advance\itemno by 1 % for enumerations - {\let\par=\endgraf \smallbreak}% reasonable place to break - {% - % If the document has an @itemize directly after a section title, a - % \nobreak will be last on the list, and \sectionheading will have - % done a \vskip-\parskip. In that case, we don't want to zero - % parskip, or the item text will crash with the heading. On the - % other hand, when there is normal text preceding the item (as there - % usually is), we do want to zero parskip, or there would be too much - % space. In that case, we won't have a \nobreak before. At least - % that's the theory. - \ifnum\lastpenalty<10000 \parskip=0in \fi - \noindent - \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% - \vadjust{\penalty 1200}}% not good to break after first line of item. - \flushcr -} - -% \splitoff TOKENS\endmark defines \first to be the first token in -% TOKENS, and \rest to be the remainder. -% -\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}% - -% Allow an optional argument of an uppercase letter, lowercase letter, -% or number, to specify the first label in the enumerated list. No -% argument is the same as `1'. -% -\envparseargdef\enumerate{\enumeratey #1 \endenumeratey} -\def\enumeratey #1 #2\endenumeratey{% - % If we were given no argument, pretend we were given `1'. - \def\thearg{#1}% - \ifx\thearg\empty \def\thearg{1}\fi - % - % Detect if the argument is a single token. If so, it might be a - % letter. Otherwise, the only valid thing it can be is a number. - % (We will always have one token, because of the test we just made. - % This is a good thing, since \splitoff doesn't work given nothing at - % all -- the first parameter is undelimited.) - \expandafter\splitoff\thearg\endmark - \ifx\rest\empty - % Only one token in the argument. It could still be anything. - % A ``lowercase letter'' is one whose \lccode is nonzero. - % An ``uppercase letter'' is one whose \lccode is both nonzero, and - % not equal to itself. - % Otherwise, we assume it's a number. - % - % We need the \relax at the end of the \ifnum lines to stop TeX from - % continuing to look for a . - % - \ifnum\lccode\expandafter`\thearg=0\relax - \numericenumerate % a number (we hope) - \else - % It's a letter. - \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax - \lowercaseenumerate % lowercase letter - \else - \uppercaseenumerate % uppercase letter - \fi - \fi - \else - % Multiple tokens in the argument. We hope it's a number. - \numericenumerate - \fi -} - -% An @enumerate whose labels are integers. The starting integer is -% given in \thearg. -% -\def\numericenumerate{% - \itemno = \thearg - \startenumeration{\the\itemno}% -} - -% The starting (lowercase) letter is in \thearg. -\def\lowercaseenumerate{% - \itemno = \expandafter`\thearg - \startenumeration{% - % Be sure we're not beyond the end of the alphabet. - \ifnum\itemno=0 - \errmessage{No more lowercase letters in @enumerate; get a bigger - alphabet}% - \fi - \char\lccode\itemno - }% -} - -% The starting (uppercase) letter is in \thearg. -\def\uppercaseenumerate{% - \itemno = \expandafter`\thearg - \startenumeration{% - % Be sure we're not beyond the end of the alphabet. - \ifnum\itemno=0 - \errmessage{No more uppercase letters in @enumerate; get a bigger - alphabet} - \fi - \char\uccode\itemno - }% -} - -% Call \doitemize, adding a period to the first argument and supplying the -% common last two arguments. Also subtract one from the initial value in -% \itemno, since @item increments \itemno. -% -\def\startenumeration#1{% - \advance\itemno by -1 - \doitemize{#1.}\flushcr -} - -% @alphaenumerate and @capsenumerate are abbreviations for giving an arg -% to @enumerate. -% -\def\alphaenumerate{\enumerate{a}} -\def\capsenumerate{\enumerate{A}} -\def\Ealphaenumerate{\Eenumerate} -\def\Ecapsenumerate{\Eenumerate} - - -% @multitable macros -% Amy Hendrickson, 8/18/94, 3/6/96 -% -% @multitable ... @end multitable will make as many columns as desired. -% Contents of each column will wrap at width given in preamble. Width -% can be specified either with sample text given in a template line, -% or in percent of \hsize, the current width of text on page. - -% Table can continue over pages but will only break between lines. - -% To make preamble: -% -% Either define widths of columns in terms of percent of \hsize: -% @multitable @columnfractions .25 .3 .45 -% @item ... -% -% Numbers following @columnfractions are the percent of the total -% current hsize to be used for each column. You may use as many -% columns as desired. - - -% Or use a template: -% @multitable {Column 1 template} {Column 2 template} {Column 3 template} -% @item ... -% using the widest term desired in each column. - -% Each new table line starts with @item, each subsequent new column -% starts with @tab. Empty columns may be produced by supplying @tab's -% with nothing between them for as many times as empty columns are needed, -% ie, @tab@tab@tab will produce two empty columns. - -% @item, @tab do not need to be on their own lines, but it will not hurt -% if they are. - -% Sample multitable: - -% @multitable {Column 1 template} {Column 2 template} {Column 3 template} -% @item first col stuff @tab second col stuff @tab third col -% @item -% first col stuff -% @tab -% second col stuff -% @tab -% third col -% @item first col stuff @tab second col stuff -% @tab Many paragraphs of text may be used in any column. -% -% They will wrap at the width determined by the template. -% @item@tab@tab This will be in third column. -% @end multitable - -% Default dimensions may be reset by user. -% @multitableparskip is vertical space between paragraphs in table. -% @multitableparindent is paragraph indent in table. -% @multitablecolmargin is horizontal space to be left between columns. -% @multitablelinespace is space to leave between table items, baseline -% to baseline. -% 0pt means it depends on current normal line spacing. -% -\newskip\multitableparskip -\newskip\multitableparindent -\newdimen\multitablecolspace -\newskip\multitablelinespace -\multitableparskip=0pt -\multitableparindent=6pt -\multitablecolspace=12pt -\multitablelinespace=0pt - -% Macros used to set up halign preamble: -% -\let\endsetuptable\relax -\def\xendsetuptable{\endsetuptable} -\let\columnfractions\relax -\def\xcolumnfractions{\columnfractions} -\newif\ifsetpercent - -% #1 is the @columnfraction, usually a decimal number like .5, but might -% be just 1. We just use it, whatever it is. -% -\def\pickupwholefraction#1 {% - \global\advance\colcount by 1 - \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}% - \setuptable -} - -\newcount\colcount -\def\setuptable#1{% - \def\firstarg{#1}% - \ifx\firstarg\xendsetuptable - \let\go = \relax - \else - \ifx\firstarg\xcolumnfractions - \global\setpercenttrue - \else - \ifsetpercent - \let\go\pickupwholefraction - \else - \global\advance\colcount by 1 - \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a - % separator; typically that is always in the input, anyway. - \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% - \fi - \fi - \ifx\go\pickupwholefraction - % Put the argument back for the \pickupwholefraction call, so - % we'll always have a period there to be parsed. - \def\go{\pickupwholefraction#1}% - \else - \let\go = \setuptable - \fi% - \fi - \go -} - -% multitable-only commands. -% -% @headitem starts a heading row, which we typeset in bold. -% Assignments have to be global since we are inside the implicit group -% of an alignment entry. Note that \everycr resets \everytab. -\def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}% -% -% A \tab used to include \hskip1sp. But then the space in a template -% line is not enough. That is bad. So let's go back to just `&' until -% we encounter the problem it was intended to solve again. -% --karl, nathan@acm.org, 20apr99. -\def\tab{\checkenv\multitable &\the\everytab}% - -% @multitable ... @end multitable definitions: -% -\newtoks\everytab % insert after every tab. -% -\envdef\multitable{% - \vskip\parskip - \startsavinginserts - % - % @item within a multitable starts a normal row. - % We use \def instead of \let so that if one of the multitable entries - % contains an @itemize, we don't choke on the \item (seen as \crcr aka - % \endtemplate) expanding \doitemize. - \def\item{\crcr}% - % - \tolerance=9500 - \hbadness=9500 - \setmultitablespacing - \parskip=\multitableparskip - \parindent=\multitableparindent - \overfullrule=0pt - \global\colcount=0 - % - \everycr = {% - \noalign{% - \global\everytab={}% - \global\colcount=0 % Reset the column counter. - % Check for saved footnotes, etc. - \checkinserts - % Keeps underfull box messages off when table breaks over pages. - %\filbreak - % Maybe so, but it also creates really weird page breaks when the - % table breaks over pages. Wouldn't \vfil be better? Wait until the - % problem manifests itself, so it can be fixed for real --karl. - }% - }% - % - \parsearg\domultitable -} -\def\domultitable#1{% - % To parse everything between @multitable and @item: - \setuptable#1 \endsetuptable - % - % This preamble sets up a generic column definition, which will - % be used as many times as user calls for columns. - % \vtop will set a single line and will also let text wrap and - % continue for many paragraphs if desired. - \halign\bgroup &% - \global\advance\colcount by 1 - \multistrut - \vtop{% - % Use the current \colcount to find the correct column width: - \hsize=\expandafter\csname col\the\colcount\endcsname - % - % In order to keep entries from bumping into each other - % we will add a \leftskip of \multitablecolspace to all columns after - % the first one. - % - % If a template has been used, we will add \multitablecolspace - % to the width of each template entry. - % - % If the user has set preamble in terms of percent of \hsize we will - % use that dimension as the width of the column, and the \leftskip - % will keep entries from bumping into each other. Table will start at - % left margin and final column will justify at right margin. - % - % Make sure we don't inherit \rightskip from the outer environment. - \rightskip=0pt - \ifnum\colcount=1 - % The first column will be indented with the surrounding text. - \advance\hsize by\leftskip - \else - \ifsetpercent \else - % If user has not set preamble in terms of percent of \hsize - % we will advance \hsize by \multitablecolspace. - \advance\hsize by \multitablecolspace - \fi - % In either case we will make \leftskip=\multitablecolspace: - \leftskip=\multitablecolspace - \fi - % Ignoring space at the beginning and end avoids an occasional spurious - % blank line, when TeX decides to break the line at the space before the - % box from the multistrut, so the strut ends up on a line by itself. - % For example: - % @multitable @columnfractions .11 .89 - % @item @code{#} - % @tab Legal holiday which is valid in major parts of the whole country. - % Is automatically provided with highlighting sequences respectively - % marking characters. - \noindent\ignorespaces##\unskip\multistrut - }\cr -} -\def\Emultitable{% - \crcr - \egroup % end the \halign - \global\setpercentfalse -} - -\def\setmultitablespacing{% - \def\multistrut{\strut}% just use the standard line spacing - % - % Compute \multitablelinespace (if not defined by user) for use in - % \multitableparskip calculation. We used define \multistrut based on - % this, but (ironically) that caused the spacing to be off. - % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100. -\ifdim\multitablelinespace=0pt -\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip -\global\advance\multitablelinespace by-\ht0 -\fi -%% Test to see if parskip is larger than space between lines of -%% table. If not, do nothing. -%% If so, set to same dimension as multitablelinespace. -\ifdim\multitableparskip>\multitablelinespace -\global\multitableparskip=\multitablelinespace -\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller - %% than skip between lines in the table. -\fi% -\ifdim\multitableparskip=0pt -\global\multitableparskip=\multitablelinespace -\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller - %% than skip between lines in the table. -\fi} - - -\message{conditionals,} - -% @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext, -% @ifnotxml always succeed. They currently do nothing; we don't -% attempt to check whether the conditionals are properly nested. But we -% have to remember that they are conditionals, so that @end doesn't -% attempt to close an environment group. -% -\def\makecond#1{% - \expandafter\let\csname #1\endcsname = \relax - \expandafter\let\csname iscond.#1\endcsname = 1 -} -\makecond{iftex} -\makecond{ifnotdocbook} -\makecond{ifnothtml} -\makecond{ifnotinfo} -\makecond{ifnotplaintext} -\makecond{ifnotxml} - -% Ignore @ignore, @ifhtml, @ifinfo, and the like. -% -\def\direntry{\doignore{direntry}} -\def\documentdescription{\doignore{documentdescription}} -\def\docbook{\doignore{docbook}} -\def\html{\doignore{html}} -\def\ifdocbook{\doignore{ifdocbook}} -\def\ifhtml{\doignore{ifhtml}} -\def\ifinfo{\doignore{ifinfo}} -\def\ifnottex{\doignore{ifnottex}} -\def\ifplaintext{\doignore{ifplaintext}} -\def\ifxml{\doignore{ifxml}} -\def\ignore{\doignore{ignore}} -\def\menu{\doignore{menu}} -\def\xml{\doignore{xml}} - -% Ignore text until a line `@end #1', keeping track of nested conditionals. -% -% A count to remember the depth of nesting. -\newcount\doignorecount - -\def\doignore#1{\begingroup - % Scan in ``verbatim'' mode: - \obeylines - \catcode`\@ = \other - \catcode`\{ = \other - \catcode`\} = \other - % - % Make sure that spaces turn into tokens that match what \doignoretext wants. - \spaceisspace - % - % Count number of #1's that we've seen. - \doignorecount = 0 - % - % Swallow text until we reach the matching `@end #1'. - \dodoignore{#1}% -} - -{ \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source. - \obeylines % - % - \gdef\dodoignore#1{% - % #1 contains the command name as a string, e.g., `ifinfo'. - % - % Define a command to find the next `@end #1'. - \long\def\doignoretext##1^^M@end #1{% - \doignoretextyyy##1^^M@#1\_STOP_}% - % - % And this command to find another #1 command, at the beginning of a - % line. (Otherwise, we would consider a line `@c @ifset', for - % example, to count as an @ifset for nesting.) - \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% - % - % And now expand that command. - \doignoretext ^^M% - }% -} - -\def\doignoreyyy#1{% - \def\temp{#1}% - \ifx\temp\empty % Nothing found. - \let\next\doignoretextzzz - \else % Found a nested condition, ... - \advance\doignorecount by 1 - \let\next\doignoretextyyy % ..., look for another. - % If we're here, #1 ends with ^^M\ifinfo (for example). - \fi - \next #1% the token \_STOP_ is present just after this macro. -} - -% We have to swallow the remaining "\_STOP_". -% -\def\doignoretextzzz#1{% - \ifnum\doignorecount = 0 % We have just found the outermost @end. - \let\next\enddoignore - \else % Still inside a nested condition. - \advance\doignorecount by -1 - \let\next\doignoretext % Look for the next @end. - \fi - \next -} - -% Finish off ignored text. -{ \obeylines% - % Ignore anything after the last `@end #1'; this matters in verbatim - % environments, where otherwise the newline after an ignored conditional - % would result in a blank line in the output. - \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% -} - - -% @set VAR sets the variable VAR to an empty value. -% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. -% -% Since we want to separate VAR from REST-OF-LINE (which might be -% empty), we can't just use \parsearg; we have to insert a space of our -% own to delimit the rest of the line, and then take it out again if we -% didn't need it. -% We rely on the fact that \parsearg sets \catcode`\ =10. -% -\parseargdef\set{\setyyy#1 \endsetyyy} -\def\setyyy#1 #2\endsetyyy{% - {% - \makevalueexpandable - \def\temp{#2}% - \edef\next{\gdef\makecsname{SET#1}}% - \ifx\temp\empty - \next{}% - \else - \setzzz#2\endsetzzz - \fi - }% -} -% Remove the trailing space \setxxx inserted. -\def\setzzz#1 \endsetzzz{\next{#1}} - -% @clear VAR clears (i.e., unsets) the variable VAR. -% -\parseargdef\clear{% - {% - \makevalueexpandable - \global\expandafter\let\csname SET#1\endcsname=\relax - }% -} - -% @value{foo} gets the text saved in variable foo. -\def\value{\begingroup\makevalueexpandable\valuexxx} -\def\valuexxx#1{\expandablevalue{#1}\endgroup} -{ - \catcode`\- = \active \catcode`\_ = \active - % - \gdef\makevalueexpandable{% - \let\value = \expandablevalue - % We don't want these characters active, ... - \catcode`\-=\other \catcode`\_=\other - % ..., but we might end up with active ones in the argument if - % we're called from @code, as @code{@value{foo-bar_}}, though. - % So \let them to their normal equivalents. - \let-\realdash \let_\normalunderscore - } -} - -% We have this subroutine so that we can handle at least some @value's -% properly in indexes (we call \makevalueexpandable in \indexdummies). -% The command has to be fully expandable (if the variable is set), since -% the result winds up in the index file. This means that if the -% variable's value contains other Texinfo commands, it's almost certain -% it will fail (although perhaps we could fix that with sufficient work -% to do a one-level expansion on the result, instead of complete). -% -\def\expandablevalue#1{% - \expandafter\ifx\csname SET#1\endcsname\relax - {[No value for ``#1'']}% - \message{Variable `#1', used in @value, is not set.}% - \else - \csname SET#1\endcsname - \fi -} - -% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined -% with @set. -% -% To get special treatment of `@end ifset,' call \makeond and the redefine. -% -\makecond{ifset} -\def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}} -\def\doifset#1#2{% - {% - \makevalueexpandable - \let\next=\empty - \expandafter\ifx\csname SET#2\endcsname\relax - #1% If not set, redefine \next. - \fi - \expandafter - }\next -} -\def\ifsetfail{\doignore{ifset}} - -% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been -% defined with @set, or has been undefined with @clear. -% -% The `\else' inside the `\doifset' parameter is a trick to reuse the -% above code: if the variable is not set, do nothing, if it is set, -% then redefine \next to \ifclearfail. -% -\makecond{ifclear} -\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} -\def\ifclearfail{\doignore{ifclear}} - -% @dircategory CATEGORY -- specify a category of the dir file -% which this file should belong to. Ignore this in TeX. -\let\dircategory=\comment - -% @defininfoenclose. -\let\definfoenclose=\comment - - -\message{indexing,} -% Index generation facilities - -% Define \newwrite to be identical to plain tex's \newwrite -% except not \outer, so it can be used within macros and \if's. -\edef\newwrite{\makecsname{ptexnewwrite}} - -% \newindex {foo} defines an index named foo. -% It automatically defines \fooindex such that -% \fooindex ...rest of line... puts an entry in the index foo. -% It also defines \fooindfile to be the number of the output channel for -% the file that accumulates this index. The file's extension is foo. -% The name of an index should be no more than 2 characters long -% for the sake of vms. -% -\def\newindex#1{% - \iflinks - \expandafter\newwrite \csname#1indfile\endcsname - \openout \csname#1indfile\endcsname \jobname.#1 % Open the file - \fi - \expandafter\xdef\csname#1index\endcsname{% % Define @#1index - \noexpand\doindex{#1}} -} - -% @defindex foo == \newindex{foo} -% -\def\defindex{\parsearg\newindex} - -% Define @defcodeindex, like @defindex except put all entries in @code. -% -\def\defcodeindex{\parsearg\newcodeindex} -% -\def\newcodeindex#1{% - \iflinks - \expandafter\newwrite \csname#1indfile\endcsname - \openout \csname#1indfile\endcsname \jobname.#1 - \fi - \expandafter\xdef\csname#1index\endcsname{% - \noexpand\docodeindex{#1}}% -} - - -% @synindex foo bar makes index foo feed into index bar. -% Do this instead of @defindex foo if you don't want it as a separate index. -% -% @syncodeindex foo bar similar, but put all entries made for index foo -% inside @code. -% -\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} -\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} - -% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo), -% #3 the target index (bar). -\def\dosynindex#1#2#3{% - % Only do \closeout if we haven't already done it, else we'll end up - % closing the target index. - \expandafter \ifx\csname donesynindex#2\endcsname \undefined - % The \closeout helps reduce unnecessary open files; the limit on the - % Acorn RISC OS is a mere 16 files. - \expandafter\closeout\csname#2indfile\endcsname - \expandafter\let\csname\donesynindex#2\endcsname = 1 - \fi - % redefine \fooindfile: - \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname - \expandafter\let\csname#2indfile\endcsname=\temp - % redefine \fooindex: - \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}% -} - -% Define \doindex, the driver for all \fooindex macros. -% Argument #1 is generated by the calling \fooindex macro, -% and it is "foo", the name of the index. - -% \doindex just uses \parsearg; it calls \doind for the actual work. -% This is because \doind is more useful to call from other macros. - -% There is also \dosubind {index}{topic}{subtopic} -% which makes an entry in a two-level index such as the operation index. - -\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer} -\def\singleindexer #1{\doind{\indexname}{#1}} - -% like the previous two, but they put @code around the argument. -\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} -\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} - -% Take care of Texinfo commands that can appear in an index entry. -% Since there are some commands we want to expand, and others we don't, -% we have to laboriously prevent expansion for those that we don't. -% -\def\indexdummies{% - \escapechar = `\\ % use backslash in output files. - \def\@{@}% change to @@ when we switch to @ as escape char in index files. - \def\ {\realbackslash\space }% - % - % Need these in case \tex is in effect and \{ is a \delimiter again. - % But can't use \lbracecmd and \rbracecmd because texindex assumes - % braces and backslashes are used only as delimiters. - \let\{ = \mylbrace - \let\} = \myrbrace - % - % I don't entirely understand this, but when an index entry is - % generated from a macro call, the \endinput which \scanmacro inserts - % causes processing to be prematurely terminated. This is, - % apparently, because \indexsorttmp is fully expanded, and \endinput - % is an expandable command. The redefinition below makes \endinput - % disappear altogether for that purpose -- although logging shows that - % processing continues to some further point. On the other hand, it - % seems \endinput does not hurt in the printed index arg, since that - % is still getting written without apparent harm. - % - % Sample source (mac-idx3.tex, reported by Graham Percival to - % help-texinfo, 22may06): - % @macro funindex {WORD} - % @findex xyz - % @end macro - % ... - % @funindex commtest - % - % The above is not enough to reproduce the bug, but it gives the flavor. - % - % Sample whatsit resulting: - % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} - % - % So: - \let\endinput = \empty - % - % Do the redefinitions. - \commondummies -} - -% For the aux and toc files, @ is the escape character. So we want to -% redefine everything using @ as the escape character (instead of -% \realbackslash, still used for index files). When everything uses @, -% this will be simpler. -% -\def\atdummies{% - \def\@{@@}% - \def\ {@ }% - \let\{ = \lbraceatcmd - \let\} = \rbraceatcmd - % - % Do the redefinitions. - \commondummies - \otherbackslash -} - -% Called from \indexdummies and \atdummies. -% -\def\commondummies{% - % - % \definedummyword defines \#1 as \string\#1\space, thus effectively - % preventing its expansion. This is used only for control% words, - % not control letters, because the \space would be incorrect for - % control characters, but is needed to separate the control word - % from whatever follows. - % - % For control letters, we have \definedummyletter, which omits the - % space. - % - % These can be used both for control words that take an argument and - % those that do not. If it is followed by {arg} in the input, then - % that will dutifully get written to the index (or wherever). - % - \def\definedummyword ##1{\def##1{\string##1\space}}% - \def\definedummyletter##1{\def##1{\string##1}}% - \let\definedummyaccent\definedummyletter - % - \commondummiesnofonts - % - \definedummyletter\_% - % - % Non-English letters. - \definedummyword\AA - \definedummyword\AE - \definedummyword\L - \definedummyword\OE - \definedummyword\O - \definedummyword\aa - \definedummyword\ae - \definedummyword\l - \definedummyword\oe - \definedummyword\o - \definedummyword\ss - \definedummyword\exclamdown - \definedummyword\questiondown - \definedummyword\ordf - \definedummyword\ordm - % - % Although these internal commands shouldn't show up, sometimes they do. - \definedummyword\bf - \definedummyword\gtr - \definedummyword\hat - \definedummyword\less - \definedummyword\sf - \definedummyword\sl - \definedummyword\tclose - \definedummyword\tt - % - \definedummyword\LaTeX - \definedummyword\TeX - % - % Assorted special characters. - \definedummyword\bullet - \definedummyword\comma - \definedummyword\copyright - \definedummyword\registeredsymbol - \definedummyword\dots - \definedummyword\enddots - \definedummyword\equiv - \definedummyword\error - \definedummyword\euro - \definedummyword\expansion - \definedummyword\minus - \definedummyword\pounds - \definedummyword\point - \definedummyword\print - \definedummyword\result - \definedummyword\textdegree - % - % We want to disable all macros so that they are not expanded by \write. - \macrolist - % - \normalturnoffactive - % - % Handle some cases of @value -- where it does not contain any - % (non-fully-expandable) commands. - \makevalueexpandable -} - -% \commondummiesnofonts: common to \commondummies and \indexnofonts. -% -\def\commondummiesnofonts{% - % Control letters and accents. - \definedummyletter\!% - \definedummyaccent\"% - \definedummyaccent\'% - \definedummyletter\*% - \definedummyaccent\,% - \definedummyletter\.% - \definedummyletter\/% - \definedummyletter\:% - \definedummyaccent\=% - \definedummyletter\?% - \definedummyaccent\^% - \definedummyaccent\`% - \definedummyaccent\~% - \definedummyword\u - \definedummyword\v - \definedummyword\H - \definedummyword\dotaccent - \definedummyword\ringaccent - \definedummyword\tieaccent - \definedummyword\ubaraccent - \definedummyword\udotaccent - \definedummyword\dotless - % - % Texinfo font commands. - \definedummyword\b - \definedummyword\i - \definedummyword\r - \definedummyword\sc - \definedummyword\t - % - % Commands that take arguments. - \definedummyword\acronym - \definedummyword\cite - \definedummyword\code - \definedummyword\command - \definedummyword\dfn - \definedummyword\emph - \definedummyword\env - \definedummyword\file - \definedummyword\kbd - \definedummyword\key - \definedummyword\math - \definedummyword\option - \definedummyword\pxref - \definedummyword\ref - \definedummyword\samp - \definedummyword\strong - \definedummyword\tie - \definedummyword\uref - \definedummyword\url - \definedummyword\var - \definedummyword\verb - \definedummyword\w - \definedummyword\xref -} - -% \indexnofonts is used when outputting the strings to sort the index -% by, and when constructing control sequence names. It eliminates all -% control sequences and just writes whatever the best ASCII sort string -% would be for a given command (usually its argument). -% -\def\indexnofonts{% - % Accent commands should become @asis. - \def\definedummyaccent##1{\let##1\asis}% - % We can just ignore other control letters. - \def\definedummyletter##1{\let##1\empty}% - % Hopefully, all control words can become @asis. - \let\definedummyword\definedummyaccent - % - \commondummiesnofonts - % - % Don't no-op \tt, since it isn't a user-level command - % and is used in the definitions of the active chars like <, >, |, etc. - % Likewise with the other plain tex font commands. - %\let\tt=\asis - % - \def\ { }% - \def\@{@}% - % how to handle braces? - \def\_{\normalunderscore}% - % - % Non-English letters. - \def\AA{AA}% - \def\AE{AE}% - \def\L{L}% - \def\OE{OE}% - \def\O{O}% - \def\aa{aa}% - \def\ae{ae}% - \def\l{l}% - \def\oe{oe}% - \def\o{o}% - \def\ss{ss}% - \def\exclamdown{!}% - \def\questiondown{?}% - \def\ordf{a}% - \def\ordm{o}% - % - \def\LaTeX{LaTeX}% - \def\TeX{TeX}% - % - % Assorted special characters. - % (The following {} will end up in the sort string, but that's ok.) - \def\bullet{bullet}% - \def\comma{,}% - \def\copyright{copyright}% - \def\registeredsymbol{R}% - \def\dots{...}% - \def\enddots{...}% - \def\equiv{==}% - \def\error{error}% - \def\euro{euro}% - \def\expansion{==>}% - \def\minus{-}% - \def\pounds{pounds}% - \def\point{.}% - \def\print{-|}% - \def\result{=>}% - \def\textdegree{degrees}% - % - % We need to get rid of all macros, leaving only the arguments (if present). - % Of course this is not nearly correct, but it is the best we can do for now. - % makeinfo does not expand macros in the argument to @deffn, which ends up - % writing an index entry, and texindex isn't prepared for an index sort entry - % that starts with \. - % - % Since macro invocations are followed by braces, we can just redefine them - % to take a single TeX argument. The case of a macro invocation that - % goes to end-of-line is not handled. - % - \macrolist -} - -\let\indexbackslash=0 %overridden during \printindex. -\let\SETmarginindex=\relax % put index entries in margin (undocumented)? - -% Most index entries go through here, but \dosubind is the general case. -% #1 is the index name, #2 is the entry text. -\def\doind#1#2{\dosubind{#1}{#2}{}} - -% Workhorse for all \fooindexes. -% #1 is name of index, #2 is stuff to put there, #3 is subentry -- -% empty if called from \doind, as we usually are (the main exception -% is with most defuns, which call us directly). -% -\def\dosubind#1#2#3{% - \iflinks - {% - % Store the main index entry text (including the third arg). - \toks0 = {#2}% - % If third arg is present, precede it with a space. - \def\thirdarg{#3}% - \ifx\thirdarg\empty \else - \toks0 = \expandafter{\the\toks0 \space #3}% - \fi - % - \edef\writeto{\csname#1indfile\endcsname}% - % - \ifvmode - \dosubindsanitize - \else - \dosubindwrite - \fi - }% - \fi -} - -% Write the entry in \toks0 to the index file: -% -\def\dosubindwrite{% - % Put the index entry in the margin if desired. - \ifx\SETmarginindex\relax\else - \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}% - \fi - % - % Remember, we are within a group. - \indexdummies % Must do this here, since \bf, etc expand at this stage - \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now - % so it will be output as is; and it will print as backslash. - % - % Process the index entry with all font commands turned off, to - % get the string to sort by. - {\indexnofonts - \edef\temp{\the\toks0}% need full expansion - \xdef\indexsorttmp{\temp}% - }% - % - % Set up the complete index entry, with both the sort key and - % the original text, including any font commands. We write - % three arguments to \entry to the .?? file (four in the - % subentry case), texindex reduces to two when writing the .??s - % sorted result. - \edef\temp{% - \write\writeto{% - \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}% - }% - \temp -} - -% Take care of unwanted page breaks: -% -% If a skip is the last thing on the list now, preserve it -% by backing up by \lastskip, doing the \write, then inserting -% the skip again. Otherwise, the whatsit generated by the -% \write will make \lastskip zero. The result is that sequences -% like this: -% @end defun -% @tindex whatever -% @defun ... -% will have extra space inserted, because the \medbreak in the -% start of the @defun won't see the skip inserted by the @end of -% the previous defun. -% -% But don't do any of this if we're not in vertical mode. We -% don't want to do a \vskip and prematurely end a paragraph. -% -% Avoid page breaks due to these extra skips, too. -% -% But wait, there is a catch there: -% We'll have to check whether \lastskip is zero skip. \ifdim is not -% sufficient for this purpose, as it ignores stretch and shrink parts -% of the skip. The only way seems to be to check the textual -% representation of the skip. -% -% The following is almost like \def\zeroskipmacro{0.0pt} except that -% the ``p'' and ``t'' characters have catcode \other, not 11 (letter). -% -\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} -% -% ..., ready, GO: -% -\def\dosubindsanitize{% - % \lastskip and \lastpenalty cannot both be nonzero simultaneously. - \skip0 = \lastskip - \edef\lastskipmacro{\the\lastskip}% - \count255 = \lastpenalty - % - % If \lastskip is nonzero, that means the last item was a - % skip. And since a skip is discardable, that means this - % -\skip0 glue we're inserting is preceded by a - % non-discardable item, therefore it is not a potential - % breakpoint, therefore no \nobreak needed. - \ifx\lastskipmacro\zeroskipmacro - \else - \vskip-\skip0 - \fi - % - \dosubindwrite - % - \ifx\lastskipmacro\zeroskipmacro - % If \lastskip was zero, perhaps the last item was a penalty, and - % perhaps it was >=10000, e.g., a \nobreak. In that case, we want - % to re-insert the same penalty (values >10000 are used for various - % signals); since we just inserted a non-discardable item, any - % following glue (such as a \parskip) would be a breakpoint. For example: - % - % @deffn deffn-whatever - % @vindex index-whatever - % Description. - % would allow a break between the index-whatever whatsit - % and the "Description." paragraph. - \ifnum\count255>9999 \penalty\count255 \fi - \else - % On the other hand, if we had a nonzero \lastskip, - % this make-up glue would be preceded by a non-discardable item - % (the whatsit from the \write), so we must insert a \nobreak. - \nobreak\vskip\skip0 - \fi -} - -% The index entry written in the file actually looks like -% \entry {sortstring}{page}{topic} -% or -% \entry {sortstring}{page}{topic}{subtopic} -% The texindex program reads in these files and writes files -% containing these kinds of lines: -% \initial {c} -% before the first topic whose initial is c -% \entry {topic}{pagelist} -% for a topic that is used without subtopics -% \primary {topic} -% for the beginning of a topic that is used with subtopics -% \secondary {subtopic}{pagelist} -% for each subtopic. - -% Define the user-accessible indexing commands -% @findex, @vindex, @kindex, @cindex. - -\def\findex {\fnindex} -\def\kindex {\kyindex} -\def\cindex {\cpindex} -\def\vindex {\vrindex} -\def\tindex {\tpindex} -\def\pindex {\pgindex} - -\def\cindexsub {\begingroup\obeylines\cindexsub} -{\obeylines % -\gdef\cindexsub "#1" #2^^M{\endgroup % -\dosubind{cp}{#2}{#1}}} - -% Define the macros used in formatting output of the sorted index material. - -% @printindex causes a particular index (the ??s file) to get printed. -% It does not print any chapter heading (usually an @unnumbered). -% -\parseargdef\printindex{\begingroup - \dobreak \chapheadingskip{10000}% - % - \smallfonts \rm - \tolerance = 9500 - \everypar = {}% don't want the \kern\-parindent from indentation suppression. - % - % See if the index file exists and is nonempty. - % Change catcode of @ here so that if the index file contains - % \initial {@} - % as its first line, TeX doesn't complain about mismatched braces - % (because it thinks @} is a control sequence). - \catcode`\@ = 11 - \openin 1 \jobname.#1s - \ifeof 1 - % \enddoublecolumns gets confused if there is no text in the index, - % and it loses the chapter title and the aux file entries for the - % index. The easiest way to prevent this problem is to make sure - % there is some text. - \putwordIndexNonexistent - \else - % - % If the index file exists but is empty, then \openin leaves \ifeof - % false. We have to make TeX try to read something from the file, so - % it can discover if there is anything in it. - \read 1 to \temp - \ifeof 1 - \putwordIndexIsEmpty - \else - % Index files are almost Texinfo source, but we use \ as the escape - % character. It would be better to use @, but that's too big a change - % to make right now. - \def\indexbackslash{\backslashcurfont}% - \catcode`\\ = 0 - \escapechar = `\\ - \begindoublecolumns - \input \jobname.#1s - \enddoublecolumns - \fi - \fi - \closein 1 -\endgroup} - -% These macros are used by the sorted index file itself. -% Change them to control the appearance of the index. - -\def\initial#1{{% - % Some minor font changes for the special characters. - \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt - % - % Remove any glue we may have, we'll be inserting our own. - \removelastskip - % - % We like breaks before the index initials, so insert a bonus. - \nobreak - \vskip 0pt plus 3\baselineskip - \penalty 0 - \vskip 0pt plus -3\baselineskip - % - % Typeset the initial. Making this add up to a whole number of - % baselineskips increases the chance of the dots lining up from column - % to column. It still won't often be perfect, because of the stretch - % we need before each entry, but it's better. - % - % No shrink because it confuses \balancecolumns. - \vskip 1.67\baselineskip plus .5\baselineskip - \leftline{\secbf #1}% - % Do our best not to break after the initial. - \nobreak - \vskip .33\baselineskip plus .1\baselineskip -}} - -% \entry typesets a paragraph consisting of the text (#1), dot leaders, and -% then page number (#2) flushed to the right margin. It is used for index -% and table of contents entries. The paragraph is indented by \leftskip. -% -% A straightforward implementation would start like this: -% \def\entry#1#2{... -% But this frozes the catcodes in the argument, and can cause problems to -% @code, which sets - active. This problem was fixed by a kludge--- -% ``-'' was active throughout whole index, but this isn't really right. -% -% The right solution is to prevent \entry from swallowing the whole text. -% --kasal, 21nov03 -\def\entry{% - \begingroup - % - % Start a new paragraph if necessary, so our assignments below can't - % affect previous text. - \par - % - % Do not fill out the last line with white space. - \parfillskip = 0in - % - % No extra space above this paragraph. - \parskip = 0in - % - % Do not prefer a separate line ending with a hyphen to fewer lines. - \finalhyphendemerits = 0 - % - % \hangindent is only relevant when the entry text and page number - % don't both fit on one line. In that case, bob suggests starting the - % dots pretty far over on the line. Unfortunately, a large - % indentation looks wrong when the entry text itself is broken across - % lines. So we use a small indentation and put up with long leaders. - % - % \hangafter is reset to 1 (which is the value we want) at the start - % of each paragraph, so we need not do anything with that. - \hangindent = 2em - % - % When the entry text needs to be broken, just fill out the first line - % with blank space. - \rightskip = 0pt plus1fil - % - % A bit of stretch before each entry for the benefit of balancing - % columns. - \vskip 0pt plus1pt - % - % Swallow the left brace of the text (first parameter): - \afterassignment\doentry - \let\temp = -} -\def\doentry{% - \bgroup % Instead of the swallowed brace. - \noindent - \aftergroup\finishentry - % And now comes the text of the entry. -} -\def\finishentry#1{% - % #1 is the page number. - % - % The following is kludged to not output a line of dots in the index if - % there are no page numbers. The next person who breaks this will be - % cursed by a Unix daemon. - \def\tempa{{\rm }}% - \def\tempb{#1}% - \edef\tempc{\tempa}% - \edef\tempd{\tempb}% - \ifx\tempc\tempd - \ % - \else - % - % If we must, put the page number on a line of its own, and fill out - % this line with blank space. (The \hfil is overwhelmed with the - % fill leaders glue in \indexdotfill if the page number does fit.) - \hfil\penalty50 - \null\nobreak\indexdotfill % Have leaders before the page number. - % - % The `\ ' here is removed by the implicit \unskip that TeX does as - % part of (the primitive) \par. Without it, a spurious underfull - % \hbox ensues. - \ifpdf - \pdfgettoks#1.% - \ \the\toksA - \else - \ #1% - \fi - \fi - \par - \endgroup -} - -% Like plain.tex's \dotfill, except uses up at least 1 em. -\def\indexdotfill{\cleaders - \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill} - -\def\primary #1{\line{#1\hfil}} - -\newskip\secondaryindent \secondaryindent=0.5cm -\def\secondary#1#2{{% - \parfillskip=0in - \parskip=0in - \hangindent=1in - \hangafter=1 - \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill - \ifpdf - \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. - \else - #2 - \fi - \par -}} - -% Define two-column mode, which we use to typeset indexes. -% Adapted from the TeXbook, page 416, which is to say, -% the manmac.tex format used to print the TeXbook itself. -\catcode`\@=11 - -\newbox\partialpage -\newdimen\doublecolumnhsize - -\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns - % Grab any single-column material above us. - \output = {% - % - % Here is a possibility not foreseen in manmac: if we accumulate a - % whole lot of material, we might end up calling this \output - % routine twice in a row (see the doublecol-lose test, which is - % essentially a couple of indexes with @setchapternewpage off). In - % that case we just ship out what is in \partialpage with the normal - % output routine. Generally, \partialpage will be empty when this - % runs and this will be a no-op. See the indexspread.tex test case. - \ifvoid\partialpage \else - \onepageout{\pagecontents\partialpage}% - \fi - % - \global\setbox\partialpage = \vbox{% - % Unvbox the main output page. - \unvbox\PAGE - \kern-\topskip \kern\baselineskip - }% - }% - \eject % run that output routine to set \partialpage - % - % Use the double-column output routine for subsequent pages. - \output = {\doublecolumnout}% - % - % Change the page size parameters. We could do this once outside this - % routine, in each of @smallbook, @afourpaper, and the default 8.5x11 - % format, but then we repeat the same computation. Repeating a couple - % of assignments once per index is clearly meaningless for the - % execution time, so we may as well do it in one place. - % - % First we halve the line length, less a little for the gutter between - % the columns. We compute the gutter based on the line length, so it - % changes automatically with the paper format. The magic constant - % below is chosen so that the gutter has the same value (well, +-<1pt) - % as it did when we hard-coded it. - % - % We put the result in a separate register, \doublecolumhsize, so we - % can restore it in \pagesofar, after \hsize itself has (potentially) - % been clobbered. - % - \doublecolumnhsize = \hsize - \advance\doublecolumnhsize by -.04154\hsize - \divide\doublecolumnhsize by 2 - \hsize = \doublecolumnhsize - % - % Double the \vsize as well. (We don't need a separate register here, - % since nobody clobbers \vsize.) - \vsize = 2\vsize -} - -% The double-column output routine for all double-column pages except -% the last. -% -\def\doublecolumnout{% - \splittopskip=\topskip \splitmaxdepth=\maxdepth - % Get the available space for the double columns -- the normal - % (undoubled) page height minus any material left over from the - % previous page. - \dimen@ = \vsize - \divide\dimen@ by 2 - \advance\dimen@ by -\ht\partialpage - % - % box0 will be the left-hand column, box2 the right. - \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ - \onepageout\pagesofar - \unvbox255 - \penalty\outputpenalty -} -% -% Re-output the contents of the output page -- any previous material, -% followed by the two boxes we just split, in box0 and box2. -\def\pagesofar{% - \unvbox\partialpage - % - \hsize = \doublecolumnhsize - \wd0=\hsize \wd2=\hsize - \hbox to\pagewidth{\box0\hfil\box2}% -} -% -% All done with double columns. -\def\enddoublecolumns{% - \output = {% - % Split the last of the double-column material. Leave it on the - % current page, no automatic page break. - \balancecolumns - % - % If we end up splitting too much material for the current page, - % though, there will be another page break right after this \output - % invocation ends. Having called \balancecolumns once, we do not - % want to call it again. Therefore, reset \output to its normal - % definition right away. (We hope \balancecolumns will never be - % called on to balance too much material, but if it is, this makes - % the output somewhat more palatable.) - \global\output = {\onepageout{\pagecontents\PAGE}}% - }% - \eject - \endgroup % started in \begindoublecolumns - % - % \pagegoal was set to the doubled \vsize above, since we restarted - % the current page. We're now back to normal single-column - % typesetting, so reset \pagegoal to the normal \vsize (after the - % \endgroup where \vsize got restored). - \pagegoal = \vsize -} -% -% Called at the end of the double column material. -\def\balancecolumns{% - \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120. - \dimen@ = \ht0 - \advance\dimen@ by \topskip - \advance\dimen@ by-\baselineskip - \divide\dimen@ by 2 % target to split to - %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}% - \splittopskip = \topskip - % Loop until we get a decent breakpoint. - {% - \vbadness = 10000 - \loop - \global\setbox3 = \copy0 - \global\setbox1 = \vsplit3 to \dimen@ - \ifdim\ht3>\dimen@ - \global\advance\dimen@ by 1pt - \repeat - }% - %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}% - \setbox0=\vbox to\dimen@{\unvbox1}% - \setbox2=\vbox to\dimen@{\unvbox3}% - % - \pagesofar -} -\catcode`\@ = \other - - -\message{sectioning,} -% Chapters, sections, etc. - -% \unnumberedno is an oxymoron, of course. But we count the unnumbered -% sections so that we can refer to them unambiguously in the pdf -% outlines by their "section number". We avoid collisions with chapter -% numbers by starting them at 10000. (If a document ever has 10000 -% chapters, we're in trouble anyway, I'm sure.) -\newcount\unnumberedno \unnumberedno = 10000 -\newcount\chapno -\newcount\secno \secno=0 -\newcount\subsecno \subsecno=0 -\newcount\subsubsecno \subsubsecno=0 - -% This counter is funny since it counts through charcodes of letters A, B, ... -\newcount\appendixno \appendixno = `\@ -% -% \def\appendixletter{\char\the\appendixno} -% We do the following ugly conditional instead of the above simple -% construct for the sake of pdftex, which needs the actual -% letter in the expansion, not just typeset. -% -\def\appendixletter{% - \ifnum\appendixno=`A A% - \else\ifnum\appendixno=`B B% - \else\ifnum\appendixno=`C C% - \else\ifnum\appendixno=`D D% - \else\ifnum\appendixno=`E E% - \else\ifnum\appendixno=`F F% - \else\ifnum\appendixno=`G G% - \else\ifnum\appendixno=`H H% - \else\ifnum\appendixno=`I I% - \else\ifnum\appendixno=`J J% - \else\ifnum\appendixno=`K K% - \else\ifnum\appendixno=`L L% - \else\ifnum\appendixno=`M M% - \else\ifnum\appendixno=`N N% - \else\ifnum\appendixno=`O O% - \else\ifnum\appendixno=`P P% - \else\ifnum\appendixno=`Q Q% - \else\ifnum\appendixno=`R R% - \else\ifnum\appendixno=`S S% - \else\ifnum\appendixno=`T T% - \else\ifnum\appendixno=`U U% - \else\ifnum\appendixno=`V V% - \else\ifnum\appendixno=`W W% - \else\ifnum\appendixno=`X X% - \else\ifnum\appendixno=`Y Y% - \else\ifnum\appendixno=`Z Z% - % The \the is necessary, despite appearances, because \appendixletter is - % expanded while writing the .toc file. \char\appendixno is not - % expandable, thus it is written literally, thus all appendixes come out - % with the same letter (or @) in the toc without it. - \else\char\the\appendixno - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} - -% Each @chapter defines this as the name of the chapter. -% page headings and footings can use it. @section does likewise. -% However, they are not reliable, because we don't use marks. -\def\thischapter{} -\def\thissection{} - -\newcount\absseclevel % used to calculate proper heading level -\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count - -% @raisesections: treat @section as chapter, @subsection as section, etc. -\def\raisesections{\global\advance\secbase by -1} -\let\up=\raisesections % original BFox name - -% @lowersections: treat @chapter as section, @section as subsection, etc. -\def\lowersections{\global\advance\secbase by 1} -\let\down=\lowersections % original BFox name - -% we only have subsub. -\chardef\maxseclevel = 3 -% -% A numbered section within an unnumbered changes to unnumbered too. -% To achive this, remember the "biggest" unnum. sec. we are currently in: -\chardef\unmlevel = \maxseclevel -% -% Trace whether the current chapter is an appendix or not: -% \chapheadtype is "N" or "A", unnumbered chapters are ignored. -\def\chapheadtype{N} - -% Choose a heading macro -% #1 is heading type -% #2 is heading level -% #3 is text for heading -\def\genhead#1#2#3{% - % Compute the abs. sec. level: - \absseclevel=#2 - \advance\absseclevel by \secbase - % Make sure \absseclevel doesn't fall outside the range: - \ifnum \absseclevel < 0 - \absseclevel = 0 - \else - \ifnum \absseclevel > 3 - \absseclevel = 3 - \fi - \fi - % The heading type: - \def\headtype{#1}% - \if \headtype U% - \ifnum \absseclevel < \unmlevel - \chardef\unmlevel = \absseclevel - \fi - \else - % Check for appendix sections: - \ifnum \absseclevel = 0 - \edef\chapheadtype{\headtype}% - \else - \if \headtype A\if \chapheadtype N% - \errmessage{@appendix... within a non-appendix chapter}% - \fi\fi - \fi - % Check for numbered within unnumbered: - \ifnum \absseclevel > \unmlevel - \def\headtype{U}% - \else - \chardef\unmlevel = 3 - \fi - \fi - % Now print the heading: - \if \headtype U% - \ifcase\absseclevel - \unnumberedzzz{#3}% - \or \unnumberedseczzz{#3}% - \or \unnumberedsubseczzz{#3}% - \or \unnumberedsubsubseczzz{#3}% - \fi - \else - \if \headtype A% - \ifcase\absseclevel - \appendixzzz{#3}% - \or \appendixsectionzzz{#3}% - \or \appendixsubseczzz{#3}% - \or \appendixsubsubseczzz{#3}% - \fi - \else - \ifcase\absseclevel - \chapterzzz{#3}% - \or \seczzz{#3}% - \or \numberedsubseczzz{#3}% - \or \numberedsubsubseczzz{#3}% - \fi - \fi - \fi - \suppressfirstparagraphindent -} - -% an interface: -\def\numhead{\genhead N} -\def\apphead{\genhead A} -\def\unnmhead{\genhead U} - -% @chapter, @appendix, @unnumbered. Increment top-level counter, reset -% all lower-level sectioning counters to zero. -% -% Also set \chaplevelprefix, which we prepend to @float sequence numbers -% (e.g., figures), q.v. By default (before any chapter), that is empty. -\let\chaplevelprefix = \empty -% -\outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz -\def\chapterzzz#1{% - % section resetting is \global in case the chapter is in a group, such - % as an @include file. - \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 - \global\advance\chapno by 1 - % - % Used for \float. - \gdef\chaplevelprefix{\the\chapno.}% - \resetallfloatnos - % - \message{\putwordChapter\space \the\chapno}% - % - % Write the actual heading. - \chapmacro{#1}{Ynumbered}{\the\chapno}% - % - % So @section and the like are numbered underneath this chapter. - \global\let\section = \numberedsec - \global\let\subsection = \numberedsubsec - \global\let\subsubsection = \numberedsubsubsec -} - -\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz -\def\appendixzzz#1{% - \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 - \global\advance\appendixno by 1 - \gdef\chaplevelprefix{\appendixletter.}% - \resetallfloatnos - % - \def\appendixnum{\putwordAppendix\space \appendixletter}% - \message{\appendixnum}% - % - \chapmacro{#1}{Yappendix}{\appendixletter}% - % - \global\let\section = \appendixsec - \global\let\subsection = \appendixsubsec - \global\let\subsubsection = \appendixsubsubsec -} - -\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz -\def\unnumberedzzz#1{% - \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 - \global\advance\unnumberedno by 1 - % - % Since an unnumbered has no number, no prefix for figures. - \global\let\chaplevelprefix = \empty - \resetallfloatnos - % - % This used to be simply \message{#1}, but TeX fully expands the - % argument to \message. Therefore, if #1 contained @-commands, TeX - % expanded them. For example, in `@unnumbered The @cite{Book}', TeX - % expanded @cite (which turns out to cause errors because \cite is meant - % to be executed, not expanded). - % - % Anyway, we don't want the fully-expanded definition of @cite to appear - % as a result of the \message, we just want `@cite' itself. We use - % \the to achieve this: TeX expands \the only once, - % simply yielding the contents of . (We also do this for - % the toc entries.) - \toks0 = {#1}% - \message{(\the\toks0)}% - % - \chapmacro{#1}{Ynothing}{\the\unnumberedno}% - % - \global\let\section = \unnumberedsec - \global\let\subsection = \unnumberedsubsec - \global\let\subsubsection = \unnumberedsubsubsec -} - -% @centerchap is like @unnumbered, but the heading is centered. -\outer\parseargdef\centerchap{% - % Well, we could do the following in a group, but that would break - % an assumption that \chapmacro is called at the outermost level. - % Thus we are safer this way: --kasal, 24feb04 - \let\centerparametersmaybe = \centerparameters - \unnmhead0{#1}% - \let\centerparametersmaybe = \relax -} - -% @top is like @unnumbered. -\let\top\unnumbered - -% Sections. -\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz -\def\seczzz#1{% - \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 - \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% -} - -\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz -\def\appendixsectionzzz#1{% - \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 - \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% -} -\let\appendixsec\appendixsection - -\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz -\def\unnumberedseczzz#1{% - \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 - \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% -} - -% Subsections. -\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz -\def\numberedsubseczzz#1{% - \global\subsubsecno=0 \global\advance\subsecno by 1 - \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% -} - -\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz -\def\appendixsubseczzz#1{% - \global\subsubsecno=0 \global\advance\subsecno by 1 - \sectionheading{#1}{subsec}{Yappendix}% - {\appendixletter.\the\secno.\the\subsecno}% -} - -\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz -\def\unnumberedsubseczzz#1{% - \global\subsubsecno=0 \global\advance\subsecno by 1 - \sectionheading{#1}{subsec}{Ynothing}% - {\the\unnumberedno.\the\secno.\the\subsecno}% -} - -% Subsubsections. -\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz -\def\numberedsubsubseczzz#1{% - \global\advance\subsubsecno by 1 - \sectionheading{#1}{subsubsec}{Ynumbered}% - {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% -} - -\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz -\def\appendixsubsubseczzz#1{% - \global\advance\subsubsecno by 1 - \sectionheading{#1}{subsubsec}{Yappendix}% - {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% -} - -\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz -\def\unnumberedsubsubseczzz#1{% - \global\advance\subsubsecno by 1 - \sectionheading{#1}{subsubsec}{Ynothing}% - {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}% -} - -% These macros control what the section commands do, according -% to what kind of chapter we are in (ordinary, appendix, or unnumbered). -% Define them by default for a numbered chapter. -\let\section = \numberedsec -\let\subsection = \numberedsubsec -\let\subsubsection = \numberedsubsubsec - -% Define @majorheading, @heading and @subheading - -% NOTE on use of \vbox for chapter headings, section headings, and such: -% 1) We use \vbox rather than the earlier \line to permit -% overlong headings to fold. -% 2) \hyphenpenalty is set to 10000 because hyphenation in a -% heading is obnoxious; this forbids it. -% 3) Likewise, headings look best if no \parindent is used, and -% if justification is not attempted. Hence \raggedright. - - -\def\majorheading{% - {\advance\chapheadingskip by 10pt \chapbreak }% - \parsearg\chapheadingzzz -} - -\def\chapheading{\chapbreak \parsearg\chapheadingzzz} -\def\chapheadingzzz#1{% - {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}% - \bigskip \par\penalty 200\relax - \suppressfirstparagraphindent -} - -% @heading, @subheading, @subsubheading. -\parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{} - \suppressfirstparagraphindent} -\parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{} - \suppressfirstparagraphindent} -\parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{} - \suppressfirstparagraphindent} - -% These macros generate a chapter, section, etc. heading only -% (including whitespace, linebreaking, etc. around it), -% given all the information in convenient, parsed form. - -%%% Args are the skip and penalty (usually negative) -\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} - -%%% Define plain chapter starts, and page on/off switching for it -% Parameter controlling skip before chapter headings (if needed) - -\newskip\chapheadingskip - -\def\chapbreak{\dobreak \chapheadingskip {-4000}} -\def\chappager{\par\vfill\supereject} -\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} - -\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} - -\def\CHAPPAGoff{% -\global\let\contentsalignmacro = \chappager -\global\let\pchapsepmacro=\chapbreak -\global\let\pagealignmacro=\chappager} - -\def\CHAPPAGon{% -\global\let\contentsalignmacro = \chappager -\global\let\pchapsepmacro=\chappager -\global\let\pagealignmacro=\chappager -\global\def\HEADINGSon{\HEADINGSsingle}} - -\def\CHAPPAGodd{% -\global\let\contentsalignmacro = \chapoddpage -\global\let\pchapsepmacro=\chapoddpage -\global\let\pagealignmacro=\chapoddpage -\global\def\HEADINGSon{\HEADINGSdouble}} - -\CHAPPAGon - -% Chapter opening. -% -% #1 is the text, #2 is the section type (Ynumbered, Ynothing, -% Yappendix, Yomitfromtoc), #3 the chapter number. -% -% To test against our argument. -\def\Ynothingkeyword{Ynothing} -\def\Yomitfromtockeyword{Yomitfromtoc} -\def\Yappendixkeyword{Yappendix} -% -\def\chapmacro#1#2#3{% - \pchapsepmacro - {% - \chapfonts \rm - % - % Have to define \thissection before calling \donoderef, because the - % xref code eventually uses it. On the other hand, it has to be called - % after \pchapsepmacro, or the headline will change too soon. - \gdef\thissection{#1}% - \gdef\thischaptername{#1}% - % - % Only insert the separating space if we have a chapter/appendix - % number, and don't print the unnumbered ``number''. - \def\temptype{#2}% - \ifx\temptype\Ynothingkeyword - \setbox0 = \hbox{}% - \def\toctype{unnchap}% - \gdef\thischapternum{}% - \gdef\thischapter{#1}% - \else\ifx\temptype\Yomitfromtockeyword - \setbox0 = \hbox{}% contents like unnumbered, but no toc entry - \def\toctype{omit}% - \gdef\thischapternum{}% - \gdef\thischapter{}% - \else\ifx\temptype\Yappendixkeyword - \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% - \def\toctype{app}% - \xdef\thischapternum{\appendixletter}% - % We don't substitute the actual chapter name into \thischapter - % because we don't want its macros evaluated now. And we don't - % use \thissection because that changes with each section. - % - \xdef\thischapter{\putwordAppendix{} \appendixletter: - \noexpand\thischaptername}% - \else - \setbox0 = \hbox{#3\enspace}% - \def\toctype{numchap}% - \xdef\thischapternum{\the\chapno}% - \xdef\thischapter{\putwordChapter{} \the\chapno: - \noexpand\thischaptername}% - \fi\fi\fi - % - % Write the toc entry for this chapter. Must come before the - % \donoderef, because we include the current node name in the toc - % entry, and \donoderef resets it to empty. - \writetocentry{\toctype}{#1}{#3}% - % - % For pdftex, we have to write out the node definition (aka, make - % the pdfdest) after any page break, but before the actual text has - % been typeset. If the destination for the pdf outline is after the - % text, then jumping from the outline may wind up with the text not - % being visible, for instance under high magnification. - \donoderef{#2}% - % - % Typeset the actual heading. - \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright - \hangindent=\wd0 \centerparametersmaybe - \unhbox0 #1\par}% - }% - \nobreak\bigskip % no page break after a chapter title - \nobreak -} - -% @centerchap -- centered and unnumbered. -\let\centerparametersmaybe = \relax -\def\centerparameters{% - \advance\rightskip by 3\rightskip - \leftskip = \rightskip - \parfillskip = 0pt -} - - -% I don't think this chapter style is supported any more, so I'm not -% updating it with the new noderef stuff. We'll see. --karl, 11aug03. -% -\def\setchapterstyle #1 {\csname CHAPF#1\endcsname} -% -\def\unnchfopen #1{% -\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\nobreak -} -\def\chfopen #1#2{\chapoddpage {\chapfonts -\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% -\par\penalty 5000 % -} -\def\centerchfopen #1{% -\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt - \hfill {\rm #1}\hfill}}\bigskip \par\nobreak -} -\def\CHAPFopen{% - \global\let\chapmacro=\chfopen - \global\let\centerchapmacro=\centerchfopen} - - -% Section titles. These macros combine the section number parts and -% call the generic \sectionheading to do the printing. -% -\newskip\secheadingskip -\def\secheadingbreak{\dobreak \secheadingskip{-1000}} - -% Subsection titles. -\newskip\subsecheadingskip -\def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}} - -% Subsubsection titles. -\def\subsubsecheadingskip{\subsecheadingskip} -\def\subsubsecheadingbreak{\subsecheadingbreak} - - -% Print any size, any type, section title. -% -% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is -% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the -% section number. -% -\def\sectionheading#1#2#3#4{% - {% - % Switch to the right set of fonts. - \csname #2fonts\endcsname \rm - % - % Insert space above the heading. - \csname #2headingbreak\endcsname - % - % Only insert the space after the number if we have a section number. - \def\sectionlevel{#2}% - \def\temptype{#3}% - % - \ifx\temptype\Ynothingkeyword - \setbox0 = \hbox{}% - \def\toctype{unn}% - \gdef\thissection{#1}% - \else\ifx\temptype\Yomitfromtockeyword - % for @headings -- no section number, don't include in toc, - % and don't redefine \thissection. - \setbox0 = \hbox{}% - \def\toctype{omit}% - \let\sectionlevel=\empty - \else\ifx\temptype\Yappendixkeyword - \setbox0 = \hbox{#4\enspace}% - \def\toctype{app}% - \gdef\thissection{#1}% - \else - \setbox0 = \hbox{#4\enspace}% - \def\toctype{num}% - \gdef\thissection{#1}% - \fi\fi\fi - % - % Write the toc entry (before \donoderef). See comments in \chapmacro. - \writetocentry{\toctype\sectionlevel}{#1}{#4}% - % - % Write the node reference (= pdf destination for pdftex). - % Again, see comments in \chapmacro. - \donoderef{#3}% - % - % Interline glue will be inserted when the vbox is completed. - % That glue will be a valid breakpoint for the page, since it'll be - % preceded by a whatsit (usually from the \donoderef, or from the - % \writetocentry if there was no node). We don't want to allow that - % break, since then the whatsits could end up on page n while the - % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. - \nobreak - % - % Output the actual section heading. - \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright - \hangindent=\wd0 % zero if no section number - \unhbox0 #1}% - }% - % Add extra space after the heading -- half of whatever came above it. - % Don't allow stretch, though. - \kern .5 \csname #2headingskip\endcsname - % - % Do not let the kern be a potential breakpoint, as it would be if it - % was followed by glue. - \nobreak - % - % We'll almost certainly start a paragraph next, so don't let that - % glue accumulate. (Not a breakpoint because it's preceded by a - % discardable item.) - \vskip-\parskip - % - % This is purely so the last item on the list is a known \penalty > - % 10000. This is so \startdefun can avoid allowing breakpoints after - % section headings. Otherwise, it would insert a valid breakpoint between: - % - % @section sec-whatever - % @deffn def-whatever - \penalty 10001 -} - - -\message{toc,} -% Table of contents. -\newwrite\tocfile - -% Write an entry to the toc file, opening it if necessary. -% Called from @chapter, etc. -% -% Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno} -% We append the current node name (if any) and page number as additional -% arguments for the \{chap,sec,...}entry macros which will eventually -% read this. The node name is used in the pdf outlines as the -% destination to jump to. -% -% We open the .toc file for writing here instead of at @setfilename (or -% any other fixed time) so that @contents can be anywhere in the document. -% But if #1 is `omit', then we don't do anything. This is used for the -% table of contents chapter openings themselves. -% -\newif\iftocfileopened -\def\omitkeyword{omit}% -% -\def\writetocentry#1#2#3{% - \edef\writetoctype{#1}% - \ifx\writetoctype\omitkeyword \else - \iftocfileopened\else - \immediate\openout\tocfile = \jobname.toc - \global\tocfileopenedtrue - \fi - % - \iflinks - {\atdummies - \edef\temp{% - \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% - \temp - }% - \fi - \fi - % - % Tell \shipout to create a pdf destination on each page, if we're - % writing pdf. These are used in the table of contents. We can't - % just write one on every page because the title pages are numbered - % 1 and 2 (the page numbers aren't printed), and so are the first - % two pages of the document. Thus, we'd have two destinations named - % `1', and two named `2'. - \ifpdf \global\pdfmakepagedesttrue \fi -} - - -% These characters do not print properly in the Computer Modern roman -% fonts, so we must take special care. This is more or less redundant -% with the Texinfo input format setup at the end of this file. -% -\def\activecatcodes{% - \catcode`\"=\active - \catcode`\$=\active - \catcode`\<=\active - \catcode`\>=\active - \catcode`\\=\active - \catcode`\^=\active - \catcode`\_=\active - \catcode`\|=\active - \catcode`\~=\active -} - - -% Read the toc file, which is essentially Texinfo input. -\def\readtocfile{% - \setupdatafile - \activecatcodes - \input \jobname.toc -} - -\newskip\contentsrightmargin \contentsrightmargin=1in -\newcount\savepageno -\newcount\lastnegativepageno \lastnegativepageno = -1 - -% Prepare to read what we've written to \tocfile. -% -\def\startcontents#1{% - % If @setchapternewpage on, and @headings double, the contents should - % start on an odd page, unlike chapters. Thus, we maintain - % \contentsalignmacro in parallel with \pagealignmacro. - % From: Torbjorn Granlund - \contentsalignmacro - \immediate\closeout\tocfile - % - % Don't need to put `Contents' or `Short Contents' in the headline. - % It is abundantly clear what they are. - \def\thischapter{}% - \chapmacro{#1}{Yomitfromtoc}{}% - % - \savepageno = \pageno - \begingroup % Set up to handle contents files properly. - \raggedbottom % Worry more about breakpoints than the bottom. - \advance\hsize by -\contentsrightmargin % Don't use the full line length. - % - % Roman numerals for page numbers. - \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi -} - - -% Normal (long) toc. -\def\contents{% - \startcontents{\putwordTOC}% - \openin 1 \jobname.toc - \ifeof 1 \else - \readtocfile - \fi - \vfill \eject - \contentsalignmacro % in case @setchapternewpage odd is in effect - \ifeof 1 \else - \pdfmakeoutlines - \fi - \closein 1 - \endgroup - \lastnegativepageno = \pageno - \global\pageno = \savepageno -} - -% And just the chapters. -\def\summarycontents{% - \startcontents{\putwordShortTOC}% - % - \let\numchapentry = \shortchapentry - \let\appentry = \shortchapentry - \let\unnchapentry = \shortunnchapentry - % We want a true roman here for the page numbers. - \secfonts - \let\rm=\shortcontrm \let\bf=\shortcontbf - \let\sl=\shortcontsl \let\tt=\shortconttt - \rm - \hyphenpenalty = 10000 - \advance\baselineskip by 1pt % Open it up a little. - \def\numsecentry##1##2##3##4{} - \let\appsecentry = \numsecentry - \let\unnsecentry = \numsecentry - \let\numsubsecentry = \numsecentry - \let\appsubsecentry = \numsecentry - \let\unnsubsecentry = \numsecentry - \let\numsubsubsecentry = \numsecentry - \let\appsubsubsecentry = \numsecentry - \let\unnsubsubsecentry = \numsecentry - \openin 1 \jobname.toc - \ifeof 1 \else - \readtocfile - \fi - \closein 1 - \vfill \eject - \contentsalignmacro % in case @setchapternewpage odd is in effect - \endgroup - \lastnegativepageno = \pageno - \global\pageno = \savepageno -} -\let\shortcontents = \summarycontents - -% Typeset the label for a chapter or appendix for the short contents. -% The arg is, e.g., `A' for an appendix, or `3' for a chapter. -% -\def\shortchaplabel#1{% - % This space should be enough, since a single number is .5em, and the - % widest letter (M) is 1em, at least in the Computer Modern fonts. - % But use \hss just in case. - % (This space doesn't include the extra space that gets added after - % the label; that gets put in by \shortchapentry above.) - % - % We'd like to right-justify chapter numbers, but that looks strange - % with appendix letters. And right-justifying numbers and - % left-justifying letters looks strange when there is less than 10 - % chapters. Have to read the whole toc once to know how many chapters - % there are before deciding ... - \hbox to 1em{#1\hss}% -} - -% These macros generate individual entries in the table of contents. -% The first argument is the chapter or section name. -% The last argument is the page number. -% The arguments in between are the chapter number, section number, ... - -% Chapters, in the main contents. -\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} -% -% Chapters, in the short toc. -% See comments in \dochapentry re vbox and related settings. -\def\shortchapentry#1#2#3#4{% - \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}% -} - -% Appendices, in the main contents. -% Need the word Appendix, and a fixed-size box. -% -\def\appendixbox#1{% - % We use M since it's probably the widest letter. - \setbox0 = \hbox{\putwordAppendix{} M}% - \hbox to \wd0{\putwordAppendix{} #1\hss}} -% -\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}} - -% Unnumbered chapters. -\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}} -\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}} - -% Sections. -\def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}} -\let\appsecentry=\numsecentry -\def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}} - -% Subsections. -\def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}} -\let\appsubsecentry=\numsubsecentry -\def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} - -% And subsubsections. -\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}} -\let\appsubsubsecentry=\numsubsubsecentry -\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}} - -% This parameter controls the indentation of the various levels. -% Same as \defaultparindent. -\newdimen\tocindent \tocindent = 15pt - -% Now for the actual typesetting. In all these, #1 is the text and #2 is the -% page number. -% -% If the toc has to be broken over pages, we want it to be at chapters -% if at all possible; hence the \penalty. -\def\dochapentry#1#2{% - \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip - \begingroup - \chapentryfonts - \tocentry{#1}{\dopageno\bgroup#2\egroup}% - \endgroup - \nobreak\vskip .25\baselineskip plus.1\baselineskip -} - -\def\dosecentry#1#2{\begingroup - \secentryfonts \leftskip=\tocindent - \tocentry{#1}{\dopageno\bgroup#2\egroup}% -\endgroup} - -\def\dosubsecentry#1#2{\begingroup - \subsecentryfonts \leftskip=2\tocindent - \tocentry{#1}{\dopageno\bgroup#2\egroup}% -\endgroup} - -\def\dosubsubsecentry#1#2{\begingroup - \subsubsecentryfonts \leftskip=3\tocindent - \tocentry{#1}{\dopageno\bgroup#2\egroup}% -\endgroup} - -% We use the same \entry macro as for the index entries. -\let\tocentry = \entry - -% Space between chapter (or whatever) number and the title. -\def\labelspace{\hskip1em \relax} - -\def\dopageno#1{{\rm #1}} -\def\doshortpageno#1{{\rm #1}} - -\def\chapentryfonts{\secfonts \rm} -\def\secentryfonts{\textfonts} -\def\subsecentryfonts{\textfonts} -\def\subsubsecentryfonts{\textfonts} - - -\message{environments,} -% @foo ... @end foo. - -% @point{}, @result{}, @expansion{}, @print{}, @equiv{}. -% -% Since these characters are used in examples, it should be an even number of -% \tt widths. Each \tt character is 1en, so two makes it 1em. -% -\def\point{$\star$} -\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} -\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}} -\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} -\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} - -% The @error{} command. -% Adapted from the TeXbook's \boxit. -% -\newbox\errorbox -% -{\tentt \global\dimen0 = 3em}% Width of the box. -\dimen2 = .55pt % Thickness of rules -% The text. (`r' is open on the right, `e' somewhat less so on the left.) -\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt} -% -\setbox\errorbox=\hbox to \dimen0{\hfil - \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. - \advance\hsize by -2\dimen2 % Rules. - \vbox{% - \hrule height\dimen2 - \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. - \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. - \kern3pt\vrule width\dimen2}% Space to right. - \hrule height\dimen2} - \hfil} -% -\def\error{\leavevmode\lower.7ex\copy\errorbox} - -% @tex ... @end tex escapes into raw Tex temporarily. -% One exception: @ is still an escape character, so that @end tex works. -% But \@ or @@ will get a plain tex @ character. - -\envdef\tex{% - \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 - \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 - \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie - \catcode `\%=14 - \catcode `\+=\other - \catcode `\"=\other - \catcode `\|=\other - \catcode `\<=\other - \catcode `\>=\other - \escapechar=`\\ - % - \let\b=\ptexb - \let\bullet=\ptexbullet - \let\c=\ptexc - \let\,=\ptexcomma - \let\.=\ptexdot - \let\dots=\ptexdots - \let\equiv=\ptexequiv - \let\!=\ptexexclam - \let\i=\ptexi - \let\indent=\ptexindent - \let\noindent=\ptexnoindent - \let\{=\ptexlbrace - \let\+=\tabalign - \let\}=\ptexrbrace - \let\/=\ptexslash - \let\*=\ptexstar - \let\t=\ptext - \let\frenchspacing=\plainfrenchspacing - % - \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% - \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% - \def\@{@}% -} -% There is no need to define \Etex. - -% Define @lisp ... @end lisp. -% @lisp environment forms a group so it can rebind things, -% including the definition of @end lisp (which normally is erroneous). - -% Amount to narrow the margins by for @lisp. -\newskip\lispnarrowing \lispnarrowing=0.4in - -% This is the definition that ^^M gets inside @lisp, @example, and other -% such environments. \null is better than a space, since it doesn't -% have any width. -\def\lisppar{\null\endgraf} - -% This space is always present above and below environments. -\newskip\envskipamount \envskipamount = 0pt - -% Make spacing and below environment symmetrical. We use \parskip here -% to help in doing that, since in @example-like environments \parskip -% is reset to zero; thus the \afterenvbreak inserts no space -- but the -% start of the next paragraph will insert \parskip. -% -\def\aboveenvbreak{{% - % =10000 instead of <10000 because of a special case in \itemzzz and - % \sectionheading, q.v. - \ifnum \lastpenalty=10000 \else - \advance\envskipamount by \parskip - \endgraf - \ifdim\lastskip<\envskipamount - \removelastskip - % it's not a good place to break if the last penalty was \nobreak - % or better ... - \ifnum\lastpenalty<10000 \penalty-50 \fi - \vskip\envskipamount - \fi - \fi -}} - -\let\afterenvbreak = \aboveenvbreak - -% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will -% also clear it, so that its embedded environments do the narrowing again. -\let\nonarrowing=\relax - -% @cartouche ... @end cartouche: draw rectangle w/rounded corners around -% environment contents. -\font\circle=lcircle10 -\newdimen\circthick -\newdimen\cartouter\newdimen\cartinner -\newskip\normbskip\newskip\normpskip\newskip\normlskip -\circthick=\fontdimen8\circle -% -\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth -\def\ctr{{\hskip 6pt\circle\char'010}} -\def\cbl{{\circle\char'012\hskip -6pt}} -\def\cbr{{\hskip 6pt\circle\char'011}} -\def\carttop{\hbox to \cartouter{\hskip\lskip - \ctl\leaders\hrule height\circthick\hfil\ctr - \hskip\rskip}} -\def\cartbot{\hbox to \cartouter{\hskip\lskip - \cbl\leaders\hrule height\circthick\hfil\cbr - \hskip\rskip}} -% -\newskip\lskip\newskip\rskip - -\envdef\cartouche{% - \ifhmode\par\fi % can't be in the midst of a paragraph. - \startsavinginserts - \lskip=\leftskip \rskip=\rightskip - \leftskip=0pt\rightskip=0pt % we want these *outside*. - \cartinner=\hsize \advance\cartinner by-\lskip - \advance\cartinner by-\rskip - \cartouter=\hsize - \advance\cartouter by 18.4pt % allow for 3pt kerns on either - % side, and for 6pt waste from - % each corner char, and rule thickness - \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip - % Flag to tell @lisp, etc., not to narrow margin. - \let\nonarrowing = t% - \vbox\bgroup - \baselineskip=0pt\parskip=0pt\lineskip=0pt - \carttop - \hbox\bgroup - \hskip\lskip - \vrule\kern3pt - \vbox\bgroup - \kern3pt - \hsize=\cartinner - \baselineskip=\normbskip - \lineskip=\normlskip - \parskip=\normpskip - \vskip -\parskip - \comment % For explanation, see the end of \def\group. -} -\def\Ecartouche{% - \ifhmode\par\fi - \kern3pt - \egroup - \kern3pt\vrule - \hskip\rskip - \egroup - \cartbot - \egroup - \checkinserts -} - - -% This macro is called at the beginning of all the @example variants, -% inside a group. -\def\nonfillstart{% - \aboveenvbreak - \hfuzz = 12pt % Don't be fussy - \sepspaces % Make spaces be word-separators rather than space tokens. - \let\par = \lisppar % don't ignore blank lines - \obeylines % each line of input is a line of output - \parskip = 0pt - \parindent = 0pt - \emergencystretch = 0pt % don't try to avoid overfull boxes - \ifx\nonarrowing\relax - \advance \leftskip by \lispnarrowing - \exdentamount=\lispnarrowing - \else - \let\nonarrowing = \relax - \fi - \let\exdent=\nofillexdent -} - -% If you want all examples etc. small: @set dispenvsize small. -% If you want even small examples the full size: @set dispenvsize nosmall. -% This affects the following displayed environments: -% @example, @display, @format, @lisp -% -\def\smallword{small} -\def\nosmallword{nosmall} -\let\SETdispenvsize\relax -\def\setnormaldispenv{% - \ifx\SETdispenvsize\smallword - \smallexamplefonts \rm - \fi -} -\def\setsmalldispenv{% - \ifx\SETdispenvsize\nosmallword - \else - \smallexamplefonts \rm - \fi -} - -% We often define two environments, @foo and @smallfoo. -% Let's do it by one command: -\def\makedispenv #1#2{ - \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2} - \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2} - \expandafter\let\csname E#1\endcsname \afterenvbreak - \expandafter\let\csname Esmall#1\endcsname \afterenvbreak -} - -% Define two synonyms: -\def\maketwodispenvs #1#2#3{ - \makedispenv{#1}{#3} - \makedispenv{#2}{#3} -} - -% @lisp: indented, narrowed, typewriter font; @example: same as @lisp. -% -% @smallexample and @smalllisp: use smaller fonts. -% Originally contributed by Pavel@xerox. -% -\maketwodispenvs {lisp}{example}{% - \nonfillstart - \tt\quoteexpand - \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. - \gobble % eat return -} -% @display/@smalldisplay: same as @lisp except keep current font. -% -\makedispenv {display}{% - \nonfillstart - \gobble -} - -% @format/@smallformat: same as @display except don't narrow margins. -% -\makedispenv{format}{% - \let\nonarrowing = t% - \nonfillstart - \gobble -} - -% @flushleft: same as @format, but doesn't obey \SETdispenvsize. -\envdef\flushleft{% - \let\nonarrowing = t% - \nonfillstart - \gobble -} -\let\Eflushleft = \afterenvbreak - -% @flushright. -% -\envdef\flushright{% - \let\nonarrowing = t% - \nonfillstart - \advance\leftskip by 0pt plus 1fill - \gobble -} -\let\Eflushright = \afterenvbreak - - -% @quotation does normal linebreaking (hence we can't use \nonfillstart) -% and narrows the margins. We keep \parskip nonzero in general, since -% we're doing normal filling. So, when using \aboveenvbreak and -% \afterenvbreak, temporarily make \parskip 0. -% -\envdef\quotation{% - {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip - \parindent=0pt - % - % @cartouche defines \nonarrowing to inhibit narrowing at next level down. - \ifx\nonarrowing\relax - \advance\leftskip by \lispnarrowing - \advance\rightskip by \lispnarrowing - \exdentamount = \lispnarrowing - \else - \let\nonarrowing = \relax - \fi - \parsearg\quotationlabel -} - -% We have retained a nonzero parskip for the environment, since we're -% doing normal filling. -% -\def\Equotation{% - \par - \ifx\quotationauthor\undefined\else - % indent a bit. - \leftline{\kern 2\leftskip \sl ---\quotationauthor}% - \fi - {\parskip=0pt \afterenvbreak}% -} - -% If we're given an argument, typeset it in bold with a colon after. -\def\quotationlabel#1{% - \def\temp{#1}% - \ifx\temp\empty \else - {\bf #1: }% - \fi -} - - -% LaTeX-like @verbatim...@end verbatim and @verb{...} -% If we want to allow any as delimiter, -% we need the curly braces so that makeinfo sees the @verb command, eg: -% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org -% -% [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. -% -% [Knuth] p.344; only we need to do the other characters Texinfo sets -% active too. Otherwise, they get lost as the first character on a -% verbatim line. -\def\dospecials{% - \do\ \do\\\do\{\do\}\do\$\do\&% - \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% - \do\<\do\>\do\|\do\@\do+\do\"% -} -% -% [Knuth] p. 380 -\def\uncatcodespecials{% - \def\do##1{\catcode`##1=\other}\dospecials} -% -% [Knuth] pp. 380,381,391 -% Disable Spanish ligatures ?` and !` of \tt font -\begingroup - \catcode`\`=\active\gdef`{\relax\lq} -\endgroup -% -% Setup for the @verb command. -% -% Eight spaces for a tab -\begingroup - \catcode`\^^I=\active - \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }} -\endgroup -% -\def\setupverb{% - \tt % easiest (and conventionally used) font for verbatim - \def\par{\leavevmode\endgraf}% - \catcode`\`=\active - \tabeightspaces - % Respect line breaks, - % print special symbols as themselves, and - % make each space count - % must do in this order: - \obeylines \uncatcodespecials \sepspaces -} - -% Setup for the @verbatim environment -% -% Real tab expansion -\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount -% -\def\starttabbox{\setbox0=\hbox\bgroup} - -% Allow an option to not replace quotes with a regular directed right -% quote/apostrophe (char 0x27), but instead use the undirected quote -% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it -% the default, but it works for pasting with more pdf viewers (at least -% evince), the lilypond developers report. xpdf does work with the -% regular 0x27. -% -\def\codequoteright{% - \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax - '% - \else - \char'15 - \fi -} -% -% and a similar option for the left quote char vs. a grave accent. -% Modern fonts display ASCII 0x60 as a grave accent, so some people like -% the code environments to do likewise. -% -\def\codequoteleft{% - \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax - `% - \else - \char'22 - \fi -} -% -\begingroup - \catcode`\^^I=\active - \gdef\tabexpand{% - \catcode`\^^I=\active - \def^^I{\leavevmode\egroup - \dimen0=\wd0 % the width so far, or since the previous tab - \divide\dimen0 by\tabw - \multiply\dimen0 by\tabw % compute previous multiple of \tabw - \advance\dimen0 by\tabw % advance to next multiple of \tabw - \wd0=\dimen0 \box0 \starttabbox - }% - } - \catcode`\'=\active - \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}% - % - \catcode`\`=\active - \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}% - % - \gdef\quoteexpand{\rquoteexpand \lquoteexpand}% -\endgroup - -% start the verbatim environment. -\def\setupverbatim{% - \let\nonarrowing = t% - \nonfillstart - % Easiest (and conventionally used) font for verbatim - \tt - \def\par{\leavevmode\egroup\box0\endgraf}% - \catcode`\`=\active - \tabexpand - \quoteexpand - % Respect line breaks, - % print special symbols as themselves, and - % make each space count - % must do in this order: - \obeylines \uncatcodespecials \sepspaces - \everypar{\starttabbox}% -} - -% Do the @verb magic: verbatim text is quoted by unique -% delimiter characters. Before first delimiter expect a -% right brace, after last delimiter expect closing brace: -% -% \def\doverb'{'#1'}'{#1} -% -% [Knuth] p. 382; only eat outer {} -\begingroup - \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other - \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next] -\endgroup -% -\def\verb{\begingroup\setupverb\doverb} -% -% -% Do the @verbatim magic: define the macro \doverbatim so that -% the (first) argument ends when '@end verbatim' is reached, ie: -% -% \def\doverbatim#1@end verbatim{#1} -% -% For Texinfo it's a lot easier than for LaTeX, -% because texinfo's \verbatim doesn't stop at '\end{verbatim}': -% we need not redefine '\', '{' and '}'. -% -% Inspired by LaTeX's verbatim command set [latex.ltx] -% -\begingroup - \catcode`\ =\active - \obeylines % - % ignore everything up to the first ^^M, that's the newline at the end - % of the @verbatim input line itself. Otherwise we get an extra blank - % line in the output. - \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}% - % We really want {...\end verbatim} in the body of the macro, but - % without the active space; thus we have to use \xdef and \gobble. -\endgroup -% -\envdef\verbatim{% - \setupverbatim\doverbatim -} -\let\Everbatim = \afterenvbreak - - -% @verbatiminclude FILE - insert text of file in verbatim environment. -% -\def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude} -% -\def\doverbatiminclude#1{% - {% - \makevalueexpandable - \setupverbatim - \input #1 - \afterenvbreak - }% -} - -% @copying ... @end copying. -% Save the text away for @insertcopying later. -% -% We save the uninterpreted tokens, rather than creating a box. -% Saving the text in a box would be much easier, but then all the -% typesetting commands (@smallbook, font changes, etc.) have to be done -% beforehand -- and a) we want @copying to be done first in the source -% file; b) letting users define the frontmatter in as flexible order as -% possible is very desirable. -% -\def\copying{\checkenv{}\begingroup\scanargctxt\docopying} -\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}} -% -\def\insertcopying{% - \begingroup - \parindent = 0pt % paragraph indentation looks wrong on title page - \scanexp\copyingtext - \endgroup -} - -\message{defuns,} -% @defun etc. - -\newskip\defbodyindent \defbodyindent=.4in -\newskip\defargsindent \defargsindent=50pt -\newskip\deflastargmargin \deflastargmargin=18pt - -% Start the processing of @deffn: -\def\startdefun{% - \ifnum\lastpenalty<10000 - \medbreak - \else - % If there are two @def commands in a row, we'll have a \nobreak, - % which is there to keep the function description together with its - % header. But if there's nothing but headers, we need to allow a - % break somewhere. Check specifically for penalty 10002, inserted - % by \defargscommonending, instead of 10000, since the sectioning - % commands also insert a nobreak penalty, and we don't want to allow - % a break between a section heading and a defun. - % - \ifnum\lastpenalty=10002 \penalty2000 \fi - % - % Similarly, after a section heading, do not allow a break. - % But do insert the glue. - \medskip % preceded by discardable penalty, so not a breakpoint - \fi - % - \parindent=0in - \advance\leftskip by \defbodyindent - \exdentamount=\defbodyindent -} - -\def\dodefunx#1{% - % First, check whether we are in the right environment: - \checkenv#1% - % - % As above, allow line break if we have multiple x headers in a row. - % It's not a great place, though. - \ifnum\lastpenalty=10002 \penalty3000 \fi - % - % And now, it's time to reuse the body of the original defun: - \expandafter\gobbledefun#1% -} -\def\gobbledefun#1\startdefun{} - -% \printdefunline \deffnheader{text} -% -\def\printdefunline#1#2{% - \begingroup - % call \deffnheader: - #1#2 \endheader - % common ending: - \interlinepenalty = 10000 - \advance\rightskip by 0pt plus 1fil - \endgraf - \nobreak\vskip -\parskip - \penalty 10002 % signal to \startdefun and \dodefunx - % Some of the @defun-type tags do not enable magic parentheses, - % rendering the following check redundant. But we don't optimize. - \checkparencounts - \endgroup -} - -\def\Edefun{\endgraf\medbreak} - -% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; -% the only thing remainnig is to define \deffnheader. -% -\def\makedefun#1{% - \expandafter\let\csname E#1\endcsname = \Edefun - \edef\temp{\noexpand\domakedefun - \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}% - \temp -} - -% \domakedefun \deffn \deffnx \deffnheader -% -% Define \deffn and \deffnx, without parameters. -% \deffnheader has to be defined explicitly. -% -\def\domakedefun#1#2#3{% - \envdef#1{% - \startdefun - \parseargusing\activeparens{\printdefunline#3}% - }% - \def#2{\dodefunx#1}% - \def#3% -} - -%%% Untyped functions: - -% @deffn category name args -\makedefun{deffn}{\deffngeneral{}} - -% @deffn category class name args -\makedefun{defop}#1 {\defopon{#1\ \putwordon}} - -% \defopon {category on}class name args -\def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } - -% \deffngeneral {subind}category name args -% -\def\deffngeneral#1#2 #3 #4\endheader{% - % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}. - \dosubind{fn}{\code{#3}}{#1}% - \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}% -} - -%%% Typed functions: - -% @deftypefn category type name args -\makedefun{deftypefn}{\deftypefngeneral{}} - -% @deftypeop category class type name args -\makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}} - -% \deftypeopon {category on}class type name args -\def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } - -% \deftypefngeneral {subind}category type name args -% -\def\deftypefngeneral#1#2 #3 #4 #5\endheader{% - \dosubind{fn}{\code{#4}}{#1}% - \defname{#2}{#3}{#4}\defunargs{#5\unskip}% -} - -%%% Typed variables: - -% @deftypevr category type var args -\makedefun{deftypevr}{\deftypecvgeneral{}} - -% @deftypecv category class type var args -\makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}} - -% \deftypecvof {category of}class type var args -\def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} } - -% \deftypecvgeneral {subind}category type var args -% -\def\deftypecvgeneral#1#2 #3 #4 #5\endheader{% - \dosubind{vr}{\code{#4}}{#1}% - \defname{#2}{#3}{#4}\defunargs{#5\unskip}% -} - -%%% Untyped variables: - -% @defvr category var args -\makedefun{defvr}#1 {\deftypevrheader{#1} {} } - -% @defcv category class var args -\makedefun{defcv}#1 {\defcvof{#1\ \putwordof}} - -% \defcvof {category of}class var args -\def\defcvof#1#2 {\deftypecvof{#1}#2 {} } - -%%% Type: -% @deftp category name args -\makedefun{deftp}#1 #2 #3\endheader{% - \doind{tp}{\code{#2}}% - \defname{#1}{}{#2}\defunargs{#3\unskip}% -} - -% Remaining @defun-like shortcuts: -\makedefun{defun}{\deffnheader{\putwordDeffunc} } -\makedefun{defmac}{\deffnheader{\putwordDefmac} } -\makedefun{defspec}{\deffnheader{\putwordDefspec} } -\makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} } -\makedefun{defvar}{\defvrheader{\putwordDefvar} } -\makedefun{defopt}{\defvrheader{\putwordDefopt} } -\makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} } -\makedefun{defmethod}{\defopon\putwordMethodon} -\makedefun{deftypemethod}{\deftypeopon\putwordMethodon} -\makedefun{defivar}{\defcvof\putwordInstanceVariableof} -\makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof} - -% \defname, which formats the name of the @def (not the args). -% #1 is the category, such as "Function". -% #2 is the return type, if any. -% #3 is the function name. -% -% We are followed by (but not passed) the arguments, if any. -% -\def\defname#1#2#3{% - % Get the values of \leftskip and \rightskip as they were outside the @def... - \advance\leftskip by -\defbodyindent - % - % How we'll format the type name. Putting it in brackets helps - % distinguish it from the body text that may end up on the next line - % just below it. - \def\temp{#1}% - \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi} - % - % Figure out line sizes for the paragraph shape. - % The first line needs space for \box0; but if \rightskip is nonzero, - % we need only space for the part of \box0 which exceeds it: - \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip - % The continuations: - \dimen2=\hsize \advance\dimen2 by -\defargsindent - % (plain.tex says that \dimen1 should be used only as global.) - \parshape 2 0in \dimen0 \defargsindent \dimen2 - % - % Put the type name to the right margin. - \noindent - \hbox to 0pt{% - \hfil\box0 \kern-\hsize - % \hsize has to be shortened this way: - \kern\leftskip - % Intentionally do not respect \rightskip, since we need the space. - }% - % - % Allow all lines to be underfull without complaint: - \tolerance=10000 \hbadness=10000 - \exdentamount=\defbodyindent - {% - % defun fonts. We use typewriter by default (used to be bold) because: - % . we're printing identifiers, they should be in tt in principle. - % . in languages with many accents, such as Czech or French, it's - % common to leave accents off identifiers. The result looks ok in - % tt, but exceedingly strange in rm. - % . we don't want -- and --- to be treated as ligatures. - % . this still does not fix the ?` and !` ligatures, but so far no - % one has made identifiers using them :). - \df \tt - \def\temp{#2}% return value type - \ifx\temp\empty\else \tclose{\temp} \fi - #3% output function name - }% - {\rm\enskip}% hskip 0.5 em of \tenrm - % - \boldbrax - % arguments will be output next, if any. -} - -% Print arguments in slanted roman (not ttsl), inconsistently with using -% tt for the name. This is because literal text is sometimes needed in -% the argument list (groff manual), and ttsl and tt are not very -% distinguishable. Prevent hyphenation at `-' chars. -% -\def\defunargs#1{% - % use sl by default (not ttsl), - % tt for the names. - \df \sl \hyphenchar\font=0 - % - % On the other hand, if an argument has two dashes (for instance), we - % want a way to get ttsl. Let's try @var for that. - \let\var=\ttslanted - #1% - \sl\hyphenchar\font=45 -} - -% We want ()&[] to print specially on the defun line. -% -\def\activeparens{% - \catcode`\(=\active \catcode`\)=\active - \catcode`\[=\active \catcode`\]=\active - \catcode`\&=\active -} - -% Make control sequences which act like normal parenthesis chars. -\let\lparen = ( \let\rparen = ) - -% Be sure that we always have a definition for `(', etc. For example, -% if the fn name has parens in it, \boldbrax will not be in effect yet, -% so TeX would otherwise complain about undefined control sequence. -{ - \activeparens - \global\let(=\lparen \global\let)=\rparen - \global\let[=\lbrack \global\let]=\rbrack - \global\let& = \& - - \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} - \gdef\magicamp{\let&=\amprm} -} - -\newcount\parencount - -% If we encounter &foo, then turn on ()-hacking afterwards -\newif\ifampseen -\def\amprm#1 {\ampseentrue{\bf\ }} - -\def\parenfont{% - \ifampseen - % At the first level, print parens in roman, - % otherwise use the default font. - \ifnum \parencount=1 \rm \fi - \else - % The \sf parens (in \boldbrax) actually are a little bolder than - % the contained text. This is especially needed for [ and ] . - \sf - \fi -} -\def\infirstlevel#1{% - \ifampseen - \ifnum\parencount=1 - #1% - \fi - \fi -} -\def\bfafterword#1 {#1 \bf} - -\def\opnr{% - \global\advance\parencount by 1 - {\parenfont(}% - \infirstlevel \bfafterword -} -\def\clnr{% - {\parenfont)}% - \infirstlevel \sl - \global\advance\parencount by -1 -} - -\newcount\brackcount -\def\lbrb{% - \global\advance\brackcount by 1 - {\bf[}% -} -\def\rbrb{% - {\bf]}% - \global\advance\brackcount by -1 -} - -\def\checkparencounts{% - \ifnum\parencount=0 \else \badparencount \fi - \ifnum\brackcount=0 \else \badbrackcount \fi -} -\def\badparencount{% - \errmessage{Unbalanced parentheses in @def}% - \global\parencount=0 -} -\def\badbrackcount{% - \errmessage{Unbalanced square braces in @def}% - \global\brackcount=0 -} - - -\message{macros,} -% @macro. - -% To do this right we need a feature of e-TeX, \scantokens, -% which we arrange to emulate with a temporary file in ordinary TeX. -\ifx\eTeXversion\undefined - \newwrite\macscribble - \def\scantokens#1{% - \toks0={#1}% - \immediate\openout\macscribble=\jobname.tmp - \immediate\write\macscribble{\the\toks0}% - \immediate\closeout\macscribble - \input \jobname.tmp - } -\fi - -\def\scanmacro#1{% - \begingroup - \newlinechar`\^^M - \let\xeatspaces\eatspaces - % Undo catcode changes of \startcontents and \doprintindex - % When called from @insertcopying or (short)caption, we need active - % backslash to get it printed correctly. Previously, we had - % \catcode`\\=\other instead. We'll see whether a problem appears - % with macro expansion. --kasal, 19aug04 - \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ - % ... and \example - \spaceisspace - % - % Append \endinput to make sure that TeX does not see the ending newline. - % I've verified that it is necessary both for e-TeX and for ordinary TeX - % --kasal, 29nov03 - \scantokens{#1\endinput}% - \endgroup -} - -\def\scanexp#1{% - \edef\temp{\noexpand\scanmacro{#1}}% - \temp -} - -\newcount\paramno % Count of parameters -\newtoks\macname % Macro name -\newif\ifrecursive % Is it recursive? - -% List of all defined macros in the form -% \definedummyword\macro1\definedummyword\macro2... -% Currently is also contains all @aliases; the list can be split -% if there is a need. -\def\macrolist{} - -% Add the macro to \macrolist -\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} -\def\addtomacrolistxxx#1{% - \toks0 = \expandafter{\macrolist\definedummyword#1}% - \xdef\macrolist{\the\toks0}% -} - -% Utility routines. -% This does \let #1 = #2, with \csnames; that is, -% \let \csname#1\endcsname = \csname#2\endcsname -% (except of course we have to play expansion games). -% -\def\cslet#1#2{% - \expandafter\let - \csname#1\expandafter\endcsname - \csname#2\endcsname -} - -% Trim leading and trailing spaces off a string. -% Concepts from aro-bend problem 15 (see CTAN). -{\catcode`\@=11 -\gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }} -\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@} -\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @} -\def\unbrace#1{#1} -\unbrace{\gdef\trim@@@ #1 } #2@{#1} -} - -% Trim a single trailing ^^M off a string. -{\catcode`\^^M=\other \catcode`\Q=3% -\gdef\eatcr #1{\eatcra #1Q^^MQ}% -\gdef\eatcra#1^^MQ{\eatcrb#1Q}% -\gdef\eatcrb#1Q#2Q{#1}% -} - -% Macro bodies are absorbed as an argument in a context where -% all characters are catcode 10, 11 or 12, except \ which is active -% (as in normal texinfo). It is necessary to change the definition of \. - -% It's necessary to have hard CRs when the macro is executed. This is -% done by making ^^M (\endlinechar) catcode 12 when reading the macro -% body, and then making it the \newlinechar in \scanmacro. - -\def\scanctxt{% - \catcode`\"=\other - \catcode`\+=\other - \catcode`\<=\other - \catcode`\>=\other - \catcode`\@=\other - \catcode`\^=\other - \catcode`\_=\other - \catcode`\|=\other - \catcode`\~=\other -} - -\def\scanargctxt{% - \scanctxt - \catcode`\\=\other - \catcode`\^^M=\other -} - -\def\macrobodyctxt{% - \scanctxt - \catcode`\{=\other - \catcode`\}=\other - \catcode`\^^M=\other - \usembodybackslash -} - -\def\macroargctxt{% - \scanctxt - \catcode`\\=\other -} - -% \mbodybackslash is the definition of \ in @macro bodies. -% It maps \foo\ => \csname macarg.foo\endcsname => #N -% where N is the macro parameter number. -% We define \csname macarg.\endcsname to be \realbackslash, so -% \\ in macro replacement text gets you a backslash. - -{\catcode`@=0 @catcode`@\=@active - @gdef@usembodybackslash{@let\=@mbodybackslash} - @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} -} -\expandafter\def\csname macarg.\endcsname{\realbackslash} - -\def\macro{\recursivefalse\parsearg\macroxxx} -\def\rmacro{\recursivetrue\parsearg\macroxxx} - -\def\macroxxx#1{% - \getargs{#1}% now \macname is the macname and \argl the arglist - \ifx\argl\empty % no arguments - \paramno=0% - \else - \expandafter\parsemargdef \argl;% - \fi - \if1\csname ismacro.\the\macname\endcsname - \message{Warning: redefining \the\macname}% - \else - \expandafter\ifx\csname \the\macname\endcsname \relax - \else \errmessage{Macro name \the\macname\space already defined}\fi - \global\cslet{macsave.\the\macname}{\the\macname}% - \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% - \addtomacrolist{\the\macname}% - \fi - \begingroup \macrobodyctxt - \ifrecursive \expandafter\parsermacbody - \else \expandafter\parsemacbody - \fi} - -\parseargdef\unmacro{% - \if1\csname ismacro.#1\endcsname - \global\cslet{#1}{macsave.#1}% - \global\expandafter\let \csname ismacro.#1\endcsname=0% - % Remove the macro name from \macrolist: - \begingroup - \expandafter\let\csname#1\endcsname \relax - \let\definedummyword\unmacrodo - \xdef\macrolist{\macrolist}% - \endgroup - \else - \errmessage{Macro #1 not defined}% - \fi -} - -% Called by \do from \dounmacro on each macro. The idea is to omit any -% macro definitions that have been changed to \relax. -% -\def\unmacrodo#1{% - \ifx #1\relax - % remove this - \else - \noexpand\definedummyword \noexpand#1% - \fi -} - -% This makes use of the obscure feature that if the last token of a -% is #, then the preceding argument is delimited by -% an opening brace, and that opening brace is not consumed. -\def\getargs#1{\getargsxxx#1{}} -\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} -\def\getmacname #1 #2\relax{\macname={#1}} -\def\getmacargs#1{\def\argl{#1}} - -% Parse the optional {params} list. Set up \paramno and \paramlist -% so \defmacro knows what to do. Define \macarg.blah for each blah -% in the params list, to be ##N where N is the position in that list. -% That gets used by \mbodybackslash (above). - -% We need to get `macro parameter char #' into several definitions. -% The technique used is stolen from LaTeX: let \hash be something -% unexpandable, insert that wherever you need a #, and then redefine -% it to # just before using the token list produced. -% -% The same technique is used to protect \eatspaces till just before -% the macro is used. - -\def\parsemargdef#1;{\paramno=0\def\paramlist{}% - \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,} -\def\parsemargdefxxx#1,{% - \if#1;\let\next=\relax - \else \let\next=\parsemargdefxxx - \advance\paramno by 1% - \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname - {\xeatspaces{\hash\the\paramno}}% - \edef\paramlist{\paramlist\hash\the\paramno,}% - \fi\next} - -% These two commands read recursive and nonrecursive macro bodies. -% (They're different since rec and nonrec macros end differently.) - -\long\def\parsemacbody#1@end macro% -{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% -\long\def\parsermacbody#1@end rmacro% -{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% - -% This defines the macro itself. There are six cases: recursive and -% nonrecursive macros of zero, one, and many arguments. -% Much magic with \expandafter here. -% \xdef is used so that macro definitions will survive the file -% they're defined in; @include reads the file inside a group. -\def\defmacro{% - \let\hash=##% convert placeholders to macro parameter chars - \ifrecursive - \ifcase\paramno - % 0 - \expandafter\xdef\csname\the\macname\endcsname{% - \noexpand\scanmacro{\temp}}% - \or % 1 - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \noexpand\braceorline - \expandafter\noexpand\csname\the\macname xxx\endcsname}% - \expandafter\xdef\csname\the\macname xxx\endcsname##1{% - \egroup\noexpand\scanmacro{\temp}}% - \else % many - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \noexpand\csname\the\macname xx\endcsname}% - \expandafter\xdef\csname\the\macname xx\endcsname##1{% - \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% - \expandafter\expandafter - \expandafter\xdef - \expandafter\expandafter - \csname\the\macname xxx\endcsname - \paramlist{\egroup\noexpand\scanmacro{\temp}}% - \fi - \else - \ifcase\paramno - % 0 - \expandafter\xdef\csname\the\macname\endcsname{% - \noexpand\norecurse{\the\macname}% - \noexpand\scanmacro{\temp}\egroup}% - \or % 1 - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \noexpand\braceorline - \expandafter\noexpand\csname\the\macname xxx\endcsname}% - \expandafter\xdef\csname\the\macname xxx\endcsname##1{% - \egroup - \noexpand\norecurse{\the\macname}% - \noexpand\scanmacro{\temp}\egroup}% - \else % many - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \expandafter\noexpand\csname\the\macname xx\endcsname}% - \expandafter\xdef\csname\the\macname xx\endcsname##1{% - \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% - \expandafter\expandafter - \expandafter\xdef - \expandafter\expandafter - \csname\the\macname xxx\endcsname - \paramlist{% - \egroup - \noexpand\norecurse{\the\macname}% - \noexpand\scanmacro{\temp}\egroup}% - \fi - \fi} - -\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} - -% \braceorline decides whether the next nonwhitespace character is a -% {. If so it reads up to the closing }, if not, it reads the whole -% line. Whatever was read is then fed to the next control sequence -% as an argument (by \parsebrace or \parsearg) -\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} -\def\braceorlinexxx{% - \ifx\nchar\bgroup\else - \expandafter\parsearg - \fi \macnamexxx} - - -% @alias. -% We need some trickery to remove the optional spaces around the equal -% sign. Just make them active and then expand them all to nothing. -\def\alias{\parseargusing\obeyspaces\aliasxxx} -\def\aliasxxx #1{\aliasyyy#1\relax} -\def\aliasyyy #1=#2\relax{% - {% - \expandafter\let\obeyedspace=\empty - \addtomacrolist{#1}% - \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}% - }% - \next -} - - -\message{cross references,} - -\newwrite\auxfile - -\newif\ifhavexrefs % True if xref values are known. -\newif\ifwarnedxrefs % True if we warned once that they aren't known. - -% @inforef is relatively simple. -\def\inforef #1{\inforefzzz #1,,,,**} -\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, - node \samp{\ignorespaces#1{}}} - -% @node's only job in TeX is to define \lastnode, which is used in -% cross-references. The @node line might or might not have commas, and -% might or might not have spaces before the first comma, like: -% @node foo , bar , ... -% We don't want such trailing spaces in the node name. -% -\parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse} -% -% also remove a trailing comma, in case of something like this: -% @node Help-Cross, , , Cross-refs -\def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse} -\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}} - -\let\nwnode=\node -\let\lastnode=\empty - -% Write a cross-reference definition for the current node. #1 is the -% type (Ynumbered, Yappendix, Ynothing). -% -\def\donoderef#1{% - \ifx\lastnode\empty\else - \setref{\lastnode}{#1}% - \global\let\lastnode=\empty - \fi -} - -% @anchor{NAME} -- define xref target at arbitrary point. -% -\newcount\savesfregister -% -\def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} -\def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} -\def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} - -% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an -% anchor), which consists of three parts: -% 1) NAME-title - the current sectioning name taken from \thissection, -% or the anchor name. -% 2) NAME-snt - section number and type, passed as the SNT arg, or -% empty for anchors. -% 3) NAME-pg - the page number. -% -% This is called from \donoderef, \anchor, and \dofloat. In the case of -% floats, there is an additional part, which is not written here: -% 4) NAME-lof - the text as it should appear in a @listoffloats. -% -\def\setref#1#2{% - \pdfmkdest{#1}% - \iflinks - {% - \atdummies % preserve commands, but don't expand them - \edef\writexrdef##1##2{% - \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef - ##1}{##2}}% these are parameters of \writexrdef - }% - \toks0 = \expandafter{\thissection}% - \immediate \writexrdef{title}{\the\toks0 }% - \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. - \writexrdef{pg}{\folio}% will be written later, during \shipout - }% - \fi -} - -% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is -% the node name, #2 the name of the Info cross-reference, #3 the printed -% node name, #4 the name of the Info file, #5 the name of the printed -% manual. All but the node name can be omitted. -% -\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} -\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} -\def\ref#1{\xrefX[#1,,,,,,,]} -\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup - \unsepspaces - \def\printedmanual{\ignorespaces #5}% - \def\printedrefname{\ignorespaces #3}% - \setbox1=\hbox{\printedmanual\unskip}% - \setbox0=\hbox{\printedrefname\unskip}% - \ifdim \wd0 = 0pt - % No printed node name was explicitly given. - \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax - % Use the node name inside the square brackets. - \def\printedrefname{\ignorespaces #1}% - \else - % Use the actual chapter/section title appear inside - % the square brackets. Use the real section title if we have it. - \ifdim \wd1 > 0pt - % It is in another manual, so we don't have it. - \def\printedrefname{\ignorespaces #1}% - \else - \ifhavexrefs - % We know the real title if we have the xref values. - \def\printedrefname{\refx{#1-title}{}}% - \else - % Otherwise just copy the Info node name. - \def\printedrefname{\ignorespaces #1}% - \fi% - \fi - \fi - \fi - % - % Make link in pdf output. - \ifpdf - \leavevmode - \getfilename{#4}% - {\turnoffactive - % See comments at \activebackslashdouble. - {\activebackslashdouble \xdef\pdfxrefdest{#1}% - \backslashparens\pdfxrefdest}% - % - \ifnum\filenamelength>0 - \startlink attr{/Border [0 0 0]}% - goto file{\the\filename.pdf} name{\pdfxrefdest}% - \else - \startlink attr{/Border [0 0 0]}% - goto name{\pdfmkpgn{\pdfxrefdest}}% - \fi - }% - \linkcolor - \fi - % - % Float references are printed completely differently: "Figure 1.2" - % instead of "[somenode], p.3". We distinguish them by the - % LABEL-title being set to a magic string. - {% - % Have to otherify everything special to allow the \csname to - % include an _ in the xref name, etc. - \indexnofonts - \turnoffactive - \expandafter\global\expandafter\let\expandafter\Xthisreftitle - \csname XR#1-title\endcsname - }% - \iffloat\Xthisreftitle - % If the user specified the print name (third arg) to the ref, - % print it instead of our usual "Figure 1.2". - \ifdim\wd0 = 0pt - \refx{#1-snt}{}% - \else - \printedrefname - \fi - % - % if the user also gave the printed manual name (fifth arg), append - % "in MANUALNAME". - \ifdim \wd1 > 0pt - \space \putwordin{} \cite{\printedmanual}% - \fi - \else - % node/anchor (non-float) references. - % - % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not - % insert empty discretionaries after hyphens, which means that it will - % not find a line break at a hyphen in a node names. Since some manuals - % are best written with fairly long node names, containing hyphens, this - % is a loss. Therefore, we give the text of the node name again, so it - % is as if TeX is seeing it for the first time. - \ifdim \wd1 > 0pt - \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% - \else - % _ (for example) has to be the character _ for the purposes of the - % control sequence corresponding to the node, but it has to expand - % into the usual \leavevmode...\vrule stuff for purposes of - % printing. So we \turnoffactive for the \refx-snt, back on for the - % printing, back off for the \refx-pg. - {\turnoffactive - % Only output a following space if the -snt ref is nonempty; for - % @unnumbered and @anchor, it won't be. - \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% - \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi - }% - % output the `[mynode]' via a macro so it can be overridden. - \xrefprintnodename\printedrefname - % - % But we always want a comma and a space: - ,\space - % - % output the `page 3'. - \turnoffactive \putwordpage\tie\refx{#1-pg}{}% - \fi - \fi - \endlink -\endgroup} - -% This macro is called from \xrefX for the `[nodename]' part of xref -% output. It's a separate macro only so it can be changed more easily, -% since square brackets don't work well in some documents. Particularly -% one that Bob is working on :). -% -\def\xrefprintnodename#1{[#1]} - -% Things referred to by \setref. -% -\def\Ynothing{} -\def\Yomitfromtoc{} -\def\Ynumbered{% - \ifnum\secno=0 - \putwordChapter@tie \the\chapno - \else \ifnum\subsecno=0 - \putwordSection@tie \the\chapno.\the\secno - \else \ifnum\subsubsecno=0 - \putwordSection@tie \the\chapno.\the\secno.\the\subsecno - \else - \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno - \fi\fi\fi -} -\def\Yappendix{% - \ifnum\secno=0 - \putwordAppendix@tie @char\the\appendixno{}% - \else \ifnum\subsecno=0 - \putwordSection@tie @char\the\appendixno.\the\secno - \else \ifnum\subsubsecno=0 - \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno - \else - \putwordSection@tie - @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno - \fi\fi\fi -} - -% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. -% If its value is nonempty, SUFFIX is output afterward. -% -\def\refx#1#2{% - {% - \indexnofonts - \otherbackslash - \expandafter\global\expandafter\let\expandafter\thisrefX - \csname XR#1\endcsname - }% - \ifx\thisrefX\relax - % If not defined, say something at least. - \angleleft un\-de\-fined\angleright - \iflinks - \ifhavexrefs - \message{\linenumber Undefined cross reference `#1'.}% - \else - \ifwarnedxrefs\else - \global\warnedxrefstrue - \message{Cross reference values unknown; you must run TeX again.}% - \fi - \fi - \fi - \else - % It's defined, so just use it. - \thisrefX - \fi - #2% Output the suffix in any case. -} - -% This is the macro invoked by entries in the aux file. Usually it's -% just a \def (we prepend XR to the control sequence name to avoid -% collisions). But if this is a float type, we have more work to do. -% -\def\xrdef#1#2{% - \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value. - % - % Was that xref control sequence that we just defined for a float? - \expandafter\iffloat\csname XR#1\endcsname - % it was a float, and we have the (safe) float type in \iffloattype. - \expandafter\let\expandafter\floatlist - \csname floatlist\iffloattype\endcsname - % - % Is this the first time we've seen this float type? - \expandafter\ifx\floatlist\relax - \toks0 = {\do}% yes, so just \do - \else - % had it before, so preserve previous elements in list. - \toks0 = \expandafter{\floatlist\do}% - \fi - % - % Remember this xref in the control sequence \floatlistFLOATTYPE, - % for later use in \listoffloats. - \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}% - \fi -} - -% Read the last existing aux file, if any. No error if none exists. -% -\def\tryauxfile{% - \openin 1 \jobname.aux - \ifeof 1 \else - \readdatafile{aux}% - \global\havexrefstrue - \fi - \closein 1 -} - -\def\setupdatafile{% - \catcode`\^^@=\other - \catcode`\^^A=\other - \catcode`\^^B=\other - \catcode`\^^C=\other - \catcode`\^^D=\other - \catcode`\^^E=\other - \catcode`\^^F=\other - \catcode`\^^G=\other - \catcode`\^^H=\other - \catcode`\^^K=\other - \catcode`\^^L=\other - \catcode`\^^N=\other - \catcode`\^^P=\other - \catcode`\^^Q=\other - \catcode`\^^R=\other - \catcode`\^^S=\other - \catcode`\^^T=\other - \catcode`\^^U=\other - \catcode`\^^V=\other - \catcode`\^^W=\other - \catcode`\^^X=\other - \catcode`\^^Z=\other - \catcode`\^^[=\other - \catcode`\^^\=\other - \catcode`\^^]=\other - \catcode`\^^^=\other - \catcode`\^^_=\other - % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc. - % in xref tags, i.e., node names. But since ^^e4 notation isn't - % supported in the main text, it doesn't seem desirable. Furthermore, - % that is not enough: for node names that actually contain a ^ - % character, we would end up writing a line like this: 'xrdef {'hat - % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first - % argument, and \hat is not an expandable control sequence. It could - % all be worked out, but why? Either we support ^^ or we don't. - % - % The other change necessary for this was to define \auxhat: - % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter - % and then to call \auxhat in \setq. - % - \catcode`\^=\other - % - % Special characters. Should be turned off anyway, but... - \catcode`\~=\other - \catcode`\[=\other - \catcode`\]=\other - \catcode`\"=\other - \catcode`\_=\other - \catcode`\|=\other - \catcode`\<=\other - \catcode`\>=\other - \catcode`\$=\other - \catcode`\#=\other - \catcode`\&=\other - \catcode`\%=\other - \catcode`+=\other % avoid \+ for paranoia even though we've turned it off - % - % This is to support \ in node names and titles, since the \ - % characters end up in a \csname. It's easier than - % leaving it active and making its active definition an actual \ - % character. What I don't understand is why it works in the *value* - % of the xrdef. Seems like it should be a catcode12 \, and that - % should not typeset properly. But it works, so I'm moving on for - % now. --karl, 15jan04. - \catcode`\\=\other - % - % Make the characters 128-255 be printing characters. - {% - \count1=128 - \def\loop{% - \catcode\count1=\other - \advance\count1 by 1 - \ifnum \count1<256 \loop \fi - }% - }% - % - % @ is our escape character in .aux files, and we need braces. - \catcode`\{=1 - \catcode`\}=2 - \catcode`\@=0 -} - -\def\readdatafile#1{% -\begingroup - \setupdatafile - \input\jobname.#1 -\endgroup} - -\message{insertions,} -% including footnotes. - -\newcount \footnoteno - -% The trailing space in the following definition for supereject is -% vital for proper filling; pages come out unaligned when you do a -% pagealignmacro call if that space before the closing brace is -% removed. (Generally, numeric constants should always be followed by a -% space to prevent strange expansion errors.) -\def\supereject{\par\penalty -20000\footnoteno =0 } - -% @footnotestyle is meaningful for info output only. -\let\footnotestyle=\comment - -{\catcode `\@=11 -% -% Auto-number footnotes. Otherwise like plain. -\gdef\footnote{% - \let\indent=\ptexindent - \let\noindent=\ptexnoindent - \global\advance\footnoteno by \@ne - \edef\thisfootno{$^{\the\footnoteno}$}% - % - % In case the footnote comes at the end of a sentence, preserve the - % extra spacing after we do the footnote number. - \let\@sf\empty - \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi - % - % Remove inadvertent blank space before typesetting the footnote number. - \unskip - \thisfootno\@sf - \dofootnote -}% - -% Don't bother with the trickery in plain.tex to not require the -% footnote text as a parameter. Our footnotes don't need to be so general. -% -% Oh yes, they do; otherwise, @ifset (and anything else that uses -% \parseargline) fails inside footnotes because the tokens are fixed when -% the footnote is read. --karl, 16nov96. -% -\gdef\dofootnote{% - \insert\footins\bgroup - % We want to typeset this text as a normal paragraph, even if the - % footnote reference occurs in (for example) a display environment. - % So reset some parameters. - \hsize=\pagewidth - \interlinepenalty\interfootnotelinepenalty - \splittopskip\ht\strutbox % top baseline for broken footnotes - \splitmaxdepth\dp\strutbox - \floatingpenalty\@MM - \leftskip\z@skip - \rightskip\z@skip - \spaceskip\z@skip - \xspaceskip\z@skip - \parindent\defaultparindent - % - \smallfonts \rm - % - % Because we use hanging indentation in footnotes, a @noindent appears - % to exdent this text, so make it be a no-op. makeinfo does not use - % hanging indentation so @noindent can still be needed within footnote - % text after an @example or the like (not that this is good style). - \let\noindent = \relax - % - % Hang the footnote text off the number. Use \everypar in case the - % footnote extends for more than one paragraph. - \everypar = {\hang}% - \textindent{\thisfootno}% - % - % Don't crash into the line above the footnote text. Since this - % expands into a box, it must come within the paragraph, lest it - % provide a place where TeX can split the footnote. - \footstrut - \futurelet\next\fo@t -} -}%end \catcode `\@=11 - -% In case a @footnote appears in a vbox, save the footnote text and create -% the real \insert just after the vbox finished. Otherwise, the insertion -% would be lost. -% Similarily, if a @footnote appears inside an alignment, save the footnote -% text to a box and make the \insert when a row of the table is finished. -% And the same can be done for other insert classes. --kasal, 16nov03. - -% Replace the \insert primitive by a cheating macro. -% Deeper inside, just make sure that the saved insertions are not spilled -% out prematurely. -% -\def\startsavinginserts{% - \ifx \insert\ptexinsert - \let\insert\saveinsert - \else - \let\checkinserts\relax - \fi -} - -% This \insert replacement works for both \insert\footins{foo} and -% \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}. -% -\def\saveinsert#1{% - \edef\next{\noexpand\savetobox \makeSAVEname#1}% - \afterassignment\next - % swallow the left brace - \let\temp = -} -\def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}} -\def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1} - -\def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi} - -\def\placesaveins#1{% - \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname - {\box#1}% -} - -% eat @SAVE -- beware, all of them have catcode \other: -{ - \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-) - \gdef\gobblesave @SAVE{} -} - -% initialization: -\def\newsaveins #1{% - \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}% - \next -} -\def\newsaveinsX #1{% - \csname newbox\endcsname #1% - \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts - \checksaveins #1}% -} - -% initialize: -\let\checkinserts\empty -\newsaveins\footins -\newsaveins\margin - - -% @image. We use the macros from epsf.tex to support this. -% If epsf.tex is not installed and @image is used, we complain. -% -% Check for and read epsf.tex up front. If we read it only at @image -% time, we might be inside a group, and then its definitions would get -% undone and the next image would fail. -\openin 1 = epsf.tex -\ifeof 1 \else - % Do not bother showing banner with epsf.tex v2.7k (available in - % doc/epsf.tex and on ctan). - \def\epsfannounce{\toks0 = }% - \input epsf.tex -\fi -\closein 1 -% -% We will only complain once about lack of epsf.tex. -\newif\ifwarnednoepsf -\newhelp\noepsfhelp{epsf.tex must be installed for images to - work. It is also included in the Texinfo distribution, or you can get - it from ftp://tug.org/tex/epsf.tex.} -% -\def\image#1{% - \ifx\epsfbox\undefined - \ifwarnednoepsf \else - \errhelp = \noepsfhelp - \errmessage{epsf.tex not found, images will be ignored}% - \global\warnednoepsftrue - \fi - \else - \imagexxx #1,,,,,\finish - \fi -} -% -% Arguments to @image: -% #1 is (mandatory) image filename; we tack on .eps extension. -% #2 is (optional) width, #3 is (optional) height. -% #4 is (ignored optional) html alt text. -% #5 is (ignored optional) extension. -% #6 is just the usual extra ignored arg for parsing this stuff. -\newif\ifimagevmode -\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup - \catcode`\^^M = 5 % in case we're inside an example - \normalturnoffactive % allow _ et al. in names - % If the image is by itself, center it. - \ifvmode - \imagevmodetrue - \nobreak\bigskip - % Usually we'll have text after the image which will insert - % \parskip glue, so insert it here too to equalize the space - % above and below. - \nobreak\vskip\parskip - \nobreak - \line\bgroup - \fi - % - % Output the image. - \ifpdf - \dopdfimage{#1}{#2}{#3}% - \else - % \epsfbox itself resets \epsf?size at each figure. - \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi - \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi - \epsfbox{#1.eps}% - \fi - % - \ifimagevmode \egroup \bigbreak \fi % space after the image -\endgroup} - - -% @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables, -% etc. We don't actually implement floating yet, we always include the -% float "here". But it seemed the best name for the future. -% -\envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish} - -% There may be a space before second and/or third parameter; delete it. -\def\eatcommaspace#1, {#1,} - -% #1 is the optional FLOATTYPE, the text label for this float, typically -% "Figure", "Table", "Example", etc. Can't contain commas. If omitted, -% this float will not be numbered and cannot be referred to. -% -% #2 is the optional xref label. Also must be present for the float to -% be referable. -% -% #3 is the optional positioning argument; for now, it is ignored. It -% will somehow specify the positions allowed to float to (here, top, bottom). -% -% We keep a separate counter for each FLOATTYPE, which we reset at each -% chapter-level command. -\let\resetallfloatnos=\empty -% -\def\dofloat#1,#2,#3,#4\finish{% - \let\thiscaption=\empty - \let\thisshortcaption=\empty - % - % don't lose footnotes inside @float. - % - % BEWARE: when the floats start float, we have to issue warning whenever an - % insert appears inside a float which could possibly float. --kasal, 26may04 - % - \startsavinginserts - % - % We can't be used inside a paragraph. - \par - % - \vtop\bgroup - \def\floattype{#1}% - \def\floatlabel{#2}% - \def\floatloc{#3}% we do nothing with this yet. - % - \ifx\floattype\empty - \let\safefloattype=\empty - \else - {% - % the floattype might have accents or other special characters, - % but we need to use it in a control sequence name. - \indexnofonts - \turnoffactive - \xdef\safefloattype{\floattype}% - }% - \fi - % - % If label is given but no type, we handle that as the empty type. - \ifx\floatlabel\empty \else - % We want each FLOATTYPE to be numbered separately (Figure 1, - % Table 1, Figure 2, ...). (And if no label, no number.) - % - \expandafter\getfloatno\csname\safefloattype floatno\endcsname - \global\advance\floatno by 1 - % - {% - % This magic value for \thissection is output by \setref as the - % XREFLABEL-title value. \xrefX uses it to distinguish float - % labels (which have a completely different output format) from - % node and anchor labels. And \xrdef uses it to construct the - % lists of floats. - % - \edef\thissection{\floatmagic=\safefloattype}% - \setref{\floatlabel}{Yfloat}% - }% - \fi - % - % start with \parskip glue, I guess. - \vskip\parskip - % - % Don't suppress indentation if a float happens to start a section. - \restorefirstparagraphindent -} - -% we have these possibilities: -% @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap -% @float Foo,lbl & no caption: Foo 1.1 -% @float Foo & @caption{Cap}: Foo: Cap -% @float Foo & no caption: Foo -% @float ,lbl & Caption{Cap}: 1.1: Cap -% @float ,lbl & no caption: 1.1 -% @float & @caption{Cap}: Cap -% @float & no caption: -% -\def\Efloat{% - \let\floatident = \empty - % - % In all cases, if we have a float type, it comes first. - \ifx\floattype\empty \else \def\floatident{\floattype}\fi - % - % If we have an xref label, the number comes next. - \ifx\floatlabel\empty \else - \ifx\floattype\empty \else % if also had float type, need tie first. - \appendtomacro\floatident{\tie}% - \fi - % the number. - \appendtomacro\floatident{\chaplevelprefix\the\floatno}% - \fi - % - % Start the printed caption with what we've constructed in - % \floatident, but keep it separate; we need \floatident again. - \let\captionline = \floatident - % - \ifx\thiscaption\empty \else - \ifx\floatident\empty \else - \appendtomacro\captionline{: }% had ident, so need a colon between - \fi - % - % caption text. - \appendtomacro\captionline{\scanexp\thiscaption}% - \fi - % - % If we have anything to print, print it, with space before. - % Eventually this needs to become an \insert. - \ifx\captionline\empty \else - \vskip.5\parskip - \captionline - % - % Space below caption. - \vskip\parskip - \fi - % - % If have an xref label, write the list of floats info. Do this - % after the caption, to avoid chance of it being a breakpoint. - \ifx\floatlabel\empty \else - % Write the text that goes in the lof to the aux file as - % \floatlabel-lof. Besides \floatident, we include the short - % caption if specified, else the full caption if specified, else nothing. - {% - \atdummies - % - % since we read the caption text in the macro world, where ^^M - % is turned into a normal character, we have to scan it back, so - % we don't write the literal three characters "^^M" into the aux file. - \scanexp{% - \xdef\noexpand\gtemp{% - \ifx\thisshortcaption\empty - \thiscaption - \else - \thisshortcaption - \fi - }% - }% - \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident - \ifx\gtemp\empty \else : \gtemp \fi}}% - }% - \fi - \egroup % end of \vtop - % - % place the captured inserts - % - % BEWARE: when the floats start floating, we have to issue warning - % whenever an insert appears inside a float which could possibly - % float. --kasal, 26may04 - % - \checkinserts -} - -% Append the tokens #2 to the definition of macro #1, not expanding either. -% -\def\appendtomacro#1#2{% - \expandafter\def\expandafter#1\expandafter{#1#2}% -} - -% @caption, @shortcaption -% -\def\caption{\docaption\thiscaption} -\def\shortcaption{\docaption\thisshortcaption} -\def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption} -\def\defcaption#1#2{\egroup \def#1{#2}} - -% The parameter is the control sequence identifying the counter we are -% going to use. Create it if it doesn't exist and assign it to \floatno. -\def\getfloatno#1{% - \ifx#1\relax - % Haven't seen this figure type before. - \csname newcount\endcsname #1% - % - % Remember to reset this floatno at the next chap. - \expandafter\gdef\expandafter\resetallfloatnos - \expandafter{\resetallfloatnos #1=0 }% - \fi - \let\floatno#1% -} - -% \setref calls this to get the XREFLABEL-snt value. We want an @xref -% to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we -% first read the @float command. -% -\def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}% - -% Magic string used for the XREFLABEL-title value, so \xrefX can -% distinguish floats from other xref types. -\def\floatmagic{!!float!!} - -% #1 is the control sequence we are passed; we expand into a conditional -% which is true if #1 represents a float ref. That is, the magic -% \thissection value which we \setref above. -% -\def\iffloat#1{\expandafter\doiffloat#1==\finish} -% -% #1 is (maybe) the \floatmagic string. If so, #2 will be the -% (safe) float type for this float. We set \iffloattype to #2. -% -\def\doiffloat#1=#2=#3\finish{% - \def\temp{#1}% - \def\iffloattype{#2}% - \ifx\temp\floatmagic -} - -% @listoffloats FLOATTYPE - print a list of floats like a table of contents. -% -\parseargdef\listoffloats{% - \def\floattype{#1}% floattype - {% - % the floattype might have accents or other special characters, - % but we need to use it in a control sequence name. - \indexnofonts - \turnoffactive - \xdef\safefloattype{\floattype}% - }% - % - % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE. - \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax - \ifhavexrefs - % if the user said @listoffloats foo but never @float foo. - \message{\linenumber No `\safefloattype' floats to list.}% - \fi - \else - \begingroup - \leftskip=\tocindent % indent these entries like a toc - \let\do=\listoffloatsdo - \csname floatlist\safefloattype\endcsname - \endgroup - \fi -} - -% This is called on each entry in a list of floats. We're passed the -% xref label, in the form LABEL-title, which is how we save it in the -% aux file. We strip off the -title and look up \XRLABEL-lof, which -% has the text we're supposed to typeset here. -% -% Figures without xref labels will not be included in the list (since -% they won't appear in the aux file). -% -\def\listoffloatsdo#1{\listoffloatsdoentry#1\finish} -\def\listoffloatsdoentry#1-title\finish{{% - % Can't fully expand XR#1-lof because it can contain anything. Just - % pass the control sequence. On the other hand, XR#1-pg is just the - % page number, and we want to fully expand that so we can get a link - % in pdf output. - \toksA = \expandafter{\csname XR#1-lof\endcsname}% - % - % use the same \entry macro we use to generate the TOC and index. - \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}% - \writeentry -}} - -\message{localization,} -% and i18n. - -% @documentlanguage is usually given very early, just after -% @setfilename. If done too late, it may not override everything -% properly. Single argument is the language abbreviation. -% It would be nice if we could set up a hyphenation file here. -% -\parseargdef\documentlanguage{% - \tex % read txi-??.tex file in plain TeX. - % Read the file if it exists. - \openin 1 txi-#1.tex - \ifeof 1 - \errhelp = \nolanghelp - \errmessage{Cannot read language file txi-#1.tex}% - \else - \input txi-#1.tex - \fi - \closein 1 - \endgroup -} -\newhelp\nolanghelp{The given language definition file cannot be found or -is empty. Maybe you need to install it? In the current directory -should work if nowhere else does.} - - -% @documentencoding should change something in TeX eventually, most -% likely, but for now just recognize it. -\let\documentencoding = \comment - - -% Page size parameters. -% -\newdimen\defaultparindent \defaultparindent = 15pt - -\chapheadingskip = 15pt plus 4pt minus 2pt -\secheadingskip = 12pt plus 3pt minus 2pt -\subsecheadingskip = 9pt plus 2pt minus 2pt - -% Prevent underfull vbox error messages. -\vbadness = 10000 - -% Don't be so finicky about underfull hboxes, either. -\hbadness = 2000 - -% Following George Bush, just get rid of widows and orphans. -\widowpenalty=10000 -\clubpenalty=10000 - -% Use TeX 3.0's \emergencystretch to help line breaking, but if we're -% using an old version of TeX, don't do anything. We want the amount of -% stretch added to depend on the line length, hence the dependence on -% \hsize. We call this whenever the paper size is set. -% -\def\setemergencystretch{% - \ifx\emergencystretch\thisisundefined - % Allow us to assign to \emergencystretch anyway. - \def\emergencystretch{\dimen0}% - \else - \emergencystretch = .15\hsize - \fi -} - -% Parameters in order: 1) textheight; 2) textwidth; -% 3) voffset; 4) hoffset; 5) binding offset; 6) topskip; -% 7) physical page height; 8) physical page width. -% -% We also call \setleading{\textleading}, so the caller should define -% \textleading. The caller should also set \parskip. -% -\def\internalpagesizes#1#2#3#4#5#6#7#8{% - \voffset = #3\relax - \topskip = #6\relax - \splittopskip = \topskip - % - \vsize = #1\relax - \advance\vsize by \topskip - \outervsize = \vsize - \advance\outervsize by 2\topandbottommargin - \pageheight = \vsize - % - \hsize = #2\relax - \outerhsize = \hsize - \advance\outerhsize by 0.5in - \pagewidth = \hsize - % - \normaloffset = #4\relax - \bindingoffset = #5\relax - % - \ifpdf - \pdfpageheight #7\relax - \pdfpagewidth #8\relax - \fi - % - \setleading{\textleading} - % - \parindent = \defaultparindent - \setemergencystretch -} - -% @letterpaper (the default). -\def\letterpaper{{\globaldefs = 1 - \parskip = 3pt plus 2pt minus 1pt - \textleading = 13.2pt - % - % If page is nothing but text, make it come out even. - \internalpagesizes{46\baselineskip}{6in}% - {\voffset}{.25in}% - {\bindingoffset}{36pt}% - {11in}{8.5in}% -}} - -% Use @smallbook to reset parameters for 7x9.25 trim size. -\def\smallbook{{\globaldefs = 1 - \parskip = 2pt plus 1pt - \textleading = 12pt - % - \internalpagesizes{7.5in}{5in}% - {\voffset}{.25in}% - {\bindingoffset}{16pt}% - {9.25in}{7in}% - % - \lispnarrowing = 0.3in - \tolerance = 700 - \hfuzz = 1pt - \contentsrightmargin = 0pt - \defbodyindent = .5cm -}} - -% Use @smallerbook to reset parameters for 6x9 trim size. -% (Just testing, parameters still in flux.) -\def\smallerbook{{\globaldefs = 1 - \parskip = 1.5pt plus 1pt - \textleading = 12pt - % - \internalpagesizes{7.4in}{4.8in}% - {-.2in}{-.4in}% - {0pt}{14pt}% - {9in}{6in}% - % - \lispnarrowing = 0.25in - \tolerance = 700 - \hfuzz = 1pt - \contentsrightmargin = 0pt - \defbodyindent = .4cm -}} - -% Use @afourpaper to print on European A4 paper. -\def\afourpaper{{\globaldefs = 1 - \parskip = 3pt plus 2pt minus 1pt - \textleading = 13.2pt - % - % Double-side printing via postscript on Laserjet 4050 - % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm. - % To change the settings for a different printer or situation, adjust - % \normaloffset until the front-side and back-side texts align. Then - % do the same for \bindingoffset. You can set these for testing in - % your texinfo source file like this: - % @tex - % \global\normaloffset = -6mm - % \global\bindingoffset = 10mm - % @end tex - \internalpagesizes{51\baselineskip}{160mm} - {\voffset}{\hoffset}% - {\bindingoffset}{44pt}% - {297mm}{210mm}% - % - \tolerance = 700 - \hfuzz = 1pt - \contentsrightmargin = 0pt - \defbodyindent = 5mm -}} - -% Use @afivepaper to print on European A5 paper. -% From romildo@urano.iceb.ufop.br, 2 July 2000. -% He also recommends making @example and @lisp be small. -\def\afivepaper{{\globaldefs = 1 - \parskip = 2pt plus 1pt minus 0.1pt - \textleading = 12.5pt - % - \internalpagesizes{160mm}{120mm}% - {\voffset}{\hoffset}% - {\bindingoffset}{8pt}% - {210mm}{148mm}% - % - \lispnarrowing = 0.2in - \tolerance = 800 - \hfuzz = 1.2pt - \contentsrightmargin = 0pt - \defbodyindent = 2mm - \tableindent = 12mm -}} - -% A specific text layout, 24x15cm overall, intended for A4 paper. -\def\afourlatex{{\globaldefs = 1 - \afourpaper - \internalpagesizes{237mm}{150mm}% - {\voffset}{4.6mm}% - {\bindingoffset}{7mm}% - {297mm}{210mm}% - % - % Must explicitly reset to 0 because we call \afourpaper. - \globaldefs = 0 -}} - -% Use @afourwide to print on A4 paper in landscape format. -\def\afourwide{{\globaldefs = 1 - \afourpaper - \internalpagesizes{241mm}{165mm}% - {\voffset}{-2.95mm}% - {\bindingoffset}{7mm}% - {297mm}{210mm}% - \globaldefs = 0 -}} - -% @pagesizes TEXTHEIGHT[,TEXTWIDTH] -% Perhaps we should allow setting the margins, \topskip, \parskip, -% and/or leading, also. Or perhaps we should compute them somehow. -% -\parseargdef\pagesizes{\pagesizesyyy #1,,\finish} -\def\pagesizesyyy#1,#2,#3\finish{{% - \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi - \globaldefs = 1 - % - \parskip = 3pt plus 2pt minus 1pt - \setleading{\textleading}% - % - \dimen0 = #1 - \advance\dimen0 by \voffset - % - \dimen2 = \hsize - \advance\dimen2 by \normaloffset - % - \internalpagesizes{#1}{\hsize}% - {\voffset}{\normaloffset}% - {\bindingoffset}{44pt}% - {\dimen0}{\dimen2}% -}} - -% Set default to letter. -% -\letterpaper - - -\message{and turning on texinfo input format.} - -% Define macros to output various characters with catcode for normal text. -\catcode`\"=\other -\catcode`\~=\other -\catcode`\^=\other -\catcode`\_=\other -\catcode`\|=\other -\catcode`\<=\other -\catcode`\>=\other -\catcode`\+=\other -\catcode`\$=\other -\def\normaldoublequote{"} -\def\normaltilde{~} -\def\normalcaret{^} -\def\normalunderscore{_} -\def\normalverticalbar{|} -\def\normalless{<} -\def\normalgreater{>} -\def\normalplus{+} -\def\normaldollar{$}%$ font-lock fix - -% This macro is used to make a character print one way in \tt -% (where it can probably be output as-is), and another way in other fonts, -% where something hairier probably needs to be done. -% -% #1 is what to print if we are indeed using \tt; #2 is what to print -% otherwise. Since all the Computer Modern typewriter fonts have zero -% interword stretch (and shrink), and it is reasonable to expect all -% typewriter fonts to have this, we can check that font parameter. -% -\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi} - -% Same as above, but check for italic font. Actually this also catches -% non-italic slanted fonts since it is impossible to distinguish them from -% italic fonts. But since this is only used by $ and it uses \sl anyway -% this is not a problem. -\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi} - -% Turn off all special characters except @ -% (and those which the user can use as if they were ordinary). -% Most of these we simply print from the \tt font, but for some, we can -% use math or other variants that look better in normal text. - -\catcode`\"=\active -\def\activedoublequote{{\tt\char34}} -\let"=\activedoublequote -\catcode`\~=\active -\def~{{\tt\char126}} -\chardef\hat=`\^ -\catcode`\^=\active -\def^{{\tt \hat}} - -\catcode`\_=\active -\def_{\ifusingtt\normalunderscore\_} -\let\realunder=_ -% Subroutine for the previous macro. -\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } - -\catcode`\|=\active -\def|{{\tt\char124}} -\chardef \less=`\< -\catcode`\<=\active -\def<{{\tt \less}} -\chardef \gtr=`\> -\catcode`\>=\active -\def>{{\tt \gtr}} -\catcode`\+=\active -\def+{{\tt \char 43}} -\catcode`\$=\active -\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix - -% If a .fmt file is being used, characters that might appear in a file -% name cannot be active until we have parsed the command line. -% So turn them off again, and have \everyjob (or @setfilename) turn them on. -% \otherifyactive is called near the end of this file. -\def\otherifyactive{\catcode`+=\other \catcode`\_=\other} - -% Used sometimes to turn off (effectively) the active characters even after -% parsing them. -\def\turnoffactive{% - \normalturnoffactive - \otherbackslash -} - -\catcode`\@=0 - -% \backslashcurfont outputs one backslash character in current font, -% as in \char`\\. -\global\chardef\backslashcurfont=`\\ -\global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work - -% \realbackslash is an actual character `\' with catcode other, and -% \doublebackslash is two of them (for the pdf outlines). -{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} - -% In texinfo, backslash is an active character; it prints the backslash -% in fixed width font. -\catcode`\\=\active -@def@normalbackslash{{@tt@backslashcurfont}} -% On startup, @fixbackslash assigns: -% @let \ = @normalbackslash - -% \rawbackslash defines an active \ to do \backslashcurfont. -% \otherbackslash defines an active \ to be a literal `\' character with -% catcode other. -@gdef@rawbackslash{@let\=@backslashcurfont} -@gdef@otherbackslash{@let\=@realbackslash} - -% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of -% the literal character `\'. -% -@def@normalturnoffactive{% - @let\=@normalbackslash - @let"=@normaldoublequote - @let~=@normaltilde - @let^=@normalcaret - @let_=@normalunderscore - @let|=@normalverticalbar - @let<=@normalless - @let>=@normalgreater - @let+=@normalplus - @let$=@normaldollar %$ font-lock fix - @unsepspaces -} - -% Make _ and + \other characters, temporarily. -% This is canceled by @fixbackslash. -@otherifyactive - -% If a .fmt file is being used, we don't want the `\input texinfo' to show up. -% That is what \eatinput is for; after that, the `\' should revert to printing -% a backslash. -% -@gdef@eatinput input texinfo{@fixbackslash} -@global@let\ = @eatinput - -% On the other hand, perhaps the file did not have a `\input texinfo'. Then -% the first `\' in the file would cause an error. This macro tries to fix -% that, assuming it is called before the first `\' could plausibly occur. -% Also turn back on active characters that might appear in the input -% file name, in case not using a pre-dumped format. -% -@gdef@fixbackslash{% - @ifx\@eatinput @let\ = @normalbackslash @fi - @catcode`+=@active - @catcode`@_=@active -} - -% Say @foo, not \foo, in error messages. -@escapechar = `@@ - -% These look ok in all fonts, so just make them not special. -@catcode`@& = @other -@catcode`@# = @other -@catcode`@% = @other - - -@c Local variables: -@c eval: (add-hook 'write-file-hooks 'time-stamp) -@c page-delimiter: "^\\\\message" -@c time-stamp-start: "def\\\\texinfoversion{" -@c time-stamp-format: "%:y-%02m-%02d.%02H" -@c time-stamp-end: "}" -@c End: - -@c vim:sw=2: - -@ignore - arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115 -@end ignore diff --git a/doc/version.texi b/doc/version.texi deleted file mode 100644 index 265e4b2..0000000 --- a/doc/version.texi +++ /dev/null @@ -1,4 +0,0 @@ -@set UPDATED 12 March 2008 -@set UPDATED-MONTH March 2008 -@set EDITION 3.7-beta2 -@set VERSION 3.7-beta2 diff --git a/gl-mod/bootstrap b/gl-mod/bootstrap new file mode 160000 index 0000000..037f837 --- /dev/null +++ b/gl-mod/bootstrap @@ -0,0 +1 @@ +Subproject commit 037f83765b6e8f90dfabdfac4889be22a5a3f4a4 diff --git a/gnulib b/gnulib new file mode 160000 index 0000000..eecd8af --- /dev/null +++ b/gnulib @@ -0,0 +1 @@ +Subproject commit eecd8afd696055cf39ef934208724bfe850c5760 diff --git a/install-sh b/install-sh deleted file mode 100755 index 4fbbae7..0000000 --- a/install-sh +++ /dev/null @@ -1,507 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2006-10-14.15 - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -nl=' -' -IFS=" "" $nl" - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -posix_glob= -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chmodcmd=$chmodprog -chowncmd= -chgrpcmd= -stripcmd= -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src= -dst= -dir_arg= -dstarg= -no_target_directory= - -usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: --c (ignored) --d create directories instead of installing files. --g GROUP $chgrpprog installed files to GROUP. --m MODE $chmodprog installed files to MODE. --o USER $chownprog installed files to USER. --s $stripprog installed files. --t DIRECTORY install into DIRECTORY. --T report an error if DSTFILE is a directory. ---help display this help and exit. ---version display version info and exit. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - shift - shift - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -s) stripcmd=$stripprog - shift - continue;; - - -t) dstarg=$2 - shift - shift - continue;; - - -T) no_target_directory=true - shift - continue;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac -done - -if test $# -ne 0 && test -z "$dir_arg$dstarg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dstarg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dstarg" - shift # fnord - fi - shift # arg - dstarg=$arg - done -fi - -if test $# -eq 0; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call `install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names starting with `-'. - case $src in - -*) src=./$src ;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dstarg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - - dst=$dstarg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst ;; - esac - - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. - if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dstarg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dst=$dstdir/`basename "$src"` - dstdir_status=0 - else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - - test -d "$dstdir" - dstdir_status=$? - fi - fi - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writeable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix=/ ;; - -*) prefix=./ ;; - *) prefix= ;; - esac - - case $posix_glob in - '') - if (set -f) 2>/dev/null; then - posix_glob=true - else - posix_glob=false - fi ;; - esac - - oIFS=$IFS - IFS=/ - $posix_glob && set -f - set fnord $dstdir - shift - $posix_glob && set +f - IFS=$oIFS - - prefixes= - - for d - do - test -z "$d" && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ - && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ - && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ - && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && - - # Now rename the file to the real destination. - { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \ - || { - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - if test -f "$dst"; then - $doit $rmcmd -f "$dst" 2>/dev/null \ - || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \ - && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\ - || { - echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - else - : - fi - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - } || exit 1 - - trap '' 0 - fi -done - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/keld/charsets.def b/keld/charsets.def index dc4f8b6..a92b9ec 100644 --- a/keld/charsets.def +++ b/keld/charsets.def @@ -2789,14 +2789,14 @@ DL D1 D2 D3 OC NL BS ES CN EM P2 S3 FS GS RS US PA HO BH NH IN LF EB EC HS HJ VS PD PU EQ AK BL DC P1 SY TS CC MW SG ET SS GC SC CI D4 NK PM SB - SP NS ?? a: ?? a' a( c< c, c' <( . < ( + ! - & e' ?? e: u0 i' ?? l< l' ss )> DO * ) ; '> - - / ?? A: '" A' ?? C< C, C' !! , % _ > ? - '< E' ?? E: U0 I' ?? L< L' '! : Nb At ' = " - '( a b c d e f g h i s' n< d/ y' r< ?? + SP NS a> a: t, a' a( c< c, c' <( . < ( + ! + & e' e; e: u0 i' i> l< l' ss )> DO * ) ; '> + - / A> A: '" A' A< C< C, C' !! , % _ > ? + '< E' E; E: U0 I' I> L< L' '! : Nb At ' = " + '( a b c d e f g h i s' n< d/ y' r< s, DG j k l m n o p q r l/ n' s< ', '; Cu - a; '? s t u v w x y z S' N< D/ Y' R< ?? - .M A; z. ?? Z. SE PI z< z' Z< Z' N' S< ': '' *X + a; '? s t u v w x y z S' N< D/ Y' R< S, + .M A; z. T, Z. SE z< z' Z< Z' L/ N' S< ': '' *X (! A B C D E F G H I -- o> o: r' o' o" !) J K L M N O P Q R E< u" u: t< u' e< // -: S T U V W X Y Z d< O> O: R' O' O" @@ -3104,8 +3104,8 @@ SP ! " Nb DO % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? At A B C D E F G H I J K L M N O P Q R S T U V W X Y Z <( // )> '> _ '! a b c d e f g h i j k l m n o p q r s t u v w x y z (! !! !) '? DT - Eu ?? .9 f2 :9 .3 /- /= 1> %0 S< <1 OE ?? Z< z< - ?? '6 '9 "6 "9 sb -N -M 1? TM s< >1 oe ?? ?? Y: + Eu ?? .9 f2 :9 .3 /- /= 1> %0 S< <1 OE ?? Z< ?? + ?? '6 '9 "6 "9 sb -N -M 1? TM s< >1 oe ?? z< Y: NS !I Ct Pd Cu Ye BB SE ': Co -a << NO -- Rg 'm DG +- 2S 3S '' My PI .M ', 1S -o >> 14 12 34 ?I A! A' A> A? A: AA AE C, E! E' E> E: I! I' I> I: diff --git a/keld/mnemonics,ds b/keld/mnemonics,ds deleted file mode 100644 index a3c2b75..0000000 --- a/keld/mnemonics,ds +++ /dev/null @@ -1,2330 +0,0 @@ -escape_char / - NULL (NUL) - START OF HEADING (SOH) - START OF TEXT (STX) - END OF TEXT (ETX) - END OF TRANSMISSION (EOT) - ENQUIRY (ENQ) - ACKNOWLEDGE (ACK) - BELL (BEL) - BELL (BEL) - BACKSPACE (BS) - CHARACTER TABULATION (HT) - LINE FEED (LF) - LINE TABULATION (VT) - FORM FEED (FF) - CARRIAGE RETURN (CR) - DATALINK ESCAPE (DLE) - DEVICE CONTROL ONE (DC1) - DEVICE CONTROL TWO (DC2) - DEVICE CONTROL THREE (DC3) - DEVICE CONTROL FOUR (DC4) - NEGATIVE ACKNOWLEDGE (NAK) - SYNCRONOUS IDLE (SYN) - END OF TRANSMISSION BLOCK (ETB) - CANCEL (CAN) - SUBSTITUTE (SUB) - ESCAPE (ESC) - FILE SEPARATOR (IS4) - GROUP SEPARATOR (IS3) - GROUP SEPARATOR (IS3) - RECORD SEPARATOR (IS2) - UNIT SEPARATOR (IS1) - DELETE (DEL) - SPACE - EXCLAMATION MARK - QUOTATION MARK - NUMBER SIGN - DOLLAR SIGN - PERCENT SIGN - AMPERSAND - APOSTROPHE - LEFT PARENTHESIS - RIGHT PARENTHESIS - ASTERISK - PLUS SIGN - COMMA - HYPHEN-MINUS - HYPHEN-MINUS - FULL STOP - FULL STOP - SOLIDUS - SOLIDUS - DIGIT ZERO - DIGIT ONE - DIGIT TWO - DIGIT THREE - DIGIT FOUR - DIGIT FIVE - DIGIT SIX - DIGIT SEVEN - DIGIT EIGHT - DIGIT NINE - COLON - SEMICOLON - LESS-THAN SIGN - EQUALS SIGN - GREATER-THAN SIGN - QUESTION MARK - COMMERCIAL AT - LEFT SQUARE BRACKET - REVERSE SOLIDUS - REVERSE SOLIDUS - RIGHT SQUARE BRACKET - CIRCUMFLEX ACCENT - CIRCUMFLEX ACCENT - LOW LINE - LOW LINE - GRAVE ACCENT - LEFT CURLY BRACKET - LEFT CURLY BRACKET - VERTICAL LINE - RIGHT CURLY BRACKET - RIGHT CURLY BRACKET - TILDE - NULL (NUL) - START OF HEADING (SOH) - START OF TEXT (STX) - END OF TEXT (ETX) - END OF TRANSMISSION (EOT) - ENQUIRY (ENQ) - ACKNOWLEDGE (ACK) - BELL (BEL) - BACKSPACE (BS) - CHARACTER TABULATION (HT) - LINE FEED (LF) - LINE TABULATION (VT) - FORM FEED (FF) - CARRIAGE RETURN (CR) - SHIFT OUT (SO) - SHIFT IN (SI) -
DATALINK ESCAPE (DLE) - DEVICE CONTROL ONE (DC1) - DEVICE CONTROL TWO (DC2) - DEVICE CONTROL THREE (DC3) - DEVICE CONTROL FOUR (DC4) - NEGATIVE ACKNOWLEDGE (NAK) - SYNCHRONOUS IDLE (SYN) - END OF TRANSMISSION BLOCK (ETB) - CANCEL (CAN) - END OF MEDIUM (EM) - SUBSTITUTE (SUB) - ESCAPE (ESC) - FILE SEPARATOR (IS4) - GROUP SEPARATOR (IS3) - RECORD SEPARATOR (IS2) - UNIT SEPARATOR (IS1) -
DELETE (DEL) - PADDING CHARACTER (PAD) - HIGH OCTET PRESET (HOP) - BREAK PERMITTED HERE (BPH) - NO BREAK HERE (NBH) - INDEX (IND) - NEXT LINE (NEL) - START OF SELECTED AREA (SSA) - END OF SELECTED AREA (ESA) - CHARACTER TABULATION SET (HTS) - CHARACTER TABULATION WITH JUSTIFICATION (HTJ) - LINE TABULATION SET (VTS) - PARTIAL LINE FORWARD (PLD) - PARTIAL LINE BACKWARD (PLU) - REVERSE LINE FEED (RI) - SINGLE-SHIFT TWO (SS2) - SINGLE-SHIFT THREE (SS3) - DEVICE CONTROL STRING (DCS) - PRIVATE USE ONE (PU1) - PRIVATE USE TWO (PU2) - SET TRANSMIT STATE (STS) - CANCEL CHARACTER (CCH) - MESSAGE WAITING (MW) - START OF GUARDED AREA (SPA) - END OF GUARDED AREA (EPA) - START OF STRING (SOS) - SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) - SINGLE CHARACTER INTRODUCER (SCI) - CONTROL SEQUENCE INTRODUCER (CSI) - STRING TERMINATOR (ST) - OPERATING SYSTEM COMMAND (OSC) - PRIVACY MESSAGE (PM) - APPLICATION PROGRAM COMMAND (APC) - SPACE - EXCLAMATION MARK -<"> QUOTATION MARK - NUMBER SIGN - DOLLAR SIGN -<%> PERCENT SIGN -<&> AMPERSAND -<'> APOSTROPHE -<(> LEFT PARENTHESIS -<)> RIGHT PARENTHESIS -<*> ASTERISK -<+> PLUS SIGN -<,> COMMA -<-> HYPHEN-MINUS -<.> FULL STOP - SOLIDUS -<0> DIGIT ZERO -<1> DIGIT ONE -<2> DIGIT TWO -<3> DIGIT THREE -<4> DIGIT FOUR -<5> DIGIT FIVE -<6> DIGIT SIX -<7> DIGIT SEVEN -<8> DIGIT EIGHT -<9> DIGIT NINE -<:> COLON -<;> SEMICOLON -<<> LESS-THAN SIGN -<=> EQUALS SIGN -> GREATER-THAN SIGN - QUESTION MARK - COMMERCIAL AT - LATIN CAPITAL LETTER A - LATIN CAPITAL LETTER B - LATIN CAPITAL LETTER C - LATIN CAPITAL LETTER D - LATIN CAPITAL LETTER E - LATIN CAPITAL LETTER F - LATIN CAPITAL LETTER G - LATIN CAPITAL LETTER H - LATIN CAPITAL LETTER I - LATIN CAPITAL LETTER J - LATIN CAPITAL LETTER K - LATIN CAPITAL LETTER L - LATIN CAPITAL LETTER M - LATIN CAPITAL LETTER N - LATIN CAPITAL LETTER O -

LATIN SMALL LETTER P - LATIN SMALL LETTER Q - LATIN SMALL LETTER R - LATIN SMALL LETTER S - LATIN SMALL LETTER T - LATIN SMALL LETTER U - LATIN SMALL LETTER V - LATIN SMALL LETTER W - LATIN SMALL LETTER X - LATIN SMALL LETTER Y - LATIN SMALL LETTER Z -<(!> LEFT CURLY BRACKET - VERTICAL LINE - RIGHT CURLY BRACKET -<'?> TILDE - NO-BREAK SPACE - INVERTED EXCLAMATION MARK - CENT SIGN - POUND SIGN - CURRENCY SIGN - YEN SIGN - BROKEN BAR - SECTION SIGN -<':> DIAERESIS - COPYRIGHT SIGN -<-a> FEMININE ORDINAL INDICATOR -<<<> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - NOT SIGN -<--> SOFT HYPHEN - REGISTERED SIGN -<'m> MACRON - DEGREE SIGN -<+-> PLUS-MINUS SIGN -<2S> SUPERSCRIPT TWO -<3S> SUPERSCRIPT THREE -<''> ACUTE ACCENT - MICRO SIGN - PILCROW SIGN -<.M> MIDDLE DOT -<',> CEDILLA -<1S> SUPERSCRIPT ONE -<-o> MASCULINE ORDINAL INDICATOR -/>> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -<14> VULGAR FRACTION ONE QUARTER -<12> VULGAR FRACTION ONE HALF -<34> VULGAR FRACTION THREE QUARTERS - INVERTED QUESTION MARK - LATIN CAPITAL LETTER A WITH GRAVE - LATIN CAPITAL LETTER A WITH ACUTE -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX - LATIN CAPITAL LETTER A WITH TILDE - LATIN CAPITAL LETTER A WITH DIAERESIS - LATIN CAPITAL LETTER A WITH RING ABOVE - LATIN CAPITAL LETTER AE (ash) - LATIN CAPITAL LETTER C WITH CEDILLA - LATIN CAPITAL LETTER E WITH GRAVE - LATIN CAPITAL LETTER E WITH ACUTE -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX - LATIN CAPITAL LETTER E WITH DIAERESIS - LATIN CAPITAL LETTER I WITH GRAVE - LATIN CAPITAL LETTER I WITH ACUTE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX - LATIN CAPITAL LETTER I WITH DIAERESIS - LATIN CAPITAL LETTER ETH (Icelandic) - LATIN CAPITAL LETTER N WITH TILDE - LATIN CAPITAL LETTER O WITH GRAVE - LATIN CAPITAL LETTER O WITH ACUTE -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX - LATIN CAPITAL LETTER O WITH TILDE - LATIN CAPITAL LETTER O WITH DIAERESIS -<*X> MULTIPLICATION SIGN - LATIN CAPITAL LETTER O WITH STROKE - LATIN CAPITAL LETTER U WITH GRAVE - LATIN CAPITAL LETTER U WITH ACUTE -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX - LATIN CAPITAL LETTER U WITH DIAERESIS - LATIN CAPITAL LETTER Y WITH ACUTE - LATIN CAPITAL LETTER THORN (Icelandic) - LATIN SMALL LETTER SHARP S (German) - LATIN SMALL LETTER A WITH GRAVE - LATIN SMALL LETTER A WITH ACUTE -> LATIN SMALL LETTER A WITH CIRCUMFLEX - LATIN SMALL LETTER A WITH TILDE - LATIN SMALL LETTER A WITH DIAERESIS - LATIN SMALL LETTER A WITH RING ABOVE - LATIN SMALL LETTER AE (ash) - LATIN SMALL LETTER C WITH CEDILLA - LATIN SMALL LETTER E WITH GRAVE - LATIN SMALL LETTER E WITH ACUTE -> LATIN SMALL LETTER E WITH CIRCUMFLEX - LATIN SMALL LETTER E WITH DIAERESIS - LATIN SMALL LETTER I WITH GRAVE - LATIN SMALL LETTER I WITH ACUTE -> LATIN SMALL LETTER I WITH CIRCUMFLEX - LATIN SMALL LETTER I WITH DIAERESIS - LATIN SMALL LETTER ETH (Icelandic) - LATIN SMALL LETTER N WITH TILDE - LATIN SMALL LETTER O WITH GRAVE - LATIN SMALL LETTER O WITH ACUTE -> LATIN SMALL LETTER O WITH CIRCUMFLEX - LATIN SMALL LETTER O WITH TILDE - LATIN SMALL LETTER O WITH DIAERESIS -<-:> DIVISION SIGN - LATIN SMALL LETTER O WITH STROKE - LATIN SMALL LETTER U WITH GRAVE - LATIN SMALL LETTER U WITH ACUTE -> LATIN SMALL LETTER U WITH CIRCUMFLEX - LATIN SMALL LETTER U WITH DIAERESIS - LATIN SMALL LETTER Y WITH ACUTE - LATIN SMALL LETTER THORN (Icelandic) - LATIN SMALL LETTER Y WITH DIAERESIS - LATIN CAPITAL LETTER A WITH MACRON - LATIN SMALL LETTER A WITH MACRON - LATIN CAPITAL LETTER A WITH BREVE - LATIN SMALL LETTER A WITH BREVE - LATIN CAPITAL LETTER A WITH OGONEK - LATIN SMALL LETTER A WITH OGONEK - LATIN CAPITAL LETTER C WITH ACUTE - LATIN SMALL LETTER C WITH ACUTE -> LATIN CAPITAL LETTER C WITH CIRCUMFLEX -> LATIN SMALL LETTER C WITH CIRCUMFLEX - LATIN CAPITAL LETTER C WITH DOT ABOVE - LATIN SMALL LETTER C WITH DOT ABOVE - LATIN CAPITAL LETTER C WITH CARON - LATIN SMALL LETTER C WITH CARON - LATIN CAPITAL LETTER D WITH CARON - LATIN SMALL LETTER D WITH CARON - LATIN CAPITAL LETTER D WITH STROKE - LATIN SMALL LETTER D WITH STROKE - LATIN CAPITAL LETTER E WITH MACRON - LATIN SMALL LETTER E WITH MACRON - LATIN CAPITAL LETTER E WITH BREVE - LATIN SMALL LETTER E WITH BREVE - LATIN CAPITAL LETTER E WITH DOT ABOVE - LATIN SMALL LETTER E WITH DOT ABOVE - LATIN CAPITAL LETTER E WITH OGONEK - LATIN SMALL LETTER E WITH OGONEK - LATIN CAPITAL LETTER E WITH CARON - LATIN SMALL LETTER E WITH CARON -> LATIN CAPITAL LETTER G WITH CIRCUMFLEX -> LATIN SMALL LETTER G WITH CIRCUMFLEX - LATIN CAPITAL LETTER G WITH BREVE - LATIN SMALL LETTER G WITH BREVE - LATIN CAPITAL LETTER G WITH DOT ABOVE - LATIN SMALL LETTER G WITH DOT ABOVE - LATIN CAPITAL LETTER G WITH CEDILLA - LATIN SMALL LETTER G WITH CEDILLA -> LATIN CAPITAL LETTER H WITH CIRCUMFLEX -> LATIN SMALL LETTER H WITH CIRCUMFLEX - LATIN CAPITAL LETTER H WITH STROKE - LATIN SMALL LETTER H WITH STROKE - LATIN CAPITAL LETTER I WITH TILDE - LATIN SMALL LETTER I WITH TILDE - LATIN CAPITAL LETTER I WITH MACRON - LATIN SMALL LETTER I WITH MACRON - LATIN CAPITAL LETTER I WITH BREVE - LATIN SMALL LETTER I WITH BREVE - LATIN CAPITAL LETTER I WITH OGONEK - LATIN SMALL LETTER I WITH OGONEK - LATIN CAPITAL LETTER I WITH DOT ABOVE - LATIN SMALL LETTER DOTLESS I - LATIN CAPITAL LIGATURE IJ - LATIN SMALL LIGATURE IJ -> LATIN CAPITAL LETTER J WITH CIRCUMFLEX -> LATIN SMALL LETTER J WITH CIRCUMFLEX - LATIN CAPITAL LETTER K WITH CEDILLA - LATIN SMALL LETTER K WITH CEDILLA - LATIN SMALL LETTER KRA (Greenlandic) - LATIN CAPITAL LETTER L WITH ACUTE - LATIN SMALL LETTER L WITH ACUTE - LATIN CAPITAL LETTER L WITH CEDILLA - LATIN SMALL LETTER L WITH CEDILLA - LATIN CAPITAL LETTER L WITH CARON - LATIN SMALL LETTER L WITH CARON - LATIN CAPITAL LETTER L WITH MIDDLE DOT - LATIN SMALL LETTER L WITH MIDDLE DOT - LATIN CAPITAL LETTER L WITH STROKE - LATIN SMALL LETTER L WITH STROKE - LATIN CAPITAL LETTER N WITH ACUTE - LATIN SMALL LETTER N WITH ACUTE - LATIN CAPITAL LETTER N WITH CEDILLA - LATIN SMALL LETTER N WITH CEDILLA - LATIN CAPITAL LETTER N WITH CARON - LATIN SMALL LETTER N WITH CARON -<'n> LATIN SMALL LETTER N PRECEDED BY APOSTROPHE - LATIN CAPITAL LETTER ENG (Sami) - LATIN SMALL LETTER ENG (Sami) - LATIN CAPITAL LETTER O WITH MACRON - LATIN SMALL LETTER O WITH MACRON - LATIN CAPITAL LETTER O WITH BREVE - LATIN SMALL LETTER O WITH BREVE - LATIN CAPITAL LETTER O WITH DOUBLE ACUTE - LATIN SMALL LETTER O WITH DOUBLE ACUTE - LATIN CAPITAL LIGATURE OE - LATIN SMALL LIGATURE OE - LATIN CAPITAL LETTER R WITH ACUTE - LATIN SMALL LETTER R WITH ACUTE - LATIN CAPITAL LETTER R WITH CEDILLA - LATIN SMALL LETTER R WITH CEDILLA - LATIN CAPITAL LETTER R WITH CARON - LATIN SMALL LETTER R WITH CARON - LATIN CAPITAL LETTER S WITH ACUTE - LATIN SMALL LETTER S WITH ACUTE -> LATIN CAPITAL LETTER S WITH CIRCUMFLEX -> LATIN SMALL LETTER S WITH CIRCUMFLEX - LATIN CAPITAL LETTER S WITH CEDILLA - LATIN SMALL LETTER S WITH CEDILLA - LATIN CAPITAL LETTER S WITH CARON - LATIN SMALL LETTER S WITH CARON - LATIN CAPITAL LETTER T WITH CEDILLA - LATIN SMALL LETTER T WITH CEDILLA - LATIN CAPITAL LETTER T WITH CARON - LATIN SMALL LETTER T WITH CARON - LATIN CAPITAL LETTER T WITH STROKE - LATIN SMALL LETTER T WITH STROKE - LATIN CAPITAL LETTER U WITH TILDE - LATIN SMALL LETTER U WITH TILDE - LATIN CAPITAL LETTER U WITH MACRON - LATIN SMALL LETTER U WITH MACRON - LATIN CAPITAL LETTER U WITH BREVE - LATIN SMALL LETTER U WITH BREVE - LATIN CAPITAL LETTER U WITH RING ABOVE - LATIN SMALL LETTER U WITH RING ABOVE - LATIN CAPITAL LETTER U WITH DOUBLE ACUTE - LATIN SMALL LETTER U WITH DOUBLE ACUTE - LATIN CAPITAL LETTER U WITH OGONEK - LATIN SMALL LETTER U WITH OGONEK -> LATIN CAPITAL LETTER W WITH CIRCUMFLEX -> LATIN SMALL LETTER W WITH CIRCUMFLEX -> LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -> LATIN SMALL LETTER Y WITH CIRCUMFLEX - LATIN CAPITAL LETTER Y WITH DIAERESIS - LATIN CAPITAL LETTER Z WITH ACUTE - LATIN SMALL LETTER Z WITH ACUTE - LATIN CAPITAL LETTER Z WITH DOT ABOVE - LATIN SMALL LETTER Z WITH DOT ABOVE - LATIN CAPITAL LETTER Z WITH CARON - LATIN SMALL LETTER Z WITH CARON - LATIN SMALL LETTER LONG S - LATIN SMALL LETTER B WITH STROKE - LATIN CAPITAL LETTER B WITH HOOK - LATIN CAPITAL LETTER C WITH HOOK - LATIN SMALL LETTER C WITH HOOK - LATIN CAPITAL LETTER F WITH HOOK - LATIN SMALL LETTER F WITH HOOK - LATIN CAPITAL LETTER K WITH HOOK - LATIN SMALL LETTER K WITH HOOK - LATIN CAPITAL LETTER O WITH HORN - LATIN SMALL LETTER O WITH HORN - LATIN CAPITAL LETTER OI - LATIN SMALL LETTER OI - LATIN LETTER YR - LATIN CAPITAL LETTER U WITH HORN - LATIN SMALL LETTER U WITH HORN - LATIN CAPITAL LETTER Z WITH STROKE - LATIN SMALL LETTER Z WITH STROKE - LATIN CAPITAL LETTER EZH - LATIN CAPITAL LETTER DZ WITH CARON - LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON - LATIN SMALL LETTER DZ WITH CARON - LATIN CAPITAL LETTER LJ - LATIN CAPITAL LETTER L WITH SMALL LETTER J - LATIN SMALL LETTER LJ - LATIN CAPITAL LETTER NJ - LATIN CAPITAL LETTER N WITH SMALL LETTER J - LATIN SMALL LETTER NJ - LATIN CAPITAL LETTER A WITH CARON - LATIN SMALL LETTER A WITH CARON - LATIN CAPITAL LETTER I WITH CARON - LATIN SMALL LETTER I WITH CARON - LATIN CAPITAL LETTER O WITH CARON - LATIN SMALL LETTER O WITH CARON - LATIN CAPITAL LETTER U WITH CARON - LATIN SMALL LETTER U WITH CARON - LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON - LATIN SMALL LETTER U WITH DIAERESIS AND MACRON - LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE - LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE - LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON - LATIN SMALL LETTER U WITH DIAERESIS AND CARON - LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE - LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE - LATIN SMALL LETTER TURNED E - LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON - LATIN SMALL LETTER A WITH DIAERESIS AND MACRON - LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON - LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON - LATIN CAPITAL LETTER AE WITH MACRON (ash) - LATIN SMALL LETTER AE WITH MACRON (ash) - LATIN CAPITAL LETTER G WITH STROKE - LATIN SMALL LETTER G WITH STROKE - LATIN CAPITAL LETTER G WITH CARON - LATIN SMALL LETTER G WITH CARON - LATIN CAPITAL LETTER K WITH CARON - LATIN SMALL LETTER K WITH CARON - LATIN CAPITAL LETTER O WITH OGONEK - LATIN SMALL LETTER O WITH OGONEK - LATIN CAPITAL LETTER O WITH OGONEK AND MACRON - LATIN SMALL LETTER O WITH OGONEK AND MACRON - LATIN CAPITAL LETTER EZH WITH CARON - LATIN SMALL LETTER EZH WITH CARON - LATIN SMALL LETTER J WITH CARON - LATIN CAPITAL LETTER DZ - LATIN CAPITAL LETTER D WITH SMALL LETTER Z - LATIN SMALL LETTER DZ - LATIN CAPITAL LETTER G WITH ACUTE - LATIN SMALL LETTER G WITH ACUTE - LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE - LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE - LATIN CAPITAL LETTER AE WITH ACUTE (ash) - LATIN SMALL LETTER AE WITH ACUTE (ash) - LATIN CAPITAL LETTER O WITH STROKE AND ACUTE - LATIN SMALL LETTER O WITH STROKE AND ACUTE - LATIN CAPITAL LETTER A WITH DOUBLE GRAVE - LATIN SMALL LETTER A WITH DOUBLE GRAVE - LATIN CAPITAL LETTER A WITH INVERTED BREVE - LATIN SMALL LETTER A WITH INVERTED BREVE - LATIN CAPITAL LETTER E WITH DOUBLE GRAVE - LATIN SMALL LETTER E WITH DOUBLE GRAVE - LATIN CAPITAL LETTER E WITH INVERTED BREVE - LATIN SMALL LETTER E WITH INVERTED BREVE - LATIN CAPITAL LETTER I WITH DOUBLE GRAVE - LATIN SMALL LETTER I WITH DOUBLE GRAVE - LATIN CAPITAL LETTER I WITH INVERTED BREVE - LATIN SMALL LETTER I WITH INVERTED BREVE - LATIN CAPITAL LETTER O WITH DOUBLE GRAVE - LATIN SMALL LETTER O WITH DOUBLE GRAVE - LATIN CAPITAL LETTER O WITH INVERTED BREVE - LATIN SMALL LETTER O WITH INVERTED BREVE - LATIN CAPITAL LETTER R WITH DOUBLE GRAVE - LATIN SMALL LETTER R WITH DOUBLE GRAVE - LATIN CAPITAL LETTER R WITH INVERTED BREVE - LATIN SMALL LETTER R WITH INVERTED BREVE - LATIN CAPITAL LETTER U WITH DOUBLE GRAVE - LATIN SMALL LETTER U WITH DOUBLE GRAVE - LATIN CAPITAL LETTER U WITH INVERTED BREVE - LATIN SMALL LETTER U WITH INVERTED BREVE - LATIN SMALL LETTER R WITH LONG LEG - LATIN SMALL LETTER EZH -<;S> MODIFIER LETTER TURNED COMMA -<1/>> MODIFIER LETTER CIRCUMFLEX ACCENT -<'<> CARON (Mandarin Chinese third tone) -<1-> MODIFIER LETTER MACRON (Mandarin Chinese first tone) -<1!> MODIFIER LETTER GRAVE ACCENT (Mandarin Chinese fourth tone) -<'(> BREVE -<'.> DOT ABOVE (Mandarin Chinese light tone) -<'0> RING ABOVE -<';> OGONEK -<1?> SMALL TILDE -<'"> DOUBLE ACUTE ACCENT -<'G> GREEK NUMERAL SIGN (Dexia keraia) -<,G> GREEK LOWER NUMERAL SIGN (Aristeri keraia) - GREEK YPOGEGRAMMENI - GREEK QUESTION MARK (Erotimatiko) -<'*> GREEK TONOS -<'%> GREEK DIALYTIKA TONOS - GREEK CAPITAL LETTER ALPHA WITH TONOS -<.*> GREEK ANO TELEIA - GREEK CAPITAL LETTER EPSILON WITH TONOS - GREEK CAPITAL LETTER ETA WITH TONOS - GREEK CAPITAL LETTER IOTA WITH TONOS - GREEK CAPITAL LETTER OMICRON WITH TONOS - GREEK CAPITAL LETTER UPSILON WITH TONOS - GREEK CAPITAL LETTER OMEGA WITH TONOS - GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS - GREEK CAPITAL LETTER ALPHA - GREEK CAPITAL LETTER BETA - GREEK CAPITAL LETTER GAMMA - GREEK CAPITAL LETTER DELTA - GREEK CAPITAL LETTER EPSILON - GREEK CAPITAL LETTER ZETA - GREEK CAPITAL LETTER ETA - GREEK CAPITAL LETTER THETA - GREEK CAPITAL LETTER IOTA - GREEK CAPITAL LETTER KAPPA - GREEK CAPITAL LETTER LAMDA - GREEK CAPITAL LETTER MU - GREEK CAPITAL LETTER NU - GREEK CAPITAL LETTER XI - GREEK CAPITAL LETTER OMICRON - GREEK CAPITAL LETTER PI - GREEK CAPITAL LETTER RHO - GREEK CAPITAL LETTER SIGMA - GREEK CAPITAL LETTER TAU - GREEK CAPITAL LETTER UPSILON - GREEK CAPITAL LETTER PHI - GREEK CAPITAL LETTER CHI - GREEK CAPITAL LETTER PSI - GREEK CAPITAL LETTER OMEGA - GREEK CAPITAL LETTER IOTA WITH DIALYTIKA - GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA - GREEK SMALL LETTER ALPHA WITH TONOS - GREEK SMALL LETTER EPSILON WITH TONOS - GREEK SMALL LETTER ETA WITH TONOS - GREEK SMALL LETTER IOTA WITH TONOS - GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS - GREEK SMALL LETTER ALPHA - GREEK SMALL LETTER BETA - GREEK SMALL LETTER GAMMA - GREEK SMALL LETTER DELTA - GREEK SMALL LETTER EPSILON - GREEK SMALL LETTER ZETA - GREEK SMALL LETTER ETA - GREEK SMALL LETTER THETA - GREEK SMALL LETTER IOTA - GREEK SMALL LETTER KAPPA - GREEK SMALL LETTER LAMDA - GREEK SMALL LETTER MU - GREEK SMALL LETTER NU - GREEK SMALL LETTER XI - GREEK SMALL LETTER OMICRON - GREEK SMALL LETTER PI - GREEK SMALL LETTER RHO -<*s> GREEK SMALL LETTER FINAL SIGMA - GREEK SMALL LETTER SIGMA - GREEK SMALL LETTER TAU - GREEK SMALL LETTER UPSILON - GREEK SMALL LETTER PHI - GREEK SMALL LETTER CHI - GREEK SMALL LETTER PSI - GREEK SMALL LETTER OMEGA - GREEK SMALL LETTER IOTA WITH DIALYTIKA - GREEK SMALL LETTER UPSILON WITH DIALYTIKA - GREEK SMALL LETTER OMICRON WITH TONOS - GREEK SMALL LETTER UPSILON WITH TONOS - GREEK SMALL LETTER OMEGA WITH TONOS - GREEK BETA SYMBOL - GREEK LETTER STIGMA - GREEK LETTER DIGAMMA - GREEK LETTER KOPPA - GREEK LETTER SAMPI - CYRILLIC CAPITAL LETTER IO - CYRILLIC CAPITAL LETTER DJE (Serbocroatian) - CYRILLIC CAPITAL LETTER GJE - CYRILLIC CAPITAL LETTER UKRAINIAN IE - CYRILLIC CAPITAL LETTER DZE - CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I - CYRILLIC CAPITAL LETTER YI (Ukrainian) - CYRILLIC CAPITAL LETTER JE - CYRILLIC CAPITAL LETTER LJE - CYRILLIC CAPITAL LETTER NJE - CYRILLIC CAPITAL LETTER TSHE (Serbocroatian) - CYRILLIC CAPITAL LETTER KJE - CYRILLIC CAPITAL LETTER SHORT U (Byelorussian) - CYRILLIC CAPITAL LETTER DZHE - CYRILLIC CAPITAL LETTER A - CYRILLIC CAPITAL LETTER BE - CYRILLIC CAPITAL LETTER VE - CYRILLIC CAPITAL LETTER GHE - CYRILLIC CAPITAL LETTER DE - CYRILLIC CAPITAL LETTER IE - CYRILLIC CAPITAL LETTER ZHE - CYRILLIC CAPITAL LETTER ZE - CYRILLIC CAPITAL LETTER I - CYRILLIC CAPITAL LETTER SHORT I - CYRILLIC CAPITAL LETTER KA - CYRILLIC CAPITAL LETTER EL - CYRILLIC CAPITAL LETTER EM - CYRILLIC CAPITAL LETTER EN - CYRILLIC CAPITAL LETTER O - CYRILLIC CAPITAL LETTER PE - CYRILLIC CAPITAL LETTER ER - CYRILLIC CAPITAL LETTER ES - CYRILLIC CAPITAL LETTER TE - CYRILLIC CAPITAL LETTER U - CYRILLIC CAPITAL LETTER EF - CYRILLIC CAPITAL LETTER HA - CYRILLIC CAPITAL LETTER TSE - CYRILLIC CAPITAL LETTER CHE - CYRILLIC CAPITAL LETTER SHA - CYRILLIC CAPITAL LETTER SHCHA -<="> CYRILLIC CAPITAL LETTER HARD SIGN - CYRILLIC CAPITAL LETTER YERU -<%"> CYRILLIC CAPITAL LETTER SOFT SIGN - CYRILLIC CAPITAL LETTER E - CYRILLIC CAPITAL LETTER YU - CYRILLIC CAPITAL LETTER YA - CYRILLIC SMALL LETTER A - CYRILLIC SMALL LETTER BE - CYRILLIC SMALL LETTER VE - CYRILLIC SMALL LETTER GHE - CYRILLIC SMALL LETTER DE - CYRILLIC SMALL LETTER IE - CYRILLIC SMALL LETTER ZHE - CYRILLIC SMALL LETTER ZE - CYRILLIC SMALL LETTER I - CYRILLIC SMALL LETTER SHORT I - CYRILLIC SMALL LETTER KA - CYRILLIC SMALL LETTER EL - CYRILLIC SMALL LETTER EM - CYRILLIC SMALL LETTER EN - CYRILLIC SMALL LETTER O - CYRILLIC SMALL LETTER PE - CYRILLIC SMALL LETTER ER - CYRILLIC SMALL LETTER ES - CYRILLIC SMALL LETTER TE - CYRILLIC SMALL LETTER U - CYRILLIC SMALL LETTER EF - CYRILLIC SMALL LETTER HA - CYRILLIC SMALL LETTER TSE - CYRILLIC SMALL LETTER CHE - CYRILLIC SMALL LETTER SHA - CYRILLIC SMALL LETTER SHCHA -<='> CYRILLIC SMALL LETTER HARD SIGN - CYRILLIC SMALL LETTER YERU -<%'> CYRILLIC SMALL LETTER SOFT SIGN - CYRILLIC SMALL LETTER E - CYRILLIC SMALL LETTER YU - CYRILLIC SMALL LETTER YA - CYRILLIC SMALL LETTER IO - CYRILLIC SMALL LETTER DJE (Serbocroatian) - CYRILLIC SMALL LETTER GJE - CYRILLIC SMALL LETTER UKRAINIAN IE - CYRILLIC SMALL LETTER DZE - CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - CYRILLIC SMALL LETTER YI (Ukrainian) - CYRILLIC SMALL LETTER JE - CYRILLIC SMALL LETTER LJE - CYRILLIC SMALL LETTER NJE - CYRILLIC SMALL LETTER TSHE (Serbocroatian) - CYRILLIC SMALL LETTER KJE - CYRILLIC SMALL LETTER SHORT U (Byelorussian) - CYRILLIC SMALL LETTER DZHE - CYRILLIC CAPITAL LETTER YAT - CYRILLIC SMALL LETTER YAT - CYRILLIC CAPITAL LETTER BIG YUS - CYRILLIC SMALL LETTER BIG YUS - CYRILLIC CAPITAL LETTER FITA - CYRILLIC SMALL LETTER FITA - CYRILLIC CAPITAL LETTER IZHITSA - CYRILLIC SMALL LETTER IZHITSA - CYRILLIC CAPITAL LETTER KOPPA - CYRILLIC SMALL LETTER KOPPA - CYRILLIC CAPITAL LETTER GHE WITH UPTURN - CYRILLIC SMALL LETTER GHE WITH UPTURN - HEBREW LETTER ALEF - HEBREW LETTER BET - HEBREW LETTER GIMEL - HEBREW LETTER DALET - HEBREW LETTER HE - HEBREW LETTER VAV - HEBREW LETTER ZAYIN - HEBREW LETTER HET - HEBREW LETTER TET - HEBREW LETTER YOD - HEBREW LETTER FINAL KAF - HEBREW LETTER KAF - HEBREW LETTER LAMED - HEBREW LETTER FINAL MEM - HEBREW LETTER MEM - HEBREW LETTER FINAL NUN - HEBREW LETTER NUN - HEBREW LETTER SAMEKH - HEBREW LETTER AYIN - HEBREW LETTER FINAL PE - HEBREW LETTER PE - HEBREW LETTER FINAL TSADI - HEBREW LETTER TSADI - HEBREW LETTER QOF - HEBREW LETTER RESH - HEBREW LETTER SHIN - HEBREW LETTER TAV -<,+> ARABIC COMMA -<;+> ARABIC SEMICOLON - ARABIC QUESTION MARK - ARABIC LETTER HAMZA - ARABIC LETTER ALEF WITH MADDA ABOVE - ARABIC LETTER ALEF WITH HAMZA ABOVE - ARABIC LETTER WAW WITH HAMZA ABOVE - ARABIC LETTER ALEF WITH HAMZA BELOW - ARABIC LETTER YEH WITH HAMZA ABOVE - ARABIC LETTER ALEF - ARABIC LETTER BEH - ARABIC LETTER TEH MARBUTA - ARABIC LETTER TEH - ARABIC LETTER THEH - ARABIC LETTER JEEM - ARABIC LETTER HAH - ARABIC LETTER KHAH - ARABIC LETTER DAL - ARABIC LETTER THAL - ARABIC LETTER REH - ARABIC LETTER ZAIN - ARABIC LETTER SEEN - ARABIC LETTER SHEEN - ARABIC LETTER SAD -

LATIN CAPITAL LETTER P - LATIN CAPITAL LETTER Q - LATIN CAPITAL LETTER R - LATIN CAPITAL LETTER S - LATIN CAPITAL LETTER T - LATIN CAPITAL LETTER U - LATIN CAPITAL LETTER V - LATIN CAPITAL LETTER W - LATIN CAPITAL LETTER X - LATIN CAPITAL LETTER Y - LATIN CAPITAL LETTER Z -<<(> LEFT SQUARE BRACKET - REVERSE SOLIDUS -<)/>> RIGHT SQUARE BRACKET -<'/>> CIRCUMFLEX ACCENT -<_> LOW LINE -<'!> GRAVE ACCENT - LATIN SMALL LETTER A - LATIN SMALL LETTER B - LATIN SMALL LETTER C - LATIN SMALL LETTER D - LATIN SMALL LETTER E - LATIN SMALL LETTER F - LATIN SMALL LETTER G - LATIN SMALL LETTER H - LATIN SMALL LETTER I - LATIN SMALL LETTER J - LATIN SMALL LETTER K - LATIN SMALL LETTER L - LATIN SMALL LETTER M - LATIN SMALL LETTER N - LATIN SMALL LETTER O -

ARABIC LETTER DAD - ARABIC LETTER TAH - ARABIC LETTER ZAH - ARABIC LETTER AIN - ARABIC LETTER GHAIN -<++> ARABIC TATWEEL - ARABIC LETTER FEH - ARABIC LETTER QAF - ARABIC LETTER KAF - ARABIC LETTER LAM - ARABIC LETTER MEEM - ARABIC LETTER NOON - ARABIC LETTER HEH - ARABIC LETTER WAW - ARABIC LETTER ALEF MAKSURA - ARABIC LETTER YEH -<:+> ARABIC FATHATAN -<"+> ARABIC DAMMATAN -<=+> ARABIC KASRATAN - ARABIC FATHA -<'+> ARABIC DAMMA -<1+> ARABIC KASRA -<3+> ARABIC SHADDA -<0+> ARABIC SUKUN -<0a> ARABIC-INDIC DIGIT ZERO -<1a> ARABIC-INDIC DIGIT ONE -<2a> ARABIC-INDIC DIGIT TWO -<3a> ARABIC-INDIC DIGIT THREE -<4a> ARABIC-INDIC DIGIT FOUR -<5a> ARABIC-INDIC DIGIT FIVE -<6a> ARABIC-INDIC DIGIT SIX -<7a> ARABIC-INDIC DIGIT SEVEN -<8a> ARABIC-INDIC DIGIT EIGHT -<9a> ARABIC-INDIC DIGIT NINE - ARABIC LETTER SUPERSCRIPT ALEF - ARABIC LETTER PEH - ARABIC LETTER HAH WITH HAMZA ABOVE - ARABIC LETTER TCHEH - ARABIC LETTER JEH - ARABIC LETTER VEH - ARABIC LETTER GAF - LATIN CAPITAL LETTER A WITH RING BELOW - LATIN SMALL LETTER A WITH RING BELOW - LATIN CAPITAL LETTER B WITH DOT ABOVE - LATIN SMALL LETTER B WITH DOT ABOVE - LATIN CAPITAL LETTER B WITH DOT BELOW - LATIN SMALL LETTER B WITH DOT BELOW - LATIN CAPITAL LETTER B WITH LINE BELOW - LATIN SMALL LETTER B WITH LINE BELOW - LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE - LATIN SMALL LETTER C WITH CEDILLA AND ACUTE - LATIN CAPITAL LETTER D WITH DOT ABOVE - LATIN SMALL LETTER D WITH DOT ABOVE - LATIN CAPITAL LETTER D WITH DOT BELOW - LATIN SMALL LETTER D WITH DOT BELOW - LATIN CAPITAL LETTER D WITH LINE BELOW - LATIN SMALL LETTER D WITH LINE BELOW - LATIN CAPITAL LETTER D WITH CEDILLA - LATIN SMALL LETTER D WITH CEDILLA -> LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW -> LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW - LATIN CAPITAL LETTER E WITH MACRON AND GRAVE - LATIN SMALL LETTER E WITH MACRON AND GRAVE - LATIN CAPITAL LETTER E WITH MACRON AND ACUTE - LATIN SMALL LETTER E WITH MACRON AND ACUTE -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW -> LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW - LATIN CAPITAL LETTER E WITH TILDE BELOW - LATIN SMALL LETTER E WITH TILDE BELOW - LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE - LATIN SMALL LETTER E WITH CEDILLA AND BREVE - LATIN CAPITAL LETTER F WITH DOT ABOVE - LATIN SMALL LETTER F WITH DOT ABOVE - LATIN CAPITAL LETTER G WITH MACRON - LATIN SMALL LETTER G WITH MACRON - LATIN CAPITAL LETTER H WITH DOT ABOVE - LATIN SMALL LETTER H WITH DOT ABOVE - LATIN CAPITAL LETTER H WITH DOT BELOW - LATIN SMALL LETTER H WITH DOT BELOW - LATIN CAPITAL LETTER H WITH DIAERESIS - LATIN SMALL LETTER H WITH DIAERESIS - LATIN CAPITAL LETTER H WITH CEDILLA - LATIN SMALL LETTER H WITH CEDILLA - LATIN CAPITAL LETTER H WITH BREVE BELOW - LATIN SMALL LETTER H WITH BREVE BELOW - LATIN CAPITAL LETTER I WITH TILDE BELOW - LATIN SMALL LETTER I WITH TILDE BELOW - LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE - LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE - LATIN CAPITAL LETTER K WITH ACUTE - LATIN SMALL LETTER K WITH ACUTE - LATIN CAPITAL LETTER K WITH DOT BELOW - LATIN SMALL LETTER K WITH DOT BELOW - LATIN CAPITAL LETTER K WITH LINE BELOW - LATIN SMALL LETTER K WITH LINE BELOW - LATIN CAPITAL LETTER L WITH DOT BELOW - LATIN SMALL LETTER L WITH DOT BELOW - LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON - LATIN SMALL LETTER L WITH DOT BELOW AND MACRON - LATIN CAPITAL LETTER L WITH LINE BELOW - LATIN SMALL LETTER L WITH LINE BELOW -> LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW -> LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW - LATIN CAPITAL LETTER M WITH ACUTE - LATIN SMALL LETTER M WITH ACUTE - LATIN CAPITAL LETTER M WITH DOT ABOVE - LATIN SMALL LETTER M WITH DOT ABOVE - LATIN CAPITAL LETTER M WITH DOT BELOW - LATIN SMALL LETTER M WITH DOT BELOW - LATIN CAPITAL LETTER N WITH DOT ABOVE - LATIN SMALL LETTER N WITH DOT ABOVE - LATIN CAPITAL LETTER N WITH DOT BELOW - LATIN SMALL LETTER N WITH DOT BELOW - LATIN CAPITAL LETTER N WITH LINE BELOW - LATIN SMALL LETTER N WITH LINE BELOW -> LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW -> LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW - LATIN CAPITAL LETTER O WITH TILDE AND ACUTE - LATIN SMALL LETTER O WITH TILDE AND ACUTE - LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS - LATIN SMALL LETTER O WITH TILDE AND DIAERESIS - LATIN CAPITAL LETTER O WITH MACRON AND GRAVE - LATIN SMALL LETTER O WITH MACRON AND GRAVE - LATIN CAPITAL LETTER O WITH MACRON AND ACUTE - LATIN SMALL LETTER O WITH MACRON AND ACUTE - LATIN CAPITAL LETTER P WITH ACUTE - LATIN SMALL LETTER P WITH ACUTE - LATIN CAPITAL LETTER P WITH DOT ABOVE - LATIN SMALL LETTER P WITH DOT ABOVE - LATIN CAPITAL LETTER R WITH DOT ABOVE - LATIN SMALL LETTER R WITH DOT ABOVE - LATIN CAPITAL LETTER R WITH DOT BELOW - LATIN SMALL LETTER R WITH DOT BELOW - LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON - LATIN SMALL LETTER R WITH DOT BELOW AND MACRON - LATIN CAPITAL LETTER R WITH LINE BELOW - LATIN SMALL LETTER R WITH LINE BELOW - LATIN CAPITAL LETTER S WITH DOT ABOVE - LATIN SMALL LETTER S WITH DOT ABOVE - LATIN CAPITAL LETTER S WITH DOT BELOW - LATIN SMALL LETTER S WITH DOT BELOW - LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE - LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE - LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE - LATIN SMALL LETTER S WITH CARON AND DOT ABOVE - LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE - LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE - LATIN CAPITAL LETTER T WITH DOT ABOVE - LATIN SMALL LETTER T WITH DOT ABOVE - LATIN CAPITAL LETTER T WITH DOT BELOW - LATIN SMALL LETTER T WITH DOT BELOW - LATIN CAPITAL LETTER T WITH LINE BELOW - LATIN SMALL LETTER T WITH LINE BELOW -> LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW -> LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW - LATIN CAPITAL LETTER U WITH DIAERESIS BELOW - LATIN SMALL LETTER U WITH DIAERESIS BELOW - LATIN CAPITAL LETTER U WITH TILDE BELOW - LATIN SMALL LETTER U WITH TILDE BELOW -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW -> LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW - LATIN CAPITAL LETTER U WITH TILDE AND ACUTE - LATIN SMALL LETTER U WITH TILDE AND ACUTE - LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS - LATIN SMALL LETTER U WITH MACRON AND DIAERESIS - LATIN CAPITAL LETTER V WITH TILDE - LATIN SMALL LETTER V WITH TILDE - LATIN CAPITAL LETTER V WITH DOT BELOW - LATIN SMALL LETTER V WITH DOT BELOW - LATIN CAPITAL LETTER W WITH GRAVE - LATIN SMALL LETTER W WITH GRAVE - LATIN CAPITAL LETTER W WITH ACUTE - LATIN SMALL LETTER W WITH ACUTE - LATIN CAPITAL LETTER W WITH DIAERESIS - LATIN SMALL LETTER W WITH DIAERESIS - LATIN CAPITAL LETTER W WITH DOT ABOVE - LATIN SMALL LETTER W WITH DOT ABOVE - LATIN CAPITAL LETTER W WITH DOT BELOW - LATIN SMALL LETTER W WITH DOT BELOW - LATIN CAPITAL LETTER X WITH DOT ABOVE - LATIN SMALL LETTER X WITH DOT ABOVE - LATIN CAPITAL LETTER X WITH DIAERESIS - LATIN SMALL LETTER X WITH DIAERESIS - LATIN CAPITAL LETTER Y WITH DOT ABOVE - LATIN SMALL LETTER Y WITH DOT ABOVE -> LATIN CAPITAL LETTER Z WITH CIRCUMFLEX -> LATIN SMALL LETTER Z WITH CIRCUMFLEX - LATIN CAPITAL LETTER Z WITH DOT BELOW - LATIN SMALL LETTER Z WITH DOT BELOW - LATIN CAPITAL LETTER Z WITH LINE BELOW - LATIN SMALL LETTER Z WITH LINE BELOW - LATIN CAPITAL LETTER A WITH DOT BELOW - LATIN SMALL LETTER A WITH DOT BELOW - LATIN CAPITAL LETTER A WITH HOOK ABOVE - LATIN SMALL LETTER A WITH HOOK ABOVE -'> LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE -'> LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE -!> LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE -!> LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE -2> LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE -2> LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE -?> LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE -?> LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE --.> LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW --.> LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW - LATIN CAPITAL LETTER A WITH BREVE AND ACUTE - LATIN SMALL LETTER A WITH BREVE AND ACUTE - LATIN CAPITAL LETTER A WITH BREVE AND GRAVE - LATIN SMALL LETTER A WITH BREVE AND GRAVE - LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE - LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE - LATIN CAPITAL LETTER A WITH BREVE AND TILDE - LATIN SMALL LETTER A WITH BREVE AND TILDE - LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW - LATIN SMALL LETTER A WITH BREVE AND DOT BELOW - LATIN CAPITAL LETTER E WITH DOT BELOW - LATIN SMALL LETTER E WITH DOT BELOW - LATIN CAPITAL LETTER E WITH HOOK ABOVE - LATIN SMALL LETTER E WITH HOOK ABOVE - LATIN CAPITAL LETTER E WITH TILDE - LATIN SMALL LETTER E WITH TILDE -'> LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE -'> LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE -!> LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE -!> LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE -2> LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE -2> LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE -?> LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE -?> LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE --.> LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW --.> LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW - LATIN CAPITAL LETTER I WITH HOOK ABOVE - LATIN SMALL LETTER I WITH HOOK ABOVE - LATIN CAPITAL LETTER I WITH DOT BELOW - LATIN SMALL LETTER I WITH DOT BELOW - LATIN CAPITAL LETTER O WITH DOT BELOW - LATIN SMALL LETTER O WITH DOT BELOW - LATIN CAPITAL LETTER O WITH HOOK ABOVE - LATIN SMALL LETTER O WITH HOOK ABOVE -'> LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE -'> LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE -!> LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE -!> LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE -2> LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE -2> LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE -?> LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE -?> LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE --.> LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW --.> LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW - LATIN CAPITAL LETTER O WITH HORN AND ACUTE - LATIN SMALL LETTER O WITH HORN AND ACUTE - LATIN CAPITAL LETTER O WITH HORN AND GRAVE - LATIN SMALL LETTER O WITH HORN AND GRAVE - LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE - LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE - LATIN CAPITAL LETTER O WITH HORN AND TILDE - LATIN SMALL LETTER O WITH HORN AND TILDE - LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW - LATIN SMALL LETTER O WITH HORN AND DOT BELOW - LATIN CAPITAL LETTER U WITH DOT BELOW - LATIN SMALL LETTER U WITH DOT BELOW - LATIN CAPITAL LETTER U WITH HOOK ABOVE - LATIN SMALL LETTER U WITH HOOK ABOVE - LATIN CAPITAL LETTER U WITH HORN AND ACUTE - LATIN SMALL LETTER U WITH HORN AND ACUTE - LATIN CAPITAL LETTER U WITH HORN AND GRAVE - LATIN SMALL LETTER U WITH HORN AND GRAVE - LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE - LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE - LATIN CAPITAL LETTER U WITH HORN AND TILDE - LATIN SMALL LETTER U WITH HORN AND TILDE - LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW - LATIN SMALL LETTER U WITH HORN AND DOT BELOW - LATIN CAPITAL LETTER Y WITH GRAVE - LATIN SMALL LETTER Y WITH GRAVE - LATIN CAPITAL LETTER Y WITH DOT BELOW - LATIN SMALL LETTER Y WITH DOT BELOW - LATIN CAPITAL LETTER Y WITH HOOK ABOVE - LATIN SMALL LETTER Y WITH HOOK ABOVE - LATIN CAPITAL LETTER Y WITH TILDE - LATIN SMALL LETTER Y WITH TILDE - GREEK SMALL LETTER ALPHA WITH PSILI - GREEK SMALL LETTER ALPHA WITH DASIA - GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA - GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA - GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA - GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA - GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI - GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI - GREEK CAPITAL LETTER ALPHA WITH PSILI - GREEK CAPITAL LETTER ALPHA WITH DASIA - GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA - GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA - GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA - GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA - GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI - GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI - GREEK SMALL LETTER EPSILON WITH PSILI - GREEK SMALL LETTER EPSILON WITH DASIA - GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA - GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA - GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA - GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA - GREEK CAPITAL LETTER EPSILON WITH PSILI - GREEK CAPITAL LETTER EPSILON WITH DASIA - GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA - GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA - GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA - GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA - GREEK SMALL LETTER ETA WITH PSILI - GREEK SMALL LETTER ETA WITH DASIA - GREEK SMALL LETTER ETA WITH PSILI AND VARIA - GREEK SMALL LETTER ETA WITH DASIA AND VARIA - GREEK SMALL LETTER ETA WITH PSILI AND OXIA - GREEK SMALL LETTER ETA WITH DASIA AND OXIA - GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI - GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI - GREEK CAPITAL LETTER ETA WITH PSILI - GREEK CAPITAL LETTER ETA WITH DASIA - GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA - GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA - GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA - GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA - GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI - GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI - GREEK SMALL LETTER IOTA WITH PSILI - GREEK SMALL LETTER IOTA WITH DASIA - GREEK SMALL LETTER IOTA WITH PSILI AND VARIA - GREEK SMALL LETTER IOTA WITH DASIA AND VARIA - GREEK SMALL LETTER IOTA WITH PSILI AND OXIA - GREEK SMALL LETTER IOTA WITH DASIA AND OXIA - GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI - GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI - GREEK CAPITAL LETTER IOTA WITH PSILI - GREEK CAPITAL LETTER IOTA WITH DASIA - GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA - GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA - GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA - GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA - GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI - GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI - GREEK SMALL LETTER OMICRON WITH PSILI - GREEK SMALL LETTER OMICRON WITH DASIA - GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA - GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA - GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA - GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA - GREEK CAPITAL LETTER OMICRON WITH PSILI - GREEK CAPITAL LETTER OMICRON WITH DASIA - GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA - GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA - GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA - GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA - GREEK SMALL LETTER UPSILON WITH PSILI - GREEK SMALL LETTER UPSILON WITH DASIA - GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA - GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA - GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA - GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA - GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI - GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI - GREEK CAPITAL LETTER UPSILON WITH DASIA - GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA - GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA - GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI - GREEK SMALL LETTER OMEGA WITH PSILI - GREEK SMALL LETTER OMEGA WITH DASIA - GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA - GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA - GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA - GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA - GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI - GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI - GREEK CAPITAL LETTER OMEGA WITH PSILI - GREEK CAPITAL LETTER OMEGA WITH DASIA - GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA - GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA - GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA - GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA - GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI - GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI - GREEK SMALL LETTER ALPHA WITH VARIA - GREEK SMALL LETTER ALPHA WITH OXIA - GREEK SMALL LETTER EPSILON WITH VARIA - GREEK SMALL LETTER EPSILON WITH OXIA - GREEK SMALL LETTER ETA WITH VARIA - GREEK SMALL LETTER ETA WITH OXIA - GREEK SMALL LETTER IOTA WITH VARIA - GREEK SMALL LETTER IOTA WITH OXIA - GREEK SMALL LETTER OMICRON WITH VARIA - GREEK SMALL LETTER OMICRON WITH OXIA - GREEK SMALL LETTER UPSILON WITH VARIA - GREEK SMALL LETTER UPSILON WITH OXIA - GREEK SMALL LETTER OMEGA WITH VARIA - GREEK SMALL LETTER OMEGA WITH OXIA - GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI - GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI - GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI - GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI - GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI - GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI - GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI - GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI - GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI - GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI - GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI - GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI - GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI - GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI - GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI - GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI - GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI - GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI - GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI - GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI - GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI - GREEK SMALL LETTER ALPHA WITH VRACHY - GREEK SMALL LETTER ALPHA WITH MACRON - GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI - GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ALPHA WITH PERISPOMENI - GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI - GREEK CAPITAL LETTER ALPHA WITH VRACHY - GREEK CAPITAL LETTER ALPHA WITH MACRON - GREEK CAPITAL LETTER ALPHA WITH VARIA - GREEK CAPITAL LETTER ALPHA WITH OXIA - GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI -<)*> GREEK KORONIS - GREEK PROSGEGRAMMENI -<,,> GREEK PSILI - GREEK PERISPOMENI - GREEK DIALYTIKA AND PERISPOMENI - GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI - GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI - GREEK SMALL LETTER ETA WITH PERISPOMENI - GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI - GREEK CAPITAL LETTER EPSILON WITH VARIA - GREEK CAPITAL LETTER EPSILON WITH OXIA - GREEK CAPITAL LETTER ETA WITH VARIA - GREEK CAPITAL LETTER ETA WITH OXIA - GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI -<,!> GREEK PSILI AND VARIA -<,'> GREEK PSILI AND OXIA - GREEK PSILI AND PERISPOMENI - GREEK SMALL LETTER IOTA WITH VRACHY - GREEK SMALL LETTER IOTA WITH MACRON - GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA - GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA - GREEK SMALL LETTER IOTA WITH PERISPOMENI - GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI - GREEK CAPITAL LETTER IOTA WITH VRACHY - GREEK CAPITAL LETTER IOTA WITH MACRON - GREEK CAPITAL LETTER IOTA WITH VARIA - GREEK CAPITAL LETTER IOTA WITH OXIA -<;!> GREEK DASIA AND VARIA -<;'> GREEK DASIA AND OXIA - GREEK DASIA AND PERISPOMENI - GREEK SMALL LETTER UPSILON WITH VRACHY - GREEK SMALL LETTER UPSILON WITH MACRON - GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA - GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA - GREEK SMALL LETTER RHO WITH PSILI - GREEK SMALL LETTER RHO WITH DASIA - GREEK SMALL LETTER UPSILON WITH PERISPOMENI - GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI - GREEK CAPITAL LETTER UPSILON WITH VRACHY - GREEK CAPITAL LETTER UPSILON WITH MACRON - GREEK CAPITAL LETTER UPSILON WITH VARIA - GREEK CAPITAL LETTER UPSILON WITH OXIA - GREEK CAPITAL LETTER RHO WITH DASIA - GREEK DIALYTIKA AND VARIA -<:'> GREEK DIALYTIKA AND OXIA - GREEK VARIA - GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI - GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI - GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI - GREEK SMALL LETTER OMEGA WITH PERISPOMENI - GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI - GREEK CAPITAL LETTER OMICRON WITH VARIA - GREEK CAPITAL LETTER OMICRON WITH OXIA - GREEK CAPITAL LETTER OMEGA WITH VARIA - GREEK CAPITAL LETTER OMEGA WITH OXIA - GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI - GREEK OXIA -<;;> GREEK DASIA -<1N> EN SPACE -<1M> EM SPACE -<3M> THREE-PER-EM SPACE -<4M> FOUR-PER-EM SPACE -<6M> SIX-PER-EM SPACE - LEFT-TO-RIGHT MARK - RIGHT-TO-LEFT MARK -<1T> THIN SPACE -<1H> HAIR SPACE -<-1> HYPHEN -<-N> EN DASH -<-M> EM DASH -<-3> HORIZONTAL BAR - DOUBLE VERTICAL LINE -<=2> DOUBLE LOW LINE -<'6> LEFT SINGLE QUOTATION MARK -<'9> RIGHT SINGLE QUOTATION MARK -<.9> SINGLE LOW-9 QUOTATION MARK -<9'> SINGLE HIGH-REVERSED-9 QUOTATION MARK -<"6> LEFT DOUBLE QUOTATION MARK -<"9> RIGHT DOUBLE QUOTATION MARK -<:9> DOUBLE LOW-9 QUOTATION MARK -<9"> DOUBLE HIGH-REVERSED-9 QUOTATION MARK - DAGGER - DOUBLE DAGGER - BULLET -<3b> TRIANGULAR BULLET -<..> TWO DOT LEADER -<.3> HORIZONTAL ELLIPSIS -<.-> HYPHENATION POINT - LINE SEPARATOR - PARAGRAPH SEPARATOR -<%0> PER MILLE SIGN -<1'> PRIME -<2'> DOUBLE PRIME -<3'> TRIPLE PRIME -<1"> REVERSED PRIME -<2"> REVERSED DOUBLE PRIME -<3"> REVERSED TRIPLE PRIME - CARET -<<1> SINGLE LEFT-POINTING ANGLE QUOTATION MARK -1> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK -<:X> REFERENCE MARK - DOUBLE EXCLAMATION MARK -<'-> OVERLINE -<-b> HYPHEN BULLET - FRACTION SLASH -<0S> SUPERSCRIPT ZERO -<4S> SUPERSCRIPT FOUR -<5S> SUPERSCRIPT FIVE -<6S> SUPERSCRIPT SIX -<7S> SUPERSCRIPT SEVEN -<8S> SUPERSCRIPT EIGHT -<9S> SUPERSCRIPT NINE -<+S> SUPERSCRIPT PLUS SIGN -<-S> SUPERSCRIPT MINUS -<=S> SUPERSCRIPT EQUALS SIGN -<(S> SUPERSCRIPT LEFT PARENTHESIS -<)S> SUPERSCRIPT RIGHT PARENTHESIS - SUPERSCRIPT LATIN SMALL LETTER N -<0s> SUBSCRIPT ZERO -<1s> SUBSCRIPT ONE -<2s> SUBSCRIPT TWO -<3s> SUBSCRIPT THREE -<4s> SUBSCRIPT FOUR -<5s> SUBSCRIPT FIVE -<6s> SUBSCRIPT SIX -<7s> SUBSCRIPT SEVEN -<8s> SUBSCRIPT EIGHT -<9s> SUBSCRIPT NINE -<+s> SUBSCRIPT PLUS SIGN -<-s> SUBSCRIPT MINUS -<=s> SUBSCRIPT EQUALS SIGN -<(s> SUBSCRIPT LEFT PARENTHESIS -<)s> SUBSCRIPT RIGHT PARENTHESIS - FRENCH FRANC SIGN -
  • LIRA SIGN - PESETA SIGN - WON SIGN -<"7> COMBINING RIGHT HARPOON ABOVE - DEGREE CELSIUS - CARE OF - DEGREE FAHRENHEIT - NUMERO SIGN - SOUND RECORDING COPYRIGHT - PRESCRIPTION TAKE - SERVICE MARK - TRADE MARK SIGN - OHM SIGN - ANGSTROM SIGN - ESTIMATED SYMBOL -<13> VULGAR FRACTION ONE THIRD -<23> VULGAR FRACTION TWO THIRDS -<15> VULGAR FRACTION ONE FIFTH -<25> VULGAR FRACTION TWO FIFTHS -<35> VULGAR FRACTION THREE FIFTHS -<45> VULGAR FRACTION FOUR FIFTHS -<16> VULGAR FRACTION ONE SIXTH -<56> VULGAR FRACTION FIVE SIXTHS -<18> VULGAR FRACTION ONE EIGHTH -<38> VULGAR FRACTION THREE EIGHTHS -<58> VULGAR FRACTION FIVE EIGHTHS -<78> VULGAR FRACTION SEVEN EIGHTHS -<1R> ROMAN NUMERAL ONE -<2R> ROMAN NUMERAL TWO -<3R> ROMAN NUMERAL THREE -<4R> ROMAN NUMERAL FOUR -<5R> ROMAN NUMERAL FIVE -<6R> ROMAN NUMERAL SIX -<7R> ROMAN NUMERAL SEVEN -<8R> ROMAN NUMERAL EIGHT -<9R> ROMAN NUMERAL NINE - ROMAN NUMERAL TEN -
    ROMAN NUMERAL ELEVEN - ROMAN NUMERAL TWELVE -<50R> ROMAN NUMERAL FIFTY -<100R> ROMAN NUMERAL ONE HUNDRED -<500R> ROMAN NUMERAL FIVE HUNDRED -<1000R> ROMAN NUMERAL ONE THOUSAND -<1r> SMALL ROMAN NUMERAL ONE -<2r> SMALL ROMAN NUMERAL TWO -<3r> SMALL ROMAN NUMERAL THREE -<4r> SMALL ROMAN NUMERAL FOUR -<5r> SMALL ROMAN NUMERAL FIVE -<6r> SMALL ROMAN NUMERAL SIX -<7r> SMALL ROMAN NUMERAL SEVEN -<8r> SMALL ROMAN NUMERAL EIGHT -<9r> SMALL ROMAN NUMERAL NINE - SMALL ROMAN NUMERAL TEN -
    SMALL ROMAN NUMERAL ELEVEN - SMALL ROMAN NUMERAL TWELVE -<50r> SMALL ROMAN NUMERAL FIFTY -<100r> SMALL ROMAN NUMERAL ONE HUNDRED -<500r> SMALL ROMAN NUMERAL FIVE HUNDRED -<1000r> SMALL ROMAN NUMERAL ONE THOUSAND -<1000RCD> ROMAN NUMERAL ONE THOUSAND C D -<5000R> ROMAN NUMERAL FIVE THOUSAND -<10000R> ROMAN NUMERAL TEN THOUSAND -<<-> LEFTWARDS ARROW -<-!> UPWARDS ARROW -<-/>> RIGHTWARDS ARROW -<-v> DOWNWARDS ARROW -<> LEFT RIGHT ARROW - UP DOWN ARROW -< NORTH WEST ARROW -> NORTH EAST ARROW -> SOUTH EAST ARROW -< SOUTH WEST ARROW - UP DOWN ARROW WITH BASE -V> RIGHTWARDS HARPOON WITH BARB UPWARDS -<<=> LEFTWARDS DOUBLE ARROW -<=/>> RIGHTWARDS DOUBLE ARROW -<==> LEFT RIGHT DOUBLE ARROW - FOR ALL - PARTIAL DIFFERENTIAL - THERE EXISTS - EMPTY SET - INCREMENT - NABLA -<(-> ELEMENT OF -<-)> CONTAINS AS MEMBER - END OF PROOF -<*P> N-ARY PRODUCT -<+Z> N-ARY SUMMATION -<-2> MINUS SIGN -<-+> MINUS-OR-PLUS SIGN -<.+> DOT PLUS -<*-> ASTERISK OPERATOR - RING OPERATOR - BULLET OPERATOR - SQUARE ROOT -<0(> PROPORTIONAL TO -<00> INFINITY -<-L> RIGHT ANGLE -<-V> ANGLE - PARALLEL TO - LOGICAL AND - LOGICAL OR -<(U> INTERSECTION -<)U> UNION - INTEGRAL - DOUBLE INTEGRAL - CONTOUR INTEGRAL -<.:> THEREFORE -<:.> BECAUSE -<:R> RATIO -<::> PROPORTION - TILDE OPERATOR - INVERTED LAZY S - ASYMPTOTICALLY EQUAL TO - APPROXIMATELY EQUAL TO - ALMOST EQUAL TO -<=?> ALL EQUAL TO - IMAGE OF OR APPROXIMATELY EQUAL TO - NOT EQUAL TO -<=3> IDENTICAL TO -<=<> LESS-THAN OR EQUAL TO -=> GREATER-THAN OR EQUAL TO -<<*> MUCH LESS-THAN -<*/>> MUCH GREATER-THAN - NOT LESS-THAN -> NOT GREATER-THAN -<(C> SUBSET OF -<)C> SUPERSET OF -<(_> SUBSET OF OR EQUAL TO -<)_> SUPERSET OF OR EQUAL TO -<0.> CIRCLED DOT OPERATOR -<02> CIRCLED RING OPERATOR -<-T> UP TACK -<.P> DOT OPERATOR -<:3> VERTICAL ELLIPSIS - HOUSE -<<7> LEFT CEILING -7> RIGHT CEILING -<7<> LEFT FLOOR -<7/>> RIGHT FLOOR - REVERSED NOT SIGN -<(A> ARC - TELEPHONE RECORDER -<88> PLACE OF INTEREST SIGN - TOP HALF INTEGRAL - BOTTOM HALF INTEGRAL -< LEFT-POINTING ANGLE BRACKET -> RIGHT-POINTING ANGLE BRACKET - OPEN BOX -<1h> OCR HOOK -<3h> OCR CHAIR -<2h> OCR FORK -<4h> OCR INVERTED FORK -<1j> OCR BRANCH BANK IDENTIFICATION -<2j> OCR AMOUNT OF CHECK -<3j> OCR DASH -<4j> OCR CUSTOMER ACCOUNT NUMBER -<1-o> CIRCLED DIGIT ONE -<2-o> CIRCLED DIGIT TWO -<3-o> CIRCLED DIGIT THREE -<4-o> CIRCLED DIGIT FOUR -<5-o> CIRCLED DIGIT FIVE -<6-o> CIRCLED DIGIT SIX -<7-o> CIRCLED DIGIT SEVEN -<8-o> CIRCLED DIGIT EIGHT -<9-o> CIRCLED DIGIT NINE -<10-o> CIRCLED NUMBER TEN -<11-o> CIRCLED NUMBER ELEVEN -<12-o> CIRCLED NUMBER TWELVE -<13-o> CIRCLED NUMBER THIRTEEN -<14-o> CIRCLED NUMBER FOURTEEN -<15-o> CIRCLED NUMBER FIFTEEN -<16-o> CIRCLED NUMBER SIXTEEN -<17-o> CIRCLED NUMBER SEVENTEEN -<18-o> CIRCLED NUMBER EIGHTEEN -<19-o> CIRCLED NUMBER NINETEEN -<20-o> CIRCLED NUMBER TWENTY -<(1)> PARENTHESIZED DIGIT ONE -<(2)> PARENTHESIZED DIGIT TWO -<(3)> PARENTHESIZED DIGIT THREE -<(4)> PARENTHESIZED DIGIT FOUR -<(5)> PARENTHESIZED DIGIT FIVE -<(6)> PARENTHESIZED DIGIT SIX -<(7)> PARENTHESIZED DIGIT SEVEN -<(8)> PARENTHESIZED DIGIT EIGHT -<(9)> PARENTHESIZED DIGIT NINE -<(10)> PARENTHESIZED NUMBER TEN -<(11)> PARENTHESIZED NUMBER ELEVEN -<(12)> PARENTHESIZED NUMBER TWELVE -<(13)> PARENTHESIZED NUMBER THIRTEEN -<(14)> PARENTHESIZED NUMBER FOURTEEN -<(15)> PARENTHESIZED NUMBER FIFTEEN -<(16)> PARENTHESIZED NUMBER SIXTEEN -<(17)> PARENTHESIZED NUMBER SEVENTEEN -<(18)> PARENTHESIZED NUMBER EIGHTEEN -<(19)> PARENTHESIZED NUMBER NINETEEN -<(20)> PARENTHESIZED NUMBER TWENTY -<1.> DIGIT ONE FULL STOP -<2.> DIGIT TWO FULL STOP -<3.> DIGIT THREE FULL STOP -<4.> DIGIT FOUR FULL STOP -<5.> DIGIT FIVE FULL STOP -<6.> DIGIT SIX FULL STOP -<7.> DIGIT SEVEN FULL STOP -<8.> DIGIT EIGHT FULL STOP -<9.> DIGIT NINE FULL STOP -<10.> NUMBER TEN FULL STOP -<11.> NUMBER ELEVEN FULL STOP -<12.> NUMBER TWELVE FULL STOP -<13.> NUMBER THIRTEEN FULL STOP -<14.> NUMBER FOURTEEN FULL STOP -<15.> NUMBER FIFTEEN FULL STOP -<16.> NUMBER SIXTEEN FULL STOP -<17.> NUMBER SEVENTEEN FULL STOP -<18.> NUMBER EIGHTEEN FULL STOP -<19.> NUMBER NINETEEN FULL STOP -<20.> NUMBER TWENTY FULL STOP -<(a)> PARENTHESIZED LATIN SMALL LETTER A -<(b)> PARENTHESIZED LATIN SMALL LETTER B -<(c)> PARENTHESIZED LATIN SMALL LETTER C -<(d)> PARENTHESIZED LATIN SMALL LETTER D -<(e)> PARENTHESIZED LATIN SMALL LETTER E -<(f)> PARENTHESIZED LATIN SMALL LETTER F -<(g)> PARENTHESIZED LATIN SMALL LETTER G -<(h)> PARENTHESIZED LATIN SMALL LETTER H -<(i)> PARENTHESIZED LATIN SMALL LETTER I -<(j)> PARENTHESIZED LATIN SMALL LETTER J -<(k)> PARENTHESIZED LATIN SMALL LETTER K -<(l)> PARENTHESIZED LATIN SMALL LETTER L -<(m)> PARENTHESIZED LATIN SMALL LETTER M -<(n)> PARENTHESIZED LATIN SMALL LETTER N -<(o)> PARENTHESIZED LATIN SMALL LETTER O -<(p)> PARENTHESIZED LATIN SMALL LETTER P -<(q)> PARENTHESIZED LATIN SMALL LETTER Q -<(r)> PARENTHESIZED LATIN SMALL LETTER R -<(s)> PARENTHESIZED LATIN SMALL LETTER S -<(t)> PARENTHESIZED LATIN SMALL LETTER T -<(u)> PARENTHESIZED LATIN SMALL LETTER U -<(v)> PARENTHESIZED LATIN SMALL LETTER V -<(w)> PARENTHESIZED LATIN SMALL LETTER W -<(x)> PARENTHESIZED LATIN SMALL LETTER X -<(y)> PARENTHESIZED LATIN SMALL LETTER Y -<(z)> PARENTHESIZED LATIN SMALL LETTER Z - CIRCLED LATIN CAPITAL LETTER A - CIRCLED LATIN CAPITAL LETTER B - CIRCLED LATIN CAPITAL LETTER C - CIRCLED LATIN CAPITAL LETTER D - CIRCLED LATIN CAPITAL LETTER E - CIRCLED LATIN CAPITAL LETTER F - CIRCLED LATIN CAPITAL LETTER G - CIRCLED LATIN CAPITAL LETTER H - CIRCLED LATIN CAPITAL LETTER I - CIRCLED LATIN CAPITAL LETTER J - CIRCLED LATIN CAPITAL LETTER K - CIRCLED LATIN CAPITAL LETTER L - CIRCLED LATIN CAPITAL LETTER M - CIRCLED LATIN CAPITAL LETTER N - CIRCLED LATIN CAPITAL LETTER O - CIRCLED LATIN CAPITAL LETTER P - CIRCLED LATIN CAPITAL LETTER Q - CIRCLED LATIN CAPITAL LETTER R - CIRCLED LATIN CAPITAL LETTER S - CIRCLED LATIN CAPITAL LETTER T - CIRCLED LATIN CAPITAL LETTER U - CIRCLED LATIN CAPITAL LETTER V - CIRCLED LATIN CAPITAL LETTER W - CIRCLED LATIN CAPITAL LETTER X - CIRCLED LATIN CAPITAL LETTER Y - CIRCLED LATIN CAPITAL LETTER Z - CIRCLED LATIN SMALL LETTER A - CIRCLED LATIN SMALL LETTER B - CIRCLED LATIN SMALL LETTER C - CIRCLED LATIN SMALL LETTER D - CIRCLED LATIN SMALL LETTER E - CIRCLED LATIN SMALL LETTER F - CIRCLED LATIN SMALL LETTER G - CIRCLED LATIN SMALL LETTER H - CIRCLED LATIN SMALL LETTER I - CIRCLED LATIN SMALL LETTER J - CIRCLED LATIN SMALL LETTER K - CIRCLED LATIN SMALL LETTER L - CIRCLED LATIN SMALL LETTER M - CIRCLED LATIN SMALL LETTER N - CIRCLED LATIN SMALL LETTER O - CIRCLED LATIN SMALL LETTER P - CIRCLED LATIN SMALL LETTER Q - CIRCLED LATIN SMALL LETTER R - CIRCLED LATIN SMALL LETTER S - CIRCLED LATIN SMALL LETTER T - CIRCLED LATIN SMALL LETTER U - CIRCLED LATIN SMALL LETTER V - CIRCLED LATIN SMALL LETTER W - CIRCLED LATIN SMALL LETTER X - CIRCLED LATIN SMALL LETTER Y - CIRCLED LATIN SMALL LETTER Z -<0-o> CIRCLED DIGIT ZERO - BOX DRAWINGS LIGHT HORIZONTAL - BOX DRAWINGS HEAVY HORIZONTAL - BOX DRAWINGS LIGHT VERTICAL - BOX DRAWINGS HEAVY VERTICAL -<3-> BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL -<3_> BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL -<3!> BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL -<3//> BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL -<4-> BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL -<4_> BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL -<4!> BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL -<4//> BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL - BOX DRAWINGS LIGHT DOWN AND RIGHT - BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY - BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT - BOX DRAWINGS HEAVY DOWN AND RIGHT -
    BOX DRAWINGS LIGHT DOWN AND LEFT - BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY - BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT - BOX DRAWINGS HEAVY DOWN AND LEFT - BOX DRAWINGS LIGHT UP AND RIGHT - BOX DRAWINGS UP LIGHT AND RIGHT HEAVY - BOX DRAWINGS UP HEAVY AND RIGHT LIGHT - BOX DRAWINGS HEAVY UP AND RIGHT -
      BOX DRAWINGS LIGHT UP AND LEFT - BOX DRAWINGS UP LIGHT AND LEFT HEAVY - BOX DRAWINGS UP HEAVY AND LEFT LIGHT - BOX DRAWINGS HEAVY UP AND LEFT - BOX DRAWINGS LIGHT VERTICAL AND RIGHT - BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY - BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT - BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT - BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT - BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY - BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY - BOX DRAWINGS HEAVY VERTICAL AND RIGHT - BOX DRAWINGS LIGHT VERTICAL AND LEFT - BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY - BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT - BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT - BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT - BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY - BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY - BOX DRAWINGS HEAVY VERTICAL AND LEFT - BOX DRAWINGS LIGHT DOWN AND HORIZONTAL - BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT - BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT - BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY - BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT - BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY - BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY - BOX DRAWINGS HEAVY DOWN AND HORIZONTAL - BOX DRAWINGS LIGHT UP AND HORIZONTAL - BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT - BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT - BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY - BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT - BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY - BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY - BOX DRAWINGS HEAVY UP AND HORIZONTAL - BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL - BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT - BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT - BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY - BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT - BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT - BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT - BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT - BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT - BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT - BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT - BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY - BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY - BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY - BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY - BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL - BOX DRAWINGS DOUBLE HORIZONTAL - BOX DRAWINGS DOUBLE VERTICAL - BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE - BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE - BOX DRAWINGS DOUBLE DOWN AND RIGHT -
      BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -
      BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE - BOX DRAWINGS DOUBLE DOWN AND LEFT - BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE - BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE - BOX DRAWINGS DOUBLE UP AND RIGHT -
        BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -
          BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -
            BOX DRAWINGS DOUBLE UP AND LEFT - BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE - BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE - BOX DRAWINGS DOUBLE VERTICAL AND RIGHT - BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE - BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE - BOX DRAWINGS DOUBLE VERTICAL AND LEFT - BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE - BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE - BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL - BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE - BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE - BOX DRAWINGS DOUBLE UP AND HORIZONTAL - BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE - BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE - BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL - BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT - BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT - UPPER HALF BLOCK - LOWER HALF BLOCK - FULL BLOCK - LEFT HALF BLOCK - RIGHT HALF BLOCK -<.S> LIGHT SHADE -<:S> MEDIUM SHADE - DARK SHADE - BLACK SQUARE - WHITE SQUARE - WHITE SQUARE WITH ROUNDED CORNERS - WHITE SQUARE CONTAINING BLACK SMALL SQUARE - SQUARE WITH HORIZONTAL FILL - SQUARE WITH VERTICAL FILL - SQUARE WITH ORTHOGONAL CROSSHATCH FILL - SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL - SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL - SQUARE WITH DIAGONAL CROSSHATCH FILL - BLACK SMALL SQUARE - BLACK RECTANGLE - WHITE RECTANGLE - BLACK UP-POINTING TRIANGLE - WHITE UP-POINTING TRIANGLE - WHITE RIGHT-POINTING TRIANGLE - BLACK RIGHT-POINTING POINTER -
            BLACK DOWN-POINTING TRIANGLE -
            WHITE DOWN-POINTING TRIANGLE - WHITE LEFT-POINTING TRIANGLE - BLACK LEFT-POINTING POINTER - BLACK DIAMOND - WHITE DIAMOND - LOZENGE -<0m> WHITE CIRCLE -<0o> BULLSEYE -<0M> BLACK CIRCLE -<0L> CIRCLE WITH LEFT HALF BLACK -<0R> CIRCLE WITH RIGHT HALF BLACK - INVERSE BULLET - INVERSE WHITE CIRCLE - BLACK LOWER RIGHT TRIANGLE - BLACK LOWER LEFT TRIANGLE - LARGE CIRCLE -<*2> BLACK STAR -<*1> WHITE STAR - BLACK TELEPHONE - WHITE TELEPHONE -< WHITE LEFT POINTING INDEX -H> WHITE RIGHT POINTING INDEX -<0u> WHITE SMILING FACE -<0U> BLACK SMILING FACE - WHITE SUN WITH RAYS - FEMALE SIGN - MALE SIGN - BLACK SPADE SUIT - WHITE HEART SUIT - WHITE DIAMOND SUIT - BLACK CLUB SUIT - WHITE SPADE SUIT - BLACK HEART SUIT - BLACK DIAMOND SUIT - WHITE CLUB SUIT - QUARTER NOTE - EIGHTH NOTE - BEAMED EIGHTH NOTES - BEAMED SIXTEENTH NOTES - MUSIC FLAT SIGN - MUSIC NATURAL SIGN - MUSIC SHARP SIGN - CHECK MARK - BALLOT X -<-X> MALTESE CROSS - IDEOGRAPHIC SPACE -<,_> IDEOGRAPHIC COMMA -<._> IDEOGRAPHIC FULL STOP -<+"> DITTO MARK - JAPANESE INDUSTRIAL STANDARD SYMBOL -<*_> IDEOGRAPHIC ITERATION MARK -<;_> IDEOGRAPHIC CLOSING MARK -<0_> IDEOGRAPHIC NUMBER ZERO -<<+> LEFT DOUBLE ANGLE BRACKET -+> RIGHT DOUBLE ANGLE BRACKET -<<'> LEFT CORNER BRACKET -'> RIGHT CORNER BRACKET -<<"> LEFT WHITE CORNER BRACKET -"> RIGHT WHITE CORNER BRACKET -<("> LEFT BLACK LENTICULAR BRACKET -<)"> RIGHT BLACK LENTICULAR BRACKET -<=T> POSTAL MARK -<=_> GETA MARK -<('> LEFT TORTOISE SHELL BRACKET -<)'> RIGHT TORTOISE SHELL BRACKET -<(I> LEFT WHITE LENTICULAR BRACKET -<)I> RIGHT WHITE LENTICULAR BRACKET -<-?> WAVE DASH -<=T:)> POSTAL MARK FACE - HIRAGANA LETTER SMALL A - HIRAGANA LETTER A - HIRAGANA LETTER SMALL I - HIRAGANA LETTER I - HIRAGANA LETTER SMALL U - HIRAGANA LETTER U - HIRAGANA LETTER SMALL E - HIRAGANA LETTER E - HIRAGANA LETTER SMALL O - HIRAGANA LETTER O - HIRAGANA LETTER KA - HIRAGANA LETTER GA - HIRAGANA LETTER KI - HIRAGANA LETTER GI - HIRAGANA LETTER KU - HIRAGANA LETTER GU - HIRAGANA LETTER KE - HIRAGANA LETTER GE - HIRAGANA LETTER KO - HIRAGANA LETTER GO - HIRAGANA LETTER SA - HIRAGANA LETTER ZA - HIRAGANA LETTER SI - HIRAGANA LETTER ZI - HIRAGANA LETTER SU - HIRAGANA LETTER ZU - HIRAGANA LETTER SE - HIRAGANA LETTER ZE - HIRAGANA LETTER SO - HIRAGANA LETTER ZO - HIRAGANA LETTER TA - HIRAGANA LETTER DA - HIRAGANA LETTER TI - HIRAGANA LETTER DI - HIRAGANA LETTER SMALL TU - HIRAGANA LETTER TU - HIRAGANA LETTER DU - HIRAGANA LETTER TE - HIRAGANA LETTER DE - HIRAGANA LETTER TO - HIRAGANA LETTER DO - HIRAGANA LETTER NA - HIRAGANA LETTER NI - HIRAGANA LETTER NU - HIRAGANA LETTER NE - HIRAGANA LETTER NO - HIRAGANA LETTER HA - HIRAGANA LETTER BA - HIRAGANA LETTER PA - HIRAGANA LETTER HI - HIRAGANA LETTER BI - HIRAGANA LETTER PI - HIRAGANA LETTER HU - HIRAGANA LETTER BU - HIRAGANA LETTER PU - HIRAGANA LETTER HE - HIRAGANA LETTER BE - HIRAGANA LETTER PE - HIRAGANA LETTER HO - HIRAGANA LETTER BO - HIRAGANA LETTER PO - HIRAGANA LETTER MA - HIRAGANA LETTER MI - HIRAGANA LETTER MU - HIRAGANA LETTER ME - HIRAGANA LETTER MO - HIRAGANA LETTER SMALL YA - HIRAGANA LETTER YA - HIRAGANA LETTER SMALL YU - HIRAGANA LETTER YU - HIRAGANA LETTER SMALL YO - HIRAGANA LETTER YO - HIRAGANA LETTER RA - HIRAGANA LETTER RI - HIRAGANA LETTER RU - HIRAGANA LETTER RE - HIRAGANA LETTER RO - HIRAGANA LETTER SMALL WA - HIRAGANA LETTER WA - HIRAGANA LETTER WI - HIRAGANA LETTER WE - HIRAGANA LETTER WO - HIRAGANA LETTER N - HIRAGANA LETTER VU -<"5> KATAKANA-HIRAGANA VOICED SOUND MARK -<05> KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK -<*5> HIRAGANA ITERATION MARK -<+5> HIRAGANA VOICED ITERATION MARK - KATAKANA LETTER SMALL A - KATAKANA LETTER A - KATAKANA LETTER SMALL I - KATAKANA LETTER I - KATAKANA LETTER SMALL U - KATAKANA LETTER U - KATAKANA LETTER SMALL E - KATAKANA LETTER E - KATAKANA LETTER SMALL O - KATAKANA LETTER O - KATAKANA LETTER KA - KATAKANA LETTER GA - KATAKANA LETTER KI - KATAKANA LETTER GI - KATAKANA LETTER KU - KATAKANA LETTER GU - KATAKANA LETTER KE - KATAKANA LETTER GE - KATAKANA LETTER KO - KATAKANA LETTER GO - KATAKANA LETTER SA - KATAKANA LETTER ZA - KATAKANA LETTER SI - KATAKANA LETTER ZI - KATAKANA LETTER SU - KATAKANA LETTER ZU - KATAKANA LETTER SE - KATAKANA LETTER ZE - KATAKANA LETTER SO - KATAKANA LETTER ZO - KATAKANA LETTER TA - KATAKANA LETTER DA - KATAKANA LETTER TI - KATAKANA LETTER DI - KATAKANA LETTER SMALL TU - KATAKANA LETTER TU - KATAKANA LETTER DU - KATAKANA LETTER TE - KATAKANA LETTER DE - KATAKANA LETTER TO - KATAKANA LETTER DO - KATAKANA LETTER NA - KATAKANA LETTER NI - KATAKANA LETTER NU - KATAKANA LETTER NE - KATAKANA LETTER NO - KATAKANA LETTER HA - KATAKANA LETTER BA - KATAKANA LETTER PA - KATAKANA LETTER HI - KATAKANA LETTER BI - KATAKANA LETTER PI - KATAKANA LETTER HU - KATAKANA LETTER BU - KATAKANA LETTER PU - KATAKANA LETTER HE - KATAKANA LETTER BE - KATAKANA LETTER PE - KATAKANA LETTER HO - KATAKANA LETTER BO - KATAKANA LETTER PO - KATAKANA LETTER MA - KATAKANA LETTER MI - KATAKANA LETTER MU - KATAKANA LETTER ME - KATAKANA LETTER MO - KATAKANA LETTER SMALL YA - KATAKANA LETTER YA - KATAKANA LETTER SMALL YU - KATAKANA LETTER YU - KATAKANA LETTER SMALL YO - KATAKANA LETTER YO - KATAKANA LETTER RA - KATAKANA LETTER RI - KATAKANA LETTER RU - KATAKANA LETTER RE - KATAKANA LETTER RO - KATAKANA LETTER SMALL WA - KATAKANA LETTER WA - KATAKANA LETTER WI - KATAKANA LETTER WE - KATAKANA LETTER WO - KATAKANA LETTER N - KATAKANA LETTER VU - KATAKANA LETTER SMALL KA - KATAKANA LETTER SMALL KE - KATAKANA LETTER VA - KATAKANA LETTER VI - KATAKANA LETTER VE - KATAKANA LETTER VO -<.6> KATAKANA MIDDLE DOT -<-6> KATAKANA-HIRAGANA PROLONGED SOUND MARK -<*6> KATAKANA ITERATION MARK -<+6> KATAKANA VOICED ITERATION MARK - BOPOMOFO LETTER B - BOPOMOFO LETTER P - BOPOMOFO LETTER M - BOPOMOFO LETTER F - BOPOMOFO LETTER D - BOPOMOFO LETTER T - BOPOMOFO LETTER N - BOPOMOFO LETTER L - BOPOMOFO LETTER G - BOPOMOFO LETTER K -

            BOPOMOFO LETTER H - BOPOMOFO LETTER J - BOPOMOFO LETTER Q - BOPOMOFO LETTER X - BOPOMOFO LETTER ZH - BOPOMOFO LETTER CH - BOPOMOFO LETTER SH - BOPOMOFO LETTER R - BOPOMOFO LETTER Z - BOPOMOFO LETTER C - BOPOMOFO LETTER S - BOPOMOFO LETTER A - BOPOMOFO LETTER O - BOPOMOFO LETTER E - BOPOMOFO LETTER EH - BOPOMOFO LETTER AI - BOPOMOFO LETTER EI - BOPOMOFO LETTER AU - BOPOMOFO LETTER OU - BOPOMOFO LETTER AN - BOPOMOFO LETTER EN - BOPOMOFO LETTER ANG - BOPOMOFO LETTER ENG - BOPOMOFO LETTER ER - BOPOMOFO LETTER I - BOPOMOFO LETTER U - BOPOMOFO LETTER IU - BOPOMOFO LETTER V - BOPOMOFO LETTER NG - BOPOMOFO LETTER GN -<(JU)> PARENTHESIZED HANGUL CIEUC U -<1c> PARENTHESIZED IDEOGRAPH ONE -<2c> PARENTHESIZED IDEOGRAPH TWO -<3c> PARENTHESIZED IDEOGRAPH THREE -<4c> PARENTHESIZED IDEOGRAPH FOUR -<5c> PARENTHESIZED IDEOGRAPH FIVE -<6c> PARENTHESIZED IDEOGRAPH SIX -<7c> PARENTHESIZED IDEOGRAPH SEVEN -<8c> PARENTHESIZED IDEOGRAPH EIGHT -<9c> PARENTHESIZED IDEOGRAPH NINE -<10c> PARENTHESIZED IDEOGRAPH TEN - KOREAN STANDARD SYMBOL - SQUARE AM - SQUARE PM - LATIN SMALL LIGATURE FF - LATIN SMALL LIGATURE FI - LATIN SMALL LIGATURE FL - LATIN SMALL LIGATURE FFI - LATIN SMALL LIGATURE FFL - LATIN SMALL LIGATURE LONG S T - LATIN SMALL LIGATURE ST -<3+;> ARABIC SHADDA MEDIAL FORM - ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM - ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM - ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM - ARABIC LETTER ALEF ISOLATED FORM - ARABIC LETTER ALEF FINAL FORM - ARABIC LETTER BEH ISOLATED FORM - ARABIC LETTER BEH FINAL FORM - ARABIC LETTER BEH INITIAL FORM - ARABIC LETTER BEH MEDIAL FORM - ARABIC LETTER TEH MARBUTA ISOLATED FORM - ARABIC LETTER TEH MARBUTA FINAL FORM - ARABIC LETTER TEH ISOLATED FORM - ARABIC LETTER TEH FINAL FORM - ARABIC LETTER TEH INITIAL FORM - ARABIC LETTER TEH MEDIAL FORM - ARABIC LETTER THEH ISOLATED FORM - ARABIC LETTER THEH FINAL FORM - ARABIC LETTER THEH INITIAL FORM - ARABIC LETTER THEH MEDIAL FORM - ARABIC LETTER JEEM ISOLATED FORM - ARABIC LETTER JEEM FINAL FORM - ARABIC LETTER JEEM INITIAL FORM - ARABIC LETTER JEEM MEDIAL FORM - ARABIC LETTER HAH ISOLATED FORM - ARABIC LETTER HAH FINAL FORM - ARABIC LETTER HAH INITIAL FORM - ARABIC LETTER HAH MEDIAL FORM - ARABIC LETTER KHAH ISOLATED FORM - ARABIC LETTER KHAH FINAL FORM - ARABIC LETTER KHAH INITIAL FORM - ARABIC LETTER KHAH MEDIAL FORM - ARABIC LETTER DAL ISOLATED FORM - ARABIC LETTER DAL FINAL FORM - ARABIC LETTER THAL ISOLATED FORM - ARABIC LETTER THAL FINAL FORM - ARABIC LETTER REH ISOLATED FORM - ARABIC LETTER REH FINAL FORM - ARABIC LETTER ZAIN ISOLATED FORM - ARABIC LETTER ZAIN FINAL FORM - ARABIC LETTER SEEN ISOLATED FORM - ARABIC LETTER SEEN FINAL FORM - ARABIC LETTER SEEN INITIAL FORM - ARABIC LETTER SEEN MEDIAL FORM - ARABIC LETTER SHEEN ISOLATED FORM - ARABIC LETTER SHEEN FINAL FORM - ARABIC LETTER SHEEN INITIAL FORM - ARABIC LETTER SHEEN MEDIAL FORM - ARABIC LETTER SAD ISOLATED FORM - ARABIC LETTER SAD FINAL FORM - ARABIC LETTER SAD INITIAL FORM - ARABIC LETTER SAD MEDIAL FORM - ARABIC LETTER DAD ISOLATED FORM - ARABIC LETTER DAD FINAL FORM - ARABIC LETTER DAD INITIAL FORM - ARABIC LETTER DAD MEDIAL FORM - ARABIC LETTER TAH ISOLATED FORM - ARABIC LETTER TAH FINAL FORM - ARABIC LETTER TAH INITIAL FORM - ARABIC LETTER TAH MEDIAL FORM - ARABIC LETTER ZAH ISOLATED FORM - ARABIC LETTER ZAH FINAL FORM - ARABIC LETTER ZAH INITIAL FORM - ARABIC LETTER ZAH MEDIAL FORM - ARABIC LETTER AIN ISOLATED FORM - ARABIC LETTER AIN FINAL FORM - ARABIC LETTER AIN INITIAL FORM - ARABIC LETTER AIN MEDIAL FORM - ARABIC LETTER GHAIN ISOLATED FORM - ARABIC LETTER GHAIN FINAL FORM - ARABIC LETTER GHAIN INITIAL FORM - ARABIC LETTER GHAIN MEDIAL FORM - ARABIC LETTER FEH ISOLATED FORM - ARABIC LETTER FEH FINAL FORM - ARABIC LETTER FEH INITIAL FORM - ARABIC LETTER FEH MEDIAL FORM - ARABIC LETTER QAF ISOLATED FORM - ARABIC LETTER QAF FINAL FORM - ARABIC LETTER QAF INITIAL FORM - ARABIC LETTER QAF MEDIAL FORM - ARABIC LETTER KAF ISOLATED FORM - ARABIC LETTER KAF FINAL FORM - ARABIC LETTER KAF INITIAL FORM - ARABIC LETTER KAF MEDIAL FORM - ARABIC LETTER LAM ISOLATED FORM - ARABIC LETTER LAM FINAL FORM - ARABIC LETTER LAM INITIAL FORM - ARABIC LETTER LAM MEDIAL FORM - ARABIC LETTER MEEM ISOLATED FORM - ARABIC LETTER MEEM FINAL FORM - ARABIC LETTER MEEM INITIAL FORM - ARABIC LETTER MEEM MEDIAL FORM - ARABIC LETTER NOON ISOLATED FORM - ARABIC LETTER NOON FINAL FORM - ARABIC LETTER NOON INITIAL FORM - ARABIC LETTER NOON MEDIAL FORM - ARABIC LETTER HEH ISOLATED FORM - ARABIC LETTER HEH FINAL FORM - ARABIC LETTER HEH INITIAL FORM - ARABIC LETTER HEH MEDIAL FORM - ARABIC LETTER WAW ISOLATED FORM - ARABIC LETTER WAW FINAL FORM - ARABIC LETTER ALEF MAKSURA ISOLATED FORM - ARABIC LETTER ALEF MAKSURA FINAL FORM - ARABIC LETTER YEH ISOLATED FORM - ARABIC LETTER YEH FINAL FORM - ARABIC LETTER YEH INITIAL FORM - ARABIC LETTER YEH MEDIAL FORM - ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM - ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM - ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM - ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM - ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM - ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM - ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM - ARABIC LIGATURE LAM WITH ALEF FINAL FORM -<"3> NON-SPACING UMLAUT (not a real character) -<"1> NON-SPACING DIAERESIS WITH ACCENT (not a real character) -<"!> NON-SPACING GRAVE ACCENT (not a real character) -<"'> NON-SPACING ACUTE ACCENT (not a real character) -<"/>> NON-SPACING CIRCUMFLEX ACCENT (not a real character) -<"?> NON-SPACING TILDE (not a real character) -<"-> NON-SPACING MACRON (not a real character) -<"(> NON-SPACING BREVE (not a real character) -<".> NON-SPACING DOT ABOVE (not a real character) -<":> NON-SPACING DIAERESIS (not a real character) -<"0> NON-SPACING RING ABOVE (not a real character) -<",> NON-SPACING CEDILLA (not a real character) -<"_> NON-SPACING LOW LINE (not a real character) -<""> NON-SPACING DOUBLE ACCUTE ACCENT (not a real character) -<";> NON-SPACING OGONEK (not a real character) -<"<> NON-SPACING CARON (not a real character) -<"=> NON-SPACING DOUBLE LOW LINE (not a real character) -<"//> NON-SPACING LONG SOLIDUS OVERLAY (not a real character) -<"p> GREEK NON-SPACING PSILI PNEUMATA (not a real character) -<"d> GREEK NON-SPACING DASIA PNEUMATA (not a real character) -<"i> GREEK NON-SPACING IOTA BELOW (not a real character) -<+_> IDEOGRAPHIC DITTO MARK - ARABIC LETTER ALEF FINAL FORM COMPATIBILITY - TEL COMPATIBILITY SIGN - Unit space A - Unit space B - GREEK SMALL LETTER STIGMA - GREEK SMALL LETTER DIGAMMA - GREEK SMALL LETTER KOPPA - GREEK SMALL LETTER SAMPI - APPLE LOGO (Macintosh_F0) - HUNGARIAN FLORINTH (CWI_9F) - LATIN CAPITAL LIGATURE SS (German) (CORK_FF) - LATIN SMALL LIGATURE CH (Slovak) (KOI-8_CS2_C7) - LATIN CAPITAL LIGATURE CH (Slovak) (KOI-8_CS2_E7) - JOIN THIS LINE WITH NEXT LINE (Mnemonic) - NUMBER SIGN - DOLLAR SIGN -<@> COMMERCIAL AT - COMMERCIAL AT - CENT SIGN - POUND SIGN - CURRENCY SIGN - YEN SIGN - BROKEN BAR - SECTION SIGN - COPYRIGHT SIGN -<7!> NOT SIGN - REGISTERED SIGN -<9I> PILCROW SIGN -<_-> BOX DRAWINGS LIGHT HORIZONTAL -<_=> BOX DRAWINGS HEAVY HORIZONTAL -<_!> BOX DRAWINGS LIGHT VERTICAL -<_V/>> BOX DRAWINGS LIGHT DOWN AND RIGHT -<_V BOX DRAWINGS LIGHT DOWN AND LEFT -<_A/>> BOX DRAWINGS LIGHT UP AND RIGHT -<_A<> BOX DRAWINGS LIGHT UP AND LEFT -<_!/>> BOX DRAWINGS LIGHT VERTICAL AND RIGHT -<_!<> BOX DRAWINGS LIGHT VERTICAL AND LEFT -<_V-> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -<_-A> BOX DRAWINGS LIGHT UP AND HORIZONTAL -<_!-> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -<_/>//> BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT -<_<\> BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT -<_./>//> BLACK LOWER RIGHT TRIANGLE -<_.<\> BLACK LOWER LEFT TRIANGLE -<_d!> EIGHTH NOTE - EURO SYMBOL diff --git a/lib/.gitignore b/lib/.gitignore new file mode 100644 index 0000000..2d1edf4 --- /dev/null +++ b/lib/.gitignore @@ -0,0 +1,242 @@ +/Makefile.am +/_Noreturn.h +/alloca.h +/alloca.in.h +/arg-nonnull.h +/argmatch.c +/argmatch.h +/asnprintf.c +/basename-lgpl.c +/bitrotate.c +/bitrotate.h +/c++defs.h +/c-ctype.c +/c-ctype.h +/c-strcase.h +/c-strcasecmp.c +/c-strcaseeq.h +/c-strncasecmp.c +/charset.alias +/config.charset +/configmake.h +/dirname-lgpl.c +/dirname.h +/dosname.h +/errno.in.h +/error.c +/error.h +/exitfail.c +/exitfail.h +/filename.h +/float+.h +/float.c +/float.in.h +/fpucw.h +/frexp.c +/frexpl.c +/fseterr.c +/fseterr.h +/getopt-cdefs.in.h +/getopt-core.h +/getopt-ext.h +/getopt-pfx-core.h +/getopt-pfx-ext.h +/getopt.c +/getopt.in.h +/getopt1.c +/getopt_int.h +/getprogname.c +/getprogname.h +/gettext.h +/hard-locale.c +/hard-locale.h +/hash.c +/hash.h +/intprops.h +/isnan.c +/isnand-nolibm.h +/isnand.c +/isnanf-nolibm.h +/isnanf.c +/isnanl-nolibm.h +/isnanl.c +/itold.c +/limits.h +/limits.in.h +/localcharset.c +/localcharset.h +/malloc.c +/malloca.c +/malloca.h +/malloca.valgrind +/math.c +/math.h +/math.in.h +/mbrtowc.c +/mbsinit.c +/memchr.c +/memchr.valgrind +/minmax.h +/msvc-inval.c +/msvc-inval.h +/msvc-nothrow.c +/msvc-nothrow.h +/pathmax.h +/printf-args.c +/printf-args.h +/printf-frexp.c +/printf-frexp.h +/printf-frexpl.c +/printf-frexpl.h +/printf-parse.c +/printf-parse.h +/quote.h +/quotearg.c +/quotearg.h +/ref-add.sed +/ref-add.sin +/ref-del.sed +/ref-del.sin +/signbitd.c +/signbitf.c +/signbitl.c +/size_max.h +/stdbool.in.h +/stddef.in.h +/stdint.h +/stdint.in.h +/stdio-impl.h +/stdio.h +/stdio.in.h +/stdlib.h +/stdlib.in.h +/streq.h +/strerror-override.c +/strerror-override.h +/strerror.c +/string.h +/string.in.h +/stripslash.c +/strndup.c +/strnlen.c +/sys/random.h +/sys/types.h +/sys_types.in.h +/sys/wait.h +/sys_wait.in.h +/time.h +/time.in.h +/unistd.c +/unistd.h +/unistd.in.h +/utime.c +/utime.in.h +/vasnprintf.c +/vasnprintf.h +/verify.h +/vfprintf.c +/vprintf.c +/warn-on-use.h +/wchar.h +/wchar.in.h +/wctype-h.c +/wctype.h +/wctype.in.h +/xalloc-die.c +/xalloc-oversized.h +/xalloc.h +/xmalloc.c +/xsize.c +/xsize.h +/unused-parameter.h +/canonicalize-lgpl.c +/lstat.c +/readlink.c +/stat-time.c +/stat-time.h +/stat-w32.c +/stat-w32.h +/stat.c +/sys_stat.in.h +/sys/stat.h +/binary-io.c +/binary-io.h +/fcntl.in.h +/fcntl.h +/isatty.c +/xbinary-io.c +/xbinary-io.h +/basename.c +/dirname.c +/gettimeofday.c +/localtime-buffer.c +/localtime-buffer.h +/mkstemps.c +/sys_time.in.h +/sys/time.h +/tempname.c +/tempname.h +/xstrndup.c +/xstrndup.h +/asprintf.c +/vasprintf.c +/raise.c +/sig-handler.c +/sig-handler.h +/sigaction.c +/signal.in.h +/sigprocmask.c +/signal.h +/errno.h +/utime.h +/mkdir.c +/attribute.h +/basename-lgpl.h +/calloc.c +/cdefs.h +/cloexec.c +/cloexec.h +/close.c +/dup2.c +/eloop-threshold.h +/fcntl.c +/fd-hook.c +/fd-hook.h +/free.c +/fstat.c +/getdtablesize.c +/getrandom.c +/ialloc.c +/ialloc.h +/idx.h +/inttypes.in.h +/inttypes.h +/lc-charset-dispatch.c +/lc-charset-dispatch.h +/libc-config.h +/locale.in.h +/locale.h +/mbrtowc-impl-utf8.h +/mbrtowc-impl.h +/mbtowc-lock.c +/mbtowc-lock.h +/mempcpy.c +/open.c +/rawmemchr.c +/rawmemchr.valgrind +/realloc.c +/reallocarray.c +/scratch_buffer.h +/setlocale-lock.c +/setlocale_null.c +/setlocale_null.h +/stdalign.in.h +/sys_random.in.h +/windows-initguard.h +/stdio-read.c +/stdio-write.c +/assert.in.h +/intprops-internal.h +/stdckdint.in.h +/stdckdint.h +/error.in.h diff --git a/lib/ChangeLog b/lib/ChangeLog deleted file mode 100644 index 196ae17..0000000 --- a/lib/ChangeLog +++ /dev/null @@ -1,97 +0,0 @@ -2008-02-21 François Pinard - - * gettext.h: Updated from gettext 0.16. - -2005-11-06 François Pinard - - * gettext.h: New, from coreutils. - * alloca.c, error.c, error.h, malloc.c, pathmax.h, - realloc.c, strtol.c, strtoul.c: Updated, from coreutils. - -2005-11-05 François Pinard - - * gettext.c, gettext.h: Deleted. - * Makefile.am: Adujsted. - -2000-10-24 Bruno Haible - - * xmalloc.c, xalloc.h: Move to src/. - * Makefile.am (noinst_HEADERS): Remove xalloc.h. - (libreco_a_SOURCES): Remove xmalloc.c. - Reported by Tomasz Kłoczko. - -2000-08-30 Bruno Haible - - * gettext.c (_nl_unload_domain): Enclose declaration in #ifdef _LIBC. - -1999-12-28 François Pinard - - * Makefile.am (INCLUDES): Do not use ../intl. - -1999-12-14 François Pinard - - * Makefile.am: Adapt to the gettext scheme used in wdiff. - * gettext.c, gettext.h: New files. - -1999-12-12 François Pinard - - * Makefile.am: Replace strtol and strtoul only when missing. - Reported by Tom Hageman. - -1999-06-15 François Pinard - - * alloca.c, malloc.c, realloc.c: New files, from elsewhere. - * Makefile.am (EXTRA_DIST): Distribute them. - (libreco_a_LIBADD): Uncomment. - Reported by Alan J. Flavell, Alexandre Oliva, Olivier Lecarme and - Peter Turcan. - -1998-12-13 François Pinard - - * argmatch.c, argmatch.h, hash.c, hash.h: Moved away, into src. - * Makefile.am: Adjusted. - -1998-10-31 François Pinard - - * strtol.c, strtoul.c: New files, from elsewhere. - * Makefile.am (libreco_a_SOURCES): Include strtoul.c. - (EXTRA_DIST): Include strtol.c. - -1998-10-26 François Pinard - - * hash.h, hash.c: New version, with tuning parameters. - -1998-10-13 François Pinard - - * hash.c, hash.h: New, from elsewhere. - * Makefile.am: Adjusted. - -1998-09-30 François Pinard - - * Makefile.am (noinst_HEADERS): Include argmatch.h. - -1998-03-31 François Pinard - - * Makefile.am: Rename xmalloc.h to xalloc.h. - -1997-10-15 François Pinard - - * xmalloc.h, xstring.h: New files, from elsewhere. - * Makefile.am (noinst_HEADERS): Distribute them. - -1997-02-25 François Pinard - - * Makefile.am: Adjusted for Automake 1.1l. - -1996-08-27 François Pinard - - * Makefile.am (noinst_HEADERS): Distribute error.h. - -1996-08-24 François Pinard - - * Makefile.am: New file, replacing Makefile.in. - -1995-07-10 François Pinard - - Distribution unflattened, for using GNU gettext. - * Makefile.in: New file. diff --git a/lib/Makefile.am b/lib/Makefile.am deleted file mode 100644 index f5a5e64..0000000 --- a/lib/Makefile.am +++ /dev/null @@ -1,30 +0,0 @@ -# Makefile for Recode (own internal) library. -# Copyright © 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. -# François Pinard - -# 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 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 General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AUTOMAKE_OPTIONS = gnits - -noinst_LIBRARIES = libreco.a -noinst_HEADERS = error.h getopt.h gettext.h pathmax.h xstring.h -libreco_a_SOURCES = error.c getopt.c getopt1.c xstrdup.c - -EXTRA_DIST = alloca.c malloc.c realloc.c strtol.c strtoul.c - -AM_CPPFLAGS = -I.. -I$(srcdir) - -libreco_a_LIBADD = @ALLOCA@ @LIBOBJS@ diff --git a/lib/Makefile.in b/lib/Makefile.in deleted file mode 100644 index 1a0e9f7..0000000 --- a/lib/Makefile.in +++ /dev/null @@ -1,635 +0,0 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Makefile for Recode (own internal) library. -# Copyright © 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. -# François Pinard - -# 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 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 General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = lib -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/mkinstalldirs alloca.c realloc.c strtoul.c \ - malloc.c strtol.c $(top_srcdir)/depcomp $(noinst_HEADERS) \ - ChangeLog -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ - $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -LIBRARIES = $(noinst_LIBRARIES) -ARFLAGS = cru -AM_V_AR = $(am__v_AR_@AM_V@) -am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = -libreco_a_AR = $(AR) $(ARFLAGS) -libreco_a_DEPENDENCIES = @ALLOCA@ @LIBOBJS@ -am_libreco_a_OBJECTS = error.$(OBJEXT) getopt.$(OBJEXT) \ - getopt1.$(OBJEXT) xstrdup.$(OBJEXT) -libreco_a_OBJECTS = $(am_libreco_a_OBJECTS) -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(libreco_a_SOURCES) -DIST_SOURCES = $(libreco_a_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -HEADERS = $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GLIBC21 = @GLIBC21@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = gnits -noinst_LIBRARIES = libreco.a -noinst_HEADERS = error.h getopt.h gettext.h pathmax.h xstring.h -libreco_a_SOURCES = error.c getopt.c getopt1.c xstrdup.c -EXTRA_DIST = alloca.c malloc.c realloc.c strtol.c strtoul.c -AM_CPPFLAGS = -I.. -I$(srcdir) -libreco_a_LIBADD = @ALLOCA@ @LIBOBJS@ -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnits lib/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) - -libreco.a: $(libreco_a_OBJECTS) $(libreco_a_DEPENDENCIES) $(EXTRA_libreco_a_DEPENDENCIES) - $(AM_V_at)-rm -f libreco.a - $(AM_V_AR)$(libreco_a_AR) libreco.a $(libreco_a_OBJECTS) $(libreco_a_LIBADD) - $(AM_V_at)$(RANLIB) libreco.a - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/malloc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/realloc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strtol.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strtoul.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrdup.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LIBRARIES) $(HEADERS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -rf $(DEPDIR) ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf $(DEPDIR) ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLIBRARIES cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-am uninstall uninstall-am - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/lib/alloca.c b/lib/alloca.c deleted file mode 100644 index d1d5447..0000000 --- a/lib/alloca.c +++ /dev/null @@ -1,491 +0,0 @@ -/* alloca.c -- allocate automatically reclaimed memory - (Mostly) portable public-domain implementation -- D A Gwyn - - This implementation of the PWB library alloca function, - which is used to allocate space off the run-time stack so - that it is automatically reclaimed upon procedure exit, - was inspired by discussions with J. Q. Johnson of Cornell. - J.Otto Tennant contributed the Cray support. - - There are some preprocessor constants that can - be defined when compiling for your specific system, for - improved efficiency; however, the defaults should be okay. - - The general concept of this implementation is to keep - track of all alloca-allocated blocks, and reclaim any - that are found to be deeper in the stack than the current - invocation. This heuristic does not reclaim storage as - soon as it becomes invalid, but it will do so eventually. - - As a special case, alloca(0) reclaims storage without - allocating any. It is a good idea to use alloca(0) in - your main control loop, etc. to force garbage collection. */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -#include -#include - -#ifdef emacs -# include "lisp.h" -# include "blockinput.h" -# ifdef EMACS_FREE -# undef free -# define free EMACS_FREE -# endif -#else -# define memory_full() abort () -#endif - -/* If compiling with GCC 2, this file's not needed. */ -#if !defined (__GNUC__) || __GNUC__ < 2 - -/* If someone has defined alloca as a macro, - there must be some other way alloca is supposed to work. */ -# ifndef alloca - -# ifdef emacs -# ifdef static -/* actually, only want this if static is defined as "" - -- this is for usg, in which emacs must undefine static - in order to make unexec workable - */ -# ifndef STACK_DIRECTION -you -lose --- must know STACK_DIRECTION at compile-time -/* Using #error here is not wise since this file should work for - old and obscure compilers. */ -# endif /* STACK_DIRECTION undefined */ -# endif /* static */ -# endif /* emacs */ - -/* If your stack is a linked list of frames, you have to - provide an "address metric" ADDRESS_FUNCTION macro. */ - -# if defined (CRAY) && defined (CRAY_STACKSEG_END) -long i00afunc (); -# define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg)) -# else -# define ADDRESS_FUNCTION(arg) &(arg) -# endif - -/* Define STACK_DIRECTION if you know the direction of stack - growth for your system; otherwise it will be automatically - deduced at run-time. - - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ - -# ifndef STACK_DIRECTION -# define STACK_DIRECTION 0 /* Direction unknown. */ -# endif - -# if STACK_DIRECTION != 0 - -# define STACK_DIR STACK_DIRECTION /* Known at compile-time. */ - -# else /* STACK_DIRECTION == 0; need run-time code. */ - -static int stack_dir; /* 1 or -1 once known. */ -# define STACK_DIR stack_dir - -static void -find_stack_direction (void) -{ - static char *addr = NULL; /* Address of first `dummy', once known. */ - auto char dummy; /* To get stack address. */ - - if (addr == NULL) - { /* Initial entry. */ - addr = ADDRESS_FUNCTION (dummy); - - find_stack_direction (); /* Recurse once. */ - } - else - { - /* Second entry. */ - if (ADDRESS_FUNCTION (dummy) > addr) - stack_dir = 1; /* Stack grew upward. */ - else - stack_dir = -1; /* Stack grew downward. */ - } -} - -# endif /* STACK_DIRECTION == 0 */ - -/* An "alloca header" is used to: - (a) chain together all alloca'ed blocks; - (b) keep track of stack depth. - - It is very important that sizeof(header) agree with malloc - alignment chunk size. The following default should work okay. */ - -# ifndef ALIGN_SIZE -# define ALIGN_SIZE sizeof(double) -# endif - -typedef union hdr -{ - char align[ALIGN_SIZE]; /* To force sizeof(header). */ - struct - { - union hdr *next; /* For chaining headers. */ - char *deep; /* For stack depth measure. */ - } h; -} header; - -static header *last_alloca_header = NULL; /* -> last alloca header. */ - -/* Return a pointer to at least SIZE bytes of storage, - which will be automatically reclaimed upon exit from - the procedure that called alloca. Originally, this space - was supposed to be taken from the current stack frame of the - caller, but that method cannot be made to work for some - implementations of C, for example under Gould's UTX/32. */ - -void * -alloca (size_t size) -{ - auto char probe; /* Probes stack depth: */ - register char *depth = ADDRESS_FUNCTION (probe); - -# if STACK_DIRECTION == 0 - if (STACK_DIR == 0) /* Unknown growth direction. */ - find_stack_direction (); -# endif - - /* Reclaim garbage, defined as all alloca'd storage that - was allocated from deeper in the stack than currently. */ - - { - register header *hp; /* Traverses linked list. */ - -# ifdef emacs - BLOCK_INPUT; -# endif - - for (hp = last_alloca_header; hp != NULL;) - if ((STACK_DIR > 0 && hp->h.deep > depth) - || (STACK_DIR < 0 && hp->h.deep < depth)) - { - register header *np = hp->h.next; - - free (hp); /* Collect garbage. */ - - hp = np; /* -> next header. */ - } - else - break; /* Rest are not deeper. */ - - last_alloca_header = hp; /* -> last valid storage. */ - -# ifdef emacs - UNBLOCK_INPUT; -# endif - } - - if (size == 0) - return NULL; /* No allocation required. */ - - /* Allocate combined header + user data storage. */ - - { - /* Address of header. */ - register header *new; - - size_t combined_size = sizeof (header) + size; - if (combined_size < sizeof (header)) - memory_full (); - - new = malloc (combined_size); - - if (! new) - memory_full (); - - new->h.next = last_alloca_header; - new->h.deep = depth; - - last_alloca_header = new; - - /* User storage begins just after header. */ - - return (void *) (new + 1); - } -} - -# if defined (CRAY) && defined (CRAY_STACKSEG_END) - -# ifdef DEBUG_I00AFUNC -# include -# endif - -# ifndef CRAY_STACK -# define CRAY_STACK -# ifndef CRAY2 -/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */ -struct stack_control_header - { - long shgrow:32; /* Number of times stack has grown. */ - long shaseg:32; /* Size of increments to stack. */ - long shhwm:32; /* High water mark of stack. */ - long shsize:32; /* Current size of stack (all segments). */ - }; - -/* The stack segment linkage control information occurs at - the high-address end of a stack segment. (The stack - grows from low addresses to high addresses.) The initial - part of the stack segment linkage control information is - 0200 (octal) words. This provides for register storage - for the routine which overflows the stack. */ - -struct stack_segment_linkage - { - long ss[0200]; /* 0200 overflow words. */ - long sssize:32; /* Number of words in this segment. */ - long ssbase:32; /* Offset to stack base. */ - long:32; - long sspseg:32; /* Offset to linkage control of previous - segment of stack. */ - long:32; - long sstcpt:32; /* Pointer to task common address block. */ - long sscsnm; /* Private control structure number for - microtasking. */ - long ssusr1; /* Reserved for user. */ - long ssusr2; /* Reserved for user. */ - long sstpid; /* Process ID for pid based multi-tasking. */ - long ssgvup; /* Pointer to multitasking thread giveup. */ - long sscray[7]; /* Reserved for Cray Research. */ - long ssa0; - long ssa1; - long ssa2; - long ssa3; - long ssa4; - long ssa5; - long ssa6; - long ssa7; - long sss0; - long sss1; - long sss2; - long sss3; - long sss4; - long sss5; - long sss6; - long sss7; - }; - -# else /* CRAY2 */ -/* The following structure defines the vector of words - returned by the STKSTAT library routine. */ -struct stk_stat - { - long now; /* Current total stack size. */ - long maxc; /* Amount of contiguous space which would - be required to satisfy the maximum - stack demand to date. */ - long high_water; /* Stack high-water mark. */ - long overflows; /* Number of stack overflow ($STKOFEN) calls. */ - long hits; /* Number of internal buffer hits. */ - long extends; /* Number of block extensions. */ - long stko_mallocs; /* Block allocations by $STKOFEN. */ - long underflows; /* Number of stack underflow calls ($STKRETN). */ - long stko_free; /* Number of deallocations by $STKRETN. */ - long stkm_free; /* Number of deallocations by $STKMRET. */ - long segments; /* Current number of stack segments. */ - long maxs; /* Maximum number of stack segments so far. */ - long pad_size; /* Stack pad size. */ - long current_address; /* Current stack segment address. */ - long current_size; /* Current stack segment size. This - number is actually corrupted by STKSTAT to - include the fifteen word trailer area. */ - long initial_address; /* Address of initial segment. */ - long initial_size; /* Size of initial segment. */ - }; - -/* The following structure describes the data structure which trails - any stack segment. I think that the description in 'asdef' is - out of date. I only describe the parts that I am sure about. */ - -struct stk_trailer - { - long this_address; /* Address of this block. */ - long this_size; /* Size of this block (does not include - this trailer). */ - long unknown2; - long unknown3; - long link; /* Address of trailer block of previous - segment. */ - long unknown5; - long unknown6; - long unknown7; - long unknown8; - long unknown9; - long unknown10; - long unknown11; - long unknown12; - long unknown13; - long unknown14; - }; - -# endif /* CRAY2 */ -# endif /* not CRAY_STACK */ - -# ifdef CRAY2 -/* Determine a "stack measure" for an arbitrary ADDRESS. - I doubt that "lint" will like this much. */ - -static long -i00afunc (long *address) -{ - struct stk_stat status; - struct stk_trailer *trailer; - long *block, size; - long result = 0; - - /* We want to iterate through all of the segments. The first - step is to get the stack status structure. We could do this - more quickly and more directly, perhaps, by referencing the - $LM00 common block, but I know that this works. */ - - STKSTAT (&status); - - /* Set up the iteration. */ - - trailer = (struct stk_trailer *) (status.current_address - + status.current_size - - 15); - - /* There must be at least one stack segment. Therefore it is - a fatal error if "trailer" is null. */ - - if (trailer == 0) - abort (); - - /* Discard segments that do not contain our argument address. */ - - while (trailer != 0) - { - block = (long *) trailer->this_address; - size = trailer->this_size; - if (block == 0 || size == 0) - abort (); - trailer = (struct stk_trailer *) trailer->link; - if ((block <= address) && (address < (block + size))) - break; - } - - /* Set the result to the offset in this segment and add the sizes - of all predecessor segments. */ - - result = address - block; - - if (trailer == 0) - { - return result; - } - - do - { - if (trailer->this_size <= 0) - abort (); - result += trailer->this_size; - trailer = (struct stk_trailer *) trailer->link; - } - while (trailer != 0); - - /* We are done. Note that if you present a bogus address (one - not in any segment), you will get a different number back, formed - from subtracting the address of the first block. This is probably - not what you want. */ - - return (result); -} - -# else /* not CRAY2 */ -/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP. - Determine the number of the cell within the stack, - given the address of the cell. The purpose of this - routine is to linearize, in some sense, stack addresses - for alloca. */ - -static long -i00afunc (long address) -{ - long stkl = 0; - - long size, pseg, this_segment, stack; - long result = 0; - - struct stack_segment_linkage *ssptr; - - /* Register B67 contains the address of the end of the - current stack segment. If you (as a subprogram) store - your registers on the stack and find that you are past - the contents of B67, you have overflowed the segment. - - B67 also points to the stack segment linkage control - area, which is what we are really interested in. */ - - stkl = CRAY_STACKSEG_END (); - ssptr = (struct stack_segment_linkage *) stkl; - - /* If one subtracts 'size' from the end of the segment, - one has the address of the first word of the segment. - - If this is not the first segment, 'pseg' will be - nonzero. */ - - pseg = ssptr->sspseg; - size = ssptr->sssize; - - this_segment = stkl - size; - - /* It is possible that calling this routine itself caused - a stack overflow. Discard stack segments which do not - contain the target address. */ - - while (!(this_segment <= address && address <= stkl)) - { -# ifdef DEBUG_I00AFUNC - fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl); -# endif - if (pseg == 0) - break; - stkl = stkl - pseg; - ssptr = (struct stack_segment_linkage *) stkl; - size = ssptr->sssize; - pseg = ssptr->sspseg; - this_segment = stkl - size; - } - - result = address - this_segment; - - /* If you subtract pseg from the current end of the stack, - you get the address of the previous stack segment's end. - This seems a little convoluted to me, but I'll bet you save - a cycle somewhere. */ - - while (pseg != 0) - { -# ifdef DEBUG_I00AFUNC - fprintf (stderr, "%011o %011o\n", pseg, size); -# endif - stkl = stkl - pseg; - ssptr = (struct stack_segment_linkage *) stkl; - size = ssptr->sssize; - pseg = ssptr->sspseg; - result += size; - } - return (result); -} - -# endif /* not CRAY2 */ -# endif /* CRAY */ - -# endif /* no alloca */ -#endif /* not GCC version 2 */ diff --git a/lib/error.c b/lib/error.c deleted file mode 100644 index 45698be..0000000 --- a/lib/error.c +++ /dev/null @@ -1,304 +0,0 @@ -/* Error handler for noninteractive utilities - Copyright (C) 1990-1998, 2000-2003, 2004 Free Software Foundation, Inc. - This file is part of the GNU C 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Written by David MacKenzie . */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include "error.h" - -#include -#include -#include -#include - -#if !_LIBC && ENABLE_NLS -# include "gettext.h" -#endif - -#ifdef _LIBC -# include -# define mbsrtowcs __mbsrtowcs -#endif - -#if USE_UNLOCKED_IO -# include "unlocked-io.h" -#endif - -#ifndef _ -# define _(String) String -#endif - -/* If NULL, error will flush stdout, then print on stderr the program - name, a colon and a space. Otherwise, error will call this - function without parameters instead. */ -void (*error_print_progname) (void); - -/* This variable is incremented each time `error' is called. */ -unsigned int error_message_count; - -#ifdef _LIBC -/* In the GNU C library, there is a predefined variable for this. */ - -# define program_name program_invocation_name -# include -# include - -/* In GNU libc we want do not want to use the common name `error' directly. - Instead make it a weak alias. */ -extern void __error (int status, int errnum, const char *message, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); -extern void __error_at_line (int status, int errnum, const char *file_name, - unsigned int line_number, const char *message, - ...) - __attribute__ ((__format__ (__printf__, 5, 6)));; -# define error __error -# define error_at_line __error_at_line - -# include -# define fflush(s) INTUSE(_IO_fflush) (s) -# undef putc -# define putc(c, fp) INTUSE(_IO_putc) (c, fp) - -# include - -#else /* not _LIBC */ - -# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P -# ifndef HAVE_DECL_STRERROR_R -"this configure-time declaration test was not run" -# endif -char *strerror_r (); -# endif - -# ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -# endif - -/* The calling program should define program_name and set it to the - name of the executing program. */ -extern char *program_name; - -# if HAVE_STRERROR_R || defined strerror_r -# define __strerror_r strerror_r -# endif -#endif /* not _LIBC */ - -static void -print_errno_message (int errnum) -{ - char const *s = NULL; - -#if defined HAVE_STRERROR_R || _LIBC - char errbuf[1024]; -# if STRERROR_R_CHAR_P || _LIBC - s = __strerror_r (errnum, errbuf, sizeof errbuf); -# else - if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0) - s = errbuf; -# endif -#endif - -#if !_LIBC - if (! s && ! (s = strerror (errnum))) - s = _("Unknown system error"); -#endif - -#if _LIBC - if (_IO_fwide (stderr, 0) > 0) - { - __fwprintf (stderr, L": %s", s); - return; - } -#endif - - fprintf (stderr, ": %s", s); -} - -static void -error_tail (int status, int errnum, const char *message, va_list args) -{ -#if _LIBC - if (_IO_fwide (stderr, 0) > 0) - { -# define ALLOCA_LIMIT 2000 - size_t len = strlen (message) + 1; - const wchar_t *wmessage = L"out of memory"; - wchar_t *wbuf = (len < ALLOCA_LIMIT - ? alloca (len * sizeof *wbuf) - : len <= SIZE_MAX / sizeof *wbuf - ? malloc (len * sizeof *wbuf) - : NULL); - - if (wbuf) - { - size_t res; - mbstate_t st; - const char *tmp = message; - memset (&st, '\0', sizeof (st)); - res = mbsrtowcs (wbuf, &tmp, len, &st); - wmessage = res == (size_t) -1 ? L"???" : wbuf; - } - - __vfwprintf (stderr, wmessage, args); - if (! (len < ALLOCA_LIMIT)) - free (wbuf); - } - else -#endif - vfprintf (stderr, message, args); - va_end (args); - - ++error_message_count; - if (errnum) - print_errno_message (errnum); -#if _LIBC - if (_IO_fwide (stderr, 0) > 0) - putwc (L'\n', stderr); - else -#endif - putc ('\n', stderr); - fflush (stderr); - if (status) - exit (status); -} - - -/* Print the program name and error message MESSAGE, which is a printf-style - format string with optional args. - If ERRNUM is nonzero, print its corresponding system error message. - Exit with status STATUS if it is nonzero. */ -void -error (int status, int errnum, const char *message, ...) -{ - va_list args; - -#if defined _LIBC && defined __libc_ptf_call - /* We do not want this call to be cut short by a thread - cancellation. Therefore disable cancellation for now. */ - int state = PTHREAD_CANCEL_ENABLE; - __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), - 0); -#endif - - fflush (stdout); -#ifdef _LIBC - _IO_flockfile (stderr); -#endif - if (error_print_progname) - (*error_print_progname) (); - else - { -#if _LIBC - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s: ", program_name); - else -#endif - fprintf (stderr, "%s: ", program_name); - } - - va_start (args, message); - error_tail (status, errnum, message, args); - -#ifdef _LIBC - _IO_funlockfile (stderr); -# ifdef __libc_ptf_call - __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); -# endif -#endif -} - -/* Sometimes we want to have at most one error per line. This - variable controls whether this mode is selected or not. */ -int error_one_per_line; - -void -error_at_line (int status, int errnum, const char *file_name, - unsigned int line_number, const char *message, ...) -{ - va_list args; - - if (error_one_per_line) - { - static const char *old_file_name; - static unsigned int old_line_number; - - if (old_line_number == line_number - && (file_name == old_file_name - || strcmp (old_file_name, file_name) == 0)) - /* Simply return and print nothing. */ - return; - - old_file_name = file_name; - old_line_number = line_number; - } - -#if defined _LIBC && defined __libc_ptf_call - /* We do not want this call to be cut short by a thread - cancellation. Therefore disable cancellation for now. */ - int state = PTHREAD_CANCEL_ENABLE; - __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), - 0); -#endif - - fflush (stdout); -#ifdef _LIBC - _IO_flockfile (stderr); -#endif - if (error_print_progname) - (*error_print_progname) (); - else - { -#if _LIBC - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s: ", program_name); - else -#endif - fprintf (stderr, "%s:", program_name); - } - - if (file_name != NULL) - { -#if _LIBC - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s:%d: ", file_name, line_number); - else -#endif - fprintf (stderr, "%s:%d: ", file_name, line_number); - } - - va_start (args, message); - error_tail (status, errnum, message, args); - -#ifdef _LIBC - _IO_funlockfile (stderr); -# ifdef __libc_ptf_call - __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); -# endif -#endif -} - -#ifdef _LIBC -/* Make the weak alias. */ -# undef error -# undef error_at_line -weak_alias (__error, error) -weak_alias (__error_at_line, error_at_line) -#endif diff --git a/lib/error.h b/lib/error.h deleted file mode 100644 index e5220a2..0000000 --- a/lib/error.h +++ /dev/null @@ -1,66 +0,0 @@ -/* Declaration for error-reporting function - Copyright (C) 1995, 1996, 1997, 2003 Free Software Foundation, Inc. - This file is part of the GNU C 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _ERROR_H -#define _ERROR_H 1 - -#ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) -# define __attribute__(Spec) /* empty */ -# endif -/* The __-protected variants of `format' and `printf' attributes - are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) -# define __format__ format -# define __printf__ printf -# endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Print a message with `fprintf (stderr, FORMAT, ...)'; - if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). - If STATUS is nonzero, terminate the program with `exit (STATUS)'. */ - -extern void error (int __status, int __errnum, const char *__format, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); - -extern void error_at_line (int __status, int __errnum, const char *__fname, - unsigned int __lineno, const char *__format, ...) - __attribute__ ((__format__ (__printf__, 5, 6))); - -/* If NULL, error will flush stdout, then print on stderr the program - name, a colon and a space. Otherwise, error will call this - function without parameters instead. */ -extern void (*error_print_progname) (void); - -/* This variable is incremented each time `error' is called. */ -extern unsigned int error_message_count; - -/* Sometimes we want to have at most one error per line. This - variable controls whether this mode is selected or not. */ -extern int error_one_per_line; - -#ifdef __cplusplus -} -#endif - -#endif /* error.h */ diff --git a/lib/getopt.c b/lib/getopt.c deleted file mode 100644 index d176d3e..0000000 --- a/lib/getopt.c +++ /dev/null @@ -1,1049 +0,0 @@ -/* Getopt for GNU. - NOTE: The canonical source of this file is maintained with the GNU - C Library. Bugs can be reported to bug-glibc@gnu.org. - - Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99 - 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* This tells Alpha OSF/1 not to define a getopt prototype in . - Ditto for AIX 3.2 and . */ -#ifndef _NO_PROTO -# define _NO_PROTO -#endif - -#ifdef HAVE_CONFIG_H -# include -#else -# if !defined __STDC__ || !__STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -# ifndef const -# define const -# endif -# endif -#endif - -#include - -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#define GETOPT_INTERFACE_VERSION 2 -#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 -# include -# if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION -# define ELIDE_CODE -# endif -#endif - -#ifndef ELIDE_CODE - - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -/* Don't include stdlib.h for non-GNU C libraries because some of them - contain conflicting prototypes for getopt. */ -# include -# include -#endif /* GNU C library. */ - -#ifdef VMS -# include -# if HAVE_STRING_H - 0 -# include -# endif -#endif - -#ifndef _ -/* This is for other GNU distributions with internationalized messages. - When compiling libc, the _ macro is predefined. */ -# ifdef HAVE_LIBINTL_H -# include -# define _(msgid) gettext (msgid) -# else -# define _(msgid) (msgid) -# endif -#endif - -/* This version of `getopt' appears to the caller like standard Unix `getopt' - but it behaves differently for the user, since it allows the user - to intersperse the options with the other arguments. - - As `getopt' works, it permutes the elements of ARGV so that, - when it is done, all the options precede everything else. Thus - all application programs are extended to handle flexible argument order. - - Setting the environment variable POSIXLY_CORRECT disables permutation. - Then the behavior is completely standard. - - GNU application programs can use a third alternative mode in which - they can distinguish the relative order of options and other arguments. */ - -#include "getopt.h" - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns -1, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -/* 1003.2 says this must be 1 before any call. */ -int optind = 1; - -/* Formerly, initialization of getopt depended on optind==0, which - causes problems with re-calling getopt as programs generally don't - know that. */ - -int __getopt_initialized; - -/* The next char to be scanned in the option-element - in which the last option character we returned was found. - This allows us to pick up the scan where we left off. - - If this is zero, or a null string, it means resume the scan - by advancing to the next ARGV-element. */ - -static char *nextchar; - -/* Callers store zero here to inhibit the error message - for unrecognized options. */ - -int opterr = 1; - -/* Set to an option character which was unrecognized. - This must be initialized on some systems to avoid linking in the - system's own getopt implementation. */ - -int optopt = '?'; - -/* Describe how to deal with options that follow non-option ARGV-elements. - - If the caller did not specify anything, - the default is REQUIRE_ORDER if the environment variable - POSIXLY_CORRECT is defined, PERMUTE otherwise. - - REQUIRE_ORDER means don't recognize them as options; - stop option processing when the first non-option is seen. - This is what Unix does. - This mode of operation is selected by either setting the environment - variable POSIXLY_CORRECT, or using `+' as the first character - of the list of option characters. - - PERMUTE is the default. We permute the contents of ARGV as we scan, - so that eventually all the non-options are at the end. This allows options - to be given in any order, even with programs that were not written to - expect this. - - RETURN_IN_ORDER is an option available to programs that were written - to expect options and other ARGV-elements in any order and that care about - the ordering of the two. We describe each non-option ARGV-element - as if it were the argument of an option with character code 1. - Using `-' as the first character of the list of option characters - selects this mode of operation. - - The special argument `--' forces an end of option-scanning regardless - of the value of `ordering'. In the case of RETURN_IN_ORDER, only - `--' can cause `getopt' to return -1 with `optind' != ARGC. */ - -static enum -{ - REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER -} ordering; - -/* Value of POSIXLY_CORRECT environment variable. */ -static char *posixly_correct; - -#ifdef __GNU_LIBRARY__ -/* We want to avoid inclusion of string.h with non-GNU libraries - because there are many ways it can cause trouble. - On some systems, it contains special magic macros that don't work - in GCC. */ -# include -# define my_index strchr -#else - -# if HAVE_STRING_H -# include -# else -# include -# endif - -/* Avoid depending on library functions or files - whose names are inconsistent. */ - -#ifndef getenv -extern char *getenv (); -#endif - -static char * -my_index (str, chr) - const char *str; - int chr; -{ - while (*str) - { - if (*str == chr) - return (char *) str; - str++; - } - return 0; -} - -/* If using GCC, we can safely declare strlen this way. - If not using GCC, it is ok not to declare it. */ -#ifdef __GNUC__ -/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. - That was relevant to code that was here before. */ -# if (!defined __STDC__ || !__STDC__) && !defined strlen -/* gcc with -traditional declares the built-in strlen to return int, - and has done so at least since version 2.4.5. -- rms. */ -extern int strlen (const char *); -# endif /* not __STDC__ */ -#endif /* __GNUC__ */ - -#endif /* not __GNU_LIBRARY__ */ - -/* Handle permutation of arguments. */ - -/* Describe the part of ARGV that contains non-options that have - been skipped. `first_nonopt' is the index in ARGV of the first of them; - `last_nonopt' is the index after the last of them. */ - -static int first_nonopt; -static int last_nonopt; - -#ifdef _LIBC -/* Bash 2.0 gives us an environment variable containing flags - indicating ARGV elements that should not be considered arguments. */ - -/* Defined in getopt_init.c */ -extern char *__getopt_nonoption_flags; - -static int nonoption_flags_max_len; -static int nonoption_flags_len; - -static int original_argc; -static char *const *original_argv; - -/* Make sure the environment variable bash 2.0 puts in the environment - is valid for the getopt call we must make sure that the ARGV passed - to getopt is that one passed to the process. */ -static void -__attribute__ ((unused)) -store_args_and_env (int argc, char *const *argv) -{ - /* XXX This is no good solution. We should rather copy the args so - that we can compare them later. But we must not use malloc(3). */ - original_argc = argc; - original_argv = argv; -} -# ifdef text_set_element -text_set_element (__libc_subinit, store_args_and_env); -# endif /* text_set_element */ - -# define SWAP_FLAGS(ch1, ch2) \ - if (nonoption_flags_len > 0) \ - { \ - char __tmp = __getopt_nonoption_flags[ch1]; \ - __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ - __getopt_nonoption_flags[ch2] = __tmp; \ - } -#else /* !_LIBC */ -# define SWAP_FLAGS(ch1, ch2) -#endif /* _LIBC */ - -/* Exchange two adjacent subsequences of ARGV. - One subsequence is elements [first_nonopt,last_nonopt) - which contains all the non-options that have been skipped so far. - The other is elements [last_nonopt,optind), which contains all - the options processed since those non-options were skipped. - - `first_nonopt' and `last_nonopt' are relocated so that they describe - the new indices of the non-options in ARGV after they are moved. */ - -#if defined __STDC__ && __STDC__ -static void exchange (char **); -#endif - -static void -exchange (argv) - char **argv; -{ - int bottom = first_nonopt; - int middle = last_nonopt; - int top = optind; - char *tem; - - /* Exchange the shorter segment with the far end of the longer segment. - That puts the shorter segment into the right place. - It leaves the longer segment in the right place overall, - but it consists of two parts that need to be swapped next. */ - -#ifdef _LIBC - /* First make sure the handling of the `__getopt_nonoption_flags' - string can work normally. Our top argument must be in the range - of the string. */ - if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len) - { - /* We must extend the array. The user plays games with us and - presents new arguments. */ - char *new_str = malloc (top + 1); - if (new_str == NULL) - nonoption_flags_len = nonoption_flags_max_len = 0; - else - { - memset (__mempcpy (new_str, __getopt_nonoption_flags, - nonoption_flags_max_len), - '\0', top + 1 - nonoption_flags_max_len); - nonoption_flags_max_len = top + 1; - __getopt_nonoption_flags = new_str; - } - } -#endif - - while (top > middle && middle > bottom) - { - if (top - middle > middle - bottom) - { - /* Bottom segment is the short one. */ - int len = middle - bottom; - register int i; - - /* Swap it with the top part of the top segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[top - (middle - bottom) + i]; - argv[top - (middle - bottom) + i] = tem; - SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); - } - /* Exclude the moved bottom segment from further swapping. */ - top -= len; - } - else - { - /* Top segment is the short one. */ - int len = top - middle; - register int i; - - /* Swap it with the bottom part of the bottom segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[middle + i]; - argv[middle + i] = tem; - SWAP_FLAGS (bottom + i, middle + i); - } - /* Exclude the moved top segment from further swapping. */ - bottom += len; - } - } - - /* Update records for the slots the non-options now occupy. */ - - first_nonopt += (optind - last_nonopt); - last_nonopt = optind; -} - -/* Initialize the internal data when the first call is made. */ - -#if defined __STDC__ && __STDC__ -static const char *_getopt_initialize (int, char *const *, const char *); -#endif -static const char * -_getopt_initialize (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; -{ - /* Start processing options with ARGV-element 1 (since ARGV-element 0 - is the program name); the sequence of previously skipped - non-option ARGV-elements is empty. */ - - first_nonopt = last_nonopt = optind; - - nextchar = NULL; - - posixly_correct = getenv ("POSIXLY_CORRECT"); - - /* Determine how to handle the ordering of options and nonoptions. */ - - if (optstring[0] == '-') - { - ordering = RETURN_IN_ORDER; - ++optstring; - } - else if (optstring[0] == '+') - { - ordering = REQUIRE_ORDER; - ++optstring; - } - else if (posixly_correct != NULL) - ordering = REQUIRE_ORDER; - else - ordering = PERMUTE; - -#ifdef _LIBC - if (posixly_correct == NULL - && argc == original_argc && argv == original_argv) - { - if (nonoption_flags_max_len == 0) - { - if (__getopt_nonoption_flags == NULL - || __getopt_nonoption_flags[0] == '\0') - nonoption_flags_max_len = -1; - else - { - const char *orig_str = __getopt_nonoption_flags; - int len = nonoption_flags_max_len = strlen (orig_str); - if (nonoption_flags_max_len < argc) - nonoption_flags_max_len = argc; - __getopt_nonoption_flags = - (char *) malloc (nonoption_flags_max_len); - if (__getopt_nonoption_flags == NULL) - nonoption_flags_max_len = -1; - else - memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), - '\0', nonoption_flags_max_len - len); - } - } - nonoption_flags_len = nonoption_flags_max_len; - } - else - nonoption_flags_len = 0; -#endif - - return optstring; -} - -/* Scan elements of ARGV (whose length is ARGC) for option characters - given in OPTSTRING. - - If an element of ARGV starts with '-', and is not exactly "-" or "--", - then it is an option element. The characters of this element - (aside from the initial '-') are option characters. If `getopt' - is called repeatedly, it returns successively each of the option characters - from each of the option elements. - - If `getopt' finds another option character, it returns that character, - updating `optind' and `nextchar' so that the next call to `getopt' can - resume the scan with the following option character or ARGV-element. - - If there are no more option characters, `getopt' returns -1. - Then `optind' is the index in ARGV of the first ARGV-element - that is not an option. (The ARGV-elements have been permuted - so that those that are not options now come last.) - - OPTSTRING is a string containing the legitimate option characters. - If an option character is seen that is not listed in OPTSTRING, - return '?' after printing an error message. If you set `opterr' to - zero, the error message is suppressed but we still return '?'. - - If a char in OPTSTRING is followed by a colon, that means it wants an arg, - so the following text in the same ARGV-element, or the text of the following - ARGV-element, is returned in `optarg'. Two colons mean an option that - wants an optional arg; if there is text in the current ARGV-element, - it is returned in `optarg', otherwise `optarg' is set to zero. - - If OPTSTRING starts with `-' or `+', it requests different methods of - handling the non-option ARGV-elements. - See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. - - Long-named options begin with `--' instead of `-'. - Their names may be abbreviated as long as the abbreviation is unique - or is an exact match for some defined option. If they have an - argument, it follows the option name in the same ARGV-element, separated - from the option name by a `=', or else the in next ARGV-element. - When `getopt' finds a long-named option, it returns 0 if that option's - `flag' field is nonzero, the value of the option's `val' field - if the `flag' field is zero. - - The elements of ARGV aren't really const, because we permute them. - But we pretend they're const in the prototype to be compatible - with other systems. - - LONGOPTS is a vector of `struct option' terminated by an - element containing a name which is zero. - - LONGIND returns the index in LONGOPT of the long-named option found. - It is only valid when a long-named option has been found by the most - recent call. - - If LONG_ONLY is nonzero, '-' as well as '--' can introduce - long-named options. */ - -int -_getopt_internal (argc, argv, optstring, longopts, longind, long_only) - int argc; - char *const *argv; - const char *optstring; - const struct option *longopts; - int *longind; - int long_only; -{ - optarg = NULL; - - if (optind == 0 || !__getopt_initialized) - { - if (optind == 0) - optind = 1; /* Don't scan ARGV[0], the program name. */ - optstring = _getopt_initialize (argc, argv, optstring); - __getopt_initialized = 1; - } - - /* Test whether ARGV[optind] points to a non-option argument. - Either it does not have option syntax, or there is an environment flag - from the shell indicating it is not an option. The later information - is only used when the used in the GNU libc. */ -#ifdef _LIBC -# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ - || (optind < nonoption_flags_len \ - && __getopt_nonoption_flags[optind] == '1')) -#else -# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') -#endif - - if (nextchar == NULL || *nextchar == '\0') - { - /* Advance to the next ARGV-element. */ - - /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been - moved back by the user (who may also have changed the arguments). */ - if (last_nonopt > optind) - last_nonopt = optind; - if (first_nonopt > optind) - first_nonopt = optind; - - if (ordering == PERMUTE) - { - /* If we have just processed some options following some non-options, - exchange them so that the options come first. */ - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (last_nonopt != optind) - first_nonopt = optind; - - /* Skip any additional non-options - and extend the range of non-options previously skipped. */ - - while (optind < argc && NONOPTION_P) - optind++; - last_nonopt = optind; - } - - /* The special ARGV-element `--' means premature end of options. - Skip it like a null option, - then exchange with previous non-options as if it were an option, - then skip everything else like a non-option. */ - - if (optind != argc && !strcmp (argv[optind], "--")) - { - optind++; - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (first_nonopt == last_nonopt) - first_nonopt = optind; - last_nonopt = argc; - - optind = argc; - } - - /* If we have done all the ARGV-elements, stop the scan - and back over any non-options that we skipped and permuted. */ - - if (optind == argc) - { - /* Set the next-arg-index to point at the non-options - that we previously skipped, so the caller will digest them. */ - if (first_nonopt != last_nonopt) - optind = first_nonopt; - return -1; - } - - /* If we have come to a non-option and did not permute it, - either stop the scan or describe it to the caller and pass it by. */ - - if (NONOPTION_P) - { - if (ordering == REQUIRE_ORDER) - return -1; - optarg = argv[optind++]; - return 1; - } - - /* We have found another option-ARGV-element. - Skip the initial punctuation. */ - - nextchar = (argv[optind] + 1 - + (longopts != NULL && argv[optind][1] == '-')); - } - - /* Decode the current option-ARGV-element. */ - - /* Check whether the ARGV-element is a long option. - - If long_only and the ARGV-element has the form "-f", where f is - a valid short option, don't consider it an abbreviated form of - a long option that starts with f. Otherwise there would be no - way to give the -f short option. - - On the other hand, if there's a long option "fubar" and - the ARGV-element is "-fu", do consider that an abbreviation of - the long option, just like "--fu", and not "-f" with arg "u". - - This distinction seems to be the most useful approach. */ - - if (longopts != NULL - && (argv[optind][1] == '-' - || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) - { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound = -1; - int option_index; - - for (nameend = nextchar; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) - { - if ((unsigned int) (nameend - nextchar) - == (unsigned int) strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else - /* Second or later nonexact match found. */ - ambig = 1; - } - - if (ambig && !exact) - { - if (opterr) - fprintf (stderr, _("%s: option `%s' is ambiguous\n"), - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - optopt = 0; - return '?'; - } - - if (pfound != NULL) - { - option_index = indfound; - optind++; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = nameend + 1; - else - { - if (opterr) - { - if (argv[optind - 1][1] == '-') - /* --option */ - fprintf (stderr, - _("%s: option `--%s' doesn't allow an argument\n"), - argv[0], pfound->name); - else - /* +option or -option */ - fprintf (stderr, - _("%s: option `%c%s' doesn't allow an argument\n"), - argv[0], argv[optind - 1][0], pfound->name); - } - - nextchar += strlen (nextchar); - - optopt = pfound->val; - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (opterr) - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - optopt = pfound->val; - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - - /* Can't find it as a long option. If this is not getopt_long_only, - or the option starts with '--' or is not a valid short - option, then it's an error. - Otherwise interpret it as a short option. */ - if (!long_only || argv[optind][1] == '-' - || my_index (optstring, *nextchar) == NULL) - { - if (opterr) - { - if (argv[optind][1] == '-') - /* --option */ - fprintf (stderr, _("%s: unrecognized option `--%s'\n"), - argv[0], nextchar); - else - /* +option or -option */ - fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), - argv[0], argv[optind][0], nextchar); - } - nextchar = (char *) ""; - optind++; - optopt = 0; - return '?'; - } - } - - /* Look at and handle the next short option-character. */ - - { - char c = *nextchar++; - char *temp = my_index (optstring, c); - - /* Increment `optind' when we start to process its last character. */ - if (*nextchar == '\0') - ++optind; - - if (temp == NULL || c == ':') - { - if (opterr) - { - if (posixly_correct) - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, _("%s: illegal option -- %c\n"), - argv[0], c); - else - fprintf (stderr, _("%s: invalid option -- %c\n"), - argv[0], c); - } - optopt = c; - return '?'; - } - /* Convenience. Treat POSIX -W foo same as long option --foo */ - if (temp[0] == 'W' && temp[1] == ';') - { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound = 0; - int option_index; - - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (opterr) - { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, _("%s: option requires an argument -- %c\n"), - argv[0], c); - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - return c; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - - /* optarg is now the argument, see if it's in the - table of longopts. */ - - for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) - { - if ((unsigned int) (nameend - nextchar) == strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else - /* Second or later nonexact match found. */ - ambig = 1; - } - if (ambig && !exact) - { - if (opterr) - fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - return '?'; - } - if (pfound != NULL) - { - option_index = indfound; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = nameend + 1; - else - { - if (opterr) - fprintf (stderr, _("\ -%s: option `-W %s' doesn't allow an argument\n"), - argv[0], pfound->name); - - nextchar += strlen (nextchar); - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (opterr) - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - nextchar = NULL; - return 'W'; /* Let the application handle it. */ - } - if (temp[1] == ':') - { - if (temp[2] == ':') - { - /* This is an option that accepts an argument optionally. */ - if (*nextchar != '\0') - { - optarg = nextchar; - optind++; - } - else - optarg = NULL; - nextchar = NULL; - } - else - { - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (opterr) - { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, - _("%s: option requires an argument -- %c\n"), - argv[0], c); - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - nextchar = NULL; - } - } - return c; - } -} - -int -getopt (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; -{ - return _getopt_internal (argc, argv, optstring, - (const struct option *) 0, - (int *) 0, - 0); -} - -#endif /* Not ELIDE_CODE. */ - -#ifdef TEST - -/* Compile with -DTEST to make an executable for use in testing - the above definition of `getopt'. */ - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - - c = getopt (argc, argv, "abc:d:0123456789"); - if (c == -1) - break; - - switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif /* TEST */ diff --git a/lib/getopt.h b/lib/getopt.h deleted file mode 100644 index ac6728f..0000000 --- a/lib/getopt.h +++ /dev/null @@ -1,169 +0,0 @@ -/* Declarations for getopt. - Copyright (C) 1989,90,91,92,93,94,96,97,98 Free Software Foundation, Inc. - NOTE: The canonical source of this file is maintained with the GNU C Library. - Bugs can be reported to bug-glibc@gnu.org. - 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. */ - -#ifndef _GETOPT_H - -#ifndef __need_getopt -# define _GETOPT_H 1 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -extern char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns -1, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -extern int optind; - -/* Callers store zero here to inhibit the error message `getopt' prints - for unrecognized options. */ - -extern int opterr; - -/* Set to an option character which was unrecognized. */ - -extern int optopt; - -#ifndef __need_getopt -/* Describe the long-named options requested by the application. - The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector - of `struct option' terminated by an element containing a name which is - zero. - - The field `has_arg' is: - no_argument (or 0) if the option does not take an argument, - required_argument (or 1) if the option requires an argument, - optional_argument (or 2) if the option takes an optional argument. - - If the field `flag' is not NULL, it points to a variable that is set - to the value given in the field `val' when the option is found, but - left unchanged if the option is not found. - - To have a long-named option do something other than set an `int' to - a compiled-in constant, such as set a value from `optarg', set the - option's `flag' field to zero and its `val' field to a nonzero - value (the equivalent single-letter option character, if there is - one). For long options that have a zero `flag' field, `getopt' - returns the contents of the `val' field. */ - -struct option -{ -# if defined __STDC__ && __STDC__ - const char *name; -# else - char *name; -# endif - /* has_arg can't be an enum because some compilers complain about - type mismatches in all the code that assumes it is an int. */ - int has_arg; - int *flag; - int val; -}; - -/* Names for the values of the `has_arg' field of `struct option'. */ - -# define no_argument 0 -# define required_argument 1 -# define optional_argument 2 -#endif /* need getopt */ - - -/* Get definitions and prototypes for functions to process the - arguments in ARGV (ARGC of them, minus the program name) for - options given in OPTS. - - Return the option character from OPTS just read. Return -1 when - there are no more options. For unrecognized options, or options - missing arguments, `optopt' is set to the option letter, and '?' is - returned. - - The OPTS string is a list of characters which are recognized option - letters, optionally followed by colons, specifying that that letter - takes an argument, to be placed in `optarg'. - - If a letter in OPTS is followed by two colons, its argument is - optional. This behavior is specific to the GNU `getopt'. - - The argument `--' causes premature termination of argument - scanning, explicitly telling `getopt' that there are no more - options. - - If OPTS begins with `--', then non-option arguments are treated as - arguments to the option '\0'. This behavior is specific to the GNU - `getopt'. */ - -#if defined __STDC__ && __STDC__ -# ifdef __GNU_LIBRARY__ -/* Many other libraries have conflicting prototypes for getopt, with - differences in the consts, in stdlib.h. To avoid compilation - errors, only prototype getopt for the GNU C library. */ -extern int getopt (int __argc, char *const *__argv, const char *__shortopts); -# else /* not __GNU_LIBRARY__ */ -extern int getopt (); -# endif /* __GNU_LIBRARY__ */ - -# ifndef __need_getopt -extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts, - const struct option *__longopts, int *__longind); -extern int getopt_long_only (int __argc, char *const *__argv, - const char *__shortopts, - const struct option *__longopts, int *__longind); - -/* Internal only. Users should not call this directly. */ -extern int _getopt_internal (int __argc, char *const *__argv, - const char *__shortopts, - const struct option *__longopts, int *__longind, - int __long_only); -# endif -#else /* not __STDC__ */ -extern int getopt (); -# ifndef __need_getopt -extern int getopt_long (); -extern int getopt_long_only (); - -extern int _getopt_internal (); -# endif -#endif /* __STDC__ */ - -#ifdef __cplusplus -} -#endif - -/* Make sure we later can get all the definitions and declarations. */ -#undef __need_getopt - -#endif /* getopt.h */ diff --git a/lib/getopt1.c b/lib/getopt1.c deleted file mode 100644 index 9c82565..0000000 --- a/lib/getopt1.c +++ /dev/null @@ -1,188 +0,0 @@ -/* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98 - Free Software Foundation, Inc. - NOTE: The canonical source of this file is maintained with the GNU C Library. - Bugs can be reported to bug-glibc@gnu.org. - - 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifdef HAVE_CONFIG_H -#include -#else -#if !defined __STDC__ || !__STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -#ifndef const -#define const -#endif -#endif -#endif - -#include "getopt.h" - -#include - -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#define GETOPT_INTERFACE_VERSION 2 -#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 -#include -#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION -#define ELIDE_CODE -#endif -#endif - -#ifndef ELIDE_CODE - - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -#include -#endif - -#ifndef NULL -#define NULL 0 -#endif - -int -getopt_long (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; -{ - return _getopt_internal (argc, argv, options, long_options, opt_index, 0); -} - -/* Like getopt_long, but '-' as well as '--' can indicate a long option. - If an option that starts with '-' (not '--') doesn't match a long option, - but does match a short option, it is parsed as a short option - instead. */ - -int -getopt_long_only (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; -{ - return _getopt_internal (argc, argv, options, long_options, opt_index, 1); -} - - -#endif /* Not ELIDE_CODE. */ - -#ifdef TEST - -#include - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - int option_index = 0; - static struct option long_options[] = - { - {"add", 1, 0, 0}, - {"append", 0, 0, 0}, - {"delete", 1, 0, 0}, - {"verbose", 0, 0, 0}, - {"create", 0, 0, 0}, - {"file", 1, 0, 0}, - {0, 0, 0, 0} - }; - - c = getopt_long (argc, argv, "abc:d:0123456789", - long_options, &option_index); - if (c == -1) - break; - - switch (c) - { - case 0: - printf ("option %s", long_options[option_index].name); - if (optarg) - printf (" with arg %s", optarg); - printf ("\n"); - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case 'd': - printf ("option d with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif /* TEST */ diff --git a/lib/gettext.h b/lib/gettext.h deleted file mode 100644 index e76b592..0000000 --- a/lib/gettext.h +++ /dev/null @@ -1,280 +0,0 @@ -/* Convenience header for conditional use of GNU . - Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009 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 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. - - You should have received a copy of the GNU General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, - USA. */ - -#ifndef _LIBGETTEXT_H -#define _LIBGETTEXT_H 1 - -/* NLS can be disabled through the configure --disable-nls option. */ -#if ENABLE_NLS - -/* Get declarations of GNU message catalog functions. */ -# include - -/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by - the gettext() and ngettext() macros. This is an alternative to calling - textdomain(), and is useful for libraries. */ -# ifdef DEFAULT_TEXT_DOMAIN -# undef gettext -# define gettext(Msgid) \ - dgettext (DEFAULT_TEXT_DOMAIN, Msgid) -# undef ngettext -# define ngettext(Msgid1, Msgid2, N) \ - dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) -# endif - -#else - -/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which - chokes if dcgettext is defined as a macro. So include it now, to make - later inclusions of a NOP. We don't include - as well because people using "gettext.h" will not include , - and also including would fail on SunOS 4, whereas - is OK. */ -#if defined(__sun) -# include -#endif - -/* Many header files from the libstdc++ coming with g++ 3.3 or newer include - , which chokes if dcgettext is defined as a macro. So include - it now, to make later inclusions of a NOP. */ -#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) -# include -# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H -# include -# endif -#endif - -/* Disabled NLS. - The casts to 'const char *' serve the purpose of producing warnings - for invalid uses of the value returned from these functions. - On pre-ANSI systems without 'const', the config.h file is supposed to - contain "#define const". */ -# undef gettext -# define gettext(Msgid) ((const char *) (Msgid)) -# undef dgettext -# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) -# undef dcgettext -# define dcgettext(Domainname, Msgid, Category) \ - ((void) (Category), dgettext (Domainname, Msgid)) -# undef ngettext -# define ngettext(Msgid1, Msgid2, N) \ - ((N) == 1 \ - ? ((void) (Msgid2), (const char *) (Msgid1)) \ - : ((void) (Msgid1), (const char *) (Msgid2))) -# undef dngettext -# define dngettext(Domainname, Msgid1, Msgid2, N) \ - ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) -# undef dcngettext -# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ - ((void) (Category), dngettext(Domainname, Msgid1, Msgid2, N)) -# undef textdomain -# define textdomain(Domainname) ((const char *) (Domainname)) -# undef bindtextdomain -# define bindtextdomain(Domainname, Dirname) \ - ((void) (Domainname), (const char *) (Dirname)) -# undef bind_textdomain_codeset -# define bind_textdomain_codeset(Domainname, Codeset) \ - ((void) (Domainname), (const char *) (Codeset)) - -#endif - -/* A pseudo function call that serves as a marker for the automated - extraction of messages, but does not call gettext(). The run-time - translation is done at a different place in the code. - The argument, String, should be a literal string. Concatenated strings - and other string expressions won't work. - The macro's expansion is not parenthesized, so that it is suitable as - initializer for static 'char[]' or 'const char[]' variables. */ -#define gettext_noop(String) String - -/* The separator between msgctxt and msgid in a .mo file. */ -#define GETTEXT_CONTEXT_GLUE "\004" - -/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a - MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be - short and rarely need to change. - The letter 'p' stands for 'particular' or 'special'. */ -#ifdef DEFAULT_TEXT_DOMAIN -# define pgettext(Msgctxt, Msgid) \ - pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) -#else -# define pgettext(Msgctxt, Msgid) \ - pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) -#endif -#define dpgettext(Domainname, Msgctxt, Msgid) \ - pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) -#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \ - pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category) -#ifdef DEFAULT_TEXT_DOMAIN -# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ - npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) -#else -# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ - npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) -#endif -#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ - npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) -#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ - npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static const char * -pgettext_aux (const char *domain, - const char *msg_ctxt_id, const char *msgid, - int category) -{ - const char *translation = dcgettext (domain, msg_ctxt_id, category); - if (translation == msg_ctxt_id) - return msgid; - else - return translation; -} - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static const char * -npgettext_aux (const char *domain, - const char *msg_ctxt_id, const char *msgid, - const char *msgid_plural, unsigned long int n, - int category) -{ - const char *translation = - dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); - if (translation == msg_ctxt_id || translation == msgid_plural) - return (n == 1 ? msgid : msgid_plural); - else - return translation; -} - -/* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID - can be arbitrary expressions. But for string literals these macros are - less efficient than those above. */ - -#include - -#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \ - (((__GNUC__ >= 3 || __GNUG__ >= 2) && !__STRICT_ANSI__) \ - /* || __STDC_VERSION__ >= 199901L */ ) - -#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS -#include -#endif - -#define pgettext_expr(Msgctxt, Msgid) \ - dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES) -#define dpgettext_expr(Domainname, Msgctxt, Msgid) \ - dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static const char * -dcpgettext_expr (const char *domain, - const char *msgctxt, const char *msgid, - int category) -{ - size_t msgctxt_len = strlen (msgctxt) + 1; - size_t msgid_len = strlen (msgid) + 1; - const char *translation; -#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS - char msg_ctxt_id[msgctxt_len + msgid_len]; -#else - char buf[1024]; - char *msg_ctxt_id = - (msgctxt_len + msgid_len <= sizeof (buf) - ? buf - : (char *) malloc (msgctxt_len + msgid_len)); - if (msg_ctxt_id != NULL) -#endif - { - memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); - msg_ctxt_id[msgctxt_len - 1] = '\004'; - memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); - translation = dcgettext (domain, msg_ctxt_id, category); -#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS - if (msg_ctxt_id != buf) - free (msg_ctxt_id); -#endif - if (translation != msg_ctxt_id) - return translation; - } - return msgid; -} - -#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \ - dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) -#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ - dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static const char * -dcnpgettext_expr (const char *domain, - const char *msgctxt, const char *msgid, - const char *msgid_plural, unsigned long int n, - int category) -{ - size_t msgctxt_len = strlen (msgctxt) + 1; - size_t msgid_len = strlen (msgid) + 1; - const char *translation; -#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS - char msg_ctxt_id[msgctxt_len + msgid_len]; -#else - char buf[1024]; - char *msg_ctxt_id = - (msgctxt_len + msgid_len <= sizeof (buf) - ? buf - : (char *) malloc (msgctxt_len + msgid_len)); - if (msg_ctxt_id != NULL) -#endif - { - memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); - msg_ctxt_id[msgctxt_len - 1] = '\004'; - memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); - translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); -#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS - if (msg_ctxt_id != buf) - free (msg_ctxt_id); -#endif - if (!(translation == msg_ctxt_id || translation == msgid_plural)) - return translation; - } - return (n == 1 ? msgid : msgid_plural); -} - -#endif /* _LIBGETTEXT_H */ diff --git a/lib/malloc.c b/lib/malloc.c deleted file mode 100644 index 58fa611..0000000 --- a/lib/malloc.c +++ /dev/null @@ -1,36 +0,0 @@ -/* malloc() function that is glibc compatible. - Copyright (C) 1997, 1998 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* written by Jim Meyering */ - -#ifdef HAVE_CONFIG_H -# include -#endif -#undef malloc - -#include - -/* Allocate an N-byte block of memory from the heap. - If N is zero, allocate a 1-byte block. */ - -void * -rpl_malloc (size_t n) -{ - if (n == 0) - n = 1; - return malloc (n); -} diff --git a/lib/malloc/.gitignore b/lib/malloc/.gitignore new file mode 100644 index 0000000..5f8866f --- /dev/null +++ b/lib/malloc/.gitignore @@ -0,0 +1,6 @@ +/scratch_buffer.gl.h +/scratch_buffer.h +/scratch_buffer_dupfree.c +/scratch_buffer_grow.c +/scratch_buffer_grow_preserve.c +/scratch_buffer_set_array_size.c diff --git a/lib/pathmax.h b/lib/pathmax.h deleted file mode 100644 index 6941e45..0000000 --- a/lib/pathmax.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Define PATH_MAX somehow. Requires sys/types.h. - Copyright (C) 1992, 1999, 2001, 2003, 2005 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _PATHMAX_H -# define _PATHMAX_H - -# include - -# include - -# ifndef _POSIX_PATH_MAX -# define _POSIX_PATH_MAX 256 -# endif - -# if !defined PATH_MAX && defined _PC_PATH_MAX -# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 \ - : pathconf ("/", _PC_PATH_MAX)) -# endif - -/* Don't include sys/param.h if it already has been. */ -# if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN -# include -# endif - -# if !defined PATH_MAX && defined MAXPATHLEN -# define PATH_MAX MAXPATHLEN -# endif - -# ifndef PATH_MAX -# define PATH_MAX _POSIX_PATH_MAX -# endif - -#endif /* _PATHMAX_H */ diff --git a/lib/realloc.c b/lib/realloc.c deleted file mode 100644 index fe94822..0000000 --- a/lib/realloc.c +++ /dev/null @@ -1,46 +0,0 @@ -/* realloc() function that is glibc compatible. - Copyright (C) 1997, 2003, 2004 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* written by Jim Meyering */ - -#ifdef HAVE_CONFIG_H -# include -#endif -#undef realloc - -#include - -/* Change the size of an allocated block of memory P to N bytes, - with error checking. If N is zero, change it to 1. If P is NULL, - use malloc. */ - -void * -rpl_realloc (void *p, size_t n) -{ - if (n == 0) - { - n = 1; - - /* In theory realloc might fail, so don't rely on it to free. */ - free (p); - p = NULL; - } - - if (p == NULL) - return malloc (n); - return realloc (p, n); -} diff --git a/lib/strtol.c b/lib/strtol.c deleted file mode 100644 index 9bfbe3c..0000000 --- a/lib/strtol.c +++ /dev/null @@ -1,447 +0,0 @@ -/* Convert string representation of a number into an integer value. - - Copyright (C) 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2005 - Free Software Foundation, Inc. - - NOTE: The canonical source of this file is maintained with the GNU C - Library. Bugs can be reported to bug-glibc@gnu.org. - - 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#ifdef _LIBC -# define USE_NUMBER_GROUPING -#endif - -#include -#include -#ifndef errno -extern int errno; -#endif -#ifndef __set_errno -# define __set_errno(Val) errno = (Val) -#endif - -#include -#include -#include -#include - -#ifdef USE_NUMBER_GROUPING -# include "../locale/localeinfo.h" -#endif - -/* Nonzero if we are defining `strtoul' or `strtoull', operating on - unsigned integers. */ -#ifndef UNSIGNED -# define UNSIGNED 0 -# define INT LONG int -#else -# define INT unsigned LONG int -#endif - -/* Determine the name. */ -#ifdef USE_IN_EXTENDED_LOCALE_MODEL -# if UNSIGNED -# ifdef USE_WIDE_CHAR -# ifdef QUAD -# define strtol __wcstoull_l -# else -# define strtol __wcstoul_l -# endif -# else -# ifdef QUAD -# define strtol __strtoull_l -# else -# define strtol __strtoul_l -# endif -# endif -# else -# ifdef USE_WIDE_CHAR -# ifdef QUAD -# define strtol __wcstoll_l -# else -# define strtol __wcstol_l -# endif -# else -# ifdef QUAD -# define strtol __strtoll_l -# else -# define strtol __strtol_l -# endif -# endif -# endif -#else -# if UNSIGNED -# ifdef USE_WIDE_CHAR -# ifdef QUAD -# define strtol wcstoull -# else -# define strtol wcstoul -# endif -# else -# ifdef QUAD -# define strtol strtoull -# else -# define strtol strtoul -# endif -# endif -# else -# ifdef USE_WIDE_CHAR -# ifdef QUAD -# define strtol wcstoll -# else -# define strtol wcstol -# endif -# else -# ifdef QUAD -# define strtol strtoll -# endif -# endif -# endif -#endif - -/* If QUAD is defined, we are defining `strtoll' or `strtoull', - operating on `long long int's. */ -#ifdef QUAD -# define LONG long long -# define STRTOL_LONG_MIN LONG_LONG_MIN -# define STRTOL_LONG_MAX LONG_LONG_MAX -# define STRTOL_ULONG_MAX ULONG_LONG_MAX - -/* The extra casts in the following macros work around compiler bugs, - e.g., in Cray C 5.0.3.0. */ - -/* True if negative values of the signed integer type T use two's - complement, ones' complement, or signed magnitude representation, - respectively. Much GNU code assumes two's complement, but some - people like to be portable to all possible C hosts. */ -# define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) -# define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) -# define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) - -/* True if the arithmetic type T is signed. */ -# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) - -/* The maximum and minimum values for the integer type T. These - macros have undefined behavior if T is signed and has padding bits. - If this is a problem for you, please let us know how to fix it for - your host. */ -# define TYPE_MINIMUM(t) \ - ((t) (! TYPE_SIGNED (t) \ - ? (t) 0 \ - : TYPE_SIGNED_MAGNITUDE (t) \ - ? ~ (t) 0 \ - : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) -# define TYPE_MAXIMUM(t) \ - ((t) (! TYPE_SIGNED (t) \ - ? (t) -1 \ - : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) - -# ifndef ULONG_LONG_MAX -# define ULONG_LONG_MAX TYPE_MAXIMUM (unsigned long long) -# endif -# ifndef LONG_LONG_MAX -# define LONG_LONG_MAX TYPE_MAXIMUM (long long int) -# endif -# ifndef LONG_LONG_MIN -# define LONG_LONG_MIN TYPE_MINIMUM (long long int) -# endif - -# if __GNUC__ == 2 && __GNUC_MINOR__ < 7 - /* Work around gcc bug with using this constant. */ - static const unsigned long long int maxquad = ULONG_LONG_MAX; -# undef STRTOL_ULONG_MAX -# define STRTOL_ULONG_MAX maxquad -# endif -#else -# define LONG long -# define STRTOL_LONG_MIN LONG_MIN -# define STRTOL_LONG_MAX LONG_MAX -# define STRTOL_ULONG_MAX ULONG_MAX -#endif - - -/* We use this code also for the extended locale handling where the - function gets as an additional argument the locale which has to be - used. To access the values we have to redefine the _NL_CURRENT - macro. */ -#ifdef USE_IN_EXTENDED_LOCALE_MODEL -# undef _NL_CURRENT -# define _NL_CURRENT(category, item) \ - (current->values[_NL_ITEM_INDEX (item)].string) -# define LOCALE_PARAM , loc -# define LOCALE_PARAM_PROTO , __locale_t loc -#else -# define LOCALE_PARAM -# define LOCALE_PARAM_PROTO -#endif - -#if defined _LIBC || defined HAVE_WCHAR_H -# include -#endif - -#ifdef USE_WIDE_CHAR -# include -# define L_(Ch) L##Ch -# define UCHAR_TYPE wint_t -# define STRING_TYPE wchar_t -# ifdef USE_IN_EXTENDED_LOCALE_MODEL -# define ISSPACE(Ch) __iswspace_l ((Ch), loc) -# define ISALPHA(Ch) __iswalpha_l ((Ch), loc) -# define TOUPPER(Ch) __towupper_l ((Ch), loc) -# else -# define ISSPACE(Ch) iswspace (Ch) -# define ISALPHA(Ch) iswalpha (Ch) -# define TOUPPER(Ch) towupper (Ch) -# endif -#else -# if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII) -# define IN_CTYPE_DOMAIN(c) 1 -# else -# define IN_CTYPE_DOMAIN(c) isascii(c) -# endif -# define L_(Ch) Ch -# define UCHAR_TYPE unsigned char -# define STRING_TYPE char -# ifdef USE_IN_EXTENDED_LOCALE_MODEL -# define ISSPACE(Ch) __isspace_l ((Ch), loc) -# define ISALPHA(Ch) __isalpha_l ((Ch), loc) -# define TOUPPER(Ch) __toupper_l ((Ch), loc) -# else -# define ISSPACE(Ch) (IN_CTYPE_DOMAIN (Ch) && isspace (Ch)) -# define ISALPHA(Ch) (IN_CTYPE_DOMAIN (Ch) && isalpha (Ch)) -# define TOUPPER(Ch) (IN_CTYPE_DOMAIN (Ch) ? toupper (Ch) : (Ch)) -# endif -#endif - -#define INTERNAL(X) INTERNAL1(X) -#define INTERNAL1(X) __##X##_internal -#define WEAKNAME(X) WEAKNAME1(X) - -#ifdef USE_NUMBER_GROUPING -/* This file defines a function to check for correct grouping. */ -# include "grouping.h" -#endif - - - -/* Convert NPTR to an `unsigned long int' or `long int' in base BASE. - If BASE is 0 the base is determined by the presence of a leading - zero, indicating octal or a leading "0x" or "0X", indicating hexadecimal. - If BASE is < 2 or > 36, it is reset to 10. - If ENDPTR is not NULL, a pointer to the character after the last - one converted is stored in *ENDPTR. */ - -INT -INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr, - int base, int group LOCALE_PARAM_PROTO) -{ - int negative; - register unsigned LONG int cutoff; - register unsigned int cutlim; - register unsigned LONG int i; - register const STRING_TYPE *s; - register UCHAR_TYPE c; - const STRING_TYPE *save, *end; - int overflow; - -#ifdef USE_NUMBER_GROUPING -# ifdef USE_IN_EXTENDED_LOCALE_MODEL - struct locale_data *current = loc->__locales[LC_NUMERIC]; -# endif - /* The thousands character of the current locale. */ - wchar_t thousands = L'\0'; - /* The numeric grouping specification of the current locale, - in the format described in . */ - const char *grouping; - - if (group) - { - grouping = _NL_CURRENT (LC_NUMERIC, GROUPING); - if (*grouping <= 0 || *grouping == CHAR_MAX) - grouping = NULL; - else - { - /* Figure out the thousands separator character. */ -# if defined _LIBC || defined _HAVE_BTOWC - thousands = __btowc (*_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP)); - if (thousands == WEOF) - thousands = L'\0'; -# endif - if (thousands == L'\0') - grouping = NULL; - } - } - else - grouping = NULL; -#endif - - if (base < 0 || base == 1 || base > 36) - { - __set_errno (EINVAL); - return 0; - } - - save = s = nptr; - - /* Skip white space. */ - while (ISSPACE (*s)) - ++s; - if (*s == L_('\0')) - goto noconv; - - /* Check for a sign. */ - if (*s == L_('-')) - { - negative = 1; - ++s; - } - else if (*s == L_('+')) - { - negative = 0; - ++s; - } - else - negative = 0; - - /* Recognize number prefix and if BASE is zero, figure it out ourselves. */ - if (*s == L_('0')) - { - if ((base == 0 || base == 16) && TOUPPER (s[1]) == L_('X')) - { - s += 2; - base = 16; - } - else if (base == 0) - base = 8; - } - else if (base == 0) - base = 10; - - /* Save the pointer so we can check later if anything happened. */ - save = s; - -#ifdef USE_NUMBER_GROUPING - if (group) - { - /* Find the end of the digit string and check its grouping. */ - end = s; - for (c = *end; c != L_('\0'); c = *++end) - if ((wchar_t) c != thousands - && ((wchar_t) c < L_('0') || (wchar_t) c > L_('9')) - && (!ISALPHA (c) || (int) (TOUPPER (c) - L_('A') + 10) >= base)) - break; - if (*s == thousands) - end = s; - else - end = correctly_grouped_prefix (s, end, thousands, grouping); - } - else -#endif - end = NULL; - - cutoff = STRTOL_ULONG_MAX / (unsigned LONG int) base; - cutlim = STRTOL_ULONG_MAX % (unsigned LONG int) base; - - overflow = 0; - i = 0; - for (c = *s; c != L_('\0'); c = *++s) - { - if (s == end) - break; - if (c >= L_('0') && c <= L_('9')) - c -= L_('0'); - else if (ISALPHA (c)) - c = TOUPPER (c) - L_('A') + 10; - else - break; - if ((int) c >= base) - break; - /* Check for overflow. */ - if (i > cutoff || (i == cutoff && c > cutlim)) - overflow = 1; - else - { - i *= (unsigned LONG int) base; - i += c; - } - } - - /* Check if anything actually happened. */ - if (s == save) - goto noconv; - - /* Store in ENDPTR the address of one character - past the last character we converted. */ - if (endptr != NULL) - *endptr = (STRING_TYPE *) s; - -#if !UNSIGNED - /* Check for a value that is within the range of - `unsigned LONG int', but outside the range of `LONG int'. */ - if (overflow == 0 - && i > (negative - ? -((unsigned LONG int) (STRTOL_LONG_MIN + 1)) + 1 - : (unsigned LONG int) STRTOL_LONG_MAX)) - overflow = 1; -#endif - - if (overflow) - { - __set_errno (ERANGE); -#if UNSIGNED - return STRTOL_ULONG_MAX; -#else - return negative ? STRTOL_LONG_MIN : STRTOL_LONG_MAX; -#endif - } - - /* Return the result of the appropriate sign. */ - return negative ? -i : i; - -noconv: - /* We must handle a special case here: the base is 0 or 16 and the - first two characters are '0' and 'x', but the rest are no - hexadecimal digits. This is no error case. We return 0 and - ENDPTR points to the `x`. */ - if (endptr != NULL) - { - if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X') - && save[-2] == L_('0')) - *endptr = (STRING_TYPE *) &save[-1]; - else - /* There was no number to convert. */ - *endptr = (STRING_TYPE *) nptr; - } - - return 0L; -} - -/* External user entry point. */ - - -INT -#ifdef weak_function -weak_function -#endif -strtol (const STRING_TYPE *nptr, STRING_TYPE **endptr, - int base LOCALE_PARAM_PROTO) -{ - return INTERNAL (strtol) (nptr, endptr, base, 0 LOCALE_PARAM); -} diff --git a/lib/strtoul.c b/lib/strtoul.c deleted file mode 100644 index 79ceed2..0000000 --- a/lib/strtoul.c +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright (C) 1991, 1997 Free Software Foundation, Inc. - This file is part of the GNU C 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#define UNSIGNED 1 - -#include "strtol.c" diff --git a/lib/xstrdup.c b/lib/xstrdup.c deleted file mode 100644 index 38674ca..0000000 --- a/lib/xstrdup.c +++ /dev/null @@ -1,46 +0,0 @@ -/* xstrdup.c -- copy a string with out of memory checking - Copyright (C) 1990, 1996, 1998 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if HAVE_CONFIG_H -# include -#endif - -#ifndef PARAMS -# if defined PROTOTYPES || (defined __STDC__ && __STDC__) -# define PARAMS(Args) Args -# else -# define PARAMS(Args) () -# endif -#endif - -#if STDC_HEADERS || HAVE_STRING_H -# include -#else -# include -#endif - -#include - -char *xmalloc PARAMS ((size_t n)); - -/* Return a newly allocated copy of STRING. */ - -char * -xstrdup (const char *string) -{ - return strcpy (xmalloc (strlen (string) + 1), string); -} diff --git a/lib/xstring.h b/lib/xstring.h deleted file mode 100644 index c6f79e0..0000000 --- a/lib/xstring.h +++ /dev/null @@ -1,44 +0,0 @@ -/* xstring.h - string declarations wrapper wrapper - Copyright (C) 1986, 1995, 1996 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifndef _xstring_h_ -#define _xstring_h_ - -#define dirname sidestep_dirname_declaration -#define basename sidestep_basename_declaration -#ifdef HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#else -# include -char *memchr (); -#endif -#undef dirname -#undef basename - -#define strequ(s1, s2) (strcmp ((s1), (s2)) == 0) -#define strnequ(s1, s2, n) (strncmp ((s1), (s2), (n)) == 0) - -#if !HAVE_STRNDUP -extern char *strndup __P((char const *, size_t n)); -#endif -extern char *basename __P((char const *)); -extern char *dirname __P((char const *)); - -#endif /* not _xstring_h_ */ diff --git a/ltconfig b/ltconfig deleted file mode 100755 index a01334f..0000000 --- a/ltconfig +++ /dev/null @@ -1,3078 +0,0 @@ -#! /bin/sh - -# ltconfig - Create a system-specific libtool. -# Copyright (C) 1996-1999 Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit , 1996 -# -# This file 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 2 of the License, 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 -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# A lot of this script is taken from autoconf-2.10. - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} -echo=echo -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec "$SHELL" "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null`} - case X$UNAME in - *-DOS) PATH_SEPARATOR=';' ;; - *) PATH_SEPARATOR=':' ;; - esac -fi - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi - -if test "X${echo_test_string+set}" != Xset; then - # find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if (echo_test_string="`eval $cmd`") 2>/dev/null && - echo_test_string="`eval $cmd`" && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" != 'X\t' || - test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for dir in $PATH /usr/ucb; do - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running ltconfig again with it. - ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}" - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - echo='printf "%s\n"' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - # Cool, printf works - : - elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && - test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL" - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL $0 --fallback-echo" - elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && - test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - echo="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# The name of this program. -progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` - -# Constants: -PROGRAM=ltconfig -PACKAGE=libtool -VERSION=1.3.4 -TIMESTAMP=" (1.385.2.196 1999/12/07 21:47:57)" -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -rm="rm -f" - -help="Try \`$progname --help' for more information." - -# Global variables: -default_ofile=libtool -can_build_shared=yes -enable_shared=yes -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -enable_static=yes -enable_fast_install=yes -enable_dlopen=unknown -enable_win32_dll=no -ltmain= -silent= -srcdir= -ac_config_guess= -ac_config_sub= -host= -nonopt= -ofile="$default_ofile" -verify_host=yes -with_gcc=no -with_gnu_ld=no -need_locks=yes -ac_ext=c -objext=o -libext=a -exeext= -cache_file= - -old_AR="$AR" -old_CC="$CC" -old_CFLAGS="$CFLAGS" -old_CPPFLAGS="$CPPFLAGS" -old_LDFLAGS="$LDFLAGS" -old_LD="$LD" -old_LN_S="$LN_S" -old_LIBS="$LIBS" -old_NM="$NM" -old_RANLIB="$RANLIB" -old_DLLTOOL="$DLLTOOL" -old_OBJDUMP="$OBJDUMP" -old_AS="$AS" - -# Parse the command line options. -args= -prev= -for option -do - case "$option" in - -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - eval "$prev=\$option" - prev= - continue - fi - - case "$option" in - --help) cat <&2 - echo "$help" 1>&2 - exit 1 - ;; - - *) - if test -z "$ltmain"; then - ltmain="$option" - elif test -z "$host"; then -# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 -# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then -# echo "$progname: warning \`$option' is not a valid host type" 1>&2 -# fi - host="$option" - else - echo "$progname: too many arguments" 1>&2 - echo "$help" 1>&2 - exit 1 - fi ;; - esac -done - -if test -z "$ltmain"; then - echo "$progname: you must specify a LTMAIN file" 1>&2 - echo "$help" 1>&2 - exit 1 -fi - -if test ! -f "$ltmain"; then - echo "$progname: \`$ltmain' does not exist" 1>&2 - echo "$help" 1>&2 - exit 1 -fi - -# Quote any args containing shell metacharacters. -ltconfig_args= -for arg -do - case "$arg" in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ltconfig_args="$ltconfig_args '$arg'" ;; - *) ltconfig_args="$ltconfig_args $arg" ;; - esac -done - -# A relevant subset of AC_INIT. - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 5 compiler messages saved in config.log -# 6 checking for... messages and results -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>>./config.log - -# NLS nuisances. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). -if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi -if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi - -if test -n "$cache_file" && test -r "$cache_file"; then - echo "loading cache $cache_file within ltconfig" - . $cache_file -fi - -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - -if test -z "$srcdir"; then - # Assume the source directory is the same one as the path to LTMAIN. - srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'` - test "$srcdir" = "$ltmain" && srcdir=. -fi - -trap "$rm conftest*; exit 1" 1 2 15 -if test "$verify_host" = yes; then - # Check for config.guess and config.sub. - ac_aux_dir= - for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/config.guess; then - ac_aux_dir=$ac_dir - break - fi - done - if test -z "$ac_aux_dir"; then - echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2 - echo "$help" 1>&2 - exit 1 - fi - ac_config_guess=$ac_aux_dir/config.guess - ac_config_sub=$ac_aux_dir/config.sub - - # Make sure we can run config.sub. - if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then : - else - echo "$progname: cannot run $ac_config_sub" 1>&2 - echo "$help" 1>&2 - exit 1 - fi - - echo $ac_n "checking host system type""... $ac_c" 1>&6 - - host_alias=$host - case "$host_alias" in - "") - if host_alias=`$SHELL $ac_config_guess`; then : - else - echo "$progname: cannot guess host type; you must specify one" 1>&2 - echo "$help" 1>&2 - exit 1 - fi ;; - esac - host=`$SHELL $ac_config_sub $host_alias` - echo "$ac_t$host" 1>&6 - - # Make sure the host verified. - test -z "$host" && exit 1 - -elif test -z "$host"; then - echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 - echo "$help" 1>&2 - exit 1 -else - host_alias=$host -fi - -# Transform linux* to *-*-linux-gnu*, to support old configure scripts. -case "$host_os" in -linux-gnu*) ;; -linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` -esac - -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -case "$host_os" in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR cru $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -# Set a sane default for `AR'. -test -z "$AR" && AR=ar - -# Set a sane default for `OBJDUMP'. -test -z "$OBJDUMP" && OBJDUMP=objdump - -# If RANLIB is not set, then run the test. -if test "${RANLIB+set}" != "set"; then - result=no - - echo $ac_n "checking for ranlib... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then - RANLIB="ranlib" - result="ranlib" - break - fi - done - IFS="$save_ifs" - - echo "$ac_t$result" 1>&6 -fi - -if test -n "$RANLIB"; then - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" -fi - -# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin. -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$AS" && AS=as - -# Check to see if we are using GCC. -if test "$with_gcc" != yes || test -z "$CC"; then - # If CC is not set, then try to find GCC or a usable CC. - if test -z "$CC"; then - echo $ac_n "checking for gcc... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then - CC="gcc" - break - fi - done - IFS="$save_ifs" - - if test -n "$CC"; then - echo "$ac_t$CC" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - fi - - # Not "gcc", so try "cc", rejecting "/usr/ucb/cc". - if test -z "$CC"; then - echo $ac_n "checking for cc... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - cc_rejected=no - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/cc || test -f $dir/cc$ac_exeext; then - if test "$dir/cc" = "/usr/ucb/cc"; then - cc_rejected=yes - continue - fi - CC="cc" - break - fi - done - IFS="$save_ifs" - if test $cc_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same name, so the bogon will be chosen - # first if we set CC to just the name; use the full file name. - shift - set dummy "$dir/cc" "$@" - shift - CC="$@" - fi - fi - - if test -n "$CC"; then - echo "$ac_t$CC" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - - if test -z "$CC"; then - echo "$progname: error: no acceptable cc found in \$PATH" 1>&2 - exit 1 - fi - fi - - # Now see if the compiler is really GCC. - with_gcc=no - echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 - echo "$progname:581: checking whether we are using GNU C" >&5 - - $rm conftest.c - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - with_gcc=yes - fi - $rm conftest.c - echo "$ac_t$with_gcc" 1>&6 -fi - -# Allow CC to be a program name with arguments. -set dummy $CC -compiler="$2" - -echo $ac_n "checking for object suffix... $ac_c" 1>&6 -$rm conftest* -echo 'int i = 1;' > conftest.c -echo "$progname:603: checking for object suffix" >& 5 -if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then - # Append any warnings to the config.log. - cat conftest.err 1>&5 - - for ac_file in conftest.*; do - case $ac_file in - *.c) ;; - *) objext=`echo $ac_file | sed -e s/conftest.//` ;; - esac - done -else - cat conftest.err 1>&5 - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 -fi -$rm conftest* -echo "$ac_t$objext" 1>&6 - -echo $ac_n "checking for executable suffix... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_cv_exeext="no" - $rm conftest* - echo 'main () { return 0; }' > conftest.c - echo "$progname:629: checking for executable suffix" >& 5 - if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then - # Append any warnings to the config.log. - cat conftest.err 1>&5 - - for ac_file in conftest.*; do - case $ac_file in - *.c | *.err | *.$objext ) ;; - *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;; - esac - done - else - cat conftest.err 1>&5 - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 - fi - $rm conftest* -fi -if test "X$ac_cv_exeext" = Xno; then - exeext="" -else - exeext="$ac_cv_exeext" -fi -echo "$ac_t$ac_cv_exeext" 1>&6 - -echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 -pic_flag= -special_shlib_compile_flags= -wl= -link_static_flag= -no_builtin_flag= - -if test "$with_gcc" = yes; then - wl='-Wl,' - link_static_flag='-static' - - case "$host_os" in - beos* | irix5* | irix6* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - aix*) - # Below there is a dirty hack to force normal static linking with -ldl - # The problem is because libdl dynamically linked with both libc and - # libC (AIX C++ library), which obviously doesn't included in libraries - # list by gcc. This cause undefined symbols with -static flags. - # This hack allows C programs to be linked with "-static -ldl", but - # we not sure about C++ programs. - link_static_flag="$link_static_flag ${wl}-lC" - ;; - cygwin* | mingw* | os2*) - # We can build DLLs from non-PIC. - ;; - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - pic_flag='-m68020 -resident32 -malways-restore-a4' - ;; - sysv4*MP*) - if test -d /usr/nec; then - pic_flag=-Kconform_pic - fi - ;; - *) - pic_flag='-fPIC' - ;; - esac -else - # PORTME Check for PIC flags for the system compiler. - case "$host_os" in - aix3* | aix4*) - # All AIX code is PIC. - link_static_flag='-bnso -bI:/lib/syscalls.exp' - ;; - - hpux9* | hpux10* | hpux11*) - # Is there a better link_static_flag that works with the bundled CC? - wl='-Wl,' - link_static_flag="${wl}-a ${wl}archive" - pic_flag='+Z' - ;; - - irix5* | irix6*) - wl='-Wl,' - link_static_flag='-non_shared' - # PIC (with -KPIC) is the default. - ;; - - cygwin* | mingw* | os2*) - # We can build DLLs from non-PIC. - ;; - - osf3* | osf4* | osf5*) - # All OSF/1 code is PIC. - wl='-Wl,' - link_static_flag='-non_shared' - ;; - - sco3.2v5*) - pic_flag='-Kpic' - link_static_flag='-dn' - special_shlib_compile_flags='-belf' - ;; - - solaris*) - pic_flag='-KPIC' - link_static_flag='-Bstatic' - wl='-Wl,' - ;; - - sunos4*) - pic_flag='-PIC' - link_static_flag='-Bstatic' - wl='-Qoption ld ' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - pic_flag='-KPIC' - link_static_flag='-Bstatic' - wl='-Wl,' - ;; - - uts4*) - pic_flag='-pic' - link_static_flag='-Bstatic' - ;; - sysv4*MP*) - if test -d /usr/nec ;then - pic_flag='-Kconform_pic' - link_static_flag='-Bstatic' - fi - ;; - *) - can_build_shared=no - ;; - esac -fi - -if test -n "$pic_flag"; then - echo "$ac_t$pic_flag" 1>&6 - - # Check to make sure the pic_flag actually works. - echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6 - $rm conftest* - echo "int some_variable = 0;" > conftest.c - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $pic_flag -DPIC" - echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5 - if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then - # Append any warnings to the config.log. - cat conftest.err 1>&5 - - case "$host_os" in - hpux9* | hpux10* | hpux11*) - # On HP-UX, both CC and GCC only warn that PIC is supported... then they - # create non-PIC objects. So, if there were any warnings, we assume that - # PIC is not supported. - if test -s conftest.err; then - echo "$ac_t"no 1>&6 - can_build_shared=no - pic_flag= - else - echo "$ac_t"yes 1>&6 - pic_flag=" $pic_flag" - fi - ;; - *) - echo "$ac_t"yes 1>&6 - pic_flag=" $pic_flag" - ;; - esac - else - # Append any errors to the config.log. - cat conftest.err 1>&5 - can_build_shared=no - pic_flag= - echo "$ac_t"no 1>&6 - fi - CFLAGS="$save_CFLAGS" - $rm conftest* -else - echo "$ac_t"none 1>&6 -fi - -# Check to see if options -o and -c are simultaneously supported by compiler -echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6 -$rm -r conftest 2>/dev/null -mkdir conftest -cd conftest -$rm conftest* -echo "int some_variable = 0;" > conftest.c -mkdir out -# According to Tom Tromey, Ian Lance Taylor reported there are C compilers -# that will create temporary files in the current directory regardless of -# the output directory. Thus, making CWD read-only will cause this test -# to fail, enabling locking or at least warning the user not to do parallel -# builds. -chmod -w . -save_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -o out/conftest2.o" -echo "$progname:829: checking if $compiler supports -c -o file.o" >&5 -if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then - - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s out/conftest.err; then - echo "$ac_t"no 1>&6 - compiler_c_o=no - else - echo "$ac_t"yes 1>&6 - compiler_c_o=yes - fi -else - # Append any errors to the config.log. - cat out/conftest.err 1>&5 - compiler_c_o=no - echo "$ac_t"no 1>&6 -fi -CFLAGS="$save_CFLAGS" -chmod u+w . -$rm conftest* out/* -rmdir out -cd .. -rmdir conftest -$rm -r conftest 2>/dev/null - -if test x"$compiler_c_o" = x"yes"; then - # Check to see if we can write to a .lo - echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6 - $rm conftest* - echo "int some_variable = 0;" > conftest.c - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -c -o conftest.lo" - echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5 -if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then - - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - echo "$ac_t"no 1>&6 - compiler_o_lo=no - else - echo "$ac_t"yes 1>&6 - compiler_o_lo=yes - fi - else - # Append any errors to the config.log. - cat conftest.err 1>&5 - compiler_o_lo=no - echo "$ac_t"no 1>&6 - fi - CFLAGS="$save_CFLAGS" - $rm conftest* -else - compiler_o_lo=no -fi - -# Check to see if we can do hard links to lock some files if needed -hard_links="nottested" -if test "$compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6 - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$ac_t$hard_links" 1>&6 - $rm conftest* - if test "$hard_links" = no; then - echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2 - need_locks=warn - fi -else - need_locks=no -fi - -if test "$with_gcc" = yes; then - # Check to see if options -fno-rtti -fno-exceptions are supported by compiler - echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6 - $rm conftest* - echo "int some_variable = 0;" > conftest.c - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c" - echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 - if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then - - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - echo "$ac_t"no 1>&6 - compiler_rtti_exceptions=no - else - echo "$ac_t"yes 1>&6 - compiler_rtti_exceptions=yes - fi - else - # Append any errors to the config.log. - cat conftest.err 1>&5 - compiler_rtti_exceptions=no - echo "$ac_t"no 1>&6 - fi - CFLAGS="$save_CFLAGS" - $rm conftest* - - if test "$compiler_rtti_exceptions" = "yes"; then - no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' - else - no_builtin_flag=' -fno-builtin' - fi - -fi - -# Check for any special shared library compilation flags. -if test -n "$special_shlib_compile_flags"; then - echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2 - if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then : - else - echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2 - can_build_shared=no - fi -fi - -echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6 -$rm conftest* -echo 'main(){return(0);}' > conftest.c -save_LDFLAGS="$LDFLAGS" -LDFLAGS="$LDFLAGS $link_static_flag" -echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5 -if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - echo "$ac_t$link_static_flag" 1>&6 -else - echo "$ac_t"none 1>&6 - link_static_flag= -fi -LDFLAGS="$save_LDFLAGS" -$rm conftest* - -if test -z "$LN_S"; then - # Check to see if we can use ln -s, or we need hard links. - echo $ac_n "checking whether ln -s works... $ac_c" 1>&6 - $rm conftest.dat - if ln -s X conftest.dat 2>/dev/null; then - $rm conftest.dat - LN_S="ln -s" - else - LN_S=ln - fi - if test "$LN_S" = "ln -s"; then - echo "$ac_t"yes 1>&6 - else - echo "$ac_t"no 1>&6 - fi -fi - -# Make sure LD is an absolute path. -if test -z "$LD"; then - ac_prog=ld - if test "$with_gcc" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 - echo "$progname:991: checking for ld used by GCC" >&5 - ac_prog=`($CC -print-prog-name=ld) 2>&5` - case "$ac_prog" in - # Accept absolute paths. - [\\/]* | [A-Za-z]:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we are not using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac - elif test "$with_gnu_ld" = yes; then - echo $ac_n "checking for GNU ld... $ac_c" 1>&6 - echo "$progname:1015: checking for GNU ld" >&5 - else - echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 - echo "$progname:1018: checking for non-GNU ld" >&5 - fi - - if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" - fi - - if test -n "$LD"; then - echo "$ac_t$LD" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - - if test -z "$LD"; then - echo "$progname: error: no acceptable ld found in \$PATH" 1>&2 - exit 1 - fi -fi - -# Check to see if it really is or is not GNU ld. -echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 -# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - with_gnu_ld=yes -else - with_gnu_ld=no -fi -echo "$ac_t$with_gnu_ld" 1>&6 - -# See if the linker supports building shared libraries. -echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 - -allow_undefined_flag= -no_undefined_flag= -need_lib_prefix=unknown -need_version=unknown -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -archive_cmds= -archive_expsym_cmds= -old_archive_from_new_cmds= -export_dynamic_flag_spec= -whole_archive_flag_spec= -thread_safe_flag_spec= -hardcode_libdir_flag_spec= -hardcode_libdir_separator= -hardcode_direct=no -hardcode_minus_L=no -hardcode_shlibpath_var=unsupported -runpath_var= -always_export_symbols=no -export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' -# include_expsyms should be a list of space-separated symbols to be *always* -# included in the symbol list -include_expsyms= -# exclude_expsyms can be an egrep regular expression of symbols to exclude -# it will be wrapped by ` (' and `)$', so one must not match beginning or -# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', -# as well as any symbol that contains `d'. -exclude_expsyms="_GLOBAL_OFFSET_TABLE_" -# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out -# platforms (ab)use it in PIC code, but their linkers get confused if -# the symbol is explicitly referenced. Since portable code cannot -# rely on this symbol name, it's probably fine to never include it in -# preloaded symbol tables. - -case "$host_os" in -cygwin* | mingw*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$with_gcc" != yes; then - with_gnu_ld=no - fi - ;; - -esac - -ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # See if GNU ld supports shared libraries. - case "$host_os" in - aix3* | aix4*) - # On AIX, the GNU linker is very broken - ld_shlibs=no - cat <&2 - -*** Warning: the GNU linker, at least up to release 2.9.1, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. - -EOF - ;; - - amigaos*) - archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can use - # them. - ld_shlibs=no - ;; - - beos*) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw*) - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - allow_undefined_flag=unsupported - always_export_symbols=yes - - # Extract the symbol export list from an `--export-all' def file, - # then regenerate the def file from the symbol export list, so that - # the compiled dll only exports the symbol export list. - export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ - test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ - $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~ - sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]* ; *//" < $objdir/$soname-def > $export_symbols' - - archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~ - _lt_hint=1; - for symbol in `cat $export_symbols`; do - echo " \$symbol @ \$_lt_hint ; " >> $objdir/$soname-def; - _lt_hint=`expr 1 + \$_lt_hint`; - done~ - test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ - test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ - $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ - $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ - $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts' - - old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib' - # can we support soname and/or expsyms with a.out? -oliva - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -EOF - elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test "$ld_shlibs" = yes; then - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - case $host_os in - cygwin* | mingw*) - # dlltool doesn't understand --whole-archive et. al. - whole_archive_flag_spec= - ;; - *) - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - ;; - esac - fi -else - # PORTME fill in a description of your system's linker (not GNU ld) - case "$host_os" in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$with_gcc" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix4*) - hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib' - hardcode_libdir_separator=':' - if test "$with_gcc" = yes; then - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct=yes - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - shared_flag='-shared' - else - shared_flag='${wl}-bM:SRE' - hardcode_direct=yes - fi - allow_undefined_flag=' ${wl}-berok' - archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}' - archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}' - case "$host_os" in aix4.[01]|aix4.[01].*) - # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on - always_export_symbols=yes ;; - esac - ;; - - amigaos*) - archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; - - cygwin* | mingw*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib /OUT:$oldlib$oldobjs' - fix_srcfile_path='`cygpath -w $srcfile`' - ;; - - freebsd1*) - ld_shlibs=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9* | hpux10* | hpux11*) - case "$host_os" in - hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;; - *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;; - esac - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_minus_L=yes # Not in the search PATH, but as the default - # location of the library. - export_dynamic_flag_spec='${wl}-E' - ;; - - irix5* | irix6*) - if test "$with_gcc" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF - fi - hardcode_libdir_flag_spec='${wl}-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - openbsd*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' - ;; - - osf3*) - if test "$with_gcc" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # As osf3* with the addition of the -msym flag - if test "$with_gcc" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - sco3.2v5*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case "$host_os" in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv5*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp' - hardcode_libdir_flag_spec= - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4.2uw2*) - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts' - hardcode_direct=yes - hardcode_minus_L=no - hardcode_shlibpath_var=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - unixware7*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac -fi -echo "$ac_t$ld_shlibs" 1>&6 -test "$ld_shlibs" = no && can_build_shared=no - -if test -z "$NM"; then - echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 - case "$NM" in - [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path. - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - NM="$ac_dir/nm -B" - break - elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - NM="$ac_dir/nm -p" - break - else - NM=${NM="$ac_dir/nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - fi - fi - done - IFS="$ac_save_ifs" - test -z "$NM" && NM=nm - ;; - esac - echo "$ac_t$NM" 1>&6 -fi - -# Check for command to grab the raw symbol name followed by C symbol from nm. -echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6 - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform the above into a raw symbol and a C symbol. -symxfrm='\1 \2\3 \3' - -# Transform an extracted symbol line into a proper C declaration -global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" - -# Define system-specific variables. -case "$host_os" in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw*) - symcode='[ABCDGISTW]' - ;; -hpux*) # Its linker distinguishes data from code symbols - global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'" - ;; -irix*) - symcode='[BCDEGRST]' - ;; -solaris*) - symcode='[BDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then - symcode='[ABCDGISTW]' -fi - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Write the raw and C identifiers. - global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - $rm conftest* - cat > conftest.c <&5 - if { (eval echo $progname:1636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then - # Now try to grab the symbols. - nlist=conftest.nm - if { echo "$progname:1639: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then - - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if egrep ' nm_test_var$' "$nlist" >/dev/null; then - if egrep ' nm_test_func$' "$nlist" >/dev/null; then - cat < conftest.c -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c' - - cat <> conftest.c -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[] = -{ -EOF - sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c - cat <<\EOF >> conftest.c - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$objext conftstm.$objext - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="conftstm.$objext" - CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo $progname:1691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - pipe_works=yes - else - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 - fi - LIBS="$save_LIBS" - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 - fi - $rm conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - global_symbol_pipe= - fi -done -if test "$pipe_works" = yes; then - echo "${ac_t}ok" 1>&6 -else - echo "${ac_t}failed" 1>&6 -fi - -if test -z "$global_symbol_pipe"; then - global_symbol_to_cdecl= -fi - -# Check hardcoding attributes. -echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6 -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var"; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$hardcode_shlibpath_var" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -echo "$ac_t$hardcode_action" 1>&6 - - -reload_flag= -reload_cmds='$LD$reload_flag -o $output$reload_objs' -echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6 -# PORTME Some linkers may need a different reload flag. -reload_flag='-r' -echo "$ac_t$reload_flag" 1>&6 -test -n "$reload_flag" && reload_flag=" $reload_flag" - -# PORTME Fill in your ld.so characteristics -library_names_spec= -libname_spec='lib$name' -soname_spec= -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -file_magic_cmd= -file_magic_test_file= -deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [regex]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given egrep regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. -echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6 -case "$host_os" in -aix3*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}.so$major' - ;; - -aix4*) - version_type=linux - # AIX has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - # We preserve .a as extension for shared libraries though AIX4.2 - # and later linker supports .so - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a' - shlibpath_var=LIBPATH - deplibs_check_method=pass_all - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' - ;; - -beos*) - library_names_spec='${libname}.so' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - deplibs_check_method=pass_all - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - -bsdi4*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - file_magic_cmd=/usr/bin/file - file_magic_test_file=/shlib/libc.so - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - export_dynamic_flag_spec=-rdynamic - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw*) - version_type=windows - need_version=no - need_lib_prefix=no - if test "$with_gcc" = yes; then - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a' - else - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' - fi - dynamic_linker='Win32 ld.exe' - deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - file_magic_cmd='${OBJDUMP} -f' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case "$version_type" in - freebsd-elf*) - deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' - file_magic_cmd=/usr/bin/file - file_magic_test_file=`echo /usr/lib/libc.so*` - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - deplibs_check_method=unknown - library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case "$host_os" in - freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - dynamic_linker="$host_os dld.sl" - version_type=sunos - need_lib_prefix=no - need_version=no - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' - soname_spec='${libname}${release}.sl$major' - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6*) - version_type=irix - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}.so.$major' - library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so' - case "$host_os" in - irix5*) - libsuff= shlibsuff= - # this will be overridden with pass_all, but let us keep it just in case - deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" - ;; - *) - case "$LD" in # libtool.m4 will add one of these switches to LD - *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - file_magic_cmd=/usr/bin/file - file_magic_test_file=`echo /lib${libsuff}/libc.so*` - deplibs_check_method='pass_all' - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux-gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - file_magic_cmd=/usr/bin/file - file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - - if test -f /lib/ld.so.1; then - dynamic_linker='GNU ld.so' - else - # Only the GNU ld.so supports shared libraries on MkLinux. - case "$host_cpu" in - powerpc*) dynamic_linker=no ;; - *) dynamic_linker='Linux ld.so' ;; - esac - fi - ;; - -netbsd*) - version_type=sunos - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' - soname_spec='${libname}${release}.so$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - ;; - -openbsd*) - version_type=sunos - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - need_version=no - fi - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - ;; - -os2*) - libname_spec='$name' - need_lib_prefix=no - library_names_spec='$libname.dll $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_version=no - soname_spec='${libname}${release}.so' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' - shlibpath_var=LD_LIBRARY_PATH - # this will be overridden with pass_all, but let us keep it just in case - deplibs_check_method='file_magic COFF format alpha shared library' - file_magic_cmd=/usr/bin/file - file_magic_test_file=/shlib/libc.so - deplibs_check_method='pass_all' - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}.so$major' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib" - file_magic_cmd=/usr/bin/file - file_magic_test_file=/lib/libc.so - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - case "$host_vendor" in - ncr) - deplibs_check_method='pass_all' - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - file_magic_cmd=/usr/bin/file - file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - esac - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' - soname_spec='$libname.so.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$ac_t$dynamic_linker" 1>&6 -test "$dynamic_linker" = no && can_build_shared=no - -# Report the final consequences. -echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 - -# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in -# configure.in, otherwise build static only libraries. -case "$host_os" in -cygwin* | mingw* | os2*) - if test x$can_build_shared = xyes; then - test x$enable_win32_dll = xno && can_build_shared=no - echo "checking if package supports dlls... $can_build_shared" 1>&6 - fi -;; -esac - -if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then - case "$deplibs_check_method" in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - egrep "$file_magic_regex" > /dev/null; then - : - else - cat <&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -EOF - fi ;; - esac -fi - -echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6 -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case "$host_os" in -aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - -aix4*) - test "$enable_shared" = yes && enable_static=no - ;; -esac - -echo "$ac_t$enable_shared" 1>&6 - -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes - -echo "checking whether to build static libraries... $enable_static" 1>&6 - -if test "$hardcode_action" = relink; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi - -echo $ac_n "checking for objdir... $ac_c" 1>&6 -rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - objdir=_libs -fi -rmdir .libs 2>/dev/null -echo "$ac_t$objdir" 1>&6 - -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else -if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then - lt_cv_dlopen=no lt_cv_dlopen_libs= -echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "$progname:2212: checking for dlopen in -ldl" >&5 -ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-ldl $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for dlopen""... $ac_c" 1>&6 -echo "$progname:2252: checking for dlopen" >&5 -if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_dlopen) || defined (__stub___dlopen) -choke me -#else -dlopen(); -#endif - -; return 0; } -EOF -if { (eval echo $progname:2282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_func_dlopen=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_dlopen=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="dlopen" -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 -echo "$progname:2299: checking for dld_link in -ldld" >&5 -ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-ldld $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for shl_load""... $ac_c" 1>&6 -echo "$progname:2339: checking for shl_load" >&5 -if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shl_load) || defined (__stub___shl_load) -choke me -#else -shl_load(); -#endif - -; return 0; } -EOF -if { (eval echo $progname:2369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_func_shl_load=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_shl_load=no" -fi -rm -f conftest* -fi - -if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="shl_load" -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "$progname:2387: checking for shl_load in -ldld" >&5 -ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-ldld $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" -else - echo "$ac_t""no" 1>&6 -fi - - -fi - - -fi - - -fi - - -fi - -fi - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - fi - - case "$lt_cv_dlopen" in - dlopen) -for ac_hdr in dlfcn.h; do -ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "$progname:2452: checking for $ac_hdr" >&5 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -int fnord = 0; -EOF -ac_try="$ac_compile >/dev/null 2>conftest.out" -{ (eval echo $progname:2462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" -else - echo "$ac_err" >&5 - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi -done - - if test "x$ac_cv_header_dlfcn_h" = xyes; then - CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - fi - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 -echo "$progname:2490: checking whether a program can dlopen itself" >&5 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$cross_compiling" = yes; then - lt_cv_dlopen_self=cross - else - cat > conftest.c < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LTDL_GLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LTDL_GLOBAL DL_GLOBAL -# else -# define LTDL_GLOBAL 0 -# endif -#endif - -/* We may have to define LTDL_LAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LTDL_LAZY_OR_NOW -# ifdef RTLD_LAZY -# define LTDL_LAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LTDL_LAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LTDL_LAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LTDL_LAZY_OR_NOW DL_NOW -# else -# define LTDL_LAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -fnord() { int i=42;} -main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); - if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); - if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } - -EOF -if { (eval echo $progname:2544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null -then - lt_cv_dlopen_self=yes -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - lt_cv_dlopen_self=no -fi -rm -fr conftest* -fi - -fi - -echo "$ac_t""$lt_cv_dlopen_self" 1>&6 - - if test "$lt_cv_dlopen_self" = yes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 -echo "$progname:2563: checking whether a statically linked program can dlopen itself" >&5 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$cross_compiling" = yes; then - lt_cv_dlopen_self_static=cross - else - cat > conftest.c < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LTDL_GLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LTDL_GLOBAL DL_GLOBAL -# else -# define LTDL_GLOBAL 0 -# endif -#endif - -/* We may have to define LTDL_LAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LTDL_LAZY_OR_NOW -# ifdef RTLD_LAZY -# define LTDL_LAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LTDL_LAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LTDL_LAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LTDL_LAZY_OR_NOW DL_NOW -# else -# define LTDL_LAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -fnord() { int i=42;} -main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); - if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); - if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } - -EOF -if { (eval echo $progname:2617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null -then - lt_cv_dlopen_self_static=yes -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - lt_cv_dlopen_self_static=no -fi -rm -fr conftest* -fi - -fi - -echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6 -fi - ;; - esac - - case "$lt_cv_dlopen_self" in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case "$lt_cv_dlopen_self_static" in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - -# Copy echo and quote the copy, instead of the original, because it is -# used later. -ltecho="$echo" -if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then - ltecho="$CONFIG_SHELL \$0 --fallback-echo" -fi -LTSHELL="$SHELL" - -LTCONFIG_VERSION="$VERSION" - -# Only quote variables if we're using ltmain.sh. -case "$ltmain" in -*.sh) - # Now quote all the things that may contain metacharacters. - for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \ - old_LD old_LDFLAGS old_LIBS \ - old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \ - AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \ - reload_flag reload_cmds wl \ - pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ - thread_safe_flag_spec whole_archive_flag_spec libname_spec \ - library_names_spec soname_spec \ - RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ - old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \ - file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \ - finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ - hardcode_libdir_flag_spec hardcode_libdir_separator \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do - - case "$var" in - reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case "$ltecho" in - *'\$0 --fallback-echo"') - ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - - trap "$rm \"$ofile\"; exit 1" 1 2 15 - echo "creating $ofile" - $rm "$ofile" - cat < "$ofile" -#! $SHELL - -# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh. -# -# Copyright (C) 1996-1999 Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit , 1996 -# -# 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 2 of the License, 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 -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="sed -e s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi - -### BEGIN LIBTOOL CONFIG -EOF - cfgfile="$ofile" - ;; - -*) - # Double-quote the variables that need it (for aesthetics). - for var in old_CC old_CFLAGS old_CPPFLAGS \ - old_LD old_LDFLAGS old_LIBS \ - old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do - eval "$var=\\\"\$var\\\"" - done - - # Just create a config file. - cfgfile="$ofile.cfg" - trap "$rm \"$cfgfile\"; exit 1" 1 2 15 - echo "creating $cfgfile" - $rm "$cfgfile" - cat < "$cfgfile" -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -EOF - ;; -esac - -cat <> "$cfgfile" -# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# -# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\ -# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\ -# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\ -# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\ -# $0$ltconfig_args -# -# Compiler and other test output produced by $progname, useful for -# debugging $progname, is in ./config.log if it exists. - -# The version of $progname that generated this script. -LTCONFIG_VERSION=$LTCONFIG_VERSION - -# Shell to use when invoking shell scripts. -SHELL=$LTSHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$ltecho - -# The archiver. -AR=$AR - -# The default C compiler. -CC=$CC - -# The linker used to build libraries. -LD=$LD - -# Whether we need hard or soft links. -LN_S=$LN_S - -# A BSD-compatible nm program. -NM=$NM - -# Used on cygwin: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin: object dumper. -OBJDUMP="$OBJDUMP" - -# Used on cygwin: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$reload_flag -reload_cmds=$reload_cmds - -# How to pass a linker flag through the compiler. -wl=$wl - -# Object file suffix (normally "o"). -objext="$objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$pic_flag - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$compiler_c_o - -# Can we write directly to a .lo ? -compiler_o_lo=$compiler_o_lo - -# Must we lock files when doing compilation ? -need_locks=$need_locks - -# Do we need the lib prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Whether dlopen is supported. -dlopen=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Compiler flag to prevent dynamic linking. -link_static_flag=$link_static_flag - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$no_builtin_flag - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$whole_archive_flag_spec - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$thread_safe_flag_spec - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$RANLIB -old_archive_cmds=$old_archive_cmds -old_postinstall_cmds=$old_postinstall_cmds -old_postuninstall_cmds=$old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$old_archive_from_new_cmds - -# Commands used to build and install a shared archive. -archive_cmds=$archive_cmds -archive_expsym_cmds=$archive_expsym_cmds -postinstall_cmds=$postinstall_cmds -postuninstall_cmds=$postuninstall_cmds - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$allow_undefined_flag - -# Flag that forces no undefined symbols. -no_undefined_flag=$no_undefined_flag - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$global_symbol_to_cdecl - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$hardcode_libdir_separator - -# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path" - -# Set to yes if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$export_symbols_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$include_expsyms - -EOF - -case "$ltmain" in -*.sh) - echo '### END LIBTOOL CONFIG' >> "$ofile" - echo >> "$ofile" - case "$host_os" in - aix3*) - cat <<\EOF >> "$ofile" - -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - # Append the ltmain.sh script. - sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - - chmod +x "$ofile" - ;; - -*) - # Compile the libtool program. - echo "FIXME: would compile $ltmain" - ;; -esac - -test -n "$cache_file" || exit 0 - -# AC_CACHE_SAVE -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -exit 0 - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/ltmain.sh b/ltmain.sh deleted file mode 100644 index 3825a2a..0000000 --- a/ltmain.sh +++ /dev/null @@ -1,9661 +0,0 @@ - -# libtool (GNU libtool) 2.4.2 -# Written by Gordon Matzigkeit , 1996 - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# GNU Libtool 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 2 of the License, or -# (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that 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. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, -# or obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -# Usage: $progname [OPTION]... [MODE-ARG]... -# -# Provide generalized library-building support services. -# -# --config show all configuration variables -# --debug enable verbose shell tracing -# -n, --dry-run display commands without modifying any files -# --features display basic configuration information and exit -# --mode=MODE use operation mode MODE -# --preserve-dup-deps don't remove duplicate dependency libraries -# --quiet, --silent don't print informational messages -# --no-quiet, --no-silent -# print informational messages (default) -# --no-warn don't display warning messages -# --tag=TAG use configuration variables from tag TAG -# -v, --verbose print more informational messages than default -# --no-verbose don't print the extra informational messages -# --version print version information -# -h, --help, --help-all print short, long, or detailed help message -# -# MODE must be one of the following: -# -# clean remove files from the build directory -# compile compile a source file into a libtool object -# execute automatically set library path, then run a program -# finish complete the installation of libtool libraries -# install install libraries or executables -# link create a library or an executable -# uninstall remove libraries from an installed directory -# -# MODE-ARGS vary depending on the MODE. When passed as first option, -# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. -# Try `$progname --help --mode=MODE' for a more detailed description of MODE. -# -# When reporting a bug, please describe a test case to reproduce it and -# include the following information: -# -# host-triplet: $host -# shell: $SHELL -# compiler: $LTCC -# compiler flags: $LTCFLAGS -# linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.3ubuntu1 -# automake: $automake_version -# autoconf: $autoconf_version -# -# Report bugs to . -# GNU libtool home page: . -# General help using GNU software: . - -PROGRAM=libtool -PACKAGE=libtool -VERSION="2.4.2 Debian-2.4.2-1.3ubuntu1" -TIMESTAMP="" -package_revision=1.3337 - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' -} - -# NLS nuisances: We save the old values to restore during execute mode. -lt_user_locale= -lt_safe_locale= -for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -do - eval "if test \"\${$lt_var+set}\" = set; then - save_$lt_var=\$$lt_var - $lt_var=C - export $lt_var - lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" - lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" - fi" -done -LC_ALL=C -LANGUAGE=C -export LANGUAGE LC_ALL - -$lt_unset CDPATH - - -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" - - - -: ${CP="cp -f"} -test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} -: ${MAKE="make"} -: ${MKDIR="mkdir"} -: ${MV="mv -f"} -: ${RM="rm -f"} -: ${SHELL="${CONFIG_SHELL-/bin/sh}"} -: ${Xsed="$SED -e 1s/^X//"} - -# Global variables: -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. -EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. - -exit_status=$EXIT_SUCCESS - -# Make sure IFS has a sensible default -lt_nl=' -' -IFS=" $lt_nl" - -dirname="s,/[^/]*$,," -basename="s,^.*/,," - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} # func_dirname may be replaced by extended shell implementation - - -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "${1}" | $SED "$basename"` -} # func_basename may be replaced by extended shell implementation - - -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi - func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` -} # func_dirname_and_basename may be replaced by extended shell implementation - - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname may be replaced by extended shell implementation - - -# These SED scripts presuppose an absolute path with a trailing slash. -pathcar='s,^/\([^/]*\).*$,\1,' -pathcdr='s,^/[^/]*,,' -removedotparts=':dotsl - s@/\./@/@g - t dotsl - s,/\.$,/,' -collapseslashes='s@/\{1,\}@/@g' -finalslash='s,/*$,/,' - -# func_normal_abspath PATH -# Remove doubled-up and trailing slashes, "." path components, -# and cancel out any ".." path components in PATH after making -# it an absolute path. -# value returned in "$func_normal_abspath_result" -func_normal_abspath () -{ - # Start from root dir and reassemble the path. - func_normal_abspath_result= - func_normal_abspath_tpath=$1 - func_normal_abspath_altnamespace= - case $func_normal_abspath_tpath in - "") - # Empty path, that just means $cwd. - func_stripname '' '/' "`pwd`" - func_normal_abspath_result=$func_stripname_result - return - ;; - # The next three entries are used to spot a run of precisely - # two leading slashes without using negated character classes; - # we take advantage of case's first-match behaviour. - ///*) - # Unusual form of absolute path, do nothing. - ;; - //*) - # Not necessarily an ordinary path; POSIX reserves leading '//' - # and for example Cygwin uses it to access remote file shares - # over CIFS/SMB, so we conserve a leading double slash if found. - func_normal_abspath_altnamespace=/ - ;; - /*) - # Absolute path, do nothing. - ;; - *) - # Relative path, prepend $cwd. - func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath - ;; - esac - # Cancel out all the simple stuff to save iterations. We also want - # the path to end with a slash for ease of parsing, so make sure - # there is one (and only one) here. - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` - while :; do - # Processed it all yet? - if test "$func_normal_abspath_tpath" = / ; then - # If we ascended to the root using ".." the result may be empty now. - if test -z "$func_normal_abspath_result" ; then - func_normal_abspath_result=/ - fi - break - fi - func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcar"` - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcdr"` - # Figure out what to do with it - case $func_normal_abspath_tcomponent in - "") - # Trailing empty path component, ignore it. - ;; - ..) - # Parent dir; strip last assembled component from result. - func_dirname "$func_normal_abspath_result" - func_normal_abspath_result=$func_dirname_result - ;; - *) - # Actual path component, append it. - func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent - ;; - esac - done - # Restore leading double-slash if one was found on entry. - func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result -} - -# func_relative_path SRCDIR DSTDIR -# generates a relative path from SRCDIR to DSTDIR, with a trailing -# slash if non-empty, suitable for immediately appending a filename -# without needing to append a separator. -# value returned in "$func_relative_path_result" -func_relative_path () -{ - func_relative_path_result= - func_normal_abspath "$1" - func_relative_path_tlibdir=$func_normal_abspath_result - func_normal_abspath "$2" - func_relative_path_tbindir=$func_normal_abspath_result - - # Ascend the tree starting from libdir - while :; do - # check if we have found a prefix of bindir - case $func_relative_path_tbindir in - $func_relative_path_tlibdir) - # found an exact match - func_relative_path_tcancelled= - break - ;; - $func_relative_path_tlibdir*) - # found a matching prefix - func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" - func_relative_path_tcancelled=$func_stripname_result - if test -z "$func_relative_path_result"; then - func_relative_path_result=. - fi - break - ;; - *) - func_dirname $func_relative_path_tlibdir - func_relative_path_tlibdir=${func_dirname_result} - if test "x$func_relative_path_tlibdir" = x ; then - # Have to descend all the way to the root! - func_relative_path_result=../$func_relative_path_result - func_relative_path_tcancelled=$func_relative_path_tbindir - break - fi - func_relative_path_result=../$func_relative_path_result - ;; - esac - done - - # Now calculate path; take care to avoid doubling-up slashes. - func_stripname '' '/' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - func_stripname '/' '/' "$func_relative_path_tcancelled" - if test "x$func_stripname_result" != x ; then - func_relative_path_result=${func_relative_path_result}/${func_stripname_result} - fi - - # Normalisation. If bindir is libdir, return empty string, - # else relative path ending with a slash; either way, target - # file name can be directly appended. - if test ! -z "$func_relative_path_result"; then - func_stripname './' '' "$func_relative_path_result/" - func_relative_path_result=$func_stripname_result - fi -} - -# The name of this program: -func_dirname_and_basename "$progpath" -progname=$func_basename_result - -# Make sure we have an absolute path for reexecution: -case $progpath in - [\\/]*|[A-Za-z]:\\*) ;; - *[\\/]*) - progdir=$func_dirname_result - progdir=`cd "$progdir" && pwd` - progpath="$progdir/$progname" - ;; - *) - save_IFS="$IFS" - IFS=${PATH_SEPARATOR-:} - for progdir in $PATH; do - IFS="$save_IFS" - test -x "$progdir/$progname" && break - done - IFS="$save_IFS" - test -n "$progdir" || progdir=`pwd` - progpath="$progdir/$progname" - ;; -esac - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed="${SED}"' -e 1s/^X//' -sed_quote_subst='s/\([`"$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution that turns a string into a regex matching for the -# string literally. -sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' - -# Sed substitution that converts a w32 file name or path -# which contains forward slashes, into one that contains -# (escaped) backslashes. A very naive implementation. -lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - -# Re-`\' parameter expansions in output of double_quote_subst that were -# `\'-ed in input to the same. If an odd number of `\' preceded a '$' -# in input to double_quote_subst, that '$' was protected from expansion. -# Since each input `\' is now two `\'s, look for any number of runs of -# four `\'s followed by two `\'s and then a '$'. `\' that '$'. -bs='\\' -bs2='\\\\' -bs4='\\\\\\\\' -dollar='\$' -sed_double_backslash="\ - s/$bs4/&\\ -/g - s/^$bs2$dollar/$bs&/ - s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g - s/\n//g" - -# Standard options: -opt_dry_run=false -opt_help=false -opt_quiet=false -opt_verbose=false -opt_warning=: - -# func_echo arg... -# Echo program name prefixed message, along with the current mode -# name if it has been set yet. -func_echo () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }$*" -} - -# func_verbose arg... -# Echo program name prefixed message in verbose mode only. -func_verbose () -{ - $opt_verbose && func_echo ${1+"$@"} - - # A bug in bash halts the script if the last line of a function - # fails when set -e is in force, so we need another command to - # work around that: - : -} - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} - -# func_error arg... -# Echo program name prefixed message to standard error. -func_error () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 -} - -# func_warning arg... -# Echo program name prefixed warning message to standard error. -func_warning () -{ - $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 - - # bash bug again: - : -} - -# func_fatal_error arg... -# Echo program name prefixed message to standard error, and exit. -func_fatal_error () -{ - func_error ${1+"$@"} - exit $EXIT_FAILURE -} - -# func_fatal_help arg... -# Echo program name prefixed message to standard error, followed by -# a help hint, and exit. -func_fatal_help () -{ - func_error ${1+"$@"} - func_fatal_error "$help" -} -help="Try \`$progname --help' for more information." ## default - - -# func_grep expression filename -# Check whether EXPRESSION matches any line of FILENAME, without output. -func_grep () -{ - $GREP "$1" "$2" >/dev/null 2>&1 -} - - -# func_mkdir_p directory-path -# Make sure the entire path to DIRECTORY-PATH is available. -func_mkdir_p () -{ - my_directory_path="$1" - my_dir_list= - - if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then - - # Protect directory names starting with `-' - case $my_directory_path in - -*) my_directory_path="./$my_directory_path" ;; - esac - - # While some portion of DIR does not yet exist... - while test ! -d "$my_directory_path"; do - # ...make a list in topmost first order. Use a colon delimited - # list incase some portion of path contains whitespace. - my_dir_list="$my_directory_path:$my_dir_list" - - # If the last portion added has no slash in it, the list is done - case $my_directory_path in */*) ;; *) break ;; esac - - # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` - done - my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` - - save_mkdir_p_IFS="$IFS"; IFS=':' - for my_dir in $my_dir_list; do - IFS="$save_mkdir_p_IFS" - # mkdir can fail with a `File exist' error if two processes - # try to create one of the directories concurrently. Don't - # stop in that case! - $MKDIR "$my_dir" 2>/dev/null || : - done - IFS="$save_mkdir_p_IFS" - - # Bail out if we (or some other process) failed to create a directory. - test -d "$my_directory_path" || \ - func_fatal_error "Failed to create \`$1'" - fi -} - - -# func_mktempdir [string] -# Make a temporary directory that won't clash with other running -# libtool processes, and avoids race conditions if possible. If -# given, STRING is the basename for that directory. -func_mktempdir () -{ - my_template="${TMPDIR-/tmp}/${1-$progname}" - - if test "$opt_dry_run" = ":"; then - # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" - else - - # If mktemp works, use that first and foremost - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` - - if test ! -d "$my_tmpdir"; then - # Failing that, at least try and use $RANDOM to avoid a race - my_tmpdir="${my_template}-${RANDOM-0}$$" - - save_mktempdir_umask=`umask` - umask 0077 - $MKDIR "$my_tmpdir" - umask $save_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure - test -d "$my_tmpdir" || \ - func_fatal_error "cannot create temporary directory \`$my_tmpdir'" - fi - - $ECHO "$my_tmpdir" -} - - -# func_quote_for_eval arg -# Aesthetically quote ARG to be evaled later. -# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT -# is double-quoted, suitable for a subsequent eval, whereas -# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters -# which are still active within double quotes backslashified. -func_quote_for_eval () -{ - case $1 in - *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; - *) - func_quote_for_eval_unquoted_result="$1" ;; - esac - - case $func_quote_for_eval_unquoted_result in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and and variable - # expansion for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" - ;; - *) - func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" - esac -} - - -# func_quote_for_expand arg -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () -{ - case $1 in - *[\\\`\"]*) - my_arg=`$ECHO "$1" | $SED \ - -e "$double_quote_subst" -e "$sed_double_backslash"` ;; - *) - my_arg="$1" ;; - esac - - case $my_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - my_arg="\"$my_arg\"" - ;; - esac - - func_quote_for_expand_result="$my_arg" -} - - -# func_show_eval cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. -func_show_eval () -{ - my_cmd="$1" - my_fail_exp="${2-:}" - - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - if ${opt_dry_run-false}; then :; else - eval "$my_cmd" - my_status=$? - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} - - -# func_show_eval_locale cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. Use the saved locale for evaluation. -func_show_eval_locale () -{ - my_cmd="$1" - my_fail_exp="${2-:}" - - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } - - if ${opt_dry_run-false}; then :; else - eval "$lt_user_locale - $my_cmd" - my_status=$? - eval "$lt_safe_locale" - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} - -# func_tr_sh -# Turn $1 into a string suitable for a shell variable name. -# Result is stored in $func_tr_sh_result. All characters -# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -# if $1 begins with a digit, a '_' is prepended as well. -func_tr_sh () -{ - case $1 in - [0-9]* | *[!a-zA-Z0-9_]*) - func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` - ;; - * ) - func_tr_sh_result=$1 - ;; - esac -} - - -# func_version -# Echo version message to standard output and exit. -func_version () -{ - $opt_debug - - $SED -n '/(C)/!b go - :more - /\./!{ - N - s/\n# / / - b more - } - :go - /^# '$PROGRAM' (GNU /,/# warranty; / { - s/^# // - s/^# *$// - s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ - p - }' < "$progpath" - exit $? -} - -# func_usage -# Echo short help message to standard output and exit. -func_usage () -{ - $opt_debug - - $SED -n '/^# Usage:/,/^# *.*--help/ { - s/^# // - s/^# *$// - s/\$progname/'$progname'/ - p - }' < "$progpath" - echo - $ECHO "run \`$progname --help | more' for full usage" - exit $? -} - -# func_help [NOEXIT] -# Echo long help message to standard output and exit, -# unless 'noexit' is passed as argument. -func_help () -{ - $opt_debug - - $SED -n '/^# Usage:/,/# Report bugs to/ { - :print - s/^# // - s/^# *$// - s*\$progname*'$progname'* - s*\$host*'"$host"'* - s*\$SHELL*'"$SHELL"'* - s*\$LTCC*'"$LTCC"'* - s*\$LTCFLAGS*'"$LTCFLAGS"'* - s*\$LD*'"$LD"'* - s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ - p - d - } - /^# .* home page:/b print - /^# General help using/b print - ' < "$progpath" - ret=$? - if test -z "$1"; then - exit $ret - fi -} - -# func_missing_arg argname -# Echo program name prefixed message to standard error and set global -# exit_cmd. -func_missing_arg () -{ - $opt_debug - - func_error "missing argument for $1." - exit_cmd=exit -} - - -# func_split_short_opt shortopt -# Set func_split_short_opt_name and func_split_short_opt_arg shell -# variables after splitting SHORTOPT after the 2nd character. -func_split_short_opt () -{ - my_sed_short_opt='1s/^\(..\).*$/\1/;q' - my_sed_short_rest='1s/^..\(.*\)$/\1/;q' - - func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` - func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` -} # func_split_short_opt may be replaced by extended shell implementation - - -# func_split_long_opt longopt -# Set func_split_long_opt_name and func_split_long_opt_arg shell -# variables after splitting LONGOPT at the `=' sign. -func_split_long_opt () -{ - my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' - my_sed_long_arg='1s/^--[^=]*=//' - - func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` - func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` -} # func_split_long_opt may be replaced by extended shell implementation - -exit_cmd=: - - - - - -magic="%%%MAGIC variable%%%" -magic_exe="%%%MAGIC EXE variable%%%" - -# Global variables. -nonopt= -preserve_args= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" -extracted_archives= -extracted_serial=0 - -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "${1}=\$${1}\${2}" -} # func_append may be replaced by extended shell implementation - -# func_append_quoted var value -# Quote VALUE and append to the end of shell variable VAR, separated -# by a space. -func_append_quoted () -{ - func_quote_for_eval "${2}" - eval "${1}=\$${1}\\ \$func_quote_for_eval_result" -} # func_append_quoted may be replaced by extended shell implementation - - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "${@}"` -} # func_arith may be replaced by extended shell implementation - - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` -} # func_len may be replaced by extended shell implementation - - -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` -} # func_lo2o may be replaced by extended shell implementation - - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` -} # func_xform may be replaced by extended shell implementation - - -# func_fatal_configuration arg... -# Echo program name prefixed message to standard error, followed by -# a configuration failure hint, and exit. -func_fatal_configuration () -{ - func_error ${1+"$@"} - func_error "See the $PACKAGE documentation for more information." - func_fatal_error "Fatal configuration error." -} - - -# func_config -# Display the configuration for all the tags in this script. -func_config () -{ - re_begincf='^# ### BEGIN LIBTOOL' - re_endcf='^# ### END LIBTOOL' - - # Default configuration. - $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" - - # Now print the configurations for the tags. - for tagname in $taglist; do - $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" - done - - exit $? -} - -# func_features -# Display the features supported by this script. -func_features () -{ - echo "host: $host" - if test "$build_libtool_libs" = yes; then - echo "enable shared libraries" - else - echo "disable shared libraries" - fi - if test "$build_old_libs" = yes; then - echo "enable static libraries" - else - echo "disable static libraries" - fi - - exit $? -} - -# func_enable_tag tagname -# Verify that TAGNAME is valid, and either flag an error and exit, or -# enable the TAGNAME tag. We also add TAGNAME to the global $taglist -# variable here. -func_enable_tag () -{ - # Global variable: - tagname="$1" - - re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" - re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" - sed_extractcf="/$re_begincf/,/$re_endcf/p" - - # Validate tagname. - case $tagname in - *[!-_A-Za-z0-9,/]*) - func_fatal_error "invalid tag name: $tagname" - ;; - esac - - # Don't test for the "default" C tag, as we know it's - # there but not specially marked. - case $tagname in - CC) ;; - *) - if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then - taglist="$taglist $tagname" - - # Evaluate the configuration. Be careful to quote the path - # and the sed script, to avoid splitting on whitespace, but - # also don't use non-portable quotes within backquotes within - # quotes we have to do it in 2 steps: - extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` - eval "$extractedcf" - else - func_error "ignoring unknown tag $tagname" - fi - ;; - esac -} - -# func_check_version_match -# Ensure that we are using m4 macros, and libtool script from the same -# release of libtool. -func_check_version_match () -{ - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from an older release. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - fi - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -$progname: but the definition of this LT_INIT comes from revision $macro_revision. -$progname: You should recreate aclocal.m4 with macros from revision $package_revision -$progname: of $PACKAGE $VERSION and run autoconf again. -_LT_EOF - fi - - exit $EXIT_MISMATCH - fi -} - - -# Shorthand for --mode=foo, only valid as the first argument -case $1 in -clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; -compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; -execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; -finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; -install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; -link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; -uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; -esac - - - -# Option defaults: -opt_debug=: -opt_dry_run=false -opt_config=false -opt_preserve_dup_deps=false -opt_features=false -opt_finish=false -opt_help=false -opt_help_all=false -opt_silent=: -opt_warning=: -opt_verbose=: -opt_silent=false -opt_verbose=false - - -# Parse options once, thoroughly. This comes as soon as possible in the -# script to make things like `--version' happen as quickly as we can. -{ - # this just eases exit handling - while test $# -gt 0; do - opt="$1" - shift - case $opt in - --debug|-x) opt_debug='set -x' - func_echo "enabling shell trace mode" - $opt_debug - ;; - --dry-run|--dryrun|-n) - opt_dry_run=: - ;; - --config) - opt_config=: -func_config - ;; - --dlopen|-dlopen) - optarg="$1" - opt_dlopen="${opt_dlopen+$opt_dlopen -}$optarg" - shift - ;; - --preserve-dup-deps) - opt_preserve_dup_deps=: - ;; - --features) - opt_features=: -func_features - ;; - --finish) - opt_finish=: -set dummy --mode finish ${1+"$@"}; shift - ;; - --help) - opt_help=: - ;; - --help-all) - opt_help_all=: -opt_help=': help-all' - ;; - --mode) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_mode="$optarg" -case $optarg in - # Valid mode arguments: - clean|compile|execute|finish|install|link|relink|uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $opt" - exit_cmd=exit - break - ;; -esac - shift - ;; - --no-silent|--no-quiet) - opt_silent=false -func_append preserve_args " $opt" - ;; - --no-warning|--no-warn) - opt_warning=false -func_append preserve_args " $opt" - ;; - --no-verbose) - opt_verbose=false -func_append preserve_args " $opt" - ;; - --silent|--quiet) - opt_silent=: -func_append preserve_args " $opt" - opt_verbose=false - ;; - --verbose|-v) - opt_verbose=: -func_append preserve_args " $opt" -opt_silent=false - ;; - --tag) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_tag="$optarg" -func_append preserve_args " $opt $optarg" -func_enable_tag "$optarg" - shift - ;; - - -\?|-h) func_usage ;; - --help) func_help ;; - --version) func_version ;; - - # Separate optargs to long options: - --*=*) - func_split_long_opt "$opt" - set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} - shift - ;; - - # Separate non-argument short options: - -\?*|-h*|-n*|-v*) - func_split_short_opt "$opt" - set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - --) break ;; - -*) func_fatal_help "unrecognized option \`$opt'" ;; - *) set dummy "$opt" ${1+"$@"}; shift; break ;; - esac - done - - # Validate options: - - # save first non-option argument - if test "$#" -gt 0; then - nonopt="$opt" - shift - fi - - # preserve --debug - test "$opt_debug" = : || func_append preserve_args " --debug" - - case $host in - *cygwin* | *mingw* | *pw32* | *cegcc*) - # don't eliminate duplications in $postdeps and $predeps - opt_duplicate_compiler_generated_deps=: - ;; - *) - opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - - $opt_help || { - # Sanity checks first: - func_check_version_match - - if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - func_fatal_configuration "not configured to build any kind of library" - fi - - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$opt_dlopen" && test "$opt_mode" != execute; then - func_error "unrecognized option \`-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$progname --help --mode=$opt_mode' for more information." - } - - - # Bail if the options were screwed - $exit_cmd $EXIT_FAILURE -} - - - - -## ----------- ## -## Main. ## -## ----------- ## - -# func_lalib_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_lalib_p () -{ - test -f "$1" && - $SED -e 4q "$1" 2>/dev/null \ - | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 -} - -# func_lalib_unsafe_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. -# This function implements the same check as func_lalib_p without -# resorting to external programs. To this end, it redirects stdin and -# closes it afterwards, without saving the original file descriptor. -# As a safety measure, use it only where a negative result would be -# fatal anyway. Works if `file' does not exist. -func_lalib_unsafe_p () -{ - lalib_p=no - if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then - for lalib_p_l in 1 2 3 4 - do - read lalib_p_line - case "$lalib_p_line" in - \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; - esac - done - exec 0<&5 5<&- - fi - test "$lalib_p" = yes -} - -# func_ltwrapper_script_p file -# True iff FILE is a libtool wrapper script -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_script_p () -{ - func_lalib_p "$1" -} - -# func_ltwrapper_executable_p file -# True iff FILE is a libtool wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_executable_p () -{ - func_ltwrapper_exec_suffix= - case $1 in - *.exe) ;; - *) func_ltwrapper_exec_suffix=.exe ;; - esac - $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 -} - -# func_ltwrapper_scriptname file -# Assumes file is an ltwrapper_executable -# uses $file to determine the appropriate filename for a -# temporary ltwrapper_script. -func_ltwrapper_scriptname () -{ - func_dirname_and_basename "$1" "" "." - func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" -} - -# func_ltwrapper_p file -# True iff FILE is a libtool wrapper script or wrapper executable -# This function is only a basic sanity check; it will hardly flush out -# determined imposters. -func_ltwrapper_p () -{ - func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" -} - - -# func_execute_cmds commands fail_cmd -# Execute tilde-delimited COMMANDS. -# If FAIL_CMD is given, eval that upon failure. -# FAIL_CMD may read-access the current command in variable CMD! -func_execute_cmds () -{ - $opt_debug - save_ifs=$IFS; IFS='~' - for cmd in $1; do - IFS=$save_ifs - eval cmd=\"$cmd\" - func_show_eval "$cmd" "${2-:}" - done - IFS=$save_ifs -} - - -# func_source file -# Source FILE, adding directory component if necessary. -# Note that it is not necessary on cygwin/mingw to append a dot to -# FILE even if both FILE and FILE.exe exist: automatic-append-.exe -# behavior happens only for exec(3), not for open(2)! Also, sourcing -# `FILE.' does not work on cygwin managed mounts. -func_source () -{ - $opt_debug - case $1 in - */* | *\\*) . "$1" ;; - *) . "./$1" ;; - esac -} - - -# func_resolve_sysroot PATH -# Replace a leading = in PATH with a sysroot. Store the result into -# func_resolve_sysroot_result -func_resolve_sysroot () -{ - func_resolve_sysroot_result=$1 - case $func_resolve_sysroot_result in - =*) - func_stripname '=' '' "$func_resolve_sysroot_result" - func_resolve_sysroot_result=$lt_sysroot$func_stripname_result - ;; - esac -} - -# func_replace_sysroot PATH -# If PATH begins with the sysroot, replace it with = and -# store the result into func_replace_sysroot_result. -func_replace_sysroot () -{ - case "$lt_sysroot:$1" in - ?*:"$lt_sysroot"*) - func_stripname "$lt_sysroot" '' "$1" - func_replace_sysroot_result="=$func_stripname_result" - ;; - *) - # Including no sysroot. - func_replace_sysroot_result=$1 - ;; - esac -} - -# func_infer_tag arg -# Infer tagged configuration to use if any are available and -# if one wasn't chosen via the "--tag" command line option. -# Only attempt this if the compiler in the base compile -# command doesn't match the default compiler. -# arg is usually of the form 'gcc ...' -func_infer_tag () -{ - $opt_debug - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case $@ in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" - CC_quoted= - for arg in $CC; do - # Double-quote args containing other shell metacharacters. - func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` - case "$@ " in - " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ - " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with \`--tag'" -# else -# func_verbose "using $tagname tagged configuration" - fi - ;; - esac - fi -} - - - -# func_write_libtool_object output_name pic_name nonpic_name -# Create a libtool object file (analogous to a ".la" file), -# but don't create it if we're doing a dry run. -func_write_libtool_object () -{ - write_libobj=${1} - if test "$build_libtool_libs" = yes; then - write_lobj=\'${2}\' - else - write_lobj=none - fi - - if test "$build_old_libs" = yes; then - write_oldobj=\'${3}\' - else - write_oldobj=none - fi - - $opt_dry_run || { - cat >${write_libobj}T </dev/null` - if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then - func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | - $SED -e "$lt_sed_naive_backslashify"` - else - func_convert_core_file_wine_to_w32_result= - fi - fi -} -# end: func_convert_core_file_wine_to_w32 - - -# func_convert_core_path_wine_to_w32 ARG -# Helper function used by path conversion functions when $build is *nix, and -# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly -# configured wine environment available, with the winepath program in $build's -# $PATH. Assumes ARG has no leading or trailing path separator characters. -# -# ARG is path to be converted from $build format to win32. -# Result is available in $func_convert_core_path_wine_to_w32_result. -# Unconvertible file (directory) names in ARG are skipped; if no directory names -# are convertible, then the result may be empty. -func_convert_core_path_wine_to_w32 () -{ - $opt_debug - # unfortunately, winepath doesn't convert paths, only file names - func_convert_core_path_wine_to_w32_result="" - if test -n "$1"; then - oldIFS=$IFS - IFS=: - for func_convert_core_path_wine_to_w32_f in $1; do - IFS=$oldIFS - func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" - if test -n "$func_convert_core_file_wine_to_w32_result" ; then - if test -z "$func_convert_core_path_wine_to_w32_result"; then - func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" - else - func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" - fi - fi - done - IFS=$oldIFS - fi -} -# end: func_convert_core_path_wine_to_w32 - - -# func_cygpath ARGS... -# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when -# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) -# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or -# (2), returns the Cygwin file name or path in func_cygpath_result (input -# file name or path is assumed to be in w32 format, as previously converted -# from $build's *nix or MSYS format). In case (3), returns the w32 file name -# or path in func_cygpath_result (input file name or path is assumed to be in -# Cygwin format). Returns an empty string on error. -# -# ARGS are passed to cygpath, with the last one being the file name or path to -# be converted. -# -# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH -# environment variable; do not put it in $PATH. -func_cygpath () -{ - $opt_debug - if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then - func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` - if test "$?" -ne 0; then - # on failure, ensure result is empty - func_cygpath_result= - fi - else - func_cygpath_result= - func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" - fi -} -#end: func_cygpath - - -# func_convert_core_msys_to_w32 ARG -# Convert file name or path ARG from MSYS format to w32 format. Return -# result in func_convert_core_msys_to_w32_result. -func_convert_core_msys_to_w32 () -{ - $opt_debug - # awkward: cmd appends spaces to result - func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | - $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -} -#end: func_convert_core_msys_to_w32 - - -# func_convert_file_check ARG1 ARG2 -# Verify that ARG1 (a file name in $build format) was converted to $host -# format in ARG2. Otherwise, emit an error message, but continue (resetting -# func_to_host_file_result to ARG1). -func_convert_file_check () -{ - $opt_debug - if test -z "$2" && test -n "$1" ; then - func_error "Could not determine host file name corresponding to" - func_error " \`$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback: - func_to_host_file_result="$1" - fi -} -# end func_convert_file_check - - -# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH -# Verify that FROM_PATH (a path in $build format) was converted to $host -# format in TO_PATH. Otherwise, emit an error message, but continue, resetting -# func_to_host_file_result to a simplistic fallback value (see below). -func_convert_path_check () -{ - $opt_debug - if test -z "$4" && test -n "$3"; then - func_error "Could not determine the host path corresponding to" - func_error " \`$3'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback. This is a deliberately simplistic "conversion" and - # should not be "improved". See libtool.info. - if test "x$1" != "x$2"; then - lt_replace_pathsep_chars="s|$1|$2|g" - func_to_host_path_result=`echo "$3" | - $SED -e "$lt_replace_pathsep_chars"` - else - func_to_host_path_result="$3" - fi - fi -} -# end func_convert_path_check - - -# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG -# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT -# and appending REPL if ORIG matches BACKPAT. -func_convert_path_front_back_pathsep () -{ - $opt_debug - case $4 in - $1 ) func_to_host_path_result="$3$func_to_host_path_result" - ;; - esac - case $4 in - $2 ) func_append func_to_host_path_result "$3" - ;; - esac -} -# end func_convert_path_front_back_pathsep - - -################################################## -# $build to $host FILE NAME CONVERSION FUNCTIONS # -################################################## -# invoked via `$to_host_file_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# Result will be available in $func_to_host_file_result. - - -# func_to_host_file ARG -# Converts the file name ARG from $build format to $host format. Return result -# in func_to_host_file_result. -func_to_host_file () -{ - $opt_debug - $to_host_file_cmd "$1" -} -# end func_to_host_file - - -# func_to_tool_file ARG LAZY -# converts the file name ARG from $build format to toolchain format. Return -# result in func_to_tool_file_result. If the conversion in use is listed -# in (the comma separated) LAZY, no conversion takes place. -func_to_tool_file () -{ - $opt_debug - case ,$2, in - *,"$to_tool_file_cmd",*) - func_to_tool_file_result=$1 - ;; - *) - $to_tool_file_cmd "$1" - func_to_tool_file_result=$func_to_host_file_result - ;; - esac -} -# end func_to_tool_file - - -# func_convert_file_noop ARG -# Copy ARG to func_to_host_file_result. -func_convert_file_noop () -{ - func_to_host_file_result="$1" -} -# end func_convert_file_noop - - -# func_convert_file_msys_to_w32 ARG -# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_file_result. -func_convert_file_msys_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_to_host_file_result="$func_convert_core_msys_to_w32_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_w32 - - -# func_convert_file_cygwin_to_w32 ARG -# Convert file name ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_file_cygwin_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - # because $build is cygwin, we call "the" cygpath in $PATH; no need to use - # LT_CYGPATH in this case. - func_to_host_file_result=`cygpath -m "$1"` - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_cygwin_to_w32 - - -# func_convert_file_nix_to_w32 ARG -# Convert file name ARG from *nix to w32 format. Requires a wine environment -# and a working winepath. Returns result in func_to_host_file_result. -func_convert_file_nix_to_w32 () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_file_wine_to_w32 "$1" - func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_w32 - - -# func_convert_file_msys_to_cygwin ARG -# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_file_msys_to_cygwin () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_cygpath -u "$func_convert_core_msys_to_w32_result" - func_to_host_file_result="$func_cygpath_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_msys_to_cygwin - - -# func_convert_file_nix_to_cygwin ARG -# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed -# in a wine environment, working winepath, and LT_CYGPATH set. Returns result -# in func_to_host_file_result. -func_convert_file_nix_to_cygwin () -{ - $opt_debug - func_to_host_file_result="$1" - if test -n "$1"; then - # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. - func_convert_core_file_wine_to_w32 "$1" - func_cygpath -u "$func_convert_core_file_wine_to_w32_result" - func_to_host_file_result="$func_cygpath_result" - fi - func_convert_file_check "$1" "$func_to_host_file_result" -} -# end func_convert_file_nix_to_cygwin - - -############################################# -# $build to $host PATH CONVERSION FUNCTIONS # -############################################# -# invoked via `$to_host_path_cmd ARG' -# -# In each case, ARG is the path to be converted from $build to $host format. -# The result will be available in $func_to_host_path_result. -# -# Path separators are also converted from $build format to $host format. If -# ARG begins or ends with a path separator character, it is preserved (but -# converted to $host format) on output. -# -# All path conversion functions are named using the following convention: -# file name conversion function : func_convert_file_X_to_Y () -# path conversion function : func_convert_path_X_to_Y () -# where, for any given $build/$host combination the 'X_to_Y' value is the -# same. If conversion functions are added for new $build/$host combinations, -# the two new functions must follow this pattern, or func_init_to_host_path_cmd -# will break. - - -# func_init_to_host_path_cmd -# Ensures that function "pointer" variable $to_host_path_cmd is set to the -# appropriate value, based on the value of $to_host_file_cmd. -to_host_path_cmd= -func_init_to_host_path_cmd () -{ - $opt_debug - if test -z "$to_host_path_cmd"; then - func_stripname 'func_convert_file_' '' "$to_host_file_cmd" - to_host_path_cmd="func_convert_path_${func_stripname_result}" - fi -} - - -# func_to_host_path ARG -# Converts the path ARG from $build format to $host format. Return result -# in func_to_host_path_result. -func_to_host_path () -{ - $opt_debug - func_init_to_host_path_cmd - $to_host_path_cmd "$1" -} -# end func_to_host_path - - -# func_convert_path_noop ARG -# Copy ARG to func_to_host_path_result. -func_convert_path_noop () -{ - func_to_host_path_result="$1" -} -# end func_convert_path_noop - - -# func_convert_path_msys_to_w32 ARG -# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic -# conversion to w32 is not available inside the cwrapper. Returns result in -# func_to_host_path_result. -func_convert_path_msys_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # Remove leading and trailing path separator characters from ARG. MSYS - # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; - # and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_msys_to_w32_result" - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_msys_to_w32 - - -# func_convert_path_cygwin_to_w32 ARG -# Convert path ARG from Cygwin to w32 format. Returns result in -# func_to_host_file_result. -func_convert_path_cygwin_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_cygwin_to_w32 - - -# func_convert_path_nix_to_w32 ARG -# Convert path ARG from *nix to w32 format. Requires a wine environment and -# a working winepath. Returns result in func_to_host_file_result. -func_convert_path_nix_to_w32 () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" - func_convert_path_check : ";" \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" - fi -} -# end func_convert_path_nix_to_w32 - - -# func_convert_path_msys_to_cygwin ARG -# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -# Returns result in func_to_host_file_result. -func_convert_path_msys_to_cygwin () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # See func_convert_path_msys_to_w32: - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_msys_to_w32_result" - func_to_host_path_result="$func_cygpath_result" - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_msys_to_cygwin - - -# func_convert_path_nix_to_cygwin ARG -# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a -# a wine environment, working winepath, and LT_CYGPATH set. Returns result in -# func_to_host_file_result. -func_convert_path_nix_to_cygwin () -{ - $opt_debug - func_to_host_path_result="$1" - if test -n "$1"; then - # Remove leading and trailing path separator characters from - # ARG. msys behavior is inconsistent here, cygpath turns them - # into '.;' and ';.', and winepath ignores them completely. - func_stripname : : "$1" - func_to_host_path_tmp1=$func_stripname_result - func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" - func_to_host_path_result="$func_cygpath_result" - func_convert_path_check : : \ - "$func_to_host_path_tmp1" "$func_to_host_path_result" - func_convert_path_front_back_pathsep ":*" "*:" : "$1" - fi -} -# end func_convert_path_nix_to_cygwin - - -# func_mode_compile arg... -func_mode_compile () -{ - $opt_debug - # Get the compilation command and the source file. - base_compile= - srcfile="$nonopt" # always keep a non-empty value in "srcfile" - suppress_opt=yes - suppress_output= - arg_mode=normal - libobj= - later= - pie_flag= - - for arg - do - case $arg_mode in - arg ) - # do not "continue". Instead, add this to base_compile - lastarg="$arg" - arg_mode=normal - ;; - - target ) - libobj="$arg" - arg_mode=normal - continue - ;; - - normal ) - # Accept any command-line options. - case $arg in - -o) - test -n "$libobj" && \ - func_fatal_error "you cannot specify \`-o' more than once" - arg_mode=target - continue - ;; - - -pie | -fpie | -fPIE) - func_append pie_flag " $arg" - continue - ;; - - -shared | -static | -prefer-pic | -prefer-non-pic) - func_append later " $arg" - continue - ;; - - -no-suppress) - suppress_opt=no - continue - ;; - - -Xcompiler) - arg_mode=arg # the next one goes into the "base_compile" arg list - continue # The current "srcfile" will either be retained or - ;; # replaced later. I would guess that would be a bug. - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - lastarg= - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" - func_append_quoted lastarg "$arg" - done - IFS="$save_ifs" - func_stripname ' ' '' "$lastarg" - lastarg=$func_stripname_result - - # Add the arguments to base_compile. - func_append base_compile " $lastarg" - continue - ;; - - *) - # Accept the current argument as the source file. - # The previous "srcfile" becomes the current argument. - # - lastarg="$srcfile" - srcfile="$arg" - ;; - esac # case $arg - ;; - esac # case $arg_mode - - # Aesthetically quote the previous argument. - func_append_quoted base_compile "$lastarg" - done # for arg - - case $arg_mode in - arg) - func_fatal_error "you must specify an argument for -Xcompile" - ;; - target) - func_fatal_error "you must specify a target with \`-o'" - ;; - *) - # Get the name of the library object. - test -z "$libobj" && { - func_basename "$srcfile" - libobj="$func_basename_result" - } - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - case $libobj in - *.[cCFSifmso] | \ - *.ada | *.adb | *.ads | *.asm | \ - *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) - func_xform "$libobj" - libobj=$func_xform_result - ;; - esac - - case $libobj in - *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; - *) - func_fatal_error "cannot determine name of library object from \`$libobj'" - ;; - esac - - func_infer_tag $base_compile - - for arg in $later; do - case $arg in - -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" - build_old_libs=no - continue - ;; - - -static) - build_libtool_libs=no - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes - continue - ;; - - -prefer-non-pic) - pic_mode=no - continue - ;; - esac - done - - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ - && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && func_warning "libobj name \`$libobj' may not contain shell special characters." - func_dirname_and_basename "$obj" "/" "" - objname="$func_basename_result" - xdir="$func_dirname_result" - lobj=${xdir}$objdir/$objname - - test -z "$base_compile" && \ - func_fatal_help "you must specify a compilation command" - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then - removelist="$obj $lobj $libobj ${libobj}T" - else - removelist="$lobj $libobj ${libobj}T" - fi - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in - cygwin* | mingw* | pw32* | os2* | cegcc*) - pic_mode=default - ;; - esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then - # non-PIC code in shared libraries is not supported - pic_mode=default - fi - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test "$compiler_c_o" = no; then - output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" - else - output_obj= - need_locks=no - lockfile= - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; then - if test -f "$lockfile"; then - $ECHO "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - func_append removelist " $output_obj" - $ECHO "$srcfile" > "$lockfile" - fi - - $opt_dry_run || $RM $removelist - func_append removelist " $lockfile" - trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - - func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 - srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result - - # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then - # Without this assignment, base_compile gets emptied. - fbsd_hideous_sh_bug=$base_compile - - if test "$pic_mode" != no; then - command="$base_compile $qsrcfile $pic_flag" - else - # Don't build PIC code - command="$base_compile $qsrcfile" - fi - - func_mkdir_p "$xdir$objdir" - - if test -z "$output_obj"; then - # Place PIC objects in $objdir - func_append command " -o $lobj" - fi - - func_show_eval_locale "$command" \ - 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then - func_show_eval '$MV "$output_obj" "$lobj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - - # Allow error messages only from the first compilation. - if test "$suppress_opt" = yes; then - suppress_output=' >/dev/null 2>&1' - fi - fi - - # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - if test "$pic_mode" != yes; then - # Don't build PIC code - command="$base_compile $qsrcfile$pie_flag" - else - command="$base_compile $qsrcfile $pic_flag" - fi - if test "$compiler_c_o" = yes; then - func_append command " -o $obj" - fi - - # Suppress compiler output if we already did a PIC compilation. - func_append command "$suppress_output" - func_show_eval_locale "$command" \ - '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - - if test "$need_locks" = warn && - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then - $ECHO "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi - - # Just move the object if needed - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then - func_show_eval '$MV "$output_obj" "$obj"' \ - 'error=$?; $opt_dry_run || $RM $removelist; exit $error' - fi - fi - - $opt_dry_run || { - func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" - - # Unlock the critical section if it was locked - if test "$need_locks" != no; then - removelist=$lockfile - $RM "$lockfile" - fi - } - - exit $EXIT_SUCCESS -} - -$opt_help || { - test "$opt_mode" = compile && func_mode_compile ${1+"$@"} -} - -func_mode_help () -{ - # We need to display help for each of the modes. - case $opt_mode in - "") - # Generic help is extracted from the usage comments - # at the start of this file. - func_help - ;; - - clean) - $ECHO \ -"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, object or program, all the files associated -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - - compile) - $ECHO \ -"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -no-suppress do not suppress compiler output for multiple passes - -prefer-pic try to build PIC objects only - -prefer-non-pic try to build non-PIC objects only - -shared do not build a \`.o' file suitable for static linking - -static only build a \`.o' file suitable for static linking - -Wc,FLAG pass FLAG directly to the compiler - -COMPILE-COMMAND is a command to be used in creating a \`standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." - ;; - - execute) - $ECHO \ -"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to \`-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - - finish) - $ECHO \ -"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." - ;; - - install) - $ECHO \ -"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. - -The following components of INSTALL-COMMAND are treated specially: - - -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - - link) - $ECHO \ -"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -bindir BINDIR specify path to binaries directory (for systems where - libraries must be found in the PATH setting at runtime) - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX - try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specify objects - -precious-files-regex REGEX - don't remove output files matching REGEX - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -shared only do dynamic linking of libtool libraries - -shrext SUFFIX override the standard shared library file extension - -static do not do any dynamic linking of uninstalled libtool libraries - -static-libtool-libs - do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -weak LIBNAME declare that the target provides the LIBNAME interface - -Wc,FLAG - -Xcompiler FLAG pass linker-specific FLAG directly to the compiler - -Wl,FLAG - -Xlinker FLAG pass linker-specific FLAG directly to the linker - -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) - -All other options (arguments beginning with \`-') are ignored. - -Every other argument is treated as a filename. Files ending in \`.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. - -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -is created, otherwise an executable program is created." - ;; - - uninstall) - $ECHO \ -"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - - *) - func_fatal_help "invalid operation mode \`$opt_mode'" - ;; - esac - - echo - $ECHO "Try \`$progname --help' for more information about other modes." -} - -# Now that we've collected a possible --mode arg, show help if necessary -if $opt_help; then - if test "$opt_help" = :; then - func_mode_help - else - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - func_mode_help - done - } | sed -n '1p; 2,$s/^Usage:/ or: /p' - { - func_help noexit - for opt_mode in compile link execute install finish uninstall clean; do - echo - func_mode_help - done - } | - sed '1d - /^When reporting/,/^Report/{ - H - d - } - $x - /information about other modes/d - /more detailed .*MODE/d - s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' - fi - exit $? -fi - - -# func_mode_execute arg... -func_mode_execute () -{ - $opt_debug - # The first argument is the command name. - cmd="$nonopt" - test -z "$cmd" && \ - func_fatal_help "you must specify a COMMAND" - - # Handle -dlopen flags immediately. - for file in $opt_dlopen; do - test -f "$file" \ - || func_fatal_help "\`$file' is not a file" - - dir= - case $file in - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$lib' is not a valid libtool archive" - - # Read the libtool library. - dlname= - library_names= - func_source "$file" - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && \ - func_warning "\`$file' was not linked with \`-export-dynamic'" - continue - fi - - func_dirname "$file" "" "." - dir="$func_dirname_result" - - if test -f "$dir/$objdir/$dlname"; then - func_append dir "/$objdir" - else - if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" - fi - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - func_dirname "$file" "" "." - dir="$func_dirname_result" - ;; - - *) - func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic="$magic" - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case $file in - -* | *.la | *.lo ) ;; - *) - # Do a test to see if this is really a libtool program. - if func_ltwrapper_script_p "$file"; then - func_source "$file" - # Transform arg to wrapped name. - file="$progdir/$program" - elif func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - func_source "$func_ltwrapper_scriptname_result" - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - func_append_quoted args "$file" - done - - if test "X$opt_dry_run" = Xfalse; then - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved environment variables - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES - do - eval "if test \"\${save_$lt_var+set}\" = set; then - $lt_var=\$save_$lt_var; export $lt_var - else - $lt_unset $lt_var - fi" - done - - # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - echo "export $shlibpath_var" - fi - $ECHO "$cmd$args" - exit $EXIT_SUCCESS - fi -} - -test "$opt_mode" = execute && func_mode_execute ${1+"$@"} - - -# func_mode_finish arg... -func_mode_finish () -{ - $opt_debug - libs= - libdirs= - admincmds= - - for opt in "$nonopt" ${1+"$@"} - do - if test -d "$opt"; then - func_append libdirs " $opt" - - elif test -f "$opt"; then - if func_lalib_unsafe_p "$opt"; then - func_append libs " $opt" - else - func_warning "\`$opt' is not a valid libtool archive" - fi - - else - func_fatal_error "invalid argument \`$opt'" - fi - done - - if test -n "$libs"; then - if test -n "$lt_sysroot"; then - sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` - sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" - else - sysroot_cmd= - fi - - # Remove sysroot references - if $opt_dry_run; then - for lib in $libs; do - echo "removing references to $lt_sysroot and \`=' prefixes from $lib" - done - else - tmpdir=`func_mktempdir` - for lib in $libs; do - sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ - > $tmpdir/tmp-la - mv -f $tmpdir/tmp-la $lib - done - ${RM}r "$tmpdir" - fi - fi - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - func_execute_cmds "$finish_cmds" 'admincmds="$admincmds -'"$cmd"'"' - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $opt_dry_run || eval "$cmds" || func_append admincmds " - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - $opt_silent && exit $EXIT_SUCCESS - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - echo "----------------------------------------------------------------------" - echo "Libraries have been installed in:" - for libdir in $libdirs; do - $ECHO " $libdir" - done - echo - echo "If you ever happen to want to link against installed libraries" - echo "in a given directory, LIBDIR, you must either use libtool, and" - echo "specify the full pathname of the library, or use the \`-LLIBDIR'" - echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the \`$shlibpath_var' environment variable" - echo " during execution" - fi - if test -n "$runpath_var"; then - echo " - add LIBDIR to the \`$runpath_var' environment variable" - echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - $ECHO " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $ECHO " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - echo - - echo "See any operating system documentation about shared libraries for" - case $host in - solaris2.[6789]|solaris2.1[0-9]) - echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" - echo "pages." - ;; - *) - echo "more information, such as the ld(1) and ld.so(8) manual pages." - ;; - esac - echo "----------------------------------------------------------------------" - fi - exit $EXIT_SUCCESS -} - -test "$opt_mode" = finish && func_mode_finish ${1+"$@"} - - -# func_mode_install arg... -func_mode_install () -{ - $opt_debug - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. - case $nonopt in *shtool*) :;; *) false;; esac; then - # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " - arg=$1 - shift - else - install_prog= - arg=$nonopt - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" - install_shared_prog=$install_prog - case " $install_prog " in - *[\\\ /]cp\ *) install_cp=: ;; - *) install_cp=false ;; - esac - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - no_mode=: - for arg - do - arg2= - if test -n "$dest"; then - func_append files " $dest" - dest=$arg - continue - fi - - case $arg in - -d) isdir=yes ;; - -f) - if $install_cp; then :; else - prev=$arg - fi - ;; - -g | -m | -o) - prev=$arg - ;; - -s) - stripme=" -s" - continue - ;; - -*) - ;; - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - if test "x$prev" = x-m && test -n "$install_override_mode"; then - arg2=$install_override_mode - no_mode=false - fi - prev= - else - dest=$arg - continue - fi - ;; - esac - - # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" - if test -n "$arg2"; then - func_quote_for_eval "$arg2" - fi - func_append install_shared_prog " $func_quote_for_eval_result" - done - - test -z "$install_prog" && \ - func_fatal_help "you must specify an install program" - - test -n "$prev" && \ - func_fatal_help "the \`$prev' option requires an argument" - - if test -n "$install_override_mode" && $no_mode; then - if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" - fi - fi - - if test -z "$files"; then - if test -z "$dest"; then - func_fatal_help "no file or destination specified" - else - func_fatal_help "you must specify a destination" - fi - fi - - # Strip any trailing slash from the destination. - func_stripname '' '/' "$dest" - dest=$func_stripname_result - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" - destname= - else - func_dirname_and_basename "$dest" "" "." - destdir="$func_dirname_result" - destname="$func_basename_result" - - # Not a directory, so check to see that there is only one file specified. - set dummy $files; shift - test "$#" -gt 1 && \ - func_fatal_help "\`$dest' is not a directory" - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - func_fatal_help "\`$destdir' must be an absolute directory name" - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case $file in - *.$libext) - # Do the static libraries later. - func_append staticlibs " $file" - ;; - - *.la) - func_resolve_sysroot "$file" - file=$func_resolve_sysroot_result - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$file' is not a valid libtool archive" - - library_names= - old_library= - relink_command= - func_source "$file" - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) func_append current_libdirs " $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) func_append future_libdirs " $libdir" ;; - esac - fi - - func_dirname "$file" "/" "" - dir="$func_dirname_result" - func_append dir "$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that - # are installed to the same prefix. - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. - test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` - else - relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` - fi - - func_warning "relinking \`$file'" - func_show_eval "$relink_command" \ - 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' - fi - - # See the names of the shared library. - set dummy $library_names; shift - if test -n "$1"; then - realname="$1" - shift - - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T - - # Install the shared library and build the symlinks. - func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ - 'exit $?' - tstripme="$stripme" - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - case $realname in - *.dll.a) - tstripme="" - ;; - esac - ;; - esac - if test -n "$tstripme" && test -n "$striplib"; then - func_show_eval "$striplib $destdir/$realname" 'exit $?' - fi - - if test "$#" -gt 0; then - # Delete the old symlinks, and create new ones. - # Try `ln -sf' first, because the `ln' binary might depend on - # the symlink we replace! Solaris /bin/ln does not understand -f, - # so we also need to try rm && ln -s. - for linkname - do - test "$linkname" != "$realname" \ - && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" - done - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - func_execute_cmds "$postinstall_cmds" 'exit $?' - fi - - # Install the pseudo-library for information purposes. - func_basename "$file" - name="$func_basename_result" - instname="$dir/$name"i - func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' - - # Maybe install the static library, too. - test -n "$old_library" && func_append staticlibs " $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - func_lo2o "$destfile" - staticdest=$func_lo2o_result - ;; - *.$objext) - staticdest="$destfile" - destfile= - ;; - *) - func_fatal_help "cannot copy a libtool object to \`$destfile'" - ;; - esac - - # Install the libtool object if requested. - test -n "$destfile" && \ - func_show_eval "$install_prog $file $destfile" 'exit $?' - - # Install the old object if enabled. - if test "$build_old_libs" = yes; then - # Deduce the name of the old-style object file. - func_lo2o "$file" - staticobj=$func_lo2o_result - func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' - fi - exit $EXIT_SUCCESS - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" - fi - - # If the file is missing, and there is a .exe on the end, strip it - # because it is most likely a libtool script we actually want to - # install - stripped_ext="" - case $file in - *.exe) - if test ! -f "$file"; then - func_stripname '' '.exe' "$file" - file=$func_stripname_result - stripped_ext=".exe" - fi - ;; - esac - - # Do a test to see if this is really a libtool program. - case $host in - *cygwin* | *mingw*) - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - wrapper=$func_ltwrapper_scriptname_result - else - func_stripname '' '.exe' "$file" - wrapper=$func_stripname_result - fi - ;; - *) - wrapper=$file - ;; - esac - if func_ltwrapper_script_p "$wrapper"; then - notinst_deplibs= - relink_command= - - func_source "$wrapper" - - # Check the variables that should have been set. - test -z "$generated_by_libtool_version" && \ - func_fatal_error "invalid libtool wrapper script \`$wrapper'" - - finalize=yes - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - func_source "$lib" - fi - libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test - if test -n "$libdir" && test ! -f "$libfile"; then - func_warning "\`$lib' has not been installed in \`$libdir'" - finalize=no - fi - done - - relink_command= - func_source "$wrapper" - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - $opt_dry_run || { - if test "$finalize" = yes; then - tmpdir=`func_mktempdir` - func_basename "$file$stripped_ext" - file="$func_basename_result" - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` - - $opt_silent || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" - } - if eval "$relink_command"; then : - else - func_error "error: relink \`$file' with the above command before installing it" - $opt_dry_run || ${RM}r "$tmpdir" - continue - fi - file="$outputname" - else - func_warning "cannot relink \`$file'" - fi - } - else - # Install the binary that we compiled earlier. - file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - # remove .exe since cygwin /usr/bin/install will append another - # one anyway - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - func_stripname '' '.exe' "$destfile" - destfile=$func_stripname_result - ;; - esac - ;; - esac - func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' - $opt_dry_run || if test -n "$outputname"; then - ${RM}r "$tmpdir" - fi - ;; - esac - done - - for file in $staticlibs; do - func_basename "$file" - name="$func_basename_result" - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 - tool_oldlib=$func_to_tool_file_result - - func_show_eval "$install_prog \$file \$oldlib" 'exit $?' - - if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $tool_oldlib" 'exit $?' - fi - - # Do each command in the postinstall commands. - func_execute_cmds "$old_postinstall_cmds" 'exit $?' - done - - test -n "$future_libdirs" && \ - func_warning "remember to run \`$progname --finish$future_libdirs'" - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' - else - exit $EXIT_SUCCESS - fi -} - -test "$opt_mode" = install && func_mode_install ${1+"$@"} - - -# func_generate_dlsyms outputname originator pic_p -# Extract symbols from dlprefiles and create ${outputname}S.o with -# a dlpreopen symbol table. -func_generate_dlsyms () -{ - $opt_debug - my_outputname="$1" - my_originator="$2" - my_pic_p="${3-no}" - my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` - my_dlsyms= - - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - my_dlsyms="${my_outputname}S.c" - else - func_error "not configured to extract global symbols from dlpreopened files" - fi - fi - - if test -n "$my_dlsyms"; then - case $my_dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${my_outputname}.nm" - - func_show_eval "$RM $nlist ${nlist}S ${nlist}T" - - # Parse the name list into a source file. - func_verbose "creating $output_objdir/$my_dlsyms" - - $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ -/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) -#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" -#endif - -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -/* External symbol declarations for the compiler. */\ -" - - if test "$dlself" = yes; then - func_verbose "generating symbol list for \`$output'" - - $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` - for progfile in $progfiles; do - func_to_tool_file "$progfile" func_convert_file_msys_to_w32 - func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" - $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $opt_dry_run || { - eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - if test -n "$export_symbols_regex"; then - $opt_dry_run || { - eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - } - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols="$output_objdir/$outputname.exp" - $opt_dry_run || { - $RM $export_symbols - eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - } - else - $opt_dry_run || { - eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' - eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - } - fi - fi - - for dlprefile in $dlprefiles; do - func_verbose "extracting global C symbols from \`$dlprefile'" - func_basename "$dlprefile" - name="$func_basename_result" - case $host in - *cygwin* | *mingw* | *cegcc* ) - # if an import library, we need to obtain dlname - if func_win32_import_lib_p "$dlprefile"; then - func_tr_sh "$dlprefile" - eval "curr_lafile=\$libfile_$func_tr_sh_result" - dlprefile_dlbasename="" - if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then - # Use subshell, to avoid clobbering current variable values - dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` - if test -n "$dlprefile_dlname" ; then - func_basename "$dlprefile_dlname" - dlprefile_dlbasename="$func_basename_result" - else - # no lafile. user explicitly requested -dlpreopen . - $sharedlib_from_linklib_cmd "$dlprefile" - dlprefile_dlbasename=$sharedlib_from_linklib_result - fi - fi - $opt_dry_run || { - if test -n "$dlprefile_dlbasename" ; then - eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' - else - func_warning "Could not compute DLL name from $name" - eval '$ECHO ": $name " >> "$nlist"' - fi - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | - $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" - } - else # not an import lib - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - fi - ;; - *) - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } - ;; - esac - done - - $opt_dry_run || { - # Make sure we have at least an empty file. - test -f "$nlist" || : > "$nlist" - - if test -n "$exclude_expsyms"; then - $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T - $MV "$nlist"T "$nlist" - fi - - # Try sorting and uniquifying the output. - if $GREP -v "^: " < "$nlist" | - if sort -k 3 /dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then - : - else - $GREP -v "^: " < "$nlist" > "$nlist"S - fi - - if test -f "$nlist"S; then - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' - else - echo '/* NONE */' >> "$output_objdir/$my_dlsyms" - fi - - echo >> "$output_objdir/$my_dlsyms" "\ - -/* The mapping between symbol names and symbols. */ -typedef struct { - const char *name; - void *address; -} lt_dlsymlist; -extern LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[]; -LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[] = -{\ - { \"$my_originator\", (void *) 0 }," - - case $need_lib_prefix in - no) - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - *) - eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" - ;; - esac - echo >> "$output_objdir/$my_dlsyms" "\ - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_${my_prefix}_LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - } # !$opt_dry_run - - pic_flag_for_symtable= - case "$compile_command " in - *" -static "*) ;; - *) - case $host in - # compiling the symbol table file with pic_flag works around - # a FreeBSD bug that causes programs to crash when -lm is - # linked before any other PIC object. But we must not use - # pic_flag when linking with -static. The problem exists in - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) - pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; - *-*-hpux*) - pic_flag_for_symtable=" $pic_flag" ;; - *) - if test "X$my_pic_p" != Xno; then - pic_flag_for_symtable=" $pic_flag" - fi - ;; - esac - ;; - esac - symtab_cflags= - for arg in $LTCFLAGS; do - case $arg in - -pie | -fpie | -fPIE) ;; - *) func_append symtab_cflags " $arg" ;; - esac - done - - # Now compile the dynamic symbol file. - func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' - - # Clean up the generated files. - func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' - - # Transform the symbol file into the correct name. - symfileobj="$output_objdir/${my_outputname}S.$objext" - case $host in - *cygwin* | *mingw* | *cegcc* ) - if test -f "$output_objdir/$my_outputname.def"; then - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - else - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - fi - ;; - *) - compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` - ;; - esac - ;; - *) - func_fatal_error "unknown suffix for \`$my_dlsyms'" - ;; - esac - else - # We keep going just in case the user didn't refer to - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - - # Nullify the symbol file. - compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` - finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` - fi -} - -# func_win32_libid arg -# return the library type of file 'arg' -# -# Need a lot of goo to handle *both* DLLs and import libs -# Has to be a shell function in order to 'eat' the argument -# that is supplied when $file_magic_command is called. -# Despite the name, also deal with 64 bit binaries. -func_win32_libid () -{ - $opt_debug - win32_libid_type="unknown" - win32_fileres=`file -L $1 2>/dev/null` - case $win32_fileres in - *ar\ archive\ import\ library*) # definitely import - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static - # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | - $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then - func_to_tool_file "$1" func_convert_file_msys_to_w32 - win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' - 1,100{ - / I /{ - s,.*,import, - p - q - } - }'` - case $win32_nmres in - import*) win32_libid_type="x86 archive import";; - *) win32_libid_type="x86 archive static";; - esac - fi - ;; - *DLL*) - win32_libid_type="x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... - case $win32_fileres in - *MS\ Windows\ PE\ Intel*) - win32_libid_type="x86 DLL" - ;; - esac - ;; - esac - $ECHO "$win32_libid_type" -} - -# func_cygming_dll_for_implib ARG -# -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib () -{ - $opt_debug - sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` -} - -# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs -# -# The is the core of a fallback implementation of a -# platform-specific function to extract the name of the -# DLL associated with the specified import library LIBNAME. -# -# SECTION_NAME is either .idata$6 or .idata$7, depending -# on the platform and compiler that created the implib. -# -# Echos the name of the DLL associated with the -# specified import library. -func_cygming_dll_for_implib_fallback_core () -{ - $opt_debug - match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` - $OBJDUMP -s --section "$1" "$2" 2>/dev/null | - $SED '/^Contents of section '"$match_literal"':/{ - # Place marker at beginning of archive member dllname section - s/.*/====MARK====/ - p - d - } - # These lines can sometimes be longer than 43 characters, but - # are always uninteresting - /:[ ]*file format pe[i]\{,1\}-/d - /^In archive [^:]*:/d - # Ensure marker is printed - /^====MARK====/p - # Remove all lines with less than 43 characters - /^.\{43\}/!d - # From remaining lines, remove first 43 characters - s/^.\{43\}//' | - $SED -n ' - # Join marker and all lines until next marker into a single line - /^====MARK====/ b para - H - $ b para - b - :para - x - s/\n//g - # Remove the marker - s/^====MARK====// - # Remove trailing dots and whitespace - s/[\. \t]*$// - # Print - /./p' | - # we now have a list, one entry per line, of the stringified - # contents of the appropriate section of all members of the - # archive which possess that section. Heuristic: eliminate - # all those which have a first or second character that is - # a '.' (that is, objdump's representation of an unprintable - # character.) This should work for all archives with less than - # 0x302f exports -- but will fail for DLLs whose name actually - # begins with a literal '.' or a single character followed by - # a '.'. - # - # Of those that remain, print the first one. - $SED -e '/^\./d;/^.\./d;q' -} - -# func_cygming_gnu_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is a GNU/binutils-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_gnu_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` - test -n "$func_cygming_gnu_implib_tmp" -} - -# func_cygming_ms_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is an MS-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_ms_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` - test -n "$func_cygming_ms_implib_tmp" -} - -# func_cygming_dll_for_implib_fallback ARG -# Platform-specific function to extract the -# name of the DLL associated with the specified -# import library ARG. -# -# This fallback implementation is for use when $DLLTOOL -# does not support the --identify-strict option. -# Invoked by eval'ing the libtool variable -# $sharedlib_from_linklib_cmd -# Result is available in the variable -# $sharedlib_from_linklib_result -func_cygming_dll_for_implib_fallback () -{ - $opt_debug - if func_cygming_gnu_implib_p "$1" ; then - # binutils import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` - elif func_cygming_ms_implib_p "$1" ; then - # ms-generated import library - sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` - else - # unknown - sharedlib_from_linklib_result="" - fi -} - - -# func_extract_an_archive dir oldlib -func_extract_an_archive () -{ - $opt_debug - f_ex_an_ar_dir="$1"; shift - f_ex_an_ar_oldlib="$1" - if test "$lock_old_archive_extraction" = yes; then - lockfile=$f_ex_an_ar_oldlib.lock - until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do - func_echo "Waiting for $lockfile to be removed" - sleep 2 - done - fi - func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ - 'stat=$?; rm -f "$lockfile"; exit $stat' - if test "$lock_old_archive_extraction" = yes; then - $opt_dry_run || rm -f "$lockfile" - fi - if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then - : - else - func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" - fi -} - - -# func_extract_archives gentop oldlib ... -func_extract_archives () -{ - $opt_debug - my_gentop="$1"; shift - my_oldlibs=${1+"$@"} - my_oldobjs="" - my_xlib="" - my_xabs="" - my_xdir="" - - for my_xlib in $my_oldlibs; do - # Extract the objects. - case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; - *) my_xabs=`pwd`"/$my_xlib" ;; - esac - func_basename "$my_xlib" - my_xlib="$func_basename_result" - my_xlib_u=$my_xlib - while :; do - case " $extracted_archives " in - *" $my_xlib_u "*) - func_arith $extracted_serial + 1 - extracted_serial=$func_arith_result - my_xlib_u=lt$extracted_serial-$my_xlib ;; - *) break ;; - esac - done - extracted_archives="$extracted_archives $my_xlib_u" - my_xdir="$my_gentop/$my_xlib_u" - - func_mkdir_p "$my_xdir" - - case $host in - *-darwin*) - func_verbose "Extracting $my_xabs" - # Do not bother doing anything if just a dry run - $opt_dry_run || { - darwin_orig_dir=`pwd` - cd $my_xdir || exit $? - darwin_archive=$my_xabs - darwin_curdir=`pwd` - darwin_base_archive=`basename "$darwin_archive"` - darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` - if test -n "$darwin_arches"; then - darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` - darwin_arch= - func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches ; do - func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" - $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" - cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" - func_extract_an_archive "`pwd`" "${darwin_base_archive}" - cd "$darwin_curdir" - $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" - done # $darwin_arches - ## Okay now we've a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` - $LIPO -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - $RM -rf unfat-$$ - cd "$darwin_orig_dir" - else - cd $darwin_orig_dir - func_extract_an_archive "$my_xdir" "$my_xabs" - fi # $darwin_arches - } # !$opt_dry_run - ;; - *) - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` - done - - func_extract_archives_result="$my_oldobjs" -} - - -# func_emit_wrapper [arg=no] -# -# Emit a libtool wrapper script on stdout. -# Don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw -# wrapper executable. Must ONLY be called from within -# func_mode_link because it depends on a number of variables -# set therein. -# -# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -# variable will take. If 'yes', then the emitted script -# will assume that the directory in which it is stored is -# the $objdir directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () -{ - func_emit_wrapper_arg1=${1-no} - - $ECHO "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='$sed_quote_subst' - -# Be Bourne compatible -if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -relink_command=\"$relink_command\" - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variables: - generated_by_libtool_version='$macro_version' - notinst_deplibs='$notinst_deplibs' -else - # When we are sourced in execute mode, \$file and \$ECHO are already set. - if test \"\$libtool_execute_magic\" != \"$magic\"; then - file=\"\$0\"" - - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` - $ECHO "\ - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - ECHO=\"$qECHO\" - fi - -# Very basic option parsing. These options are (a) specific to -# the libtool wrapper, (b) are identical between the wrapper -# /script/ and the wrapper /executable/ which is used only on -# windows platforms, and (c) all begin with the string "--lt-" -# (application programs are unlikely to have options which match -# this pattern). -# -# There are only two supported options: --lt-debug and -# --lt-dump-script. There is, deliberately, no --lt-help. -# -# The first argument to this parsing function should be the -# script's $0 value, followed by "$@". -lt_option_debug= -func_parse_lt_options () -{ - lt_script_arg0=\$0 - shift - for lt_opt - do - case \"\$lt_opt\" in - --lt-debug) lt_option_debug=1 ;; - --lt-dump-script) - lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` - test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. - lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` - cat \"\$lt_dump_D/\$lt_dump_F\" - exit 0 - ;; - --lt-*) - \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 - exit 1 - ;; - esac - done - - # Print the debug banner immediately: - if test -n \"\$lt_option_debug\"; then - echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 - fi -} - -# Used when --lt-debug. Prints its arguments to stdout -# (redirection is the responsibility of the caller) -func_lt_dump_args () -{ - lt_dump_args_N=1; - for lt_arg - do - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" - lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` - done -} - -# Core function for launching the target application -func_exec_program_core () -{ -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2* | *-cegcc*) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $ECHO "\ - if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 - func_lt_dump_args \${1+\"\$@\"} 1>&2 - fi - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $ECHO "\ - \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 - exit 1 -} - -# A function to encapsulate launching the target application -# Strips options in the --lt-* namespace from \$@ and -# launches target application with the remaining arguments. -func_exec_program () -{ - case \" \$* \" in - *\\ --lt-*) - for lt_wr_arg - do - case \$lt_wr_arg in - --lt-*) ;; - *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; - esac - shift - done ;; - esac - func_exec_program_core \${1+\"\$@\"} -} - - # Parse options - func_parse_lt_options \"\$0\" \${1+\"\$@\"} - - # Find the directory that this script lives in. - thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` - done - - # Usually 'no', except on cygwin/mingw when embedded into - # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 - if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then - # special case for '.' - if test \"\$thisdir\" = \".\"; then - thisdir=\`pwd\` - fi - # remove .libs from thisdir - case \"\$thisdir\" in - *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; - $objdir ) thisdir=. ;; - esac - fi - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" -" - - if test "$fast_install" = yes; then - $ECHO "\ - program=lt-'$outputname'$exeext - progdir=\"\$thisdir/$objdir\" - - if test ! -f \"\$progdir/\$program\" || - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ - test \"X\$file\" != \"X\$progdir/\$program\"; }; then - - file=\"\$\$-\$program\" - - if test ! -d \"\$progdir\"; then - $MKDIR \"\$progdir\" - else - $RM \"\$progdir/\$file\" - fi" - - $ECHO "\ - - # relink executable if necessary - if test -n \"\$relink_command\"; then - if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - $ECHO \"\$relink_command_output\" >&2 - $RM \"\$progdir/\$file\" - exit 1 - fi - fi - - $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $RM \"\$progdir/\$program\"; - $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $RM \"\$progdir/\$file\" - fi" - else - $ECHO "\ - program='$outputname' - progdir=\"\$thisdir/$objdir\" -" - fi - - $ECHO "\ - - if test -f \"\$progdir/\$program\"; then" - - # fixup the dll searchpath if we need to. - # - # Fix the DLL searchpath if we need to. Do this before prepending - # to shlibpath, because on Windows, both are PATH and uninstalled - # libraries must come first. - if test -n "$dllsearchpath"; then - $ECHO "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $ECHO "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` - - export $shlibpath_var -" - fi - - $ECHO "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. - func_exec_program \${1+\"\$@\"} - fi - else - # The program doesn't exist. - \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 - \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 - \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 - fi -fi\ -" -} - - -# func_emit_cwrapperexe_src -# emit the source code for a wrapper executable on stdout -# Must ONLY be called from within func_mode_link because -# it depends on a number of variable set therein. -func_emit_cwrapperexe_src () -{ - cat < -#include -#ifdef _MSC_VER -# include -# include -# include -#else -# include -# include -# ifdef __CYGWIN__ -# include -# endif -#endif -#include -#include -#include -#include -#include -#include -#include -#include - -/* declarations of non-ANSI functions */ -#if defined(__MINGW32__) -# ifdef __STRICT_ANSI__ -int _putenv (const char *); -# endif -#elif defined(__CYGWIN__) -# ifdef __STRICT_ANSI__ -char *realpath (const char *, char *); -int putenv (char *); -int setenv (const char *, const char *, int); -# endif -/* #elif defined (other platforms) ... */ -#endif - -/* portability defines, excluding path handling macros */ -#if defined(_MSC_VER) -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -# define S_IXUSR _S_IEXEC -# ifndef _INTPTR_T_DEFINED -# define _INTPTR_T_DEFINED -# define intptr_t int -# endif -#elif defined(__MINGW32__) -# define setmode _setmode -# define stat _stat -# define chmod _chmod -# define getcwd _getcwd -# define putenv _putenv -#elif defined(__CYGWIN__) -# define HAVE_SETENV -# define FOPEN_WB "wb" -/* #elif defined (other platforms) ... */ -#endif - -#if defined(PATH_MAX) -# define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) -# define LT_PATHMAX MAXPATHLEN -#else -# define LT_PATHMAX 1024 -#endif - -#ifndef S_IXOTH -# define S_IXOTH 0 -#endif -#ifndef S_IXGRP -# define S_IXGRP 0 -#endif - -/* path handling portability macros */ -#ifndef DIR_SEPARATOR -# define DIR_SEPARATOR '/' -# define PATH_SEPARATOR ':' -#endif - -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) -# define HAVE_DOS_BASED_FILE_SYSTEM -# define FOPEN_WB "wb" -# ifndef DIR_SEPARATOR_2 -# define DIR_SEPARATOR_2 '\\' -# endif -# ifndef PATH_SEPARATOR_2 -# define PATH_SEPARATOR_2 ';' -# endif -#endif - -#ifndef DIR_SEPARATOR_2 -# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) -#else /* DIR_SEPARATOR_2 */ -# define IS_DIR_SEPARATOR(ch) \ - (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) -#endif /* DIR_SEPARATOR_2 */ - -#ifndef PATH_SEPARATOR_2 -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -#else /* PATH_SEPARATOR_2 */ -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -#endif /* PATH_SEPARATOR_2 */ - -#ifndef FOPEN_WB -# define FOPEN_WB "w" -#endif -#ifndef _O_BINARY -# define _O_BINARY 0 -#endif - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ -} while (0) - -#if defined(LT_DEBUGWRAPPER) -static int lt_debug = 1; -#else -static int lt_debug = 0; -#endif - -const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ - -void *xmalloc (size_t num); -char *xstrdup (const char *string); -const char *base_name (const char *name); -char *find_executable (const char *wrapper); -char *chase_symlinks (const char *pathspec); -int make_executable (const char *path); -int check_executable (const char *path); -char *strendzap (char *str, const char *pat); -void lt_debugprintf (const char *file, int line, const char *fmt, ...); -void lt_fatal (const char *file, int line, const char *message, ...); -static const char *nonnull (const char *s); -static const char *nonempty (const char *s); -void lt_setenv (const char *name, const char *value); -char *lt_extend_str (const char *orig_value, const char *add, int to_end); -void lt_update_exe_path (const char *name, const char *value); -void lt_update_lib_path (const char *name, const char *value); -char **prepare_spawn (char **argv); -void lt_dump_script (FILE *f); -EOF - - cat <= 0) - && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) - return 1; - else - return 0; -} - -int -make_executable (const char *path) -{ - int rval = 0; - struct stat st; - - lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", - nonempty (path)); - if ((!path) || (!*path)) - return 0; - - if (stat (path, &st) >= 0) - { - rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); - } - return rval; -} - -/* Searches for the full path of the wrapper. Returns - newly allocated full path name if found, NULL otherwise - Does not chase symlinks, even on platforms that support them. -*/ -char * -find_executable (const char *wrapper) -{ - int has_slash = 0; - const char *p; - const char *p_next; - /* static buffer for getcwd */ - char tmp[LT_PATHMAX + 1]; - int tmp_len; - char *concat_name; - - lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", - nonempty (wrapper)); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; - - /* Absolute path? */ -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - else - { -#endif - if (IS_DIR_SEPARATOR (wrapper[0])) - { - concat_name = xstrdup (wrapper); - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - } -#endif - - for (p = wrapper; *p; p++) - if (*p == '/') - { - has_slash = 1; - break; - } - if (!has_slash) - { - /* no slashes; search PATH */ - const char *path = getenv ("PATH"); - if (path != NULL) - { - for (p = path; *p; p = p_next) - { - const char *q; - size_t p_len; - for (q = p; *q; q++) - if (IS_PATH_SEPARATOR (*q)) - break; - p_len = q - p; - p_next = (*q == '\0' ? q : q + 1); - if (p_len == 0) - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = - XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - } - else - { - concat_name = - XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, p, p_len); - concat_name[p_len] = '/'; - strcpy (concat_name + p_len + 1, wrapper); - } - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - } - } - /* not found in PATH; assume curdir */ - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", - nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - - if (check_executable (concat_name)) - return concat_name; - XFREE (concat_name); - return NULL; -} - -char * -chase_symlinks (const char *pathspec) -{ -#ifndef S_ISLNK - return xstrdup (pathspec); -#else - char buf[LT_PATHMAX]; - struct stat s; - char *tmp_pathspec = xstrdup (pathspec); - char *p; - int has_symlinks = 0; - while (strlen (tmp_pathspec) && !has_symlinks) - { - lt_debugprintf (__FILE__, __LINE__, - "checking path component for symlinks: %s\n", - tmp_pathspec); - if (lstat (tmp_pathspec, &s) == 0) - { - if (S_ISLNK (s.st_mode) != 0) - { - has_symlinks = 1; - break; - } - - /* search backwards for last DIR_SEPARATOR */ - p = tmp_pathspec + strlen (tmp_pathspec) - 1; - while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - p--; - if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) - { - /* no more DIR_SEPARATORS left */ - break; - } - *p = '\0'; - } - else - { - lt_fatal (__FILE__, __LINE__, - "error accessing file \"%s\": %s", - tmp_pathspec, nonnull (strerror (errno))); - } - } - XFREE (tmp_pathspec); - - if (!has_symlinks) - { - return xstrdup (pathspec); - } - - tmp_pathspec = realpath (pathspec, buf); - if (tmp_pathspec == 0) - { - lt_fatal (__FILE__, __LINE__, - "could not follow symlinks for %s", pathspec); - } - return xstrdup (tmp_pathspec); -#endif -} - -char * -strendzap (char *str, const char *pat) -{ - size_t len, patlen; - - assert (str != NULL); - assert (pat != NULL); - - len = strlen (str); - patlen = strlen (pat); - - if (patlen <= len) - { - str += len - patlen; - if (strcmp (str, pat) == 0) - *str = '\0'; - } - return str; -} - -void -lt_debugprintf (const char *file, int line, const char *fmt, ...) -{ - va_list args; - if (lt_debug) - { - (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); - va_start (args, fmt); - (void) vfprintf (stderr, fmt, args); - va_end (args); - } -} - -static void -lt_error_core (int exit_status, const char *file, - int line, const char *mode, - const char *message, va_list ap) -{ - fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - - if (exit_status >= 0) - exit (exit_status); -} - -void -lt_fatal (const char *file, int line, const char *message, ...) -{ - va_list ap; - va_start (ap, message); - lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); - va_end (ap); -} - -static const char * -nonnull (const char *s) -{ - return s ? s : "(null)"; -} - -static const char * -nonempty (const char *s) -{ - return (s && !*s) ? "(empty)" : nonnull (s); -} - -void -lt_setenv (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_setenv) setting '%s' to '%s'\n", - nonnull (name), nonnull (value)); - { -#ifdef HAVE_SETENV - /* always make a copy, for consistency with !HAVE_SETENV */ - char *str = xstrdup (value); - setenv (name, str, 1); -#else - int len = strlen (name) + 1 + strlen (value) + 1; - char *str = XMALLOC (char, len); - sprintf (str, "%s=%s", name, value); - if (putenv (str) != EXIT_SUCCESS) - { - XFREE (str); - } -#endif - } -} - -char * -lt_extend_str (const char *orig_value, const char *add, int to_end) -{ - char *new_value; - if (orig_value && *orig_value) - { - int orig_value_len = strlen (orig_value); - int add_len = strlen (add); - new_value = XMALLOC (char, add_len + orig_value_len + 1); - if (to_end) - { - strcpy (new_value, orig_value); - strcpy (new_value + orig_value_len, add); - } - else - { - strcpy (new_value, add); - strcpy (new_value + add_len, orig_value); - } - } - else - { - new_value = xstrdup (add); - } - return new_value; -} - -void -lt_update_exe_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - /* some systems can't cope with a ':'-terminated path #' */ - int len = strlen (new_value); - while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) - { - new_value[len-1] = '\0'; - } - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -void -lt_update_lib_path (const char *name, const char *value) -{ - lt_debugprintf (__FILE__, __LINE__, - "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", - nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { - char *new_value = lt_extend_str (getenv (name), value, 0); - lt_setenv (name, new_value); - XFREE (new_value); - } -} - -EOF - case $host_os in - mingw*) - cat <<"EOF" - -/* Prepares an argument vector before calling spawn(). - Note that spawn() does not by itself call the command interpreter - (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : - ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&v); - v.dwPlatformId == VER_PLATFORM_WIN32_NT; - }) ? "cmd.exe" : "command.com"). - Instead it simply concatenates the arguments, separated by ' ', and calls - CreateProcess(). We must quote the arguments since Win32 CreateProcess() - interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a - special way: - - Space and tab are interpreted as delimiters. They are not treated as - delimiters if they are surrounded by double quotes: "...". - - Unescaped double quotes are removed from the input. Their only effect is - that within double quotes, space and tab are treated like normal - characters. - - Backslashes not followed by double quotes are not special. - - But 2*n+1 backslashes followed by a double quote become - n backslashes followed by a double quote (n >= 0): - \" -> " - \\\" -> \" - \\\\\" -> \\" - */ -#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" -char ** -prepare_spawn (char **argv) -{ - size_t argc; - char **new_argv; - size_t i; - - /* Count number of arguments. */ - for (argc = 0; argv[argc] != NULL; argc++) - ; - - /* Allocate new argument vector. */ - new_argv = XMALLOC (char *, argc + 1); - - /* Put quoted arguments into the new argument vector. */ - for (i = 0; i < argc; i++) - { - const char *string = argv[i]; - - if (string[0] == '\0') - new_argv[i] = xstrdup ("\"\""); - else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) - { - int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); - size_t length; - unsigned int backslashes; - const char *s; - char *quoted_string; - char *p; - - length = 0; - backslashes = 0; - if (quote_around) - length++; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - length += backslashes + 1; - length++; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - length += backslashes + 1; - - quoted_string = XMALLOC (char, length + 1); - - p = quoted_string; - backslashes = 0; - if (quote_around) - *p++ = '"'; - for (s = string; *s != '\0'; s++) - { - char c = *s; - if (c == '"') - { - unsigned int j; - for (j = backslashes + 1; j > 0; j--) - *p++ = '\\'; - } - *p++ = c; - if (c == '\\') - backslashes++; - else - backslashes = 0; - } - if (quote_around) - { - unsigned int j; - for (j = backslashes; j > 0; j--) - *p++ = '\\'; - *p++ = '"'; - } - *p = '\0'; - - new_argv[i] = quoted_string; - } - else - new_argv[i] = (char *) string; - } - new_argv[argc] = NULL; - - return new_argv; -} -EOF - ;; - esac - - cat <<"EOF" -void lt_dump_script (FILE* f) -{ -EOF - func_emit_wrapper yes | - $SED -n -e ' -s/^\(.\{79\}\)\(..*\)/\1\ -\2/ -h -s/\([\\"]\)/\\\1/g -s/$/\\n/ -s/\([^\n]*\).*/ fputs ("\1", f);/p -g -D' - cat <<"EOF" -} -EOF -} -# end: func_emit_cwrapperexe_src - -# func_win32_import_lib_p ARG -# True if ARG is an import lib, as indicated by $file_magic_cmd -func_win32_import_lib_p () -{ - $opt_debug - case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in - *import*) : ;; - *) false ;; - esac -} - -# func_mode_link arg... -func_mode_link () -{ - $opt_debug - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - # It is impossible to link a dll without this setting, and - # we shouldn't force the makefile maintainer to figure out - # which system we are compiling for in order to pass an extra - # flag for every libtool invocation. - # allow_undefined=no - - # FIXME: Unfortunately, there are problems with the above when trying - # to make a dll which has undefined symbols, in which case not - # even a static library is built. For now, we need to specify - # -no-undefined on the libtool link line when we can be certain - # that all symbols are satisfied, otherwise we get a static library. - allow_undefined=yes - ;; - *) - allow_undefined=yes - ;; - esac - libtool_args=$nonopt - base_compile="$nonopt $@" - compile_command=$nonopt - finalize_command=$nonopt - - compile_rpath= - finalize_rpath= - compile_shlibpath= - finalize_shlibpath= - convenience= - old_convenience= - deplibs= - old_deplibs= - compiler_flags= - linker_flags= - dllsearchpath= - lib_search_path=`pwd` - inst_prefix_dir= - new_inherited_linker_flags= - - avoid_version=no - bindir= - dlfiles= - dlprefiles= - dlself=no - export_dynamic=no - export_symbols= - export_symbols_regex= - generated= - libobjs= - ltlibs= - module=no - no_install=no - objs= - non_pic_objects= - precious_files_regex= - prefer_static_libs=no - preload=no - prev= - prevarg= - release= - rpath= - xrpath= - perm_rpath= - temp_rpath= - thread_safe=no - vinfo= - vinfo_number=no - weak_libs= - single_module="${wl}-single_module" - func_infer_tag $base_compile - - # We need to know -static, to get the right output filenames. - for arg - do - case $arg in - -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" - build_old_libs=no - break - ;; - -all-static | -static | -static-libtool-libs) - case $arg in - -all-static) - if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - func_warning "complete static linking is impossible in this configuration" - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; - -static-libtool-libs) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - esac - build_libtool_libs=no - build_old_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg="$1" - shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - output) - func_append compile_command " @OUTPUT@" - func_append finalize_command " @OUTPUT@" - ;; - esac - - case $prev in - bindir) - bindir="$arg" - prev= - continue - ;; - dlfiles|dlprefiles) - if test "$preload" = no; then - # Add the symbol object into the linking commands. - func_append compile_command " @SYMFILE@" - func_append finalize_command " @SYMFILE@" - preload=yes - fi - case $arg in - *.la | *.lo) ;; # We handle these cases below. - force) - if test "$dlself" = no; then - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - self) - if test "$prev" = dlprefiles; then - dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then - dlself=yes - else - dlself=needless - export_dynamic=yes - fi - prev= - continue - ;; - *) - if test "$prev" = dlfiles; then - func_append dlfiles " $arg" - else - func_append dlprefiles " $arg" - fi - prev= - continue - ;; - esac - ;; - expsyms) - export_symbols="$arg" - test -f "$arg" \ - || func_fatal_error "symbol file \`$arg' does not exist" - prev= - continue - ;; - expsyms_regex) - export_symbols_regex="$arg" - prev= - continue - ;; - framework) - case $host in - *-*-darwin*) - case "$deplibs " in - *" $qarg.ltframework "*) ;; - *) func_append deplibs " $qarg.ltframework" # this is fixed later - ;; - esac - ;; - esac - prev= - continue - ;; - inst_prefix) - inst_prefix_dir="$arg" - prev= - continue - ;; - objectlist) - if test -f "$arg"; then - save_arg=$arg - moreargs= - for fil in `cat "$save_arg"` - do -# func_append moreargs " $fil" - arg=$fil - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "\`$arg' is not a valid libtool object" - fi - fi - done - else - func_fatal_error "link input file \`$arg' does not exist" - fi - arg=$save_arg - prev= - continue - ;; - precious_regex) - precious_files_regex="$arg" - prev= - continue - ;; - release) - release="-$arg" - prev= - continue - ;; - rpath | xrpath) - # We need an absolute path. - case $arg in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; - *) func_append rpath " $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; - *) func_append xrpath " $arg" ;; - esac - fi - prev= - continue - ;; - shrext) - shrext_cmds="$arg" - prev= - continue - ;; - weak) - func_append weak_libs " $arg" - prev= - continue - ;; - xcclinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xcompiler) - func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xlinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $wl$qarg" - prev= - func_append compile_command " $wl$qarg" - func_append finalize_command " $wl$qarg" - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi # test -n "$prev" - - prevarg="$arg" - - case $arg in - -all-static) - if test -n "$link_static_flag"; then - # See comment for -static flag below, for more details. - func_append compile_command " $link_static_flag" - func_append finalize_command " $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - func_fatal_error "\`-allow-undefined' must not be used because it is the default" - ;; - - -avoid-version) - avoid_version=yes - continue - ;; - - -bindir) - prev=bindir - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - export_dynamic=yes - continue - ;; - - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - func_fatal_error "more than one -exported-symbols argument is not allowed" - fi - if test "X$arg" = "X-export-symbols"; then - prev=expsyms - else - prev=expsyms_regex - fi - continue - ;; - - -framework) - prev=framework - continue - ;; - - -inst-prefix-dir) - prev=inst_prefix - continue - ;; - - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* - # so, if we see these flags be careful not to treat them like -L - -L[A-Z][A-Z]*:*) - case $with_gcc/$host in - no/*-*-irix* | /*-*-irix*) - func_append compile_command " $arg" - func_append finalize_command " $arg" - ;; - esac - continue - ;; - - -L*) - func_stripname "-L" '' "$arg" - if test -z "$func_stripname_result"; then - if test "$#" -gt 0; then - func_fatal_error "require no space between \`-L' and \`$1'" - else - func_fatal_error "need path for \`-L' option" - fi - fi - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - absdir=`cd "$dir" && pwd` - test -z "$absdir" && \ - func_fatal_error "cannot determine absolute directory name of \`$dir'" - dir="$absdir" - ;; - esac - case "$deplibs " in - *" -L$dir "* | *" $arg "*) - # Will only happen for absolute or sysroot arguments - ;; - *) - # Preserve sysroot, but never include relative directories - case $dir in - [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; - *) func_append deplibs " -L$dir" ;; - esac - func_append lib_search_path " $dir" - ;; - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; - ::) dllsearchpath=$dir;; - *) func_append dllsearchpath ":$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - continue - ;; - - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-os2*) - # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework - func_append deplibs " System.ltframework" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - test "X$arg" = "X-lc" && continue - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue - ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - func_append deplibs " $arg" - continue - ;; - - -module) - module=yes - continue - ;; - - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - # Darwin uses the -arch flag to determine output architecture. - -model|-arch|-isysroot|--sysroot) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - prev=xcompiler - continue - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ - |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case "$new_inherited_linker_flags " in - *" $arg "*) ;; - * ) func_append new_inherited_linker_flags " $arg" ;; - esac - continue - ;; - - -multi_module) - single_module="${wl}-multi_module" - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) - # The PATH hackery in wrapper scripts is required on Windows - # and Darwin in order for the loader to find any dlls it needs. - func_warning "\`-no-install' is ignored for $host" - func_warning "assuming \`-no-fast-install' instead" - fast_install=no - ;; - *) no_install=yes ;; - esac - continue - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -objectlist) - prev=objectlist - continue - ;; - - -o) prev=output ;; - - -precious-files-regex) - prev=precious_regex - continue - ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -R) - prev=xrpath - continue - ;; - - -R*) - func_stripname '-R' '' "$arg" - dir=$func_stripname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - =*) - func_stripname '=' '' "$dir" - dir=$lt_sysroot$func_stripname_result - ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - continue - ;; - - -shared) - # The effects of -shared are defined in a previous loop. - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -static | -static-libtool-libs) - # The effects of -static are defined in a previous loop. - # We used to do the same as -all-static on platforms that - # didn't have a PIC flag, but the assumption that the effects - # would be equivalent was wrong. It would break on at least - # Digital Unix and AIX. - continue - ;; - - -thread-safe) - thread_safe=yes - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - - -version-number) - prev=vinfo - vinfo_number=yes - continue - ;; - - -weak) - prev=weak - continue - ;; - - -Wc,*) - func_stripname '-Wc,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" - func_append arg " $func_quote_for_eval_result" - func_append compiler_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Wl,*) - func_stripname '-Wl,' '' "$arg" - args=$func_stripname_result - arg= - save_ifs="$IFS"; IFS=',' - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" - func_append arg " $wl$func_quote_for_eval_result" - func_append compiler_flags " $wl$func_quote_for_eval_result" - func_append linker_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" - arg=$func_stripname_result - ;; - - -Xcompiler) - prev=xcompiler - continue - ;; - - -Xlinker) - prev=xlinker - continue - ;; - - -XCClinker) - prev=xcclinker - continue - ;; - - # -msg_* for osf cc - -msg_*) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - - # Flags to be passed through unchanged, with rationale: - # -64, -mips[0-9] enable 64-bit mode for the SGI compiler - # -r[0-9][0-9]* specify processor for the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler - # +DA*, +DD* enable 64-bit mode for the HP compiler - # -q* compiler args for the IBM compiler - # -m*, -t[45]*, -txscale* architecture-specific flags for GCC - # -F/path path to uninstalled frameworks, gcc on darwin - # -p, -pg, --coverage, -fprofile-* profiling flags for GCC - # @file GCC response files - # -tp=* Portland pgcc target processor selection - # --sysroot=* for sysroot support - # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-flto*|-fwhopr*|-fuse-linker-plugin) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - func_append compile_command " $arg" - func_append finalize_command " $arg" - func_append compiler_flags " $arg" - continue - ;; - - # Some other compiler flag. - -* | +*) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - - *.$objext) - # A standard object. - func_append objs " $arg" - ;; - - *.lo) - # A libtool-controlled object. - - # Check to see that this really is a libtool object. - if func_lalib_unsafe_p "$arg"; then - pic_object= - non_pic_object= - - # Read the .lo file - func_source "$arg" - - if test -z "$pic_object" || - test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" - fi - - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - func_append dlfiles " $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - func_append dlprefiles " $pic_object" - prev= - fi - - # A PIC object. - func_append libobjs " $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - func_append non_pic_objects " $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if $opt_dry_run; then - # Extract subdirectory from the argument. - func_dirname "$arg" "/" "" - xdir="$func_dirname_result" - - func_lo2o "$arg" - pic_object=$xdir$objdir/$func_lo2o_result - non_pic_object=$xdir$func_lo2o_result - func_append libobjs " $pic_object" - func_append non_pic_objects " $non_pic_object" - else - func_fatal_error "\`$arg' is not a valid libtool object" - fi - fi - ;; - - *.$libext) - # An archive. - func_append deplibs " $arg" - func_append old_deplibs " $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - - func_resolve_sysroot "$arg" - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. - func_append dlfiles " $func_resolve_sysroot_result" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. - func_append dlprefiles " $func_resolve_sysroot_result" - prev= - else - func_append deplibs " $func_resolve_sysroot_result" - fi - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - ;; - esac # arg - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - done # argument parsing loop - - test -n "$prev" && \ - func_fatal_help "the \`$prevarg' option requires an argument" - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi - - oldlibs= - # calculate the name of the file, without its directory - func_basename "$output" - outputname="$func_basename_result" - libobjs_save="$libobjs" - - if test -n "$shlibpath_var"; then - # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` - else - shlib_search_path= - fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - func_dirname "$output" "/" "" - output_objdir="$func_dirname_result$objdir" - func_to_tool_file "$output_objdir/" - tool_output_objdir=$func_to_tool_file_result - # Create the object directory. - func_mkdir_p "$output_objdir" - - # Determine the type of output - case $output in - "") - func_fatal_help "you must specify an output file" - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; - *.la) linkmode=lib ;; - *) linkmode=prog ;; # Anything else should be a program. - esac - - specialdeplibs= - - libs= - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do - if $opt_preserve_dup_deps ; then - case "$libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append libs " $deplib" - done - - if test "$linkmode" = lib; then - libs="$predeps $libs $compiler_lib_search_path $postdeps" - - # Compute libraries that are listed more than once in $predeps - # $postdeps and mark them as special (i.e., whose duplicates are - # not to be eliminated). - pre_post_deps= - if $opt_duplicate_compiler_generated_deps; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; - esac - func_append pre_post_deps " $pre_post_dep" - done - fi - pre_post_deps= - fi - - deplibs= - newdependency_libs= - newlib_search_path= - need_relink=no # whether we're linking any uninstalled libtool libraries - notinst_deplibs= # not-installed libtool libraries - notinst_path= # paths that contain not-installed libtool libraries - - case $linkmode in - lib) - passes="conv dlpreopen link" - for file in $dlfiles $dlprefiles; do - case $file in - *.la) ;; - *) - func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" - ;; - esac - done - ;; - prog) - compile_deplibs= - finalize_deplibs= - alldeplibs=no - newdlfiles= - newdlprefiles= - passes="conv scan dlopen dlpreopen link" - ;; - *) passes="conv" - ;; - esac - - for pass in $passes; do - # The preopen pass in lib mode reverses $deplibs; put it back here - # so that -L comes before libs that need it for instance... - if test "$linkmode,$pass" = "lib,link"; then - ## FIXME: Find the place where the list is rebuilt in the wrong - ## order, and fix it there properly - tmp_deplibs= - for deplib in $deplibs; do - tmp_deplibs="$deplib $tmp_deplibs" - done - deplibs="$tmp_deplibs" - fi - - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" - deplibs= - fi - if test "$linkmode" = prog; then - case $pass in - dlopen) libs="$dlfiles" ;; - dlpreopen) libs="$dlprefiles" ;; - link) - libs="$deplibs %DEPLIBS%" - test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" - ;; - esac - fi - if test "$linkmode,$pass" = "lib,dlpreopen"; then - # Collect and forward deplibs of preopened libtool libs - for lib in $dlprefiles; do - # Ignore non-libtool-libs - dependency_libs= - func_resolve_sysroot "$lib" - case $lib in - *.la) func_source "$func_resolve_sysroot_result" ;; - esac - - # Collect preopened libtool deplibs, except any this library - # has declared as weak libs - for deplib in $dependency_libs; do - func_basename "$deplib" - deplib_base=$func_basename_result - case " $weak_libs " in - *" $deplib_base "*) ;; - *) func_append deplibs " $deplib" ;; - esac - done - done - libs="$dlprefiles" - fi - if test "$pass" = dlopen; then - # Collect dlpreopened libraries - save_deplibs="$deplibs" - deplibs= - fi - - for deplib in $libs; do - lib= - found=no - case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ - |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append compiler_flags " $deplib" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - func_warning "\`-l' is ignored for archives/objects" - continue - fi - func_stripname '-l' '' "$deplib" - name=$func_stripname_result - if test "$linkmode" = lib; then - searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" - else - searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" - fi - for searchdir in $searchdirs; do - for search_ext in .la $std_shrext .so .a; do - # Search the libtool library - lib="$searchdir/lib${name}${search_ext}" - if test -f "$lib"; then - if test "$search_ext" = ".la"; then - found=yes - else - found=no - fi - break 2 - fi - done - done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # deplib is a libtool library - # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, - # We need to do some special things here, and not later. - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $deplib "*) - if func_lalib_p "$lib"; then - library_names= - old_library= - func_source "$lib" - for l in $old_library $library_names; do - ll="$l" - done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no - func_dirname "$lib" "" "." - ladir="$func_dirname_result" - lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - fi - fi - ;; - *) ;; - esac - fi - fi - ;; # -l - *.ltframework) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; - * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi - continue - ;; - -L*) - case $linkmode in - lib) - deplibs="$deplib $deplibs" - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - prog) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - if test "$pass" = scan; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - *) - func_warning "\`-L' is ignored for archives/objects" - ;; - esac # linkmode - continue - ;; # -L - -R*) - if test "$pass" = link; then - func_stripname '-R' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - dir=$func_resolve_sysroot_result - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; - *) func_append xrpath " $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; - *.la) - func_resolve_sysroot "$deplib" - lib=$func_resolve_sysroot_result - ;; - *.$libext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - continue - fi - case $linkmode in - lib) - # Linking convenience modules into shared libraries is allowed, - # but linking other static libraries is non-portable. - case " $dlpreconveniencelibs " in - *" $deplib "*) ;; - *) - valid_a_lib=no - case $deplibs_check_method in - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=yes - fi - ;; - pass_all) - valid_a_lib=yes - ;; - esac - if test "$valid_a_lib" != yes; then - echo - $ECHO "*** Warning: Trying to link with static lib archive $deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because the file extensions .$libext of this argument makes me believe" - echo "*** that it is just a static archive that I should not use here." - else - echo - $ECHO "*** Warning: Linking the shared library $output against the" - $ECHO "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - fi - ;; - esac - continue - ;; - prog) - if test "$pass" != link; then - deplibs="$deplib $deplibs" - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi - continue - ;; - esac # linkmode - ;; # *.$libext - *.lo | *.$objext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - func_append newdlprefiles " $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - func_append newdlfiles " $deplib" - fi - fi - continue - ;; - %DEPLIBS%) - alldeplibs=yes - continue - ;; - esac # case $deplib - - if test "$found" = yes || test -f "$lib"; then : - else - func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" - fi - - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$lib" \ - || func_fatal_error "\`$lib' is not a valid libtool archive" - - func_dirname "$lib" "" "." - ladir="$func_dirname_result" - - dlname= - dlopen= - dlpreopen= - libdir= - library_names= - old_library= - inherited_linker_flags= - # If the library was installed with an old release of libtool, - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no - avoidtemprpath= - - - # Read the .la file - func_source "$lib" - - # Convert "-framework foo" to "foo.ltframework" - if test -n "$inherited_linker_flags"; then - tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` - for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do - case " $new_inherited_linker_flags " in - *" $tmp_inherited_linker_flag "*) ;; - *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; - esac - done - fi - dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && func_append dlfiles " $dlopen" - test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" - fi - - if test "$pass" = conv; then - # Only check for convenience libraries - deplibs="$lib $deplibs" - if test -z "$libdir"; then - if test -z "$old_library"; then - func_fatal_error "cannot find name of link library for \`$lib'" - fi - # It is a libtool convenience library, so add in its objects. - func_append convenience " $ladir/$objdir/$old_library" - func_append old_convenience " $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done - elif test "$linkmode" != prog && test "$linkmode" != lib; then - func_fatal_error "\`$lib' is not a convenience library" - fi - continue - fi # $pass = conv - - - # Get the name of the library we link against. - linklib= - if test -n "$old_library" && - { test "$prefer_static_libs" = yes || - test "$prefer_static_libs,$installed" = "built,no"; }; then - linklib=$old_library - else - for l in $old_library $library_names; do - linklib="$l" - done - fi - if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for \`$lib'" - fi - - # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - func_fatal_error "cannot -dlopen a convenience library: \`$lib'" - fi - if test -z "$dlname" || - test "$dlopen_support" != yes || - test "$build_libtool_libs" = no; then - # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. - func_append dlprefiles " $lib $dependency_libs" - else - func_append newdlfiles " $lib" - fi - continue - fi # $pass = dlopen - - # We need an absolute path. - case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; - *) - abs_ladir=`cd "$ladir" && pwd` - if test -z "$abs_ladir"; then - func_warning "cannot determine absolute directory name of \`$ladir'" - func_warning "passing it literally to the linker, although it might fail" - abs_ladir="$ladir" - fi - ;; - esac - func_basename "$lib" - laname="$func_basename_result" - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then - if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library \`$lib' was moved." - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else - dir="$lt_sysroot$libdir" - absdir="$lt_sysroot$libdir" - fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else - if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir="$ladir" - absdir="$abs_ladir" - # Remove this search path later - func_append notinst_path " $abs_ladir" - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - func_append notinst_path " $abs_ladir" - fi - fi # $installed = yes - func_stripname 'lib' '.la' "$laname" - name=$func_stripname_result - - # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then - if test -z "$libdir" && test "$linkmode" = prog; then - func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" - fi - case "$host" in - # special handling for platforms with PE-DLLs. - *cygwin* | *mingw* | *cegcc* ) - # Linker will automatically link against shared library if both - # static and shared are present. Therefore, ensure we extract - # symbols from the import library if a shared library is present - # (otherwise, the dlopen module name will be incorrect). We do - # this by putting the import library name into $newdlprefiles. - # We recover the dlopen module name by 'saving' the la file - # name in a special purpose variable, and (later) extracting the - # dlname from the la file. - if test -n "$dlname"; then - func_tr_sh "$dir/$linklib" - eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" - func_append newdlprefiles " $dir/$linklib" - else - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - fi - ;; - * ) - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - func_append newdlprefiles " $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - func_append dlpreconveniencelibs " $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - func_append newdlprefiles " $dir/$dlname" - else - func_append newdlprefiles " $dir/$linklib" - fi - ;; - esac - fi # $pass = dlpreopen - - if test -z "$libdir"; then - # Link the convenience library - if test "$linkmode" = lib; then - deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$dir/$old_library $compile_deplibs" - finalize_deplibs="$dir/$old_library $finalize_deplibs" - else - deplibs="$lib $deplibs" # used for prog,scan pass - fi - continue - fi - - - if test "$linkmode" = prog && test "$pass" != link; then - func_append newlib_search_path " $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes - fi - - tmp_libs= - for deplib in $dependency_libs; do - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result" - func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - esac - # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then - deplibs="$deplib $deplibs" - else - # Need to hardcode shared library paths - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done # for deplib - continue - fi # $linkmode = prog... - - if test "$linkmode,$pass" = "prog,link"; then - if test -n "$library_names" && - { { test "$prefer_static_libs" = no || - test "$prefer_static_libs,$installed" = "built,yes"; } || - test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath:" in - *"$absdir:"*) ;; - *) func_append temp_rpath "$absdir:" ;; - esac - fi - - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi # $linkmode,$pass = prog,link... - - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - fi - - link_static=no # Whether the deplib will be linked statically - use_static_libs=$prefer_static_libs - if test "$use_static_libs" = built && test "$installed" = yes; then - use_static_libs=no - fi - if test -n "$library_names" && - { test "$use_static_libs" = no || test -z "$old_library"; }; then - case $host in - *cygwin* | *mingw* | *cegcc*) - # No point in relinking DLLs because paths are not encoded - func_append notinst_deplibs " $lib" - need_relink=no - ;; - *) - if test "$installed" = no; then - func_append notinst_deplibs " $lib" - need_relink=yes - fi - ;; - esac - # This is a shared library - - # Warn about portability, can't link against -module's on some - # systems (darwin). Don't bleat about dlopened modules though! - dlopenmodule="" - for dlpremoduletest in $dlprefiles; do - if test "X$dlpremoduletest" = "X$lib"; then - dlopenmodule="$dlpremoduletest" - break - fi - done - if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then - echo - if test "$linkmode" = prog; then - $ECHO "*** Warning: Linking the executable $output against the loadable module" - else - $ECHO "*** Warning: Linking the shared library $output against the loadable module" - fi - $ECHO "*** $linklib is not portable!" - fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then - # Hardcode the library path. - # Skip directories that are in the system default run-time - # search path. - case " $sys_lib_dlsearch_path " in - *" $absdir "*) ;; - *) - case "$compile_rpath " in - *" $absdir "*) ;; - *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac - case " $sys_lib_dlsearch_path " in - *" $libdir "*) ;; - *) - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac - fi - - if test -n "$old_archive_from_expsyms_cmds"; then - # figure out the soname - set dummy $library_names - shift - realname="$1" - shift - libname=`eval "\\$ECHO \"$libname_spec\""` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname="$dlname" - elif test -n "$soname_spec"; then - # bleh windows - case $host in - *cygwin* | mingw* | *cegcc*) - func_arith $current - $age - major=$func_arith_result - versuffix="-$major" - ;; - esac - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - - # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" - func_basename "$soroot" - soname="$func_basename_result" - func_stripname 'lib' '.dll' "$soname" - newlib=libimp-$func_stripname_result.a - - # If the library has no export list, then create one now - if test -f "$output_objdir/$soname-def"; then : - else - func_verbose "extracting exported symbol list from \`$soname'" - func_execute_cmds "$extract_expsyms_cmds" 'exit $?' - fi - - # Create $newlib - if test -f "$output_objdir/$newlib"; then :; else - func_verbose "generating import library for \`$soname'" - func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' - fi - # make sure the library variables are pointing to the new library - dir=$output_objdir - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - - if test "$linkmode" = prog || test "$opt_mode" != relink; then - add_shlibpath= - add_dir= - add= - lib_linked=yes - case $hardcode_action in - immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" - case $host in - *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; - *-*-sysv4*uw2*) add_dir="-L$dir" ;; - *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir="-L$dir" ;; - *-*-darwin* ) - # if the lib is a (non-dlopened) module then we can not - # link against it, someone is ignoring the earlier warnings - if /usr/bin/file -L $add 2> /dev/null | - $GREP ": [^:]* bundle" >/dev/null ; then - if test "X$dlopenmodule" != "X$lib"; then - $ECHO "*** Warning: lib $linklib is a module, not a shared library" - if test -z "$old_library" ; then - echo - echo "*** And there doesn't seem to be a static archive available" - echo "*** The link will probably fail, sorry" - else - add="$dir/$old_library" - fi - elif test -n "$old_library"; then - add="$dir/$old_library" - fi - fi - esac - elif test "$hardcode_minus_L" = no; then - case $host in - *-*-sunos*) add_shlibpath="$dir" ;; - esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - relink) - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$absdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" - else - lib_linked=no - fi - ;; - *) lib_linked=no ;; - esac - - if test "$lib_linked" != yes; then - func_fatal_configuration "unsupported hardcode properties" - fi - - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; - *) func_append compile_shlibpath "$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; then - test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" - test -n "$add" && compile_deplibs="$add $compile_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - if test "$hardcode_direct" != yes && - test "$hardcode_minus_L" != yes && - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - fi - fi - fi - - if test "$linkmode" = prog || test "$opt_mode" = relink; then - add_shlibpath= - add_dir= - add= - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; - *) func_append finalize_shlibpath "$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then - if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib" ; then - add="$inst_prefix_dir$libdir/$linklib" - else - add="$libdir/$linklib" - fi - else - # We cannot seem to hardcode it, guess we'll fake it. - add_dir="-L$libdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) - func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi - add="-l$name" - fi - - if test "$linkmode" = prog; then - test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" - test -n "$add" && finalize_deplibs="$add $finalize_deplibs" - else - test -n "$add_dir" && deplibs="$add_dir $deplibs" - test -n "$add" && deplibs="$add $deplibs" - fi - fi - elif test "$linkmode" = prog; then - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" - compile_deplibs="$dir/$linklib $compile_deplibs" - finalize_deplibs="$dir/$linklib $finalize_deplibs" - else - compile_deplibs="-l$name -L$dir $compile_deplibs" - finalize_deplibs="-l$name -L$dir $finalize_deplibs" - fi - elif test "$build_libtool_libs" = yes; then - # Not a shared library - if test "$deplibs_check_method" != pass_all; then - # We're trying link a shared library against a static one - # but the system doesn't support it. - - # Just print a warning and add the library to dependency_libs so - # that the program can be linked against the static library. - echo - $ECHO "*** Warning: This system can not link to static lib archive $lib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." - if test "$module" = yes; then - echo "*** But as you try to build a module library, libtool will still create " - echo "*** a static module, that should work as long as the dlopening application" - echo "*** is linked with the -dlopen flag to resolve symbols at runtime." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - else - deplibs="$dir/$old_library $deplibs" - link_static=yes - fi - fi # link shared/static library? - - if test "$linkmode" = lib; then - if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || - test "$build_old_libs" = yes || - test "$link_static" = yes; }; then - # Extract -R from dependency_libs - temp_deplibs= - for libdir in $dependency_libs; do - case $libdir in - -R*) func_stripname '-R' '' "$libdir" - temp_xrpath=$func_stripname_result - case " $xrpath " in - *" $temp_xrpath "*) ;; - *) func_append xrpath " $temp_xrpath";; - esac;; - *) func_append temp_deplibs " $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - - func_append newlib_search_path " $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" - case $deplib in - -L*) func_stripname '-L' '' "$deplib" - func_resolve_sysroot "$func_stripname_result";; - *) func_resolve_sysroot "$deplib" ;; - esac - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $func_resolve_sysroot_result "*) - func_append specialdeplibs " $func_resolve_sysroot_result" ;; - esac - fi - func_append tmp_libs " $func_resolve_sysroot_result" - done - - if test "$link_all_deplibs" != no; then - # Add the search paths of all dependency libraries - for deplib in $dependency_libs; do - path= - case $deplib in - -L*) path="$deplib" ;; - *.la) - func_resolve_sysroot "$deplib" - deplib=$func_resolve_sysroot_result - func_dirname "$deplib" "" "." - dir=$func_dirname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - func_warning "cannot determine absolute directory name of \`$dir'" - absdir="$dir" - fi - ;; - esac - if $GREP "^installed=no" $deplib > /dev/null; then - case $host in - *-*-darwin*) - depdepl= - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do - depdepl=$tmp - done - if test -f "$absdir/$objdir/$depdepl" ; then - depdepl="$absdir/$objdir/$depdepl" - darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - if test -z "$darwin_install_name"; then - darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - fi - func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" - func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" - path= - fi - fi - ;; - *) - path="-L$absdir/$objdir" - ;; - esac - else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - test "$absdir" != "$libdir" && \ - func_warning "\`$deplib' seems to be moved" - - path="-L$absdir" - fi - ;; - esac - case " $deplibs " in - *" $path "*) ;; - *) deplibs="$path $deplibs" ;; - esac - done - fi # link_all_deplibs != no - fi # linkmode = lib - done # for deplib in $libs - if test "$pass" = link; then - if test "$linkmode" = "prog"; then - compile_deplibs="$new_inherited_linker_flags $compile_deplibs" - finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" - else - compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - fi - fi - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then - # Link the dlpreopened libraries before other libraries - for deplib in $save_deplibs; do - deplibs="$deplib $deplibs" - done - fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then - # Make sure lib_search_path contains only unique directories. - lib_search_path= - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; - *) func_append lib_search_path " $dir" ;; - esac - done - newlib_search_path= - fi - - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else - vars="compile_deplibs finalize_deplibs" - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order - eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so - # that some nasty dependency loop isn't accidentally - # broken: - #new_libs="$deplib $new_libs" - # Pragmatically, this seems to cause very few problems in - # practice: - case $deplib in - -L*) new_libs="$deplib $new_libs" ;; - -R*) ;; - *) - # And here is the reason: when a library appears more - # than once as an explicit dependence of a library, or - # is implicitly linked in more than once by the - # compiler, it is considered special, and multiple - # occurrences thereof are not removed. Compare this - # with having the same library being listed as a - # dependency of multiple other libraries: in this case, - # we know (pedantically, we assume) the library does not - # need to be listed more than once, so we keep only the - # last copy. This is not always right, but it is rare - # enough that we require users that really mean to play - # such unportable linking tricks to link the library - # using -Wl,-lname, so that libtool does not consider it - # for duplicate removal. - case " $specialdeplibs " in - *" $deplib "*) new_libs="$deplib $new_libs" ;; - *) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$deplib $new_libs" ;; - esac - ;; - esac - ;; - esac - done - tmp_libs= - for deplib in $new_libs; do - case $deplib in - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; - *) func_append tmp_libs " $deplib" ;; - esac - ;; - *) func_append tmp_libs " $deplib" ;; - esac - done - eval $var=\"$tmp_libs\" - done # for var - fi - # Last step: remove runtime libs from dependency_libs - # (they stay in deplibs) - tmp_libs= - for i in $dependency_libs ; do - case " $predeps $postdeps $compiler_lib_search_path " in - *" $i "*) - i="" - ;; - esac - if test -n "$i" ; then - func_append tmp_libs " $i" - fi - done - dependency_libs=$tmp_libs - done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" - fi - if test "$linkmode" = prog || test "$linkmode" = lib; then - dlprefiles="$newdlprefiles" - fi - - case $linkmode in - oldlib) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for archives" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for archives" ;; - esac - - test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for archives" - - test -n "$xrpath" && \ - func_warning "\`-R' is ignored for archives" - - test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for archives" - - test -n "$release" && \ - func_warning "\`-release' is ignored for archives" - - test -n "$export_symbols$export_symbols_regex" && \ - func_warning "\`-export-symbols' is ignored for archives" - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" - func_append objs "$old_deplibs" - ;; - - lib) - # Make sure we only generate libraries of the form `libNAME.la'. - case $outputname in - lib*) - func_stripname 'lib' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - ;; - *) - test "$module" = no && \ - func_fatal_help "libtool library \`$output' must begin with \`lib'" - - if test "$need_lib_prefix" != no; then - # Add the "lib" prefix for modules if required - func_stripname '' '.la' "$outputname" - name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - else - func_stripname '' '.la' "$outputname" - libname=$func_stripname_result - fi - ;; - esac - - if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" - else - echo - $ECHO "*** Warning: Linking the shared library $output against the non-libtool" - $ECHO "*** objects $objs is not portable!" - func_append libobjs " $objs" - fi - fi - - test "$dlself" != no && \ - func_warning "\`-dlopen self' is ignored for libtool libraries" - - set dummy $rpath - shift - test "$#" -gt 1 && \ - func_warning "ignoring multiple \`-rpath's for a libtool library" - - install_libdir="$1" - - oldlibs= - if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; then - # Building a libtool convenience library. - # Some compilers have problems with a `.al' extension so - # convenience libraries should have the same extension an - # archive normally would. - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - build_old_libs=yes - fi - - test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for convenience libraries" - - test -n "$release" && \ - func_warning "\`-release' is ignored for convenience libraries" - else - - # Parse the version information argument. - save_ifs="$IFS"; IFS=':' - set dummy $vinfo 0 0 0 - shift - IFS="$save_ifs" - - test -n "$7" && \ - func_fatal_help "too many parameters to \`-version-info'" - - # convert absolute version numbers to libtool ages - # this retains compatibility with .la files and attempts - # to make the code below a bit more comprehensible - - case $vinfo_number in - yes) - number_major="$1" - number_minor="$2" - number_revision="$3" - # - # There are really only two kinds -- those that - # use the current revision as the major version - # and those that subtract age and use age as - # a minor version. But, then there is irix - # which has an extra 1 added just for fun - # - case $version_type in - # correct linux to gnu/linux during the next big refactor - darwin|linux|osf|windows|none) - func_arith $number_major + $number_minor - current=$func_arith_result - age="$number_minor" - revision="$number_revision" - ;; - freebsd-aout|freebsd-elf|qnx|sunos) - current="$number_major" - revision="$number_minor" - age="0" - ;; - irix|nonstopux) - func_arith $number_major + $number_minor - current=$func_arith_result - age="$number_minor" - revision="$number_minor" - lt_irix_increment=no - ;; - *) - func_fatal_configuration "$modename: unknown library version type \`$version_type'" - ;; - esac - ;; - no) - current="$1" - revision="$2" - age="$3" - ;; - esac - - # Check that each of the things are valid numbers. - case $current in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "CURRENT \`$current' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - case $revision in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "REVISION \`$revision' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - case $age in - 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - func_error "AGE \`$age' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" - ;; - esac - - if test "$age" -gt "$current"; then - func_error "AGE \`$age' is greater than the current interface number \`$current'" - func_fatal_error "\`$vinfo' is not valid version information" - fi - - # Calculate the version variables. - major= - versuffix= - verstring= - case $version_type in - none) ;; - - darwin) - # Like Linux, but with the current version available in - # verstring for coding it into the library header - func_arith $current - $age - major=.$func_arith_result - versuffix="$major.$age.$revision" - # Darwin ld doesn't like 0 for these options... - func_arith $current + 1 - minor_current=$func_arith_result - xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" - ;; - - freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; - ;; - - freebsd-elf) - major=".$current" - versuffix=".$current" - ;; - - irix | nonstopux) - if test "X$lt_irix_increment" = "Xno"; then - func_arith $current - $age - else - func_arith $current - $age + 1 - fi - major=$func_arith_result - - case $version_type in - nonstopux) verstring_prefix=nonstopux ;; - *) verstring_prefix=sgi ;; - esac - verstring="$verstring_prefix$major.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$revision - while test "$loop" -ne 0; do - func_arith $revision - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring="$verstring_prefix$major.$iface:$verstring" - done - - # Before this point, $major must not contain `.'. - major=.$major - versuffix="$major.$revision" - ;; - - linux) # correct to gnu/linux during the next big refactor - func_arith $current - $age - major=.$func_arith_result - versuffix="$major.$age.$revision" - ;; - - osf) - func_arith $current - $age - major=.$func_arith_result - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test "$loop" -ne 0; do - func_arith $current - $loop - iface=$func_arith_result - func_arith $loop - 1 - loop=$func_arith_result - verstring="$verstring:${iface}.0" - done - - # Make executables depend on our current version. - func_append verstring ":${current}.0" - ;; - - qnx) - major=".$current" - versuffix=".$current" - ;; - - sunos) - major=".$current" - versuffix=".$current.$revision" - ;; - - windows) - # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. - func_arith $current - $age - major=$func_arith_result - versuffix="-$major" - ;; - - *) - func_fatal_configuration "unknown library version type \`$version_type'" - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - case $version_type in - darwin) - # we can't check for "0.0" in archive_cmds due to quoting - # problems, so we reset it completely - verstring= - ;; - *) - verstring="0.0" - ;; - esac - if test "$need_version" = no; then - versuffix= - else - versuffix=".0.0" - fi - fi - - # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then - major= - versuffix= - verstring="" - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - func_warning "undefined symbols not allowed in $host shared libraries" - build_libtool_libs=no - build_old_libs=yes - fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi - - fi - - func_generate_dlsyms "$libname" "$libname" "yes" - func_append libobjs " $symfileobj" - test "X$libobjs" = "X " && libobjs= - - if test "$opt_mode" != relink; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= - tempremovelist=`$ECHO "$output_objdir/*"` - for p in $tempremovelist; do - case $p in - *.$objext | *.gcno) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - if test "X$precious_files_regex" != "X"; then - if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 - then - continue - fi - fi - func_append removelist " $p" - ;; - *) ;; - esac - done - test -n "$removelist" && \ - func_show_eval "${RM}r \$removelist" - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - func_append oldlibs " $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` - fi - - # Eliminate all temporary directories. - #for path in $notinst_path; do - # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` - # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` - # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` - #done - - if test -n "$xrpath"; then - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do - func_replace_sysroot "$libdir" - func_append temp_xrpath " -R$func_replace_sysroot_result" - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi - - # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles="$dlfiles" - dlfiles= - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; - *) func_append dlfiles " $lib" ;; - esac - done - - # Make sure dlprefiles contains only unique files - old_dlprefiles="$dlprefiles" - dlprefiles= - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; - *) func_append dlprefiles " $lib" ;; - esac - done - - if test "$build_libtool_libs" = yes; then - if test -n "$rpath"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) - # these systems don't actually have a c library (as such)! - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework - func_append deplibs " System.ltframework" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - ;; - *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then - func_append deplibs " -lc" - fi - ;; - esac - fi - - # Transform deplibs into only deplibs that can be linked in shared. - name_save=$name - libname_save=$libname - release_save=$release - versuffix_save=$versuffix - major_save=$major - # I'm not sure if I'm treating the release correctly. I think - # release should show up in the -l (ie -lgmp5) so we don't want to - # add it in twice. Is that correct? - release="" - versuffix="" - major="" - newdeplibs= - droppeddeps=no - case $deplibs_check_method in - pass_all) - # Don't check for shared/static. Everything works. - # This might be a little naive. We might want to check - # whether the library exists or not. But this is on - # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behavior. - newdeplibs=$deplibs - ;; - test_compile) - # This code stresses the "libraries are programs" paradigm to its - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. - $opt_dry_run || $RM conftest.c - cat > conftest.c </dev/null` - $nocaseglob - else - potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` - fi - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null | - $GREP " -> " >/dev/null; then - continue - fi - # The statement above tries to avoid entering an - # endless loop below, in case of cyclic links. - # We might still enter an endless loop, since a link - # loop can be closed while we follow links, - # but so what? - potlib="$potent_lib" - while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` - case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; - esac - done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | - $SED -e 10q | - $EGREP "$file_magic_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $ECHO "*** with $libname but no candidates were found. (...for file magic test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a file magic. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - match_pattern*) - set dummy $deplibs_check_method; shift - match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - for a_deplib in $deplibs; do - case $a_deplib in - -l*) - func_stripname -l '' "$a_deplib" - name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) - func_append newdeplibs " $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then - libname=`eval "\\$ECHO \"$libname_spec\""` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test - if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ - $EGREP "$match_pattern_regex" > /dev/null; then - func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi - done - done - fi - if test -n "$a_deplib" ; then - droppeddeps=yes - echo - $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have" - echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then - $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" - else - $ECHO "*** with $libname and none of the candidates passed a file format test" - $ECHO "*** using a regex pattern. Last file checked: $potlib" - fi - fi - ;; - *) - # Add a -L argument. - func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. - ;; - none | unknown | *) - newdeplibs="" - tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do - # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` - done - fi - case $tmp_deplibs in - *[!\ \ ]*) - echo - if test "X$deplibs_check_method" = "Xnone"; then - echo "*** Warning: inter-library dependencies are not supported in this platform." - else - echo "*** Warning: inter-library dependencies are not known to be supported." - fi - echo "*** All declared inter-library dependencies are being dropped." - droppeddeps=yes - ;; - esac - ;; - esac - versuffix=$versuffix_save - major=$major_save - release=$release_save - libname=$libname_save - name=$name_save - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library with the System framework - newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - if test "$droppeddeps" = yes; then - if test "$module" = yes; then - echo - echo "*** Warning: libtool could not satisfy all declared inter-library" - $ECHO "*** dependencies of module $libname. Therefore, libtool will create" - echo "*** a static module, that should work as long as the dlopening" - echo "*** application is linked with the -dlopen flag." - if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." - fi - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - else - echo "*** The inter-library dependencies that have been dropped here will be" - echo "*** automatically added whenever a program is linked with this library" - echo "*** or is declared to -dlopen it." - - if test "$allow_undefined" = no; then - echo - echo "*** Since this library must not contain undefined symbols," - echo "*** because either the platform does not support them or" - echo "*** it was explicitly requested with -no-undefined," - echo "*** libtool will only create a static version of it." - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" - build_libtool_libs=module - build_old_libs=yes - else - build_libtool_libs=no - fi - fi - fi - fi - # Done checking deplibs! - deplibs=$newdeplibs - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - case $host in - *-*-darwin*) - newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - deplibs="$new_libs" - - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= - dlname= - - # Test again, we may have decided not to build it any more - if test "$build_libtool_libs" = yes; then - # Remove ${wl} instances when linking with ld. - # FIXME: should test the right _cmds variable. - case $archive_cmds in - *\$LD\ *) wl= ;; - esac - if test "$hardcode_into_libs" = yes; then - # Hardcode the library paths - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" - test "$opt_mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - func_replace_sysroot "$libdir" - libdir=$func_replace_sysroot_result - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append dep_rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath="$finalize_shlibpath" - test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" - if test -n "$shlibpath"; then - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. - eval shared_ext=\"$shrext_cmds\" - eval library_names=\"$library_names_spec\" - set dummy $library_names - shift - realname="$1" - shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - if test -z "$dlname"; then - dlname=$soname - fi - - lib="$output_objdir/$realname" - linknames= - for link - do - func_append linknames " $link" - done - - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` - test "X$libobjs" = "X " && libobjs= - - delfiles= - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols="$output_objdir/$libname.uexp" - func_append delfiles " $export_symbols" - fi - - orig_export_symbols= - case $host_os in - cygwin* | mingw* | cegcc*) - if test -n "$export_symbols" && test -z "$export_symbols_regex"; then - # exporting using user supplied symfile - if test "x`$SED 1q $export_symbols`" != xEXPORTS; then - # and it's NOT already a .def file. Must figure out - # which of the given symbols are data symbols and tag - # them as such. So, trigger use of export_symbols_cmds. - # export_symbols gets reassigned inside the "prepare - # the list of exported symbols" if statement, so the - # include_expsyms logic still works. - orig_export_symbols="$export_symbols" - export_symbols= - always_export_symbols=yes - fi - fi - ;; - esac - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $opt_dry_run || $RM $export_symbols - cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' - for cmd1 in $cmds; do - IFS="$save_ifs" - # Take the normal branch if the nm_file_list_spec branch - # doesn't work or if tool conversion is not needed. - case $nm_file_list_spec~$to_tool_file_cmd in - *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) - try_normal_branch=yes - eval cmd=\"$cmd1\" - func_len " $cmd" - len=$func_len_result - ;; - *) - try_normal_branch=no - ;; - esac - if test "$try_normal_branch" = yes \ - && { test "$len" -lt "$max_cmd_len" \ - || test "$max_cmd_len" -le -1; } - then - func_show_eval "$cmd" 'exit $?' - skipped_export=false - elif test -n "$nm_file_list_spec"; then - func_basename "$output" - output_la=$func_basename_result - save_libobjs=$libobjs - save_output=$output - output=${output_objdir}/${output_la}.nm - func_to_tool_file "$output" - libobjs=$nm_file_list_spec$func_to_tool_file_result - func_append delfiles " $output" - func_verbose "creating $NM input file list: $output" - for obj in $save_libobjs; do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > "$output" - eval cmd=\"$cmd1\" - func_show_eval "$cmd" 'exit $?' - output=$save_output - libobjs=$save_libobjs - skipped_export=false - else - # The command line is too long to execute in one step. - func_verbose "using reloadable object file for export list..." - skipped_export=: - # Break out early, otherwise skipped_export may be - # set to false by a later but shorter cmd. - break - fi - done - IFS="$save_ifs" - if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - fi - - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - - tmp_deplibs= - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; - *) - func_append tmp_deplibs " $test_deplib" - ;; - esac - done - deplibs="$tmp_deplibs" - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec" && - test "$compiler_needs_object" = yes && - test -z "$libobjs"; then - # extract the archives, so we have objects to list. - # TODO: could optimize this to just extract one archive. - whole_archive_flag_spec= - fi - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - else - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - func_append linker_flags " $flag" - fi - - # Make a backup of the uninstalled library when relinking - if test "$opt_mode" = relink; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval test_cmds=\"$module_expsym_cmds\" - cmds=$module_expsym_cmds - else - eval test_cmds=\"$module_cmds\" - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds - else - eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds - fi - fi - - if test "X$skipped_export" != "X:" && - func_len " $test_cmds" && - len=$func_len_result && - test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else - # The command line is too long to link in one step, link piecewise - # or, if using GNU ld and skipped_export is not :, use a linker - # script. - - # Save the value of $output and $libobjs because we want to - # use them later. If we have whole_archive_flag_spec, we - # want to use save_libobjs as it was before - # whole_archive_flag_spec was expanded, because we can't - # assume the linker understands whole_archive_flag_spec. - # This may have to be revisited, in case too many - # convenience libraries get linked in and end up exceeding - # the spec. - if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then - save_libobjs=$libobjs - fi - save_output=$output - func_basename "$output" - output_la=$func_basename_result - - # Clear the reloadable object creation command queue and - # initialize k to one. - test_cmds= - concat_cmds= - objlist= - last_robj= - k=1 - - if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then - output=${output_objdir}/${output_la}.lnkscript - func_verbose "creating GNU ld script: $output" - echo 'INPUT (' > $output - for obj in $save_libobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - echo ')' >> $output - func_append delfiles " $output" - func_to_tool_file "$output" - output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then - output=${output_objdir}/${output_la}.lnk - func_verbose "creating linker input file list: $output" - : > $output - set x $save_libobjs - shift - firstobj= - if test "$compiler_needs_object" = yes; then - firstobj="$1 " - shift - fi - for obj - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" >> $output - done - func_append delfiles " $output" - func_to_tool_file "$output" - output=$firstobj\"$file_list_spec$func_to_tool_file_result\" - else - if test -n "$save_libobjs"; then - func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-${k}.$objext - eval test_cmds=\"$reload_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - if test "X$objlist" = X || - test "$len" -lt "$max_cmd_len"; then - func_append objlist " $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - reload_objs=$objlist - eval concat_cmds=\"$reload_cmds\" - else - # All subsequent reloadable object files will link in - # the last one created. - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" - fi - last_robj=$output_objdir/$output_la-${k}.$objext - func_arith $k + 1 - k=$func_arith_result - output=$output_objdir/$output_la-${k}.$objext - objlist=" $obj" - func_len " $last_robj" - func_arith $len0 + $func_len_result - len=$func_arith_result - fi - done - # Handle the remaining objects by creating one last - # reloadable object file. All subsequent reloadable object - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - reload_objs="$objlist $last_robj" - eval concat_cmds=\"\${concat_cmds}$reload_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" - fi - func_append delfiles " $output" - - else - output= - fi - - if ${skipped_export-false}; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $opt_dry_run || $RM $export_symbols - libobjs=$output - # Append the command to create the export file. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" - if test -n "$last_robj"; then - eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - fi - - test -n "$save_libobjs" && - func_verbose "creating a temporary reloadable object file: $output" - - # Loop through the commands generated above and execute them. - save_ifs="$IFS"; IFS='~' - for cmd in $concat_cmds; do - IFS="$save_ifs" - $opt_silent || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - - if test -n "$export_symbols_regex" && ${skipped_export-false}; then - func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - func_show_eval '$MV "${export_symbols}T" "$export_symbols"' - fi - fi - - if ${skipped_export-false}; then - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test -n "$orig_export_symbols"; then - # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" - # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine - # though. Also, the filter scales superlinearly with the number of - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi - fi - - libobjs=$output - # Restore the value of output. - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - fi - # Expand the library linking commands again to reset the - # value of $libobjs for piecewise linking. - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - cmds=$module_expsym_cmds - else - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - cmds=$archive_expsym_cmds - else - cmds=$archive_cmds - fi - fi - fi - - if test -n "$delfiles"; then - # Append the command to remove temporary files to $cmds. - eval cmds=\"\$cmds~\$RM $delfiles\" - fi - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $opt_silent || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" - } - $opt_dry_run || eval "$cmd" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) - fi - - exit $lt_exit - } - done - IFS="$save_ifs" - - # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then - func_show_eval '${RM}r "$gentop"' - fi - fi - - exit $EXIT_SUCCESS - fi - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' - fi - done - - # If -module or -export-dynamic was specified, set the dlname. - if test "$module" = yes || test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi - ;; - - obj) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for objects" - fi - - case " $deplibs" in - *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for objects" ;; - esac - - test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for objects" - - test -n "$xrpath" && \ - func_warning "\`-R' is ignored for objects" - - test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for objects" - - test -n "$release" && \ - func_warning "\`-release' is ignored for objects" - - case $output in - *.lo) - test -n "$objs$old_deplibs" && \ - func_fatal_error "cannot build library object \`$output' from non-libtool objects" - - libobj=$output - func_lo2o "$libobj" - obj=$func_lo2o_result - ;; - *) - libobj= - obj="$output" - ;; - esac - - # Delete the old objects. - $opt_dry_run || $RM $obj $libobj - - # Objects from convenience libraries. This assumes - # single-version convenience libraries. Whenever we create - # different ones for PIC/non-PIC, this we'll have to duplicate - # the extraction. - reload_conv_objs= - gentop= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec and hope we can get by with - # turning comma into space.. - wl= - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` - else - gentop="$output_objdir/${obj}x" - func_append generated " $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - - # If we're not building shared, we need to use non_pic_objs - test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" - - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - output="$obj" - func_execute_cmds "$reload_cmds" 'exit $?' - - # Exit if we aren't doing a library object file. - if test -z "$libobj"; then - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - fi - - if test "$build_libtool_libs" != yes; then - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" - # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - fi - - if test -n "$pic_flag" || test "$pic_mode" != default; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs $reload_conv_objs" - output="$libobj" - func_execute_cmds "$reload_cmds" 'exit $?' - fi - - if test -n "$gentop"; then - func_show_eval '${RM}r "$gentop"' - fi - - exit $EXIT_SUCCESS - ;; - - prog) - case $host in - *cygwin*) func_stripname '' '.exe' "$output" - output=$func_stripname_result.exe;; - esac - test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for programs" - - test -n "$release" && \ - func_warning "\`-release' is ignored for programs" - - test "$preload" = yes \ - && test "$dlopen_support" = unknown \ - && test "$dlopen_self" = unknown \ - && test "$dlopen_self_static" = unknown && \ - func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." - - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` - ;; - esac - - case $host in - *-*-darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - # But is supposedly fixed on 10.4 or later (yay!). - if test "$tagname" = CXX ; then - case ${MACOSX_DEPLOYMENT_TARGET-10.0} in - 10.[0123]) - func_append compile_command " ${wl}-bind_at_load" - func_append finalize_command " ${wl}-bind_at_load" - ;; - esac - fi - # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - ;; - esac - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) - func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $compile_deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) func_append new_libs " $deplib" ;; - esac - ;; - *) func_append new_libs " $deplib" ;; - esac - done - compile_deplibs="$new_libs" - - - func_append compile_command " $compile_deplibs" - func_append finalize_command " $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath $xrpath; do - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; - *) func_append finalize_rpath " $libdir" ;; - esac - done - fi - - # Now hardcode the library paths - rpath= - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) func_append perm_rpath " $libdir" ;; - esac - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$libdir:"*) ;; - ::) dllsearchpath=$libdir;; - *) func_append dllsearchpath ":$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; - *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath="$rpath" - - rpath= - hardcode_libdirs= - for libdir in $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else - # Just accumulate the unique libdirs. - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else - eval flag=\"$hardcode_libdir_flag_spec\" - func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; - *) func_append finalize_perm_rpath " $libdir" ;; - esac - fi - done - # Substitute the hardcoded libdirs into the rpath. - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath="$rpath" - - if test -n "$libobjs" && test "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` - fi - - func_generate_dlsyms "$outputname" "@PROGRAM@" "no" - - # template prelinking step - if test -n "$prelink_cmds"; then - func_execute_cmds "$prelink_cmds" 'exit $?' - fi - - wrappers_required=yes - case $host in - *cegcc* | *mingw32ce*) - # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. - wrappers_required=no - ;; - *cygwin* | *mingw* ) - if test "$build_libtool_libs" != yes; then - wrappers_required=no - fi - ;; - *) - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - wrappers_required=no - fi - ;; - esac - if test "$wrappers_required" = no; then - # Replace the output file specification. - compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - link_command="$compile_command$compile_rpath" - - # We have no uninstalled library dependencies, so finalize right now. - exit_status=0 - func_show_eval "$link_command" 'exit_status=$?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Delete the generated files. - if test -f "$output_objdir/${outputname}S.${objext}"; then - func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' - fi - - exit $exit_status - fi - - if test -n "$compile_shlibpath$finalize_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - compile_var= - finalize_var= - if test -n "$runpath_var"; then - if test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - func_append rpath "$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - if test -n "$finalize_perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do - func_append rpath "$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi - fi - - if test "$no_install" = yes; then - # We don't need to create a wrapper script. - link_command="$compile_var$compile_command$compile_rpath" - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - # Delete the old output file. - $opt_dry_run || $RM $output - # Link the executable and exit - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - exit $EXIT_SUCCESS - fi - - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - - func_warning "this platform does not like uninstalled shared libraries" - func_warning "\`$output' will be relinked during installation" - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi - - # Replace the output file specification. - link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - - # Delete the old output files. - $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname - - func_show_eval "$link_command" 'exit $?' - - if test -n "$postlink_cmds"; then - func_to_tool_file "$output_objdir/$outputname" - postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` - func_execute_cmds "$postlink_cmds" 'exit $?' - fi - - # Now create the wrapper script. - func_verbose "creating $output" - - # Quote the relink command for shipping. - if test -n "$relink_command"; then - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - fi - - # Only actually do things if not in dry run mode. - $opt_dry_run || { - # win32 will think the script is a binary if it has - # a .exe suffix, so we strip it off here. - case $output in - *.exe) func_stripname '' '.exe' "$output" - output=$func_stripname_result ;; - esac - # test for cygwin because mv fails w/o .exe extensions - case $host in - *cygwin*) - exeext=.exe - func_stripname '' '.exe' "$outputname" - outputname=$func_stripname_result ;; - *) exeext= ;; - esac - case $host in - *cygwin* | *mingw* ) - func_dirname_and_basename "$output" "" "." - output_name=$func_basename_result - output_path=$func_dirname_result - cwrappersource="$output_path/$objdir/lt-$output_name.c" - cwrapper="$output_path/$output_name.exe" - $RM $cwrappersource $cwrapper - trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - - func_emit_cwrapperexe_src > $cwrappersource - - # The wrapper executable is built using the $host compiler, - # because it contains $host paths and files. If cross- - # compiling, it, like the target executable, must be - # executed on the $host or under an emulation environment. - $opt_dry_run || { - $LTCC $LTCFLAGS -o $cwrapper $cwrappersource - $STRIP $cwrapper - } - - # Now, create the wrapper script for func_source use: - func_ltwrapper_scriptname $cwrapper - $RM $func_ltwrapper_scriptname_result - trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 - $opt_dry_run || { - # note: this script will not be executed, so do not chmod. - if test "x$build" = "x$host" ; then - $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result - else - func_emit_wrapper no > $func_ltwrapper_scriptname_result - fi - } - ;; - * ) - $RM $output - trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 - - func_emit_wrapper no > $output - chmod +x $output - ;; - esac - } - exit $EXIT_SUCCESS - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save $symfileobj" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" - build_libtool_libs=no - else - oldobjs="$old_deplibs $non_pic_objects" - if test "$preload" = yes && test -f "$symfileobj"; then - func_append oldobjs " $symfileobj" - fi - fi - addlibs="$old_convenience" - fi - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $addlibs - func_append oldobjs " $func_extract_archives_result" - fi - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - cmds=$old_archive_from_new_cmds - else - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles - func_append oldobjs " $func_extract_archives_result" - fi - - # POSIX demands no paths to be encoded in archives. We have - # to avoid creating archives with duplicate basenames if we - # might have to extract them afterwards, e.g., when creating a - # static archive out of a convenience library, or when linking - # the entirety of a libtool archive into another (currently - # not supported by libtool). - if (for obj in $oldobjs - do - func_basename "$obj" - $ECHO "$func_basename_result" - done | sort | sort -uc >/dev/null 2>&1); then - : - else - echo "copying selected object files to avoid basename conflicts..." - gentop="$output_objdir/${outputname}x" - func_append generated " $gentop" - func_mkdir_p "$gentop" - save_oldobjs=$oldobjs - oldobjs= - counter=1 - for obj in $save_oldobjs - do - func_basename "$obj" - objbase="$func_basename_result" - case " $oldobjs " in - " ") oldobjs=$obj ;; - *[\ /]"$objbase "*) - while :; do - # Make sure we don't pick an alternate name that also - # overlaps. - newobj=lt$counter-$objbase - func_arith $counter + 1 - counter=$func_arith_result - case " $oldobjs " in - *[\ /]"$newobj "*) ;; - *) if test ! -f "$gentop/$newobj"; then break; fi ;; - esac - done - func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - func_append oldobjs " $gentop/$newobj" - ;; - *) func_append oldobjs " $obj" ;; - esac - done - fi - func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 - tool_oldlib=$func_to_tool_file_result - eval cmds=\"$old_archive_cmds\" - - func_len " $cmds" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds - elif test -n "$archiver_list_spec"; then - func_verbose "using command file archive linking..." - for obj in $oldobjs - do - func_to_tool_file "$obj" - $ECHO "$func_to_tool_file_result" - done > $output_objdir/$libname.libcmd - func_to_tool_file "$output_objdir/$libname.libcmd" - oldobjs=" $archiver_list_spec$func_to_tool_file_result" - cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - func_verbose "using piecewise archive linking..." - save_RANLIB=$RANLIB - RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - oldobjs= - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj - done - eval test_cmds=\"$old_archive_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 - for obj in $save_oldobjs - do - func_len " $obj" - func_arith $len + $func_len_result - len=$func_arith_result - func_append objlist " $obj" - if test "$len" -lt "$max_cmd_len"; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= - len=$len0 - fi - done - RANLIB=$save_RANLIB - oldobjs=$objlist - if test "X$oldobjs" = "X" ; then - eval cmds=\"\$concat_cmds\" - else - eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi - func_execute_cmds "$cmds" 'exit $?' - done - - test -n "$generated" && \ - func_show_eval "${RM}r$generated" - - # Now create the libtool archive. - case $output in - *.la) - old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" - func_verbose "creating $output" - - # Preserve any variables that may affect compiler behavior - for var in $variables_saved_for_relink; do - if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" - elif eval var_value=\$$var; test -z "$var_value"; then - relink_command="$var=; export $var; $relink_command" - else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" - fi - done - # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then - relink_command= - fi - - # Only create the output if not a dry run. - $opt_dry_run || { - for installed in no yes; do - if test "$installed" = yes; then - if test -z "$install_libdir"; then - break - fi - output="$output_objdir/$outputname"i - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do - case $deplib in - *.la) - func_basename "$deplib" - name="$func_basename_result" - func_resolve_sysroot "$deplib" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" - ;; - -L*) - func_stripname -L '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -L$func_replace_sysroot_result" - ;; - -R*) - func_stripname -R '' "$deplib" - func_replace_sysroot "$func_stripname_result" - func_append newdependency_libs " -R$func_replace_sysroot_result" - ;; - *) func_append newdependency_libs " $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" - newdlfiles= - - for lib in $dlfiles; do - case $lib in - *.la) - func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" - func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" - ;; - *) func_append newdlfiles " $lib" ;; - esac - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - *.la) - # Only pass preopened files to the pseudo-archive (for - # eventual linking with the app. that links it) if we - # didn't already link the preopened objects directly into - # the library: - func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" - func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" - ;; - esac - done - dlprefiles="$newdlprefiles" - else - newdlfiles= - for lib in $dlfiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlfiles " $abs" - done - dlfiles="$newdlfiles" - newdlprefiles= - for lib in $dlprefiles; do - case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac - func_append newdlprefiles " $abs" - done - dlprefiles="$newdlprefiles" - fi - $RM $output - # place dlname in correct position for cygwin - # In fact, it would be nice if we could use this code for all target - # systems that can't hard-code library paths into their executables - # and that have no shared library path variable independent of PATH, - # but it turns out we can't easily determine that from inspecting - # libtool variables, so we have to hard-code the OSs to which it - # applies here; at the moment, that means platforms that use the PE - # object format with DLL files. See the long comment at the top of - # tests/bindir.at for full details. - tdlname=$dlname - case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) - # If a -bindir argument was supplied, place the dll there. - if test "x$bindir" != x ; - then - func_relative_path "$install_libdir" "$bindir" - tdlname=$func_relative_path_result$dlname - else - # Otherwise fall back on heuristic. - tdlname=../bin/$dlname - fi - ;; - esac - $ECHO > $output "\ -# $outputname - a libtool library file -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='$tdlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Linker flags that can not go in dependency_libs. -inherited_linker_flags='$new_inherited_linker_flags' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Names of additional weak libraries provided by this library -weak_library_names='$weak_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=$installed - -# Should we warn about portability when linking against -modules? -shouldnotlink=$module - -# Files to dlopen/dlpreopen -dlopen='$dlfiles' -dlpreopen='$dlprefiles' - -# Directory that this library needs to be installed in: -libdir='$install_libdir'" - if test "$installed" = no && test "$need_relink" = yes; then - $ECHO >> $output "\ -relink_command=\"$relink_command\"" - fi - done - } - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' - ;; - esac - exit $EXIT_SUCCESS -} - -{ test "$opt_mode" = link || test "$opt_mode" = relink; } && - func_mode_link ${1+"$@"} - - -# func_mode_uninstall arg... -func_mode_uninstall () -{ - $opt_debug - RM="$nonopt" - files= - rmforce= - exit_status=0 - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - for arg - do - case $arg in - -f) func_append RM " $arg"; rmforce=yes ;; - -*) func_append RM " $arg" ;; - *) func_append files " $arg" ;; - esac - done - - test -z "$RM" && \ - func_fatal_help "you must specify an RM program" - - rmdirs= - - for file in $files; do - func_dirname "$file" "" "." - dir="$func_dirname_result" - if test "X$dir" = X.; then - odir="$objdir" - else - odir="$dir/$objdir" - fi - func_basename "$file" - name="$func_basename_result" - test "$opt_mode" = uninstall && odir="$dir" - - # Remember odir for removal later, being careful to avoid duplicates - if test "$opt_mode" = clean; then - case " $rmdirs " in - *" $odir "*) ;; - *) func_append rmdirs " $odir" ;; - esac - fi - - # Don't error if the file doesn't exist and rm -f was used. - if { test -L "$file"; } >/dev/null 2>&1 || - { test -h "$file"; } >/dev/null 2>&1 || - test -f "$file"; then - : - elif test -d "$file"; then - exit_status=1 - continue - elif test "$rmforce" = yes; then - continue - fi - - rmfiles="$file" - - case $name in - *.la) - # Possibly a libtool archive, so verify it. - if func_lalib_p "$file"; then - func_source $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - func_append rmfiles " $odir/$n" - done - test -n "$old_library" && func_append rmfiles " $odir/$old_library" - - case "$opt_mode" in - clean) - case " $library_names " in - *" $dlname "*) ;; - *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; - esac - test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' - fi - # FIXME: should reinstall the best remaining shared library. - ;; - esac - fi - ;; - - *.lo) - # Possibly a libtool object, so verify it. - if func_lalib_p "$file"; then - - # Read the .lo file - func_source $dir/$name - - # Add PIC object to the list of files to remove. - if test -n "$pic_object" && - test "$pic_object" != none; then - func_append rmfiles " $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && - test "$non_pic_object" != none; then - func_append rmfiles " $dir/$non_pic_object" - fi - fi - ;; - - *) - if test "$opt_mode" = clean ; then - noexename=$name - case $file in - *.exe) - func_stripname '' '.exe' "$file" - file=$func_stripname_result - func_stripname '' '.exe' "$name" - noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe - func_append rmfiles " $file" - ;; - esac - # Do a test to see if this is a libtool program. - if func_ltwrapper_p "$file"; then - if func_ltwrapper_executable_p "$file"; then - func_ltwrapper_scriptname "$file" - relink_command= - func_source $func_ltwrapper_scriptname_result - func_append rmfiles " $func_ltwrapper_scriptname_result" - else - relink_command= - func_source $dir/$noexename - fi - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles - func_append rmfiles " $odir/$name $odir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - func_append rmfiles " $odir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then - func_append rmfiles " $odir/lt-${noexename}.c" - fi - fi - fi - ;; - esac - func_show_eval "$RM $rmfiles" 'exit_status=1' - done - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do - if test -d "$dir"; then - func_show_eval "rmdir $dir >/dev/null 2>&1" - fi - done - - exit $exit_status -} - -{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && - func_mode_uninstall ${1+"$@"} - -test -z "$opt_mode" && { - help="$generic_help" - func_fatal_help "you must specify a MODE" -} - -test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode \`$opt_mode'" - -if test -n "$exec_cmd"; then - eval exec "$exec_cmd" - exit $EXIT_FAILURE -fi - -exit $exit_status - - -# The TAGs below are defined such that we never get into a situation -# in which we disable both kinds of libraries. Given conflicting -# choices, we go for a static library, that is the most portable, -# since we can't tell whether shared libraries were disabled because -# the user asked for that or because the platform doesn't support -# them. This is particularly important on AIX, because we don't -# support having both static and shared libraries enabled at the same -# time on that platform, so we default to a shared-only configuration. -# If a disable-shared tag is given, we'll fallback to a static-only -# configuration. But we'll never go from static-only to shared-only. - -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared -build_libtool_libs=no -build_old_libs=yes -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: -# vi:sw=2 - diff --git a/m4/.gitignore b/m4/.gitignore new file mode 100644 index 0000000..fc1ba49 --- /dev/null +++ b/m4/.gitignore @@ -0,0 +1,177 @@ +# files created by gnulib, but that gnulib doesn't track +*~ +gnulib-comp.m4 +/00gnulib.m4 +/absolute-header.m4 +/alloca.m4 +/configmake.m4 +/dirname.m4 +/double-slash-root.m4 +/eealloc.m4 +/errno_h.m4 +/error.m4 +/exponentd.m4 +/exponentf.m4 +/exponentl.m4 +/extensions.m4 +/float_h.m4 +/fpieee.m4 +/frexp.m4 +/frexpl.m4 +/fseterr.m4 +/getopt.m4 +/getprogname.m4 +/gnulib-common.m4 +/gnulib-tool.m4 +/hard-locale.m4 +/include_next.m4 +/intmax_t.m4 +/isnand.m4 +/isnanf.m4 +/isnanl.m4 +/ldexpl.m4 +/limits-h.m4 +/localcharset.m4 +/locale-fr.m4 +/locale-ja.m4 +/locale-zh.m4 +/malloc.m4 +/malloca.m4 +/manywarnings-c++.m4 +/manywarnings.m4 +/math_h.m4 +/mbrtowc.m4 +/mbsinit.m4 +/mbstate_t.m4 +/memchr.m4 +/minmax.m4 +/mmap-anon.m4 +/msvc-inval.m4 +/msvc-nothrow.m4 +/multiarch.m4 +/nocrash.m4 +/off_t.m4 +/pathmax.m4 +/printf-frexp.m4 +/printf-frexpl.m4 +/printf.m4 +/quote.m4 +/quotearg.m4 +/signbit.m4 +/ssize_t.m4 +/stdbool.m4 +/stddef_h.m4 +/stdint.m4 +/stdio_h.m4 +/stdlib_h.m4 +/strerror.m4 +/string_h.m4 +/strndup.m4 +/strnlen.m4 +/sys_socket_h.m4 +/sys_types_h.m4 +/sys_wait_h.m4 +/time_h.m4 +/unistd_h.m4 +/utime.m4 +/utime_h.m4 +/vasnprintf.m4 +/vfprintf-posix.m4 +/vprintf-posix.m4 +/warn-on-use.m4 +/warnings.m4 +/wchar_h.m4 +/wctype_h.m4 +/xalloc.m4 +/codeset.m4 +/extern-inline.m4 +/fcntl-o.m4 +/gettext.m4 +/glibc2.m4 +/glibc21.m4 +/gnulib-cache.m4 +/iconv.m4 +/intdiv0.m4 +/intl.m4 +/intldir.m4 +/intlmacosx.m4 +/intmax.m4 +/inttypes-pri.m4 +/inttypes_h.m4 +/lcmessage.m4 +/lib-ld.m4 +/lib-link.m4 +/lib-prefix.m4 +/libtool.m4 +/lock.m4 +/longlong.m4 +/ltoptions.m4 +/ltsugar.m4 +/ltversion.m4 +/lt~obsolete.m4 +/nls.m4 +/po.m4 +/printf-posix.m4 +/progtest.m4 +/size_max.m4 +/stdint_h.m4 +/threadlib.m4 +/uintmax_t.m4 +/visibility.m4 +/wchar_t.m4 +/wint_t.m4 +/xsize.m4 +/canonicalize.m4 +/largefile.m4 +/lstat.m4 +/readlink.m4 +/stat-time.m4 +/stat.m4 +/sys_stat_h.m4 +/fcntl_h.m4 +/isatty.m4 +/gettimeofday.m4 +/localtime-buffer.m4 +/mkstemps.m4 +/sys_time_h.m4 +/tempname.m4 +/xstrndup.m4 +/vasprintf.m4 +/raise.m4 +/sigaction.m4 +/signal_h.m4 +/signalblocking.m4 +/mkdir.m4 +/std-gnu11.m4 +/__inline.m4 +/builtin-expect.m4 +/calloc.m4 +/clock_time.m4 +/close.m4 +/dup2.m4 +/fcntl.m4 +/free.m4 +/fstat.m4 +/getdtablesize.m4 +/getrandom.m4 +/inttypes.m4 +/locale_h.m4 +/mempcpy.m4 +/mode_t.m4 +/open-cloexec.m4 +/open-slash.m4 +/open.m4 +/pid_t.m4 +/rawmemchr.m4 +/realloc.m4 +/reallocarray.m4 +/setlocale_null.m4 +/stdalign.m4 +/sys_random_h.m4 +/vararrays.m4 +/year2038.m4 +/zzgnulib.m4 +/assert_h.m4 +/c-bool.m4 +/error_h.m4 +/host-cpu-c-abi.m4 diff --git a/m4/ChangeLog b/m4/ChangeLog deleted file mode 100644 index 17aab97..0000000 --- a/m4/ChangeLog +++ /dev/null @@ -1,156 +0,0 @@ -2013-11-30 gettextize - - * gettext.m4: Upgrade to gettext-0.18.1. - * iconv.m4: Upgrade to gettext-0.18.1. - * lib-ld.m4: Upgrade to gettext-0.18.1. - * lib-link.m4: Upgrade to gettext-0.18.1. - * lib-prefix.m4: Upgrade to gettext-0.18.1. - * nls.m4: Upgrade to gettext-0.18.1. - * po.m4: Upgrade to gettext-0.18.1. - * progtest.m4: Upgrade to gettext-0.18.1. - -2008-03-24 Bruno Haible - - * iconv.m4: Update from gettext-0.17. - * lib-link.m4: Update from gettext-0.17. - -2008-02-22 François Pinard - - * atconfig.m4: Deleted. - -2008-02-21 François Pinard - - * Makefile.am: Deleted, no longer needed. - Reported by Jim Meyering. - -2008-02-21 gettextize - - * gettext.m4: New file, from gettext-0.16. - * iconv.m4: New file, from gettext-0.16. - * lib-ld.m4: New file, from gettext-0.16. - * lib-link.m4: New file, from gettext-0.16. - * lib-prefix.m4: New file, from gettext-0.16. - * nls.m4: New file, from gettext-0.16. - * po.m4: New file, from gettext-0.16. - * progtest.m4: New file, from gettext-0.16. - * Makefile.am (EXTRA_DIST): Add the new files. - -2005-11-05 François Pinard - - * gettext.m4, lcmessage.m4: Deleted. - * Makefile.am: Adjusted. - -2005-10-28 François Pinard - - * Makefile.am (EXTRA_DIST): Adjusted for deleted .m4 files. - -2005-10-27 François Pinard - - * atconfig.m4, codeset.m4, gettext.m4, glibc21.m4, lcmessage.m4, - malloc.m4, realloc.m4, utimbuf.m4: Quote arguments. - * gettext.m4, malloc.m4, realloc.m4: Use AC_LIBOBJ. - * flex.m4, libtool.m4: Deleted. - -2005-03-06 gettextize - - * codeset.m4: Upgrade to gettext-0.14.1. - * gettext.m4: Upgrade to gettext-0.14.1. - * glibc21.m4: Upgrade to gettext-0.14.1. - * iconv.m4: New file, from gettext-0.14.1. - * intdiv0.m4: New file, from gettext-0.14.1. - * intmax.m4: New file, from gettext-0.14.1. - * inttypes.m4: New file, from gettext-0.14.1. - * inttypes_h.m4: New file, from gettext-0.14.1. - * inttypes-pri.m4: New file, from gettext-0.14.1. - * isc-posix.m4: New file, from gettext-0.14.1. - * lcmessage.m4: Upgrade to gettext-0.14.1. - * lib-ld.m4: New file, from gettext-0.14.1. - * lib-link.m4: New file, from gettext-0.14.1. - * lib-prefix.m4: New file, from gettext-0.14.1. - * longdouble.m4: New file, from gettext-0.14.1. - * longlong.m4: New file, from gettext-0.14.1. - * nls.m4: New file, from gettext-0.14.1. - * po.m4: New file, from gettext-0.14.1. - * printf-posix.m4: New file, from gettext-0.14.1. - * progtest.m4: New file, from gettext-0.14.1. - * signed.m4: New file, from gettext-0.14.1. - * size_max.m4: New file, from gettext-0.14.1. - * stdint_h.m4: New file, from gettext-0.14.1. - * uintmax_t.m4: New file, from gettext-0.14.1. - * ulonglong.m4: New file, from gettext-0.14.1. - * wchar_t.m4: New file, from gettext-0.14.1. - * wint_t.m4: New file, from gettext-0.14.1. - * xsize.m4: New file, from gettext-0.14.1. - * Makefile.am (EXTRA_DIST): Add the new files. - -2005-03-06 François Pinard - - * atconfig.m4, codeset.m4, gettext.m4, glibc21.m4, malloc.m4, - realloc.m4, utimbuf.m4: Quoted first argument of AC_DEFUN. - * gettext.m4, malloc.m4, realloc.m4: Use AC_LIBOBJ macro - instead of LIBOBJS variable. - * lcmessage.m4: Move previously global AC_PREREQ into macro. - * flex.m4: Deleted. - * gettext.m4, lcmessage.m4: Use third argument to AC_DEFINE or - AC_DEFINE_UNQUOTED. - - Postpone libtool support, as it creates too many problems for now. - * libtool.m4: Deleted. - - * ChangeLog: Converted to UTF-8. - -2001-01-03 Bruno Haible - - * gettext.m4: Check for argz.h, limits.h, malloc.h, string.h, - unistd.h, sys/param.h, mmap, mempcpy, munmap, stpcpy, strcasecmp, - strchr, strdup, __argz_count, __argz_stringify, __argz_next. - -2000-12-06 Bruno Haible - - * microsoft.m4: Remove file. - * Makefile.am (EXTRA_DIST): Remove it. - -2000-12-05 Bruno Haible - - * codeset.m4: New file, from libiconv-1.5. - * glibc21.m4: New file, from libiconv-1.5. - * Makefile.am (EXTRA_DIST): Add them. - - * libtool.m4: New file. - * Makefile.am (EXTRA_DIST): Add it. - -2000-06-28 François Pinard - - * Makefile.am (EXTRA_DIST): - - * flex.m4: - -2000-06-27 François Pinard - - * flex.m4: New, from elsewhere. - * utimbuf.m4: New, from elsewhere. - -2000-01-28 François Pinard - - * lcmessage.m4: New, from elsewhere. - -1999-12-14 François Pinard - - * Makefile.am: Adapt to the gettext scheme used in wdiff. - - * gettext.m4: New file. Have getcwd checked at configuration time. - * nls.m4: Deleted. - -1998-10-20 François Pinard - - * Makefile.am (AUTOMAKE_OPTIONS): Add --gnits. - - * atconfig.m4: New, from elsewhere. - * echo.m4: Deleted. - * Makefile.am: Adjusted. - -1998-03-31 François Pinard - - * malloc.m4, realloc.m4: New files, from elsewhere. - * echo.m4, microsoft.m4, nls.m4: New, out of acinclude.m4. - * Makefile.am: New file. diff --git a/m4/codeset.m4 b/m4/codeset.m4 deleted file mode 100644 index e08ec66..0000000 --- a/m4/codeset.m4 +++ /dev/null @@ -1,20 +0,0 @@ -#serial 2 - -dnl From Bruno Haible. - -AC_DEFUN([jm_LANGINFO_CODESET], -[ - AC_CHECK_HEADERS(langinfo.h) - AC_CHECK_FUNCS(nl_langinfo) - - AC_CACHE_CHECK([for nl_langinfo and CODESET], jm_cv_langinfo_codeset, - [AC_TRY_LINK([#include ], - [char* cs = nl_langinfo(CODESET);], - jm_cv_langinfo_codeset=yes, - jm_cv_langinfo_codeset=no) - ]) - if test $jm_cv_langinfo_codeset = yes; then - AC_DEFINE(HAVE_LANGINFO_CODESET, 1, - [Define if you have and nl_langinfo(CODESET).]) - fi -]) diff --git a/m4/gettext.m4 b/m4/gettext.m4 deleted file mode 100644 index f84e6a5..0000000 --- a/m4/gettext.m4 +++ /dev/null @@ -1,383 +0,0 @@ -# gettext.m4 serial 63 (gettext-0.18) -dnl Copyright (C) 1995-2010 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2006, 2008-2010. - -dnl Macro to add for using GNU gettext. - -dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). -dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The -dnl default (if it is not specified or empty) is 'no-libtool'. -dnl INTLSYMBOL should be 'external' for packages with no intl directory, -dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. -dnl If INTLSYMBOL is 'use-libtool', then a libtool library -dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, -dnl depending on --{enable,disable}-{shared,static} and on the presence of -dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library -dnl $(top_builddir)/intl/libintl.a will be created. -dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext -dnl implementations (in libc or libintl) without the ngettext() function -dnl will be ignored. If NEEDSYMBOL is specified and is -dnl 'need-formatstring-macros', then GNU gettext implementations that don't -dnl support the ISO C 99 formatstring macros will be ignored. -dnl INTLDIR is used to find the intl libraries. If empty, -dnl the value `$(top_builddir)/intl/' is used. -dnl -dnl The result of the configuration is one of three cases: -dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled -dnl and used. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 2) GNU gettext has been found in the system's C library. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 3) No internationalization, always use English msgid. -dnl Catalog format: none -dnl Catalog extension: none -dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. -dnl The use of .gmo is historical (it was needed to avoid overwriting the -dnl GNU format catalogs when building on a platform with an X/Open gettext), -dnl but we keep it in order not to force irrelevant filename changes on the -dnl maintainers. -dnl -AC_DEFUN([AM_GNU_GETTEXT], -[ - dnl Argument checking. - ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , - [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT -])])])])]) - ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], - [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) - ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , - [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT -])])])]) - define([gt_included_intl], - ifelse([$1], [external], - ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), - [yes])) - define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) - gt_NEEDS_INIT - AM_GNU_GETTEXT_NEED([$2]) - - AC_REQUIRE([AM_PO_SUBDIRS])dnl - ifelse(gt_included_intl, yes, [ - AC_REQUIRE([AM_INTL_SUBDIR])dnl - ]) - - dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - - dnl Sometimes libintl requires libiconv, so first search for libiconv. - dnl Ideally we would do this search only after the - dnl if test "$USE_NLS" = "yes"; then - dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then - dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT - dnl the configure script would need to contain the same shell code - dnl again, outside any 'if'. There are two solutions: - dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. - dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. - dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not - dnl documented, we avoid it. - ifelse(gt_included_intl, yes, , [ - AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) - ]) - - dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. - gt_INTL_MACOSX - - dnl Set USE_NLS. - AC_REQUIRE([AM_NLS]) - - ifelse(gt_included_intl, yes, [ - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - ]) - LIBINTL= - LTLIBINTL= - POSUB= - - dnl Add a version number to the cache macros. - case " $gt_needs " in - *" need-formatstring-macros "*) gt_api_version=3 ;; - *" need-ngettext "*) gt_api_version=2 ;; - *) gt_api_version=1 ;; - esac - gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" - gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" - - dnl If we use NLS figure out what method - if test "$USE_NLS" = "yes"; then - gt_use_preinstalled_gnugettext=no - ifelse(gt_included_intl, yes, [ - AC_MSG_CHECKING([whether included gettext is requested]) - AC_ARG_WITH([included-gettext], - [ --with-included-gettext use the GNU gettext library included here], - nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) - AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - ]) - dnl User does not insist on using GNU NLS library. Figure out what - dnl to use. If GNU gettext is available we use this. Else we have - dnl to fall back to GNU NLS library. - - if test $gt_api_version -ge 3; then - gt_revision_test_code=' -#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) -#endif -changequote(,)dnl -typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; -changequote([,])dnl -' - else - gt_revision_test_code= - fi - if test $gt_api_version -ge 2; then - gt_expression_test_code=' + * ngettext ("", "", 0)' - else - gt_expression_test_code= - fi - - AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], - [AC_TRY_LINK([#include -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings;], - [bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], - [eval "$gt_func_gnugettext_libc=yes"], - [eval "$gt_func_gnugettext_libc=no"])]) - - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then - dnl Sometimes libintl requires libiconv, so first search for libiconv. - ifelse(gt_included_intl, yes, , [ - AM_ICONV_LINK - ]) - dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL - dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) - dnl because that would add "-liconv" to LIBINTL and LTLIBINTL - dnl even if libiconv doesn't exist. - AC_LIB_LINKFLAGS_BODY([intl]) - AC_CACHE_CHECK([for GNU gettext in libintl], - [$gt_func_gnugettext_libintl], - [gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - dnl Now see whether libintl exists and does not depend on libiconv. - AC_TRY_LINK([#include -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *);], - [bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], - [eval "$gt_func_gnugettext_libintl=yes"], - [eval "$gt_func_gnugettext_libintl=no"]) - dnl Now see whether libintl exists and depends on libiconv. - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then - LIBS="$LIBS $LIBICONV" - AC_TRY_LINK([#include -$gt_revision_test_code -extern int _nl_msg_cat_cntr; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (const char *);], - [bindtextdomain ("", ""); -return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], - [LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - eval "$gt_func_gnugettext_libintl=yes" - ]) - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS"]) - fi - - dnl If an already present or preinstalled GNU gettext() is found, - dnl use it. But if this macro is used in GNU gettext, and GNU - dnl gettext is already preinstalled in libintl, we update this - dnl libintl. (Cf. the install rule in intl/Makefile.in.) - if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ - || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ - && test "$PACKAGE" != gettext-runtime \ - && test "$PACKAGE" != gettext-tools; }; then - gt_use_preinstalled_gnugettext=yes - else - dnl Reset the values set by searching for libintl. - LIBINTL= - LTLIBINTL= - INCINTL= - fi - - ifelse(gt_included_intl, yes, [ - if test "$gt_use_preinstalled_gnugettext" != "yes"; then - dnl GNU gettext is not found in the C library. - dnl Fall back on included GNU gettext library. - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions used to generate GNU NLS library. - BUILD_INCLUDED_LIBINTL=yes - USE_INCLUDED_LIBINTL=yes - LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" - LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" - LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` - fi - - CATOBJEXT= - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions to use GNU gettext tools. - CATOBJEXT=.gmo - fi - ]) - - if test -n "$INTL_MACOSX_LIBS"; then - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Some extra flags are needed during linking. - LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" - LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" - fi - fi - - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - AC_DEFINE([ENABLE_NLS], [1], - [Define to 1 if translation of program messages to the user's native language - is requested.]) - else - USE_NLS=no - fi - fi - - AC_MSG_CHECKING([whether to use NLS]) - AC_MSG_RESULT([$USE_NLS]) - if test "$USE_NLS" = "yes"; then - AC_MSG_CHECKING([where the gettext function comes from]) - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - gt_source="external libintl" - else - gt_source="libc" - fi - else - gt_source="included intl directory" - fi - AC_MSG_RESULT([$gt_source]) - fi - - if test "$USE_NLS" = "yes"; then - - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - AC_MSG_CHECKING([how to link with libintl]) - AC_MSG_RESULT([$LIBINTL]) - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) - fi - - dnl For backward compatibility. Some packages may be using this. - AC_DEFINE([HAVE_GETTEXT], [1], - [Define if the GNU gettext() function is already present or preinstalled.]) - AC_DEFINE([HAVE_DCGETTEXT], [1], - [Define if the GNU dcgettext() function is already present or preinstalled.]) - fi - - dnl We need to process the po/ directory. - POSUB=po - fi - - ifelse(gt_included_intl, yes, [ - dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL - dnl to 'yes' because some of the testsuite requires it. - if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then - BUILD_INCLUDED_LIBINTL=yes - fi - - dnl Make all variables we use known to autoconf. - AC_SUBST([BUILD_INCLUDED_LIBINTL]) - AC_SUBST([USE_INCLUDED_LIBINTL]) - AC_SUBST([CATOBJEXT]) - - dnl For backward compatibility. Some configure.ins may be using this. - nls_cv_header_intl= - nls_cv_header_libgt= - - dnl For backward compatibility. Some Makefiles may be using this. - DATADIRNAME=share - AC_SUBST([DATADIRNAME]) - - dnl For backward compatibility. Some Makefiles may be using this. - INSTOBJEXT=.mo - AC_SUBST([INSTOBJEXT]) - - dnl For backward compatibility. Some Makefiles may be using this. - GENCAT=gencat - AC_SUBST([GENCAT]) - - dnl For backward compatibility. Some Makefiles may be using this. - INTLOBJS= - if test "$USE_INCLUDED_LIBINTL" = yes; then - INTLOBJS="\$(GETTOBJS)" - fi - AC_SUBST([INTLOBJS]) - - dnl Enable libtool support if the surrounding package wishes it. - INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix - AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) - ]) - - dnl For backward compatibility. Some Makefiles may be using this. - INTLLIBS="$LIBINTL" - AC_SUBST([INTLLIBS]) - - dnl Make all documented variables known to autoconf. - AC_SUBST([LIBINTL]) - AC_SUBST([LTLIBINTL]) - AC_SUBST([POSUB]) -]) - - -dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. -m4_define([gt_NEEDS_INIT], -[ - m4_divert_text([DEFAULTS], [gt_needs=]) - m4_define([gt_NEEDS_INIT], []) -]) - - -dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) -AC_DEFUN([AM_GNU_GETTEXT_NEED], -[ - m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) -]) - - -dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) -AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) diff --git a/m4/glibc21.m4 b/m4/glibc21.m4 deleted file mode 100644 index 5b88ef2..0000000 --- a/m4/glibc21.m4 +++ /dev/null @@ -1,26 +0,0 @@ -#serial 2 - -# Test for the GNU C Library, version 2.1 or newer. -# From Bruno Haible. - -AC_DEFUN([jm_GLIBC21], - [ - AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, - ac_cv_gnu_library_2_1, - [AC_EGREP_CPP([Lucky GNU user], - [ -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) - Lucky GNU user - #endif -#endif - ], - ac_cv_gnu_library_2_1=yes, - ac_cv_gnu_library_2_1=no) - ] - ) - AC_SUBST(GLIBC21) - GLIBC21="$ac_cv_gnu_library_2_1" - ] -) diff --git a/m4/iconv.m4 b/m4/iconv.m4 deleted file mode 100644 index e2041b9..0000000 --- a/m4/iconv.m4 +++ /dev/null @@ -1,214 +0,0 @@ -# iconv.m4 serial 11 (gettext-0.18.1) -dnl Copyright (C) 2000-2002, 2007-2010 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], -[ - dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - - dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV - dnl accordingly. - AC_LIB_LINKFLAGS_BODY([iconv]) -]) - -AC_DEFUN([AM_ICONV_LINK], -[ - dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and - dnl those with the standalone portable GNU libiconv installed). - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - - dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV - dnl accordingly. - AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) - - dnl Add $INCICONV to CPPFLAGS before performing the following checks, - dnl because if the user has installed libiconv and not disabled its use - dnl via --without-libiconv-prefix, he wants to use it. The first - dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. - am_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) - - AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - [am_cv_func_iconv=yes]) - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - [am_cv_lib_iconv=yes] - [am_cv_func_iconv=yes]) - LIBS="$am_save_LIBS" - fi - ]) - if test "$am_cv_func_iconv" = yes; then - AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ - dnl This tests against bugs in AIX 5.1, HP-UX 11.11, Solaris 10. - am_save_LIBS="$LIBS" - if test $am_cv_lib_iconv = yes; then - LIBS="$LIBS $LIBICONV" - fi - AC_TRY_RUN([ -#include -#include -int main () -{ - /* Test against AIX 5.1 bug: Failures are not distinguishable from successful - returns. */ - { - iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); - if (cd_utf8_to_88591 != (iconv_t)(-1)) - { - static const char input[] = "\342\202\254"; /* EURO SIGN */ - char buf[10]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_utf8_to_88591, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - return 1; - } - } - /* Test against Solaris 10 bug: Failures are not distinguishable from - successful returns. */ - { - iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); - if (cd_ascii_to_88591 != (iconv_t)(-1)) - { - static const char input[] = "\263"; - char buf[10]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_ascii_to_88591, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if (res == 0) - return 1; - } - } -#if 0 /* This bug could be worked around by the caller. */ - /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ - { - iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); - if (cd_88591_to_utf8 != (iconv_t)(-1)) - { - static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; - char buf[50]; - const char *inptr = input; - size_t inbytesleft = strlen (input); - char *outptr = buf; - size_t outbytesleft = sizeof (buf); - size_t res = iconv (cd_88591_to_utf8, - (char **) &inptr, &inbytesleft, - &outptr, &outbytesleft); - if ((int)res > 0) - return 1; - } - } -#endif - /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is - provided. */ - if (/* Try standardized names. */ - iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) - /* Try IRIX, OSF/1 names. */ - && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) - /* Try AIX names. */ - && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) - /* Try HP-UX names. */ - && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) - return 1; - return 0; -}], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no], - [case "$host_os" in - aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; - *) am_cv_func_iconv_works="guessing yes" ;; - esac]) - LIBS="$am_save_LIBS" - ]) - case "$am_cv_func_iconv_works" in - *no) am_func_iconv=no am_cv_lib_iconv=no ;; - *) am_func_iconv=yes ;; - esac - else - am_func_iconv=no am_cv_lib_iconv=no - fi - if test "$am_func_iconv" = yes; then - AC_DEFINE([HAVE_ICONV], [1], - [Define if you have the iconv() function and it works.]) - fi - if test "$am_cv_lib_iconv" = yes; then - AC_MSG_CHECKING([how to link with libiconv]) - AC_MSG_RESULT([$LIBICONV]) - else - dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV - dnl either. - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - AC_SUBST([LIBICONV]) - AC_SUBST([LTLIBICONV]) -]) - -dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to -dnl avoid warnings like -dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". -dnl This is tricky because of the way 'aclocal' is implemented: -dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. -dnl Otherwise aclocal's initial scan pass would miss the macro definition. -dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. -dnl Otherwise aclocal would emit many "Use of uninitialized value $1" -dnl warnings. -m4_define([gl_iconv_AC_DEFUN], - m4_version_prereq([2.64], - [[AC_DEFUN_ONCE( - [$1], [$2])]], - [[AC_DEFUN( - [$1], [$2])]])) -gl_iconv_AC_DEFUN([AM_ICONV], -[ - AM_ICONV_LINK - if test "$am_cv_func_iconv" = yes; then - AC_MSG_CHECKING([for iconv declaration]) - AC_CACHE_VAL([am_cv_proto_iconv], [ - AC_TRY_COMPILE([ -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif -], [], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"]) - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) - am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - AC_MSG_RESULT([ - $am_cv_proto_iconv]) - AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], - [Define as const if the declaration of iconv() needs const.]) - fi -]) diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 deleted file mode 100644 index ebb3052..0000000 --- a/m4/lib-ld.m4 +++ /dev/null @@ -1,110 +0,0 @@ -# lib-ld.m4 serial 4 (gettext-0.18) -dnl Copyright (C) 1996-2003, 2009-2010 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl Subroutines of libtool.m4, -dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision -dnl with libtool.m4. - -dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. -AC_DEFUN([AC_LIB_PROG_LD_GNU], -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], -[# I'd rather use --version here, but apparently some GNU ld's only accept -v. -case `$LD -v 2>&1 conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by GCC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]* | [A-Za-z]:[\\/]*)] - [re_direlt='/[^/][^/]*/\.\./'] - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL([acl_cv_path_LD], -[if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in - *GNU* | *'with BFD'*) - test "$with_gnu_ld" != no && break ;; - *) - test "$with_gnu_ld" != yes && break ;; - esac - fi - done - IFS="$ac_save_ifs" -else - acl_cv_path_LD="$LD" # Let the user override the test with a path. -fi]) -LD="$acl_cv_path_LD" -if test -n "$LD"; then - AC_MSG_RESULT([$LD]) -else - AC_MSG_RESULT([no]) -fi -test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) -AC_LIB_PROG_LD_GNU -]) diff --git a/m4/lib-link.m4 b/m4/lib-link.m4 deleted file mode 100644 index c73bd8e..0000000 --- a/m4/lib-link.m4 +++ /dev/null @@ -1,774 +0,0 @@ -# lib-link.m4 serial 21 (gettext-0.18) -dnl Copyright (C) 2001-2010 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -AC_PREREQ([2.54]) - -dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and -dnl augments the CPPFLAGS variable. -dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname -dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. -AC_DEFUN([AC_LIB_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - pushdef([Name],[translit([$1],[./-], [___])]) - pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ - AC_LIB_LINKFLAGS_BODY([$1], [$2]) - ac_cv_lib[]Name[]_libs="$LIB[]NAME" - ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" - ac_cv_lib[]Name[]_cppflags="$INC[]NAME" - ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" - ]) - LIB[]NAME="$ac_cv_lib[]Name[]_libs" - LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" - INC[]NAME="$ac_cv_lib[]Name[]_cppflags" - LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - AC_SUBST([LIB]NAME[_PREFIX]) - dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the - dnl results of this search when this library appears as a dependency. - HAVE_LIB[]NAME=yes - popdef([NAME]) - popdef([Name]) -]) - -dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) -dnl searches for libname and the libraries corresponding to explicit and -dnl implicit dependencies, together with the specified include files and -dnl the ability to compile and link the specified testcode. The missing-message -dnl defaults to 'no' and may contain additional hints for the user. -dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} -dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and -dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs -dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. -dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname -dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. -AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - pushdef([Name],[translit([$1],[./-], [___])]) - pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - - dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME - dnl accordingly. - AC_LIB_LINKFLAGS_BODY([$1], [$2]) - - dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, - dnl because if the user has installed lib[]Name and not disabled its use - dnl via --without-lib[]Name-prefix, he wants to use it. - ac_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) - - AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ - ac_save_LIBS="$LIBS" - dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, - dnl because these -l options might require -L options that are present in - dnl LIBS. -l options benefit only from the -L options listed before it. - dnl Otherwise, add it to the front of LIBS, because it may be a static - dnl library that depends on another static library that is present in LIBS. - dnl Static libraries benefit only from the static libraries listed after - dnl it. - case " $LIB[]NAME" in - *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; - *) LIBS="$LIB[]NAME $LIBS" ;; - esac - AC_TRY_LINK([$3], [$4], - [ac_cv_lib[]Name=yes], - [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) - LIBS="$ac_save_LIBS" - ]) - if test "$ac_cv_lib[]Name" = yes; then - HAVE_LIB[]NAME=yes - AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) - AC_MSG_CHECKING([how to link with lib[]$1]) - AC_MSG_RESULT([$LIB[]NAME]) - else - HAVE_LIB[]NAME=no - dnl If $LIB[]NAME didn't lead to a usable library, we don't need - dnl $INC[]NAME either. - CPPFLAGS="$ac_save_CPPFLAGS" - LIB[]NAME= - LTLIB[]NAME= - LIB[]NAME[]_PREFIX= - fi - AC_SUBST([HAVE_LIB]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - AC_SUBST([LIB]NAME[_PREFIX]) - popdef([NAME]) - popdef([Name]) -]) - -dnl Determine the platform dependent parameters needed to use rpath: -dnl acl_libext, -dnl acl_shlibext, -dnl acl_hardcode_libdir_flag_spec, -dnl acl_hardcode_libdir_separator, -dnl acl_hardcode_direct, -dnl acl_hardcode_minus_L. -AC_DEFUN([AC_LIB_RPATH], -[ - dnl Tell automake >= 1.10 to complain if config.rpath is missing. - m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) - AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS - AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld - AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host - AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir - AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ - CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ - ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - ]) - wl="$acl_cv_wl" - acl_libext="$acl_cv_libext" - acl_shlibext="$acl_cv_shlibext" - acl_libname_spec="$acl_cv_libname_spec" - acl_library_names_spec="$acl_cv_library_names_spec" - acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - acl_hardcode_direct="$acl_cv_hardcode_direct" - acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" - dnl Determine whether the user wants rpath handling at all. - AC_ARG_ENABLE([rpath], - [ --disable-rpath do not hardcode runtime library paths], - :, enable_rpath=yes) -]) - -dnl AC_LIB_FROMPACKAGE(name, package) -dnl declares that libname comes from the given package. The configure file -dnl will then not have a --with-libname-prefix option but a -dnl --with-package-prefix option. Several libraries can come from the same -dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar -dnl macro call that searches for libname. -AC_DEFUN([AC_LIB_FROMPACKAGE], -[ - pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - define([acl_frompackage_]NAME, [$2]) - popdef([NAME]) - pushdef([PACK],[$2]) - pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - define([acl_libsinpackage_]PACKUP, - m4_ifdef([acl_libsinpackage_]PACKUP, [acl_libsinpackage_]PACKUP[[, ]],)[lib$1]) - popdef([PACKUP]) - popdef([PACK]) -]) - -dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. -dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found -dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. -AC_DEFUN([AC_LIB_LINKFLAGS_BODY], -[ - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) - pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) - dnl Autoconf >= 2.61 supports dots in --with options. - pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_ARG_WITH(P_A_C_K[-prefix], -[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib - --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then - additional_libdir="$withval/$acl_libdirstem2" - fi - fi - fi -]) - dnl Search the library and its dependencies in $additional_libdir and - dnl $LDFLAGS. Using breadth-first-seach. - LIB[]NAME= - LTLIB[]NAME= - INC[]NAME= - LIB[]NAME[]_PREFIX= - dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been - dnl computed. So it has to be reset here. - HAVE_LIB[]NAME= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='$1 $2' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - dnl See if it was already located by an earlier AC_LIB_LINKFLAGS - dnl or AC_LIB_HAVE_LINKFLAGS call. - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" - else - dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined - dnl that this library doesn't exist. So just drop it. - : - fi - else - dnl Search the library lib$name in $additional_libdir and $LDFLAGS - dnl and the already constructed $LIBNAME/$LTLIBNAME. - found_dir= - found_la= - found_so= - found_a= - eval libname=\"$acl_libname_spec\" # typically: libname=lib$name - if test -n "$acl_shlibext"; then - shrext=".$acl_shlibext" # typically: shrext=.so - else - shrext= - fi - if test $use_additional = yes; then - dir="$additional_libdir" - dnl The same code as in the loop below: - dnl First look for a shared library. - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - dnl Then look for a static library. - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - dnl First look for a shared library. - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - dnl Then look for a static library. - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - dnl Found the library. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - dnl Linking with a shared library. We attempt to hardcode its - dnl directory into the executable's runpath, unless it's the - dnl standard /usr/lib. - if test "$enable_rpath" = no \ - || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then - dnl No hardcoding is needed. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - dnl The hardcoding into $LIBNAME is system dependent. - if test "$acl_hardcode_direct" = yes; then - dnl Using DIR/libNAME.so during linking hardcodes DIR into the - dnl resulting binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - dnl Rely on "-L$found_dir". - dnl But don't add it if it's already contained in the LDFLAGS - dnl or the already constructed $LIBNAME - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" - fi - if test "$acl_hardcode_minus_L" != no; then - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH - dnl here, because this doesn't fit in flags passed to the - dnl compiler. So give up. No hardcoding. This affects only - dnl very old systems. - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - dnl Linking with a static library. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" - else - dnl We shouldn't come here, but anyway it's good to have a - dnl fallback. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" - fi - fi - dnl Assume the include files are nearby. - additional_includedir= - case "$found_dir" in - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - if test "$name" = '$1'; then - LIB[]NAME[]_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem2 | */$acl_libdirstem2/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` - if test "$name" = '$1'; then - LIB[]NAME[]_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - dnl Potentially add $additional_includedir to $INCNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's /usr/local/include and we are using GCC on Linux, - dnl 3. if it's already present in $CPPFLAGS or the already - dnl constructed $INCNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INC[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $INCNAME. - INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - dnl Look for dependencies. - if test -n "$found_la"; then - dnl Read the .la file. It defines the variables - dnl dlname, library_names, old_library, dependency_libs, current, - dnl age, revision, installed, dlopen, dlpreopen, libdir. - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - dnl We use only dependency_libs. - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's /usr/local/lib and we are using GCC on Linux, - dnl 3. if it's already present in $LDFLAGS or the already - dnl constructed $LIBNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LIBNAME. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LTLIBNAME. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - dnl Handle this in the next round. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - dnl Handle this in the next round. Throw away the .la's - dnl directory; it is already contained in a preceding -L - dnl option. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - dnl Most likely an immediate library name. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" - ;; - esac - done - fi - else - dnl Didn't find the library; assume it is in the system directories - dnl known to the linker and runtime loader. (All the system - dnl directories known to the linker should also be known to the - dnl runtime loader, otherwise the system is severely misconfigured.) - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$acl_hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user must - dnl pass all path elements in one option. We can arrange that for a - dnl single library, but not when more than one $LIBNAMEs are used. - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" - done - dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - else - dnl The -rpath options are cumulative. - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - dnl When using libtool, the option that works for both libraries and - dnl executables is -R. The -R options are cumulative. - for found_dir in $ltrpathdirs; do - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" - done - fi - popdef([P_A_C_K]) - popdef([PACKLIBS]) - popdef([PACKUP]) - popdef([PACK]) - popdef([NAME]) -]) - -dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, -dnl unless already present in VAR. -dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes -dnl contains two or three consecutive elements that belong together. -AC_DEFUN([AC_LIB_APPENDTOVAR], -[ - for element in [$2]; do - haveit= - for x in $[$1]; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - [$1]="${[$1]}${[$1]:+ }$element" - fi - done -]) - -dnl For those cases where a variable contains several -L and -l options -dnl referring to unknown libraries and directories, this macro determines the -dnl necessary additional linker options for the runtime path. -dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) -dnl sets LDADDVAR to linker options needed together with LIBSVALUE. -dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, -dnl otherwise linking without libtool is assumed. -AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], -[ - AC_REQUIRE([AC_LIB_RPATH]) - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - $1= - if test "$enable_rpath" != no; then - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode directories into the resulting - dnl binary. - rpathdirs= - next= - for opt in $2; do - if test -n "$next"; then - dir="$next" - dnl No need to hardcode the standard /usr/lib. - if test "X$dir" != "X/usr/$acl_libdirstem" \ - && test "X$dir" != "X/usr/$acl_libdirstem2"; then - rpathdirs="$rpathdirs $dir" - fi - next= - else - case $opt in - -L) next=yes ;; - -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` - dnl No need to hardcode the standard /usr/lib. - if test "X$dir" != "X/usr/$acl_libdirstem" \ - && test "X$dir" != "X/usr/$acl_libdirstem2"; then - rpathdirs="$rpathdirs $dir" - fi - next= ;; - *) next= ;; - esac - fi - done - if test "X$rpathdirs" != "X"; then - if test -n ""$3""; then - dnl libtool is used for linking. Use -R options. - for dir in $rpathdirs; do - $1="${$1}${$1:+ }-R$dir" - done - else - dnl The linker is used for linking directly. - if test -n "$acl_hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user - dnl must pass all path elements in one option. - alldirs= - for dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - $1="$flag" - else - dnl The -rpath options are cumulative. - for dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - $1="${$1}${$1:+ }$flag" - done - fi - fi - fi - fi - fi - AC_SUBST([$1]) -]) diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 deleted file mode 100644 index 1601cea..0000000 --- a/m4/lib-prefix.m4 +++ /dev/null @@ -1,224 +0,0 @@ -# lib-prefix.m4 serial 7 (gettext-0.18) -dnl Copyright (C) 2001-2005, 2008-2010 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and -dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't -dnl require excessive bracketing. -ifdef([AC_HELP_STRING], -[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], -[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) - -dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed -dnl to access previously installed libraries. The basic assumption is that -dnl a user will want packages to use other packages he previously installed -dnl with the same --prefix option. -dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate -dnl libraries, but is otherwise very convenient. -AC_DEFUN([AC_LIB_PREFIX], -[ - AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_LIB_ARG_WITH([lib-prefix], -[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib - --without-lib-prefix don't search for libraries in includedir and libdir], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - fi - fi -]) - if test $use_additional = yes; then - dnl Potentially add $additional_includedir to $CPPFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's already present in $CPPFLAGS, - dnl 3. if it's /usr/local/include and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - for x in $CPPFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $CPPFLAGS. - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" - fi - fi - fi - fi - dnl Potentially add $additional_libdir to $LDFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's already present in $LDFLAGS, - dnl 3. if it's /usr/local/lib and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then - haveit= - for x in $LDFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LDFLAGS. - LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" - fi - fi - fi - fi - fi -]) - -dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, -dnl acl_final_exec_prefix, containing the values to which $prefix and -dnl $exec_prefix will expand at the end of the configure script. -AC_DEFUN([AC_LIB_PREPARE_PREFIX], -[ - dnl Unfortunately, prefix and exec_prefix get only finally determined - dnl at the end of configure. - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" -]) - -dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the -dnl variables prefix and exec_prefix bound to the values they will have -dnl at the end of the configure script. -AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], -[ - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - $1 - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" -]) - -dnl AC_LIB_PREPARE_MULTILIB creates -dnl - a variable acl_libdirstem, containing the basename of the libdir, either -dnl "lib" or "lib64" or "lib/64", -dnl - a variable acl_libdirstem2, as a secondary possible value for -dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or -dnl "lib/amd64". -AC_DEFUN([AC_LIB_PREPARE_MULTILIB], -[ - dnl There is no formal standard regarding lib and lib64. - dnl On glibc systems, the current practice is that on a system supporting - dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under - dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine - dnl the compiler's default mode by looking at the compiler's library search - dnl path. If at least one of its elements ends in /lib64 or points to a - dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. - dnl Otherwise we use the default, namely "lib". - dnl On Solaris systems, the current practice is that on a system supporting - dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under - dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or - dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. - AC_REQUIRE([AC_CANONICAL_HOST]) - acl_libdirstem=lib - acl_libdirstem2= - case "$host_os" in - solaris*) - dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment - dnl . - dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." - dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the - dnl symlink is missing, so we set acl_libdirstem2 too. - AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], - [AC_EGREP_CPP([sixtyfour bits], [ -#ifdef _LP64 -sixtyfour bits -#endif - ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) - ]) - if test $gl_cv_solaris_64bit = yes; then - acl_libdirstem=lib/64 - case "$host_cpu" in - sparc*) acl_libdirstem2=lib/sparcv9 ;; - i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; - esac - fi - ;; - *) - searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - fi - ;; - esac - test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" -]) diff --git a/m4/libtool.m4 b/m4/libtool.m4 deleted file mode 100644 index 02b4bbe..0000000 --- a/m4/libtool.m4 +++ /dev/null @@ -1,7991 +0,0 @@ -# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -m4_define([_LT_COPYING], [dnl -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool 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 2 of -# the License, or (at your option) any later version. -# -# As a special exception to the GNU General Public License, -# if you distribute this file as part of a program or library that -# is built using GNU Libtool, you may include this file under the -# same distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that 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. -# -# You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, or -# obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -]) - -# serial 57 LT_INIT - - -# LT_PREREQ(VERSION) -# ------------------ -# Complain and exit if this libtool version is less that VERSION. -m4_defun([LT_PREREQ], -[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, - [m4_default([$3], - [m4_fatal([Libtool version $1 or higher is required], - 63)])], - [$2])]) - - -# _LT_CHECK_BUILDDIR -# ------------------ -# Complain if the absolute build directory name contains unusual characters -m4_defun([_LT_CHECK_BUILDDIR], -[case `pwd` in - *\ * | *\ *) - AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; -esac -]) - - -# LT_INIT([OPTIONS]) -# ------------------ -AC_DEFUN([LT_INIT], -[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT -AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -AC_BEFORE([$0], [LT_LANG])dnl -AC_BEFORE([$0], [LT_OUTPUT])dnl -AC_BEFORE([$0], [LTDL_INIT])dnl -m4_require([_LT_CHECK_BUILDDIR])dnl - -dnl Autoconf doesn't catch unexpanded LT_ macros by default: -m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl -m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl -dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 -dnl unless we require an AC_DEFUNed macro: -AC_REQUIRE([LTOPTIONS_VERSION])dnl -AC_REQUIRE([LTSUGAR_VERSION])dnl -AC_REQUIRE([LTVERSION_VERSION])dnl -AC_REQUIRE([LTOBSOLETE_VERSION])dnl -m4_require([_LT_PROG_LTMAIN])dnl - -_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) - -dnl Parse OPTIONS -_LT_SET_OPTIONS([$0], [$1]) - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -_LT_SETUP - -# Only expand once: -m4_define([LT_INIT]) -])# LT_INIT - -# Old names: -AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) -AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PROG_LIBTOOL], []) -dnl AC_DEFUN([AM_PROG_LIBTOOL], []) - - -# _LT_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -m4_defun([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -]) - - -# _LT_FILEUTILS_DEFAULTS -# ---------------------- -# It is okay to use these file commands and assume they have been set -# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. -m4_defun([_LT_FILEUTILS_DEFAULTS], -[: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} -])# _LT_FILEUTILS_DEFAULTS - - -# _LT_SETUP -# --------- -m4_defun([_LT_SETUP], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl - -_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl -dnl -_LT_DECL([], [host_alias], [0], [The host system])dnl -_LT_DECL([], [host], [0])dnl -_LT_DECL([], [host_os], [0])dnl -dnl -_LT_DECL([], [build_alias], [0], [The build system])dnl -_LT_DECL([], [build], [0])dnl -_LT_DECL([], [build_os], [0])dnl -dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -dnl -AC_REQUIRE([AC_PROG_LN_S])dnl -test -z "$LN_S" && LN_S="ln -s" -_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl -dnl -AC_REQUIRE([LT_CMD_MAX_LEN])dnl -_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl -_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl -dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl -m4_require([_LT_CMD_RELOAD])dnl -m4_require([_LT_CHECK_MAGIC_METHOD])dnl -m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl -m4_require([_LT_CMD_OLD_ARCHIVE])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_WITH_SYSROOT])dnl - -_LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options which allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi -]) -if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST -fi - -_LT_CHECK_OBJDIR - -m4_require([_LT_TAG_COMPILER])dnl - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a `.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld="$lt_cv_prog_gnu_ld" - -old_CC="$CC" -old_CFLAGS="$CFLAGS" - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -_LT_CC_BASENAME([$compiler]) - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - _LT_PATH_MAGIC - fi - ;; -esac - -# Use C for the default configuration in the libtool script -LT_SUPPORTED_TAG([CC]) -_LT_LANG_C_CONFIG -_LT_LANG_DEFAULT_CONFIG -_LT_CONFIG_COMMANDS -])# _LT_SETUP - - -# _LT_PREPARE_SED_QUOTE_VARS -# -------------------------- -# Define a few sed substitution that help us do robust quoting. -m4_defun([_LT_PREPARE_SED_QUOTE_VARS], -[# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([["`\\]]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' -]) - -# _LT_PROG_LTMAIN -# --------------- -# Note that this code is called both from `configure', and `config.status' -# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -# `config.status' has no value for ac_aux_dir unless we are using Automake, -# so we pass a copy along to make sure it has a sensible value anyway. -m4_defun([_LT_PROG_LTMAIN], -[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl -_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -ltmain="$ac_aux_dir/ltmain.sh" -])# _LT_PROG_LTMAIN - - -## ------------------------------------- ## -## Accumulate code for creating libtool. ## -## ------------------------------------- ## - -# So that we can recreate a full libtool script including additional -# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -# in macros and then make a single call at the end using the `libtool' -# label. - - -# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) -# ---------------------------------------- -# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL_INIT], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_INIT], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_INIT]) - - -# _LT_CONFIG_LIBTOOL([COMMANDS]) -# ------------------------------ -# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. -m4_define([_LT_CONFIG_LIBTOOL], -[m4_ifval([$1], - [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], - [$1 -])])]) - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) - - -# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) -# ----------------------------------------------------- -m4_defun([_LT_CONFIG_SAVE_COMMANDS], -[_LT_CONFIG_LIBTOOL([$1]) -_LT_CONFIG_LIBTOOL_INIT([$2]) -]) - - -# _LT_FORMAT_COMMENT([COMMENT]) -# ----------------------------- -# Add leading comment marks to the start of each line, and a trailing -# full-stop to the whole comment if one is not present already. -m4_define([_LT_FORMAT_COMMENT], -[m4_ifval([$1], [ -m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], - [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) -)]) - - - -## ------------------------ ## -## FIXME: Eliminate VARNAME ## -## ------------------------ ## - - -# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) -# ------------------------------------------------------------------- -# CONFIGNAME is the name given to the value in the libtool script. -# VARNAME is the (base) name used in the configure script. -# VALUE may be 0, 1 or 2 for a computed quote escaped value based on -# VARNAME. Any other value will be used directly. -m4_define([_LT_DECL], -[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], - [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], - [m4_ifval([$1], [$1], [$2])]) - lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) - m4_ifval([$4], - [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) - lt_dict_add_subkey([lt_decl_dict], [$2], - [tagged?], [m4_ifval([$5], [yes], [no])])]) -]) - - -# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) -# -------------------------------------------------------- -m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) - - -# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_tag_varnames], -[_lt_decl_filter([tagged?], [yes], $@)]) - - -# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) -# --------------------------------------------------------- -m4_define([_lt_decl_filter], -[m4_case([$#], - [0], [m4_fatal([$0: too few arguments: $#])], - [1], [m4_fatal([$0: too few arguments: $#: $1])], - [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], - [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], - [lt_dict_filter([lt_decl_dict], $@)])[]dnl -]) - - -# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) -# -------------------------------------------------- -m4_define([lt_decl_quote_varnames], -[_lt_decl_filter([value], [1], $@)]) - - -# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_dquote_varnames], -[_lt_decl_filter([value], [2], $@)]) - - -# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) -# --------------------------------------------------- -m4_define([lt_decl_varnames_tagged], -[m4_assert([$# <= 2])dnl -_$0(m4_quote(m4_default([$1], [[, ]])), - m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), - m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) -m4_define([_lt_decl_varnames_tagged], -[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) - - -# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) -# ------------------------------------------------ -m4_define([lt_decl_all_varnames], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_if([$2], [], - m4_quote(lt_decl_varnames), - m4_quote(m4_shift($@))))[]dnl -]) -m4_define([_lt_decl_all_varnames], -[lt_join($@, lt_decl_varnames_tagged([$1], - lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl -]) - - -# _LT_CONFIG_STATUS_DECLARE([VARNAME]) -# ------------------------------------ -# Quote a variable value, and forward it to `config.status' so that its -# declaration there will have the same value as in `configure'. VARNAME -# must have a single quote delimited value for this to work. -m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) - - -# _LT_CONFIG_STATUS_DECLARATIONS -# ------------------------------ -# We delimit libtool config variables with single quotes, so when -# we write them to config.status, we have to be sure to quote all -# embedded single quotes properly. In configure, this macro expands -# each variable declared with _LT_DECL (and _LT_TAGDECL) into: -# -# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' -m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], -[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), - [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAGS -# ---------------- -# Output comment and list of tags supported by the script -m4_defun([_LT_LIBTOOL_TAGS], -[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -available_tags="_LT_TAGS"dnl -]) - - -# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) -# ----------------------------------- -# Extract the dictionary values for VARNAME (optionally with TAG) and -# expand to a commented shell variable setting: -# -# # Some comment about what VAR is for. -# visible_name=$lt_internal_name -m4_define([_LT_LIBTOOL_DECLARE], -[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], - [description])))[]dnl -m4_pushdef([_libtool_name], - m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl -m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), - [0], [_libtool_name=[$]$1], - [1], [_libtool_name=$lt_[]$1], - [2], [_libtool_name=$lt_[]$1], - [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl -m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl -]) - - -# _LT_LIBTOOL_CONFIG_VARS -# ----------------------- -# Produce commented declarations of non-tagged libtool config variables -# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' -# script. Tagged libtool config variables (even for the LIBTOOL CONFIG -# section) are produced by _LT_LIBTOOL_TAG_VARS. -m4_defun([_LT_LIBTOOL_CONFIG_VARS], -[m4_foreach([_lt_var], - m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) - - -# _LT_LIBTOOL_TAG_VARS(TAG) -# ------------------------- -m4_define([_LT_LIBTOOL_TAG_VARS], -[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), - [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) - - -# _LT_TAGVAR(VARNAME, [TAGNAME]) -# ------------------------------ -m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) - - -# _LT_CONFIG_COMMANDS -# ------------------- -# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of -# variables for single and double quote escaping we saved from calls -# to _LT_DECL, we can put quote escaped variables declarations -# into `config.status', and then the shell code to quote escape them in -# for loops in `config.status'. Finally, any additional code accumulated -# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. -m4_defun([_LT_CONFIG_COMMANDS], -[AC_PROVIDE_IFELSE([LT_OUTPUT], - dnl If the libtool generation code has been placed in $CONFIG_LT, - dnl instead of duplicating it all over again into config.status, - dnl then we will have config.status run $CONFIG_LT later, so it - dnl needs to know what name is stored there: - [AC_CONFIG_COMMANDS([libtool], - [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], - dnl If the libtool generation code is destined for config.status, - dnl expand the accumulated commands and init code now: - [AC_CONFIG_COMMANDS([libtool], - [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) -])#_LT_CONFIG_COMMANDS - - -# Initialize. -m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], -[ - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -_LT_CONFIG_STATUS_DECLARATIONS -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$[]1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in lt_decl_all_varnames([[ \ -]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -_LT_OUTPUT_LIBTOOL_INIT -]) - -# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) -# ------------------------------------ -# Generate a child script FILE with all initialization necessary to -# reuse the environment learned by the parent script, and make the -# file executable. If COMMENT is supplied, it is inserted after the -# `#!' sequence but before initialization text begins. After this -# macro, additional text can be appended to FILE to form the body of -# the child script. The macro ends with non-zero status if the -# file could not be fully written (such as if the disk is full). -m4_ifdef([AS_INIT_GENERATED], -[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], -[m4_defun([_LT_GENERATED_FILE_INIT], -[m4_require([AS_PREPARE])]dnl -[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl -[lt_write_fail=0 -cat >$1 <<_ASEOF || lt_write_fail=1 -#! $SHELL -# Generated by $as_me. -$2 -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$1 <<\_ASEOF || lt_write_fail=1 -AS_SHELL_SANITIZE -_AS_PREPARE -exec AS_MESSAGE_FD>&1 -_ASEOF -test $lt_write_fail = 0 && chmod +x $1[]dnl -m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT - -# LT_OUTPUT -# --------- -# This macro allows early generation of the libtool script (before -# AC_OUTPUT is called), incase it is used in configure for compilation -# tests. -AC_DEFUN([LT_OUTPUT], -[: ${CONFIG_LT=./config.lt} -AC_MSG_NOTICE([creating $CONFIG_LT]) -_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], -[# Run this file to recreate a libtool stub with the current configuration.]) - -cat >>"$CONFIG_LT" <<\_LTEOF -lt_cl_silent=false -exec AS_MESSAGE_LOG_FD>>config.log -{ - echo - AS_BOX([Running $as_me.]) -} >&AS_MESSAGE_LOG_FD - -lt_cl_help="\ -\`$as_me' creates a local libtool stub from the current configuration, -for use in further configure time tests before the real libtool is -generated. - -Usage: $[0] [[OPTIONS]] - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - -Report bugs to ." - -lt_cl_version="\ -m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl -m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) -configured by $[0], generated by m4_PACKAGE_STRING. - -Copyright (C) 2011 Free Software Foundation, Inc. -This config.lt script is free software; the Free Software Foundation -gives unlimited permision to copy, distribute and modify it." - -while test $[#] != 0 -do - case $[1] in - --version | --v* | -V ) - echo "$lt_cl_version"; exit 0 ;; - --help | --h* | -h ) - echo "$lt_cl_help"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --quiet | --q* | --silent | --s* | -q ) - lt_cl_silent=: ;; - - -*) AC_MSG_ERROR([unrecognized option: $[1] -Try \`$[0] --help' for more information.]) ;; - - *) AC_MSG_ERROR([unrecognized argument: $[1] -Try \`$[0] --help' for more information.]) ;; - esac - shift -done - -if $lt_cl_silent; then - exec AS_MESSAGE_FD>/dev/null -fi -_LTEOF - -cat >>"$CONFIG_LT" <<_LTEOF -_LT_OUTPUT_LIBTOOL_COMMANDS_INIT -_LTEOF - -cat >>"$CONFIG_LT" <<\_LTEOF -AC_MSG_NOTICE([creating $ofile]) -_LT_OUTPUT_LIBTOOL_COMMANDS -AS_EXIT(0) -_LTEOF -chmod +x "$CONFIG_LT" - -# configure is writing to config.log, but config.lt does its own redirection, -# appending to config.log, which fails on DOS, as config.log is still kept -# open by configure. Here we exec the FD to /dev/null, effectively closing -# config.log, so it can be properly (re)opened and appended to by config.lt. -lt_cl_success=: -test "$silent" = yes && - lt_config_lt_args="$lt_config_lt_args --quiet" -exec AS_MESSAGE_LOG_FD>/dev/null -$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false -exec AS_MESSAGE_LOG_FD>>config.log -$lt_cl_success || AS_EXIT(1) -])# LT_OUTPUT - - -# _LT_CONFIG(TAG) -# --------------- -# If TAG is the built-in tag, create an initial libtool script with a -# default configuration from the untagged config vars. Otherwise add code -# to config.status for appending the configuration named by TAG from the -# matching tagged config vars. -m4_defun([_LT_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_CONFIG_SAVE_COMMANDS([ - m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl - m4_if(_LT_TAG, [C], [ - # See if we are running on zsh, and set the options which allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then - setopt NO_GLOB_SUBST - fi - - cfgfile="${ofile}T" - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL - -# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# NOTE: Changes made to this file will be lost: look at ltmain.sh. -# -_LT_COPYING -_LT_LIBTOOL_TAGS - -# ### BEGIN LIBTOOL CONFIG -_LT_LIBTOOL_CONFIG_VARS -_LT_LIBTOOL_TAG_VARS -# ### END LIBTOOL CONFIG - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - _LT_PROG_LTMAIN - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - _LT_PROG_REPLACE_SHELLFNS - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" -], -[cat <<_LT_EOF >> "$ofile" - -dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded -dnl in a comment (ie after a #). -# ### BEGIN LIBTOOL TAG CONFIG: $1 -_LT_LIBTOOL_TAG_VARS(_LT_TAG) -# ### END LIBTOOL TAG CONFIG: $1 -_LT_EOF -])dnl /m4_if -], -[m4_if([$1], [], [ - PACKAGE='$PACKAGE' - VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' - RM='$RM' - ofile='$ofile'], []) -])dnl /_LT_CONFIG_SAVE_COMMANDS -])# _LT_CONFIG - - -# LT_SUPPORTED_TAG(TAG) -# --------------------- -# Trace this macro to discover what tags are supported by the libtool -# --tag option, using: -# autoconf --trace 'LT_SUPPORTED_TAG:$1' -AC_DEFUN([LT_SUPPORTED_TAG], []) - - -# C support is built-in for now -m4_define([_LT_LANG_C_enabled], []) -m4_define([_LT_TAGS], []) - - -# LT_LANG(LANG) -# ------------- -# Enable libtool support for the given language if not already enabled. -AC_DEFUN([LT_LANG], -[AC_BEFORE([$0], [LT_OUTPUT])dnl -m4_case([$1], - [C], [_LT_LANG(C)], - [C++], [_LT_LANG(CXX)], - [Go], [_LT_LANG(GO)], - [Java], [_LT_LANG(GCJ)], - [Fortran 77], [_LT_LANG(F77)], - [Fortran], [_LT_LANG(FC)], - [Windows Resource], [_LT_LANG(RC)], - [m4_ifdef([_LT_LANG_]$1[_CONFIG], - [_LT_LANG($1)], - [m4_fatal([$0: unsupported language: "$1"])])])dnl -])# LT_LANG - - -# _LT_LANG(LANGNAME) -# ------------------ -m4_defun([_LT_LANG], -[m4_ifdef([_LT_LANG_]$1[_enabled], [], - [LT_SUPPORTED_TAG([$1])dnl - m4_append([_LT_TAGS], [$1 ])dnl - m4_define([_LT_LANG_]$1[_enabled], [])dnl - _LT_LANG_$1_CONFIG($1)])dnl -])# _LT_LANG - - -m4_ifndef([AC_PROG_GO], [ -############################################################ -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_GO. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -############################################################ -m4_defun([AC_PROG_GO], -[AC_LANG_PUSH(Go)dnl -AC_ARG_VAR([GOC], [Go compiler command])dnl -AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl -_AC_ARG_VAR_LDFLAGS()dnl -AC_CHECK_TOOL(GOC, gccgo) -if test -z "$GOC"; then - if test -n "$ac_tool_prefix"; then - AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) - fi -fi -if test -z "$GOC"; then - AC_CHECK_PROG(GOC, gccgo, gccgo, false) -fi -])#m4_defun -])#m4_ifndef - - -# _LT_LANG_DEFAULT_CONFIG -# ----------------------- -m4_defun([_LT_LANG_DEFAULT_CONFIG], -[AC_PROVIDE_IFELSE([AC_PROG_CXX], - [LT_LANG(CXX)], - [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) - -AC_PROVIDE_IFELSE([AC_PROG_F77], - [LT_LANG(F77)], - [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) - -AC_PROVIDE_IFELSE([AC_PROG_FC], - [LT_LANG(FC)], - [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) - -dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal -dnl pulling things in needlessly. -AC_PROVIDE_IFELSE([AC_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], - [LT_LANG(GCJ)], - [AC_PROVIDE_IFELSE([LT_PROG_GCJ], - [LT_LANG(GCJ)], - [m4_ifdef([AC_PROG_GCJ], - [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([A][M_PROG_GCJ], - [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) - m4_ifdef([LT_PROG_GCJ], - [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) - -AC_PROVIDE_IFELSE([AC_PROG_GO], - [LT_LANG(GO)], - [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) - -AC_PROVIDE_IFELSE([LT_PROG_RC], - [LT_LANG(RC)], - [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) -])# _LT_LANG_DEFAULT_CONFIG - -# Obsolete macros: -AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) -AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) -AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) -AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) -AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_CXX], []) -dnl AC_DEFUN([AC_LIBTOOL_F77], []) -dnl AC_DEFUN([AC_LIBTOOL_FC], []) -dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) -dnl AC_DEFUN([AC_LIBTOOL_RC], []) - - -# _LT_TAG_COMPILER -# ---------------- -m4_defun([_LT_TAG_COMPILER], -[AC_REQUIRE([AC_PROG_CC])dnl - -_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl -_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl -_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl -_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC -])# _LT_TAG_COMPILER - - -# _LT_COMPILER_BOILERPLATE -# ------------------------ -# Check for compiler boilerplate output or warnings with -# the simple compiler test code. -m4_defun([_LT_COMPILER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* -])# _LT_COMPILER_BOILERPLATE - - -# _LT_LINKER_BOILERPLATE -# ---------------------- -# Check for linker boilerplate output or warnings with -# the simple link test code. -m4_defun([_LT_LINKER_BOILERPLATE], -[m4_require([_LT_DECL_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* -])# _LT_LINKER_BOILERPLATE - -# _LT_REQUIRED_DARWIN_CHECKS -# ------------------------- -m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ - case $host_os in - rhapsody* | darwin*) - AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) - AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) - AC_CHECK_TOOL([LIPO], [lipo], [:]) - AC_CHECK_TOOL([OTOOL], [otool], [:]) - AC_CHECK_TOOL([OTOOL64], [otool64], [:]) - _LT_DECL([], [DSYMUTIL], [1], - [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) - _LT_DECL([], [NMEDIT], [1], - [Tool to change global to local symbols on Mac OS X]) - _LT_DECL([], [LIPO], [1], - [Tool to manipulate fat objects and archives on Mac OS X]) - _LT_DECL([], [OTOOL], [1], - [ldd/readelf like tool for Mach-O binaries on Mac OS X]) - _LT_DECL([], [OTOOL64], [1], - [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) - - AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], - [lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - # If there is a non-empty error log, and "single_module" - # appears in it, assume the flag caused a linker warning - if test -s conftest.err && $GREP single_module conftest.err; then - cat conftest.err >&AS_MESSAGE_LOG_FD - # Otherwise, if the output was created with a 0 exit code from - # the compiler, it worked. - elif test -f libconftest.dylib && test $_lt_result -eq 0; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi]) - - AC_CACHE_CHECK([for -exported_symbols_list linker flag], - [lt_cv_ld_exported_symbols_list], - [lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [lt_cv_ld_exported_symbols_list=yes], - [lt_cv_ld_exported_symbols_list=no]) - LDFLAGS="$save_LDFLAGS" - ]) - - AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], - [lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD - echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD - $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -s conftest.err && $GREP force_load conftest.err; then - cat conftest.err >&AS_MESSAGE_LOG_FD - elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&AS_MESSAGE_LOG_FD - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - ]) - case $host_os in - rhapsody* | darwin1.[[012]]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - 10.[[012]]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then - _lt_dar_single_mod='$single_module' - fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac -]) - - -# _LT_DARWIN_LINKER_FEATURES([TAG]) -# --------------------------------- -# Checks for linker and compiler features on darwin -m4_defun([_LT_DARWIN_LINKER_FEATURES], -[ - m4_require([_LT_REQUIRED_DARWIN_CHECKS]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_automatic, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], - [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='' - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" - case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=func_echo_all - _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - m4_if([$1], [CXX], -[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then - _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" - fi -],[]) - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi -]) - -# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) -# ---------------------------------- -# Links a minimal program and checks the executable -# for the system default hardcoded library path. In most cases, -# this is /usr/lib:/lib, but when the MPI compilers are used -# the location of the communication and MPI libs are included too. -# If we don't find anything, use the default library path according -# to the aix ld manual. -# Store the results from the different compilers for each TAGNAME. -# Allow to override them for all tags through lt_cv_aix_libpath. -m4_defun([_LT_SYS_MODULE_PATH_AIX], -[m4_require([_LT_DECL_SED])dnl -if test "${lt_cv_aix_libpath+set}" = set; then - aix_libpath=$lt_cv_aix_libpath -else - AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], - [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ - lt_aix_libpath_sed='[ - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }]' - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi],[]) - if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" - fi - ]) - aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) -fi -])# _LT_SYS_MODULE_PATH_AIX - - -# _LT_SHELL_INIT(ARG) -# ------------------- -m4_define([_LT_SHELL_INIT], -[m4_divert_text([M4SH-INIT], [$1 -])])# _LT_SHELL_INIT - - - -# _LT_PROG_ECHO_BACKSLASH -# ----------------------- -# Find how we can fake an echo command that does not interpret backslash. -# In particular, with Autoconf 2.60 or later we add some code to the start -# of the generated configure script which will find a shell with a builtin -# printf (which we can use as an echo command). -m4_defun([_LT_PROG_ECHO_BACKSLASH], -[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - -AC_MSG_CHECKING([how to print strings]) -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$[]1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} - -case "$ECHO" in - printf*) AC_MSG_RESULT([printf]) ;; - print*) AC_MSG_RESULT([print -r]) ;; - *) AC_MSG_RESULT([cat]) ;; -esac - -m4_ifdef([_AS_DETECT_SUGGESTED], -[_AS_DETECT_SUGGESTED([ - test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO - ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test "X`printf %s $ECHO`" = "X$ECHO" \ - || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) - -_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) -])# _LT_PROG_ECHO_BACKSLASH - - -# _LT_WITH_SYSROOT -# ---------------- -AC_DEFUN([_LT_WITH_SYSROOT], -[AC_MSG_CHECKING([for sysroot]) -AC_ARG_WITH([sysroot], -[ --with-sysroot[=DIR] Search for dependent libraries within DIR - (or the compiler's sysroot if not specified).], -[], [with_sysroot=no]) - -dnl lt_sysroot will always be passed unquoted. We quote it here -dnl in case the user passed a directory name. -lt_sysroot= -case ${with_sysroot} in #( - yes) - if test "$GCC" = yes; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - AC_MSG_RESULT([${with_sysroot}]) - AC_MSG_ERROR([The sysroot must be an absolute path.]) - ;; -esac - - AC_MSG_RESULT([${lt_sysroot:-no}]) -_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl -[dependent libraries, and in which our libraries should be installed.])]) - -# _LT_ENABLE_LOCK -# --------------- -m4_defun([_LT_ENABLE_LOCK], -[AC_ARG_ENABLE([libtool-lock], - [AS_HELP_STRING([--disable-libtool-lock], - [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE="32" - ;; - *ELF-64*) - HPUX_IA64_MODE="64" - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - case `/usr/bin/file conftest.o` in - *x86-64*) - LD="${LD-ld} -m elf32_x86_64" - ;; - *) - LD="${LD-ld} -m elf_i386" - ;; - esac - ;; - ppc64-*linux*|powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - ppc*-*linux*|powerpc*-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, - [AC_LANG_PUSH(C) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) - AC_LANG_POP]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; -*-*solaris*) - # Find out which ABI we are using. - echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) - case $host in - i?86-*-solaris*) - LD="${LD-ld} -m elf_x86_64" - ;; - sparc*-*-solaris*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - # GNU ld 2.21 introduced _sol2 emulations. Use them if available. - if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD="${LD-ld}_sol2" - fi - ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks="$enable_libtool_lock" -])# _LT_ENABLE_LOCK - - -# _LT_PROG_AR -# ----------- -m4_defun([_LT_PROG_AR], -[AC_CHECK_TOOLS(AR, [ar], false) -: ${AR=ar} -: ${AR_FLAGS=cru} -_LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) - -AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], - [lt_cv_ar_at_file=no - AC_COMPILE_IFELSE([AC_LANG_PROGRAM], - [echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' - AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -eq 0; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -ne 0; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - ]) - ]) - -if test "x$lt_cv_ar_at_file" = xno; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi -_LT_DECL([], [archiver_list_spec], [1], - [How to feed a file listing to the archiver]) -])# _LT_PROG_AR - - -# _LT_CMD_OLD_ARCHIVE -# ------------------- -m4_defun([_LT_CMD_OLD_ARCHIVE], -[_LT_PROG_AR - -AC_CHECK_TOOL(STRIP, strip, :) -test -z "$STRIP" && STRIP=: -_LT_DECL([], [STRIP], [1], [A symbol stripping program]) - -AC_CHECK_TOOL(RANLIB, ranlib, :) -test -z "$RANLIB" && RANLIB=: -_LT_DECL([], [RANLIB], [1], - [Commands used to install an old-style archive]) - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" -fi - -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac -_LT_DECL([], [old_postinstall_cmds], [2]) -_LT_DECL([], [old_postuninstall_cmds], [2]) -_LT_TAGDECL([], [old_archive_cmds], [2], - [Commands used to build an old-style archive]) -_LT_DECL([], [lock_old_archive_extraction], [0], - [Whether to use a lock for old archive extraction]) -])# _LT_CMD_OLD_ARCHIVE - - -# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------------------- -# Check whether the given compiler option works -AC_DEFUN([_LT_COMPILER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - fi - $RM conftest* -]) - -if test x"[$]$2" = xyes; then - m4_if([$5], , :, [$5]) -else - m4_if([$6], , :, [$6]) -fi -])# _LT_COMPILER_OPTION - -# Old name: -AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) - - -# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, -# [ACTION-SUCCESS], [ACTION-FAILURE]) -# ---------------------------------------------------- -# Check whether the given linker option works -AC_DEFUN([_LT_LINKER_OPTION], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $3" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&AS_MESSAGE_LOG_FD - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - else - $2=yes - fi - fi - $RM -r conftest* - LDFLAGS="$save_LDFLAGS" -]) - -if test x"[$]$2" = xyes; then - m4_if([$4], , :, [$4]) -else - m4_if([$5], , :, [$5]) -fi -])# _LT_LINKER_OPTION - -# Old name: -AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) - - -# LT_CMD_MAX_LEN -#--------------- -AC_DEFUN([LT_CMD_MAX_LEN], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -# find the maximum length of command line arguments -AC_MSG_CHECKING([the maximum length of command line arguments]) -AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl - i=0 - teststring="ABCD" - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - os2*) - # The test takes a long time on OS/2. - lt_cv_sys_max_cmd_len=8192 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len" && \ - test undefined != "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac -]) -if test -n $lt_cv_sys_max_cmd_len ; then - AC_MSG_RESULT($lt_cv_sys_max_cmd_len) -else - AC_MSG_RESULT(none) -fi -max_cmd_len=$lt_cv_sys_max_cmd_len -_LT_DECL([], [max_cmd_len], [0], - [What is the maximum length of a command?]) -])# LT_CMD_MAX_LEN - -# Old name: -AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) - - -# _LT_HEADER_DLFCN -# ---------------- -m4_defun([_LT_HEADER_DLFCN], -[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl -])# _LT_HEADER_DLFCN - - -# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) -# ---------------------------------------------------------------- -m4_defun([_LT_TRY_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test "$cross_compiling" = yes; then : - [$4] -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -[#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -}] -_LT_EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_dlunknown|x*) $3 ;; - esac - else : - # compilation failed - $3 - fi -fi -rm -fr conftest* -])# _LT_TRY_DLOPEN_SELF - - -# LT_SYS_DLOPEN_SELF -# ------------------ -AC_DEFUN([LT_SYS_DLOPEN_SELF], -[m4_require([_LT_HEADER_DLFCN])dnl -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen="dlopen" - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ - lt_cv_dlopen="dyld" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ]) - ;; - - *) - AC_CHECK_FUNC([shl_load], - [lt_cv_dlopen="shl_load"], - [AC_CHECK_LIB([dld], [shl_load], - [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], - [AC_CHECK_FUNC([dlopen], - [lt_cv_dlopen="dlopen"], - [AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], - [AC_CHECK_LIB([svld], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], - [AC_CHECK_LIB([dld], [dld_link], - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) - ]) - ]) - ]) - ]) - ]) - ;; - esac - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else - enable_dlopen=no - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS="$LDFLAGS" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - AC_CACHE_CHECK([whether a program can dlopen itself], - lt_cv_dlopen_self, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, - lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) - ]) - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - AC_CACHE_CHECK([whether a statically linked program can dlopen itself], - lt_cv_dlopen_self_static, [dnl - _LT_TRY_DLOPEN_SELF( - lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, - lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) - ]) - fi - - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi -_LT_DECL([dlopen_support], [enable_dlopen], [0], - [Whether dlopen is supported]) -_LT_DECL([dlopen_self], [enable_dlopen_self], [0], - [Whether dlopen of programs is supported]) -_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], - [Whether dlopen of statically linked programs is supported]) -])# LT_SYS_DLOPEN_SELF - -# Old name: -AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) - - -# _LT_COMPILER_C_O([TAGNAME]) -# --------------------------- -# Check to see if options -c and -o are simultaneously supported by compiler. -# This macro does not hard code the compiler like AC_PROG_CC_C_O. -m4_defun([_LT_COMPILER_C_O], -[m4_require([_LT_DECL_SED])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - fi - fi - chmod u+w . 2>&AS_MESSAGE_LOG_FD - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* -]) -_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], - [Does compiler simultaneously support -c and -o options?]) -])# _LT_COMPILER_C_O - - -# _LT_COMPILER_FILE_LOCKS([TAGNAME]) -# ---------------------------------- -# Check to see if we can do hard links to lock some files if needed -m4_defun([_LT_COMPILER_FILE_LOCKS], -[m4_require([_LT_ENABLE_LOCK])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -_LT_COMPILER_C_O([$1]) - -hard_links="nottested" -if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - AC_MSG_CHECKING([if we can lock with hard links]) - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - AC_MSG_RESULT([$hard_links]) - if test "$hard_links" = no; then - AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) - need_locks=warn - fi -else - need_locks=no -fi -_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) -])# _LT_COMPILER_FILE_LOCKS - - -# _LT_CHECK_OBJDIR -# ---------------- -m4_defun([_LT_CHECK_OBJDIR], -[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], -[rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null]) -objdir=$lt_cv_objdir -_LT_DECL([], [objdir], [0], - [The name of the directory that contains temporary libtool files])dnl -m4_pattern_allow([LT_OBJDIR])dnl -AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", - [Define to the sub-directory in which libtool stores uninstalled libraries.]) -])# _LT_CHECK_OBJDIR - - -# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) -# -------------------------------------- -# Check hardcoding attributes. -m4_defun([_LT_LINKER_HARDCODE_LIBPATH], -[AC_MSG_CHECKING([how to hardcode library paths into programs]) -_LT_TAGVAR(hardcode_action, $1)= -if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || - test -n "$_LT_TAGVAR(runpath_var, $1)" || - test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then - - # We can hardcode non-existent directories. - if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then - # Linking always hardcodes the temporary library directory. - _LT_TAGVAR(hardcode_action, $1)=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - _LT_TAGVAR(hardcode_action, $1)=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - _LT_TAGVAR(hardcode_action, $1)=unsupported -fi -AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) - -if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || - test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then - # Fast installation is not supported - enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then - # Fast installation is not necessary - enable_fast_install=needless -fi -_LT_TAGDECL([], [hardcode_action], [0], - [How to hardcode a shared library path into an executable]) -])# _LT_LINKER_HARDCODE_LIBPATH - - -# _LT_CMD_STRIPLIB -# ---------------- -m4_defun([_LT_CMD_STRIPLIB], -[m4_require([_LT_DECL_EGREP]) -striplib= -old_striplib= -AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac -fi -_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) -_LT_DECL([], [striplib], [1]) -])# _LT_CMD_STRIPLIB - - -# _LT_SYS_DYNAMIC_LINKER([TAG]) -# ----------------------------- -# PORTME Fill in your ld.so characteristics -m4_defun([_LT_SYS_DYNAMIC_LINKER], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_OBJDUMP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CHECK_SHELL_FEATURES])dnl -AC_MSG_CHECKING([dynamic linker characteristics]) -m4_if([$1], - [], [ -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[[lt_foo]]++; } - if (lt_freq[[lt_foo]] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi]) -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".so" -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - -case $host_os in -aix3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' - ;; - -aix[[4-9]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test "$host_cpu" = ia64; then - # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[[01]] | aix4.[[01]].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - else - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' - fi - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[[45]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=".dll" - need_version=no - need_lib_prefix=no - - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; - - *,cl*) - # Native MSVC - libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' - - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec="$LIB" - if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac - - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; - - *) - # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' -m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[[23]].*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[[01]]* | freebsdelf3.[[01]]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ - freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -haiku*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; - -interix[[3-9]]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux # correct to gnu/linux during the next big refactor - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - - # Some binutils ld are patched to set DT_RUNPATH - AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], - [lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ - LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], - [lt_cv_shlibpath_overrides_runpath=yes])]) - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - ]) - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; - -openbsd*) - version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac - else - shlibpath_overrides_runpath=yes - fi - ;; - -os2*) - libname_spec='$name' - shrext_cmds=".dll" - need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -AC_MSG_RESULT([$dynamic_linker]) -test "$dynamic_linker" = no && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" -fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" -fi - -_LT_DECL([], [variables_saved_for_relink], [1], - [Variables whose values should be saved in libtool wrapper scripts and - restored at link time]) -_LT_DECL([], [need_lib_prefix], [0], - [Do we need the "lib" prefix for modules?]) -_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) -_LT_DECL([], [version_type], [0], [Library versioning type]) -_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) -_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) -_LT_DECL([], [shlibpath_overrides_runpath], [0], - [Is shlibpath searched before the hard-coded library search path?]) -_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) -_LT_DECL([], [library_names_spec], [1], - [[List of archive names. First name is the real one, the rest are links. - The last name is the one that the linker finds with -lNAME]]) -_LT_DECL([], [soname_spec], [1], - [[The coded name of the library, if different from the real name]]) -_LT_DECL([], [install_override_mode], [1], - [Permission mode override for installation of shared libraries]) -_LT_DECL([], [postinstall_cmds], [2], - [Command to use after installation of a shared archive]) -_LT_DECL([], [postuninstall_cmds], [2], - [Command to use after uninstallation of a shared archive]) -_LT_DECL([], [finish_cmds], [2], - [Commands used to finish a libtool library installation in a directory]) -_LT_DECL([], [finish_eval], [1], - [[As "finish_cmds", except a single script fragment to be evaled but - not shown]]) -_LT_DECL([], [hardcode_into_libs], [0], - [Whether we should hardcode library paths into libraries]) -_LT_DECL([], [sys_lib_search_path_spec], [2], - [Compile-time system search path for libraries]) -_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], - [Run-time system search path for libraries]) -])# _LT_SYS_DYNAMIC_LINKER - - -# _LT_PATH_TOOL_PREFIX(TOOL) -# -------------------------- -# find a file program which can recognize shared library -AC_DEFUN([_LT_PATH_TOOL_PREFIX], -[m4_require([_LT_DECL_EGREP])dnl -AC_MSG_CHECKING([for $1]) -AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, -[case $MAGIC_CMD in -[[\\/*] | ?:[\\/]*]) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR -dnl $ac_dummy forces splitting on constant user-supplied paths. -dnl POSIX.2 word splitting is done only on the output of word expansions, -dnl not every word. This closes a longstanding sh security hole. - ac_dummy="m4_if([$2], , $PATH, [$2])" - for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$1; then - lt_cv_path_MAGIC_CMD="$ac_dir/$1" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" - ;; -esac]) -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" -if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) -else - AC_MSG_RESULT(no) -fi -_LT_DECL([], [MAGIC_CMD], [0], - [Used to examine libraries when file_magic_cmd begins with "file"])dnl -])# _LT_PATH_TOOL_PREFIX - -# Old name: -AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) - - -# _LT_PATH_MAGIC -# -------------- -# find a file program which can recognize a shared library -m4_defun([_LT_PATH_MAGIC], -[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) - else - MAGIC_CMD=: - fi -fi -])# _LT_PATH_MAGIC - - -# LT_PATH_LD -# ---------- -# find the pathname to the GNU or non-GNU linker -AC_DEFUN([LT_PATH_LD], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PROG_ECHO_BACKSLASH])dnl - -AC_ARG_WITH([gnu-ld], - [AS_HELP_STRING([--with-gnu-ld], - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no])dnl - -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(lt_cv_path_LD, -[if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[[3-9]]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -esac -]) - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - -_LT_DECL([], [deplibs_check_method], [1], - [Method to check whether dependent libraries are shared objects]) -_LT_DECL([], [file_magic_cmd], [1], - [Command to use when deplibs_check_method = "file_magic"]) -_LT_DECL([], [file_magic_glob], [1], - [How to find potential files when deplibs_check_method = "file_magic"]) -_LT_DECL([], [want_nocaseglob], [1], - [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) -])# _LT_CHECK_MAGIC_METHOD - - -# LT_PATH_NM -# ---------- -# find the pathname to a BSD- or MS-compatible name lister -AC_DEFUN([LT_PATH_NM], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in - */dev/null* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS="$lt_save_ifs" - done - : ${lt_cv_path_NM=no} -fi]) -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols" - ;; - *) - DUMPBIN=: - ;; - esac - fi - AC_SUBST([DUMPBIN]) - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" - fi -fi -test -z "$NM" && NM=nm -AC_SUBST([NM]) -_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl - -AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], - [lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) - cat conftest.out >&AS_MESSAGE_LOG_FD - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest*]) -])# LT_PATH_NM - -# Old names: -AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) -AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_PROG_NM], []) -dnl AC_DEFUN([AC_PROG_NM], []) - -# _LT_CHECK_SHAREDLIB_FROM_LINKLIB -# -------------------------------- -# how to determine the name of the shared library -# associated with a specific link library. -# -- PORTME fill in with the dynamic library characteristics -m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], -[m4_require([_LT_DECL_EGREP]) -m4_require([_LT_DECL_OBJDUMP]) -m4_require([_LT_DECL_DLLTOOL]) -AC_CACHE_CHECK([how to associate runtime and link libraries], -lt_cv_sharedlib_from_linklib_cmd, -[lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" - ;; -esac -]) -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - -_LT_DECL([], [sharedlib_from_linklib_cmd], [1], - [Command to associate shared and link libraries]) -])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB - - -# _LT_PATH_MANIFEST_TOOL -# ---------------------- -# locate the manifest tool -m4_defun([_LT_PATH_MANIFEST_TOOL], -[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], - [lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&AS_MESSAGE_LOG_FD - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest*]) -if test "x$lt_cv_path_mainfest_tool" != xyes; then - MANIFEST_TOOL=: -fi -_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl -])# _LT_PATH_MANIFEST_TOOL - - -# LT_LIB_M -# -------- -# check for math library -AC_DEFUN([LT_LIB_M], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -LIBM= -case $host in -*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) - # These system don't have libm, or don't need it - ;; -*-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") - AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") - ;; -*) - AC_CHECK_LIB(m, cos, LIBM="-lm") - ;; -esac -AC_SUBST([LIBM]) -])# LT_LIB_M - -# Old name: -AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_CHECK_LIBM], []) - - -# _LT_COMPILER_NO_RTTI([TAGNAME]) -# ------------------------------- -m4_defun([_LT_COMPILER_NO_RTTI], -[m4_require([_LT_TAG_COMPILER])dnl - -_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - -if test "$GCC" = yes; then - case $cc_basename in - nvcc*) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; - *) - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; - esac - - _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], - lt_cv_prog_compiler_rtti_exceptions, - [-fno-rtti -fno-exceptions], [], - [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) -fi -_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], - [Compiler flag to turn off builtin functions]) -])# _LT_COMPILER_NO_RTTI - - -# _LT_CMD_GLOBAL_SYMBOLS -# ---------------------- -m4_defun([_LT_CMD_GLOBAL_SYMBOLS], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([LT_PATH_NM])dnl -AC_REQUIRE([LT_PATH_LD])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_TAG_COMPILER])dnl - -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output from $compiler object]) -AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], -[ -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[[BCDEGRST]]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[[BCDT]]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[[ABCDGISTW]]' - ;; -hpux*) - if test "$host_cpu" = ia64; then - symcode='[[ABCDEGRST]]' - fi - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris*) - symcode='[[BDRT]]' - ;; -sco3.2v5*) - symcode='[[DT]]' - ;; -sysv4.2uw2*) - symcode='[[DT]]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[[ABDT]]' - ;; -sysv4) - symcode='[[DFNSTU]]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[[ABCDGIRSTW]]' ;; -esac - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK ['"\ -" {last_section=section; section=\$ 3};"\ -" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx]" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if AC_TRY_EVAL(ac_compile); then - # Now try to grab the symbols. - nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT@&t@_DLSYM_CONST -#elif defined(__osf__) -/* This system does not cope well with relocations in const data. */ -# define LT@&t@_DLSYM_CONST -#else -# define LT@&t@_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT@&t@_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[[]] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD - fi - else - echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done -]) -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - AC_MSG_RESULT(failed) -else - AC_MSG_RESULT(ok) -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then - nm_file_list_spec='@' -fi - -_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], - [Take the output of nm and produce a listing of raw symbols and C names]) -_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], - [Transform the output of nm in a proper C declaration]) -_LT_DECL([global_symbol_to_c_name_address], - [lt_cv_sys_global_symbol_to_c_name_address], [1], - [Transform the output of nm in a C name address pair]) -_LT_DECL([global_symbol_to_c_name_address_lib_prefix], - [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], - [Transform the output of nm in a C name address pair when lib prefix is needed]) -_LT_DECL([], [nm_file_list_spec], [1], - [Specify filename containing input files for $NM]) -]) # _LT_CMD_GLOBAL_SYMBOLS - - -# _LT_COMPILER_PIC([TAGNAME]) -# --------------------------- -m4_defun([_LT_COMPILER_PIC], -[m4_require([_LT_TAG_COMPILER])dnl -_LT_TAGVAR(lt_prog_compiler_wl, $1)= -_LT_TAGVAR(lt_prog_compiler_pic, $1)= -_LT_TAGVAR(lt_prog_compiler_static, $1)= - -m4_if([$1], [CXX], [ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - *djgpp*) - # DJGPP does not support shared libraries at all - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - else - case $host_os in - aix[[4-9]]*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - chorus*) - case $cc_basename in - cxch68*) - # Green Hills C++ Compiler - # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" - ;; - esac - ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - dgux*) - case $cc_basename in - ec++*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - ghcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - freebsd* | dragonfly*) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - if test "$host_cpu" != ia64; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - fi - ;; - aCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - irix5* | irix6* | nonstopux*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - # CC pic flag -KPIC is the default. - ;; - *) - ;; - esac - ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - KCC*) - # KAI C++ Compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - ecpc* ) - # old Intel C++ for x86_64 which still supported -KPIC. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - icpc* ) - # Intel C++, used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - cxx*) - # Compaq C++ - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) - # IBM XL 8.0, 9.0 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - esac - ;; - esac - ;; - lynxos*) - ;; - m88k*) - ;; - mvs*) - case $cc_basename in - cxx*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' - ;; - *) - ;; - esac - ;; - netbsd* | netbsdelf*-gnu) - ;; - *qnx* | *nto*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' - ;; - RCC*) - # Rational C++ 2.4.1 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - cxx*) - # Digital/Compaq C++ - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - *) - ;; - esac - ;; - psos*) - ;; - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - ;; - *) - ;; - esac - ;; - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - lcc*) - # Lucid - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - ;; - *) - ;; - esac - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - ;; - *) - ;; - esac - ;; - vxworks*) - ;; - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -], -[ - if test "$GCC" = yes; then - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - _LT_TAGVAR(lt_prog_compiler_static, $1)= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - ;; - - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic - fi - ;; - - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - esac - - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' - if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then - _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" - fi - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - if test "$host_cpu" = ia64; then - # AIX 5 now supports IA64 processor - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - else - _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - m4_if([$1], [GCJ], [], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) - ;; - - hpux9* | hpux10* | hpux11*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # PIC (with -KPIC) is the default. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. - ecc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' - _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' - ;; - nagfor*) - # NAG Fortran compiler - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - ccc*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All Alpha code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='' - ;; - *Sun\ F* | *Sun*Fortran*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - ;; - *Sun\ C*) - # Sun C 5.9 - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - *Intel*\ [[CF]]*Compiler*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; - *Portland\ Group*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - esac - ;; - esac - ;; - - newsos6) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - # All OSF/1 code is PIC. - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - rdos*) - _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - solaris*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; - *) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; - esac - ;; - - sunos4*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec ;then - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - unicos*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - - uts4*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - - *) - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - esac - fi -]) -case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: - *djgpp*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - ;; - *) - _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" - ;; -esac - -AC_CACHE_CHECK([for $compiler option to produce PIC], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], - [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then - _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], - [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], - [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], - [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in - "" | " "*) ;; - *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; - esac], - [_LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) -fi -_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], - [Additional compiler flags for building library objects]) - -_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], - [How to pass a linker flag through the compiler]) -# -# Check to make sure the static flag actually works. -# -wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" -_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], - _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), - $lt_tmp_static_flag, - [], - [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) -_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], - [Compiler flag to prevent dynamic linking]) -])# _LT_COMPILER_PIC - - -# _LT_LINKER_SHLIBS([TAGNAME]) -# ---------------------------- -# See if the linker supports building shared libraries. -m4_defun([_LT_LINKER_SHLIBS], -[AC_REQUIRE([LT_PATH_LD])dnl -AC_REQUIRE([LT_PATH_NM])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_DECL_SED])dnl -m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -m4_require([_LT_TAG_COMPILER])dnl -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) -m4_if([$1], [CXX], [ - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - case $host_os in - aix[[4-9]]*) - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global defined - # symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - ;; - pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; - cygwin* | mingw* | cegcc*) - case $cc_basename in - cl*) - _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - ;; - esac - ;; - linux* | k*bsd*-gnu | gnu*) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac -], [ - runpath_var= - _LT_TAGVAR(allow_undefined_flag, $1)= - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(archive_cmds, $1)= - _LT_TAGVAR(archive_expsym_cmds, $1)= - _LT_TAGVAR(compiler_needs_object, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(hardcode_automatic, $1)=no - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_separator, $1)= - _LT_TAGVAR(hardcode_minus_L, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_TAGVAR(inherit_rpath, $1)=no - _LT_TAGVAR(link_all_deplibs, $1)=unknown - _LT_TAGVAR(module_cmds, $1)= - _LT_TAGVAR(module_expsym_cmds, $1)= - _LT_TAGVAR(old_archive_from_new_cmds, $1)= - _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= - _LT_TAGVAR(thread_safe_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - _LT_TAGVAR(include_expsyms, $1)= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. -dnl Note also adjust exclude_expsyms for C++ above. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; - linux* | k*bsd*-gnu | gnu*) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; - esac - - _LT_TAGVAR(ld_shlibs, $1)=yes - - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then - case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; - *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - fi - - if test "$lt_use_gnu_ld_interface" = yes; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - supports_anon_versioning=no - case `$LD -v 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[[3-9]]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test "$host_os" = linux-dietlibc; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - _LT_TAGVAR(whole_archive_flag_spec, $1)= - tmp_sharedflag='--shared' ;; - xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - xlf* | bgf* | bgxlf* | mpixlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) - _LT_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - sunos4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - - if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then - runpath_var= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - _LT_TAGVAR(hardcode_direct, $1)=unsupported - fi - ;; - - aix[[4-9]]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to AIX nm, but means don't demangle with GNU nm - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' - - if test "$GCC" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - ;; - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - _LT_TAGVAR(link_all_deplibs, $1)=no - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='' - ;; - m68k) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - ;; - - bsdi[[45]]*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl*) - # Native MSVC - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC wrapper - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - esac - ;; - - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; - - dgux*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2.*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - hpux9*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - fi - ;; - - hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - m4_if($1, [], [ - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - _LT_LINKER_OPTION([if $CC understands -b], - _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], - [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) - ;; - esac - fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - _LT_TAGVAR(hardcode_minus_L, $1)=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], - [lt_cv_irix_exported_symbol], - [save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - AC_LINK_IFELSE( - [AC_LANG_SOURCE( - [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], - [C++], [[int foo (void) { return 0; }]], - [Fortran 77], [[ - subroutine foo - end]], - [Fortran], [[ - subroutine foo - end]])])], - [lt_cv_irix_exported_symbol=yes], - [lt_cv_irix_exported_symbol=no]) - LDFLAGS="$save_LDFLAGS"]) - if test "$lt_cv_irix_exported_symbol" = yes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - fi - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - newsos6) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *nto* | *qnx*) - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - else - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - ;; - esac - fi - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - os2*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' - - # Both c and cxx compiler support -rpath directly - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - ;; - - solaris*) - _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' - ;; - *) - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - fi - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4) - case $host_vendor in - sni) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' - _LT_TAGVAR(hardcode_direct, $1)=no - ;; - motorola) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - sysv4.3*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - _LT_TAGVAR(ld_shlibs, $1)=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - - *) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - - if test x$host_vendor = xsni; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' - ;; - esac - fi - fi -]) -AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) -test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - -_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld - -_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl -_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl -_LT_DECL([], [extract_expsyms_cmds], [2], - [The commands to extract the exported symbol list from a shared archive]) - -# -# Do we need to explicitly link libc? -# -case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in -x|xyes) - # Assume -lc should be added - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - - if test "$enable_shared" = yes && test "$GCC" = yes; then - case $_LT_TAGVAR(archive_cmds, $1) in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - AC_CACHE_CHECK([whether -lc should be explicitly linked in], - [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), - [$RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) - pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) - _LT_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) - then - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no - else - lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - ]) - _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) - ;; - esac - fi - ;; -esac - -_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], - [Whether or not to add -lc for building shared libraries]) -_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], - [enable_shared_with_static_runtimes], [0], - [Whether or not to disallow shared libs when runtime libs are static]) -_LT_TAGDECL([], [export_dynamic_flag_spec], [1], - [Compiler flag to allow reflexive dlopens]) -_LT_TAGDECL([], [whole_archive_flag_spec], [1], - [Compiler flag to generate shared objects directly from archives]) -_LT_TAGDECL([], [compiler_needs_object], [1], - [Whether the compiler copes with passing no objects directly]) -_LT_TAGDECL([], [old_archive_from_new_cmds], [2], - [Create an old-style archive from a shared archive]) -_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], - [Create a temporary old-style archive to link instead of a shared archive]) -_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) -_LT_TAGDECL([], [archive_expsym_cmds], [2]) -_LT_TAGDECL([], [module_cmds], [2], - [Commands used to build a loadable module if different from building - a shared archive.]) -_LT_TAGDECL([], [module_expsym_cmds], [2]) -_LT_TAGDECL([], [with_gnu_ld], [1], - [Whether we are building with GNU ld or not]) -_LT_TAGDECL([], [allow_undefined_flag], [1], - [Flag that allows shared libraries with undefined symbols to be built]) -_LT_TAGDECL([], [no_undefined_flag], [1], - [Flag that enforces no undefined symbols]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], - [Flag to hardcode $libdir into a binary during linking. - This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_separator], [1], - [Whether we need a single "-rpath" flag with a separated argument]) -_LT_TAGDECL([], [hardcode_direct], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes - DIR into the resulting binary]) -_LT_TAGDECL([], [hardcode_direct_absolute], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes - DIR into the resulting binary and the resulting library dependency is - "absolute", i.e impossible to change by setting ${shlibpath_var} if the - library is relocated]) -_LT_TAGDECL([], [hardcode_minus_L], [0], - [Set to "yes" if using the -LDIR flag during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_shlibpath_var], [0], - [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR - into the resulting binary]) -_LT_TAGDECL([], [hardcode_automatic], [0], - [Set to "yes" if building a shared library automatically hardcodes DIR - into the library and all subsequent libraries and executables linked - against it]) -_LT_TAGDECL([], [inherit_rpath], [0], - [Set to yes if linker adds runtime paths of dependent libraries - to runtime path list]) -_LT_TAGDECL([], [link_all_deplibs], [0], - [Whether libtool must link a program against all its dependency libraries]) -_LT_TAGDECL([], [always_export_symbols], [0], - [Set to "yes" if exported symbols are required]) -_LT_TAGDECL([], [export_symbols_cmds], [2], - [The commands to list exported symbols]) -_LT_TAGDECL([], [exclude_expsyms], [1], - [Symbols that should not be listed in the preloaded symbols]) -_LT_TAGDECL([], [include_expsyms], [1], - [Symbols that must always be exported]) -_LT_TAGDECL([], [prelink_cmds], [2], - [Commands necessary for linking programs (against libraries) with templates]) -_LT_TAGDECL([], [postlink_cmds], [2], - [Commands necessary for finishing linking programs]) -_LT_TAGDECL([], [file_list_spec], [1], - [Specify filename containing input files]) -dnl FIXME: Not yet implemented -dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], -dnl [Compiler flag to generate thread safe objects]) -])# _LT_LINKER_SHLIBS - - -# _LT_LANG_C_CONFIG([TAG]) -# ------------------------ -# Ensure that the configuration variables for a C compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_defun([_LT_LANG_C_CONFIG], -[m4_require([_LT_DECL_EGREP])dnl -lt_save_CC="$CC" -AC_LANG_PUSH(C) - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - -_LT_TAG_COMPILER -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - LT_SYS_DLOPEN_SELF - _LT_CMD_STRIPLIB - - # Report which library types will actually be built - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_CONFIG($1) -fi -AC_LANG_POP -CC="$lt_save_CC" -])# _LT_LANG_C_CONFIG - - -# _LT_LANG_CXX_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a C++ compiler are suitably -# defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. -m4_defun([_LT_LANG_CXX_CONFIG], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -m4_require([_LT_DECL_EGREP])dnl -m4_require([_LT_PATH_MANIFEST_TOOL])dnl -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -else - _lt_caught_CXX_error=yes -fi - -AC_LANG_PUSH(C++) -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(compiler_needs_object, $1)=no -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for C++ test sources. -ac_ext=cpp - -# Object file extension for compiled C++ test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the CXX compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_caught_CXX_error" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="int some_variable = 0;" - - # Code to be used in simple link tests - lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC=$CC - lt_save_CFLAGS=$CFLAGS - lt_save_LD=$LD - lt_save_GCC=$GCC - GCC=$GXX - lt_save_with_gnu_ld=$with_gnu_ld - lt_save_path_LD=$lt_cv_path_LD - if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx - else - $as_unset lt_cv_prog_gnu_ld - fi - if test -n "${lt_cv_path_LDCXX+set}"; then - lt_cv_path_LD=$lt_cv_path_LDCXX - else - $as_unset lt_cv_path_LD - fi - test -z "${LDCXX+set}" || LD=$LDCXX - CC=${CXX-"c++"} - CFLAGS=$CXXFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - - if test -n "$compiler"; then - # We don't want -fno-exception when compiling C++ code, so set the - # no_builtin_flag separately - if test "$GXX" = yes; then - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' - else - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= - fi - - if test "$GXX" = yes; then - # Set up default GNU C++ configuration - - LT_PATH_LD - - # Check if GNU C++ uses GNU ld as the underlying linker, since the - # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # If archive_cmds runs LD, not CC, wlarc should be empty - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to - # investigate it a little bit more. (MM) - wlarc='${wl}' - - # ancient GNU ld didn't support --whole-archive et. al. - if eval "`$CC -print-prog-name=ld` --help 2>&1" | - $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - _LT_TAGVAR(whole_archive_flag_spec, $1)= - fi - else - with_gnu_ld=no - wlarc= - - # A generic and very simple default shared library creation - # command for GNU C++ for the case where it uses the native - # linker, instead of GNU ld. If possible, this setting should - # overridden to take advantage of the native linker features on - # the platform it is being used on. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - fi - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - - else - GXX=no - with_gnu_ld=no - wlarc= - fi - - # PORTME: fill in a description of your system's C++ link characteristics - AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) - _LT_TAGVAR(ld_shlibs, $1)=yes - case $host_os in - aix3*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aix[[4-9]]*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag="" - else - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - for ld_flag in $LDFLAGS; do - case $ld_flag in - *-brtl*) - aix_use_runtimelinking=yes - break - ;; - esac - done - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - _LT_TAGVAR(archive_cmds, $1)='' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' - - if test "$GXX" = yes; then - case $host_os in aix4.[[012]]|aix4.[[012]].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - _LT_TAGVAR(hardcode_direct, $1)=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)= - fi - esac - shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - else - # not using gcc - if test "$host_cpu" = ia64; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' - else - shared_flag='${wl}-bM:SRE' - fi - fi - fi - - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to - # export. - _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' - _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then - # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - fi - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared - # libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - chorus*) - case $cc_basename in - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - cygwin* | mingw* | pw32* | cegcc*) - case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - # Don't use ranlib - _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' - _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - func_to_tool_file "$lt_outputfile"~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # g++ - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; - - dgux*) - case $cc_basename in - ec++*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - ghcx*) - # Green Hills C++ Compiler - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - freebsd2.*) - # C++ shared libraries reported to be fairly broken before - # switch to ELF - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - freebsd-elf*) - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - ;; - - freebsd* | dragonfly*) - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF - # conventions - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; - - haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - - hpux9*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - hpux10*|hpux11*) - if test $with_gnu_ld = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - ;; - *) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, - # but as the default - # location of the library. - ;; - esac - - case $cc_basename in - CC*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - aCC*) - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then - case $host_cpu in - hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - interix[[3-9]]*) - _LT_TAGVAR(hardcode_direct, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - irix5* | irix6*) - case $cc_basename in - CC*) - # SGI C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - - # Archives containing C++ object files must be created using - # "CC -ar", where "CC" is the IRIX C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' - ;; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' - fi - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes - ;; - esac - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(inherit_rpath, $1)=yes - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - - # Archives containing C++ object files must be created using - # "CC -Bstatic", where "CC" is the KAI C++ compiler. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' - ;; - icpc* | ecpc* ) - # Intel C++ - with_gnu_ld=yes - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - *) # Version 8.0 or newer - tmp_idyn= - case $host_cpu in - ia64*) tmp_idyn=' -i_dynamic';; - esac - _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - ;; - pgCC* | pgcpp*) - # Portland Group C++ compiler - case `$CC -V` in - *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) - _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' - _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' - _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - *) # Version 6 and above use weak symbols - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - ;; - cxx*) - # Compaq C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' - - runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' - ;; - xl* | mpixl* | bgxl*) - # IBM XL 8.0 on PPC, with GNU ld - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' - _LT_TAGVAR(compiler_needs_object, $1)=yes - - # Not sure whether something based on - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 - # would be better. - output_verbose_link_cmd='func_echo_all' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - esac - ;; - esac - ;; - - lynxos*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - m88k*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - mvs*) - case $cc_basename in - cxx*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' - wlarc= - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - fi - # Workaround some broken pre-1.5 toolchains - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' - ;; - - *nto* | *qnx*) - _LT_TAGVAR(ld_shlibs, $1)=yes - ;; - - openbsd2*) - # C++ shared libraries are fairly broken - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd=func_echo_all - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - osf3* | osf4* | osf5*) - case $cc_basename in - KCC*) - # Kuck and Associates, Inc. (KAI) C++ Compiler - - # KCC will only create a shared library if the output file - # ends with ".so" (or ".sl" for HP-UX), so rename the library - # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Archives containing C++ object files must be created using - # the KAI C++ compiler. - case $host in - osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; - *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; - esac - ;; - RCC*) - # Rational C++ 2.4.1 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - cxx*) - case $host in - osf3*) - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - ;; - *) - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ - $RM $lib.exp' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - # - # There doesn't appear to be a way to prevent this compiler from - # explicitly linking system object files so we need to strip them - # from the output so that they don't get included in the library - # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - ;; - *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - case $host in - osf3*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - esac - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=: - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - psos*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - sunos4*) - case $cc_basename in - CC*) - # Sun C++ 4.x - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - lcc*) - # Lucid - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - solaris*) - case $cc_basename in - CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(archive_cmds_need_lc,$1)=yes - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. - # Supported since Solaris 2.6 (maybe 2.5.1?) - _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - ;; - esac - _LT_TAGVAR(link_all_deplibs, $1)=yes - - output_verbose_link_cmd='func_echo_all' - - # Archives containing C++ object files must be created using - # "CC -xar", where "CC" is the Sun C++ compiler. This is - # necessary to make sure instantiated templates are included - # in the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' - ;; - gcx*) - # Green Hills C++ Compiler - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - - # The C++ compiler must be used to create the archive. - _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' - ;; - *) - # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - else - # g++ 2.7 appears to require `-G' NOT `-shared' on this - # platform. - _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when - # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' - fi - - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - fi - ;; - esac - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' - _LT_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ - '"$_LT_TAGVAR(old_archive_cmds, $1)" - _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ - '"$_LT_TAGVAR(reload_cmds, $1)" - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - tandem*) - case $cc_basename in - NCC*) - # NonStop-UX NCC 3.20 - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - ;; - - vxworks*) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - *) - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - esac - - AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) - test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no - - _LT_TAGVAR(GCC, $1)="$GXX" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS - LDCXX=$LD - LD=$lt_save_LD - GCC=$lt_save_GCC - with_gnu_ld=$lt_save_with_gnu_ld - lt_cv_path_LDCXX=$lt_cv_path_LD - lt_cv_path_LD=$lt_save_path_LD - lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld - lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -fi # test "$_lt_caught_CXX_error" != yes - -AC_LANG_POP -])# _LT_LANG_CXX_CONFIG - - -# _LT_FUNC_STRIPNAME_CNF -# ---------------------- -# func_stripname_cnf prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# -# This function is identical to the (non-XSI) version of func_stripname, -# except this one can be used by m4 code that may be executed by configure, -# rather than the libtool script. -m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl -AC_REQUIRE([_LT_DECL_SED]) -AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) -func_stripname_cnf () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname_cnf -])# _LT_FUNC_STRIPNAME_CNF - -# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) -# --------------------------------- -# Figure out "hidden" library dependencies from verbose -# compiler output when linking a shared library. -# Parse the compiler output and extract the necessary -# objects, libraries and library flags. -m4_defun([_LT_SYS_HIDDEN_LIBDEPS], -[m4_require([_LT_FILEUTILS_DEFAULTS])dnl -AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl -# Dependencies to place before and after the object being linked: -_LT_TAGVAR(predep_objects, $1)= -_LT_TAGVAR(postdep_objects, $1)= -_LT_TAGVAR(predeps, $1)= -_LT_TAGVAR(postdeps, $1)= -_LT_TAGVAR(compiler_lib_search_path, $1)= - -dnl we can't use the lt_simple_compile_test_code here, -dnl because it contains code intended for an executable, -dnl not a library. It's possible we should let each -dnl tag define a new lt_????_link_test_code variable, -dnl but it's only used here... -m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF -int a; -void foo (void) { a = 0; } -_LT_EOF -], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF -class Foo -{ -public: - Foo (void) { a = 0; } -private: - int a; -}; -_LT_EOF -], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF - subroutine foo - implicit none - integer*4 a - a=0 - return - end -_LT_EOF -], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF - subroutine foo - implicit none - integer a - a=0 - return - end -_LT_EOF -], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF -public class foo { - private int a; - public void bar (void) { - a = 0; - } -}; -_LT_EOF -], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF -package foo -func foo() { -} -_LT_EOF -]) - -_lt_libdeps_save_CFLAGS=$CFLAGS -case "$CC $CFLAGS " in #( -*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; -*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; -*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; -esac - -dnl Parse the compiler output and extract the necessary -dnl objects, libraries and library flags. -if AC_TRY_EVAL(ac_compile); then - # Parse the compiler output and extract the necessary - # objects, libraries and library flags. - - # Sentinel used to keep track of whether or not we are before - # the conftest object file. - pre_test_object_deps_done=no - - for p in `eval "$output_verbose_link_cmd"`; do - case ${prev}${p} in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. - # Remove the space. - if test $p = "-L" || - test $p = "-R"; then - prev=$p - continue - fi - - # Expand the sysroot to ease extracting the directories later. - if test -z "$prev"; then - case $p in - -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; - -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; - -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; - esac - fi - case $p in - =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; - esac - if test "$pre_test_object_deps_done" = no; then - case ${prev} in - -L | -R) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. - if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then - _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" - else - _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" - fi - ;; - # The "-l" case would never come before the object being - # linked, so don't bother handling this case. - esac - else - if test -z "$_LT_TAGVAR(postdeps, $1)"; then - _LT_TAGVAR(postdeps, $1)="${prev}${p}" - else - _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" - fi - fi - prev= - ;; - - *.lto.$objext) ;; # Ignore GCC LTO objects - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. - if test "$p" = "conftest.$objext"; then - pre_test_object_deps_done=yes - continue - fi - - if test "$pre_test_object_deps_done" = no; then - if test -z "$_LT_TAGVAR(predep_objects, $1)"; then - _LT_TAGVAR(predep_objects, $1)="$p" - else - _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" - fi - else - if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then - _LT_TAGVAR(postdep_objects, $1)="$p" - else - _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" - fi - fi - ;; - - *) ;; # Ignore the rest. - - esac - done - - # Clean up. - rm -f a.out a.exe -else - echo "libtool.m4: error: problem compiling $1 test program" -fi - -$RM -f confest.$objext -CFLAGS=$_lt_libdeps_save_CFLAGS - -# PORTME: override above test on systems where it is broken -m4_if([$1], [CXX], -[case $host_os in -interix[[3-9]]*) - # Interix 3.5 installs completely hosed .la files for C++, so rather than - # hack all around it, let's just trust "g++" to DTRT. - _LT_TAGVAR(predep_objects,$1)= - _LT_TAGVAR(postdep_objects,$1)= - _LT_TAGVAR(postdeps,$1)= - ;; - -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; -esac -]) - -case " $_LT_TAGVAR(postdeps, $1) " in -*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; -esac - _LT_TAGVAR(compiler_lib_search_dirs, $1)= -if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then - _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` -fi -_LT_TAGDECL([], [compiler_lib_search_dirs], [1], - [The directories searched by this compiler when creating a shared library]) -_LT_TAGDECL([], [predep_objects], [1], - [Dependencies to place before and after the objects being linked to - create a shared library]) -_LT_TAGDECL([], [postdep_objects], [1]) -_LT_TAGDECL([], [predeps], [1]) -_LT_TAGDECL([], [postdeps], [1]) -_LT_TAGDECL([], [compiler_lib_search_path], [1], - [The library search path used internally by the compiler when linking - a shared library]) -])# _LT_SYS_HIDDEN_LIBDEPS - - -# _LT_LANG_F77_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for a Fortran 77 compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_F77_CONFIG], -[AC_LANG_PUSH(Fortran 77) -if test -z "$F77" || test "X$F77" = "Xno"; then - _lt_disable_F77=yes -fi - -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for f77 test sources. -ac_ext=f - -# Object file extension for compiled f77 test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the F77 compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_F77" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC - lt_save_CFLAGS=$CFLAGS - CC=${F77-"f77"} - CFLAGS=$FFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - GCC=$G77 - if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_TAGVAR(GCC, $1)="$G77" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - GCC=$lt_save_GCC - CC="$lt_save_CC" - CFLAGS="$lt_save_CFLAGS" -fi # test "$_lt_disable_F77" != yes - -AC_LANG_POP -])# _LT_LANG_F77_CONFIG - - -# _LT_LANG_FC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for a Fortran compiler are -# suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_FC_CONFIG], -[AC_LANG_PUSH(Fortran) - -if test -z "$FC" || test "X$FC" = "Xno"; then - _lt_disable_FC=yes -fi - -_LT_TAGVAR(archive_cmds_need_lc, $1)=no -_LT_TAGVAR(allow_undefined_flag, $1)= -_LT_TAGVAR(always_export_symbols, $1)=no -_LT_TAGVAR(archive_expsym_cmds, $1)= -_LT_TAGVAR(export_dynamic_flag_spec, $1)= -_LT_TAGVAR(hardcode_direct, $1)=no -_LT_TAGVAR(hardcode_direct_absolute, $1)=no -_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_separator, $1)= -_LT_TAGVAR(hardcode_minus_L, $1)=no -_LT_TAGVAR(hardcode_automatic, $1)=no -_LT_TAGVAR(inherit_rpath, $1)=no -_LT_TAGVAR(module_cmds, $1)= -_LT_TAGVAR(module_expsym_cmds, $1)= -_LT_TAGVAR(link_all_deplibs, $1)=unknown -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds -_LT_TAGVAR(no_undefined_flag, $1)= -_LT_TAGVAR(whole_archive_flag_spec, $1)= -_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no - -# Source file extension for fc test sources. -ac_ext=${ac_fc_srcext-f} - -# Object file extension for compiled fc test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# No sense in running all these tests if we already determined that -# the FC compiler isn't working. Some variables (like enable_shared) -# are currently assumed to apply to all compilers on this platform, -# and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_FC" != yes; then - # Code to be used in simple compile tests - lt_simple_compile_test_code="\ - subroutine t - return - end -" - - # Code to be used in simple link tests - lt_simple_link_test_code="\ - program t - end -" - - # ltmain only uses $CC for tagged configurations so make sure $CC is set. - _LT_TAG_COMPILER - - # save warnings/boilerplate of simple test code - _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC - lt_save_CFLAGS=$CFLAGS - CC=${FC-"f95"} - CFLAGS=$FCFLAGS - compiler=$CC - GCC=$ac_cv_fc_compiler_gnu - - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) - - if test -n "$compiler"; then - AC_MSG_CHECKING([if libtool supports shared libraries]) - AC_MSG_RESULT([$can_build_shared]) - - AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - AC_MSG_RESULT([$enable_shared]) - - AC_MSG_CHECKING([whether to build static libraries]) - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - AC_MSG_RESULT([$enable_static]) - - _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" - _LT_TAGVAR(LD, $1)="$LD" - - ## CAVEAT EMPTOR: - ## There is no encapsulation within the following macros, do not change - ## the running order or otherwise move them around unless you know exactly - ## what you are doing... - _LT_SYS_HIDDEN_LIBDEPS($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_SYS_DYNAMIC_LINKER($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) - fi # test -n "$compiler" - - GCC=$lt_save_GCC - CC=$lt_save_CC - CFLAGS=$lt_save_CFLAGS -fi # test "$_lt_disable_FC" != yes - -AC_LANG_POP -])# _LT_LANG_FC_CONFIG - - -# _LT_LANG_GCJ_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Java Compiler compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_GCJ_CONFIG], -[AC_REQUIRE([LT_PROG_GCJ])dnl -AC_LANG_SAVE - -# Source file extension for Java test sources. -ac_ext=java - -# Object file extension for compiled Java test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="class foo {}" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC=yes -CC=${GCJ-"gcj"} -CFLAGS=$GCJFLAGS -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)="$LD" -_LT_CC_BASENAME([$compiler]) - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -_LT_TAGVAR(archive_cmds_need_lc, $1)=no - -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) -fi - -AC_LANG_RESTORE - -GCC=$lt_save_GCC -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_GCJ_CONFIG - - -# _LT_LANG_GO_CONFIG([TAG]) -# -------------------------- -# Ensure that the configuration variables for the GNU Go compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_GO_CONFIG], -[AC_REQUIRE([LT_PROG_GO])dnl -AC_LANG_SAVE - -# Source file extension for Go test sources. -ac_ext=go - -# Object file extension for compiled Go test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="package main; func main() { }" - -# Code to be used in simple link tests -lt_simple_link_test_code='package main; func main() { }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC=$CC -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC=yes -CC=${GOC-"gccgo"} -CFLAGS=$GOFLAGS -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)="$LD" -_LT_CC_BASENAME([$compiler]) - -# Go did not exist at the time GCC didn't implicitly link libc in. -_LT_TAGVAR(archive_cmds_need_lc, $1)=no - -_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds -_LT_TAGVAR(reload_flag, $1)=$reload_flag -_LT_TAGVAR(reload_cmds, $1)=$reload_cmds - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - _LT_COMPILER_NO_RTTI($1) - _LT_COMPILER_PIC($1) - _LT_COMPILER_C_O($1) - _LT_COMPILER_FILE_LOCKS($1) - _LT_LINKER_SHLIBS($1) - _LT_LINKER_HARDCODE_LIBPATH($1) - - _LT_CONFIG($1) -fi - -AC_LANG_RESTORE - -GCC=$lt_save_GCC -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_GO_CONFIG - - -# _LT_LANG_RC_CONFIG([TAG]) -# ------------------------- -# Ensure that the configuration variables for the Windows resource compiler -# are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. -m4_defun([_LT_LANG_RC_CONFIG], -[AC_REQUIRE([LT_PROG_RC])dnl -AC_LANG_SAVE - -# Source file extension for RC test sources. -ac_ext=rc - -# Object file extension for compiled RC test sources. -objext=o -_LT_TAGVAR(objext, $1)=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' - -# Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_TAG_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -lt_save_CFLAGS=$CFLAGS -lt_save_GCC=$GCC -GCC= -CC=${RC-"windres"} -CFLAGS= -compiler=$CC -_LT_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) -_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - -if test -n "$compiler"; then - : - _LT_CONFIG($1) -fi - -GCC=$lt_save_GCC -AC_LANG_RESTORE -CC=$lt_save_CC -CFLAGS=$lt_save_CFLAGS -])# _LT_LANG_RC_CONFIG - - -# LT_PROG_GCJ -# ----------- -AC_DEFUN([LT_PROG_GCJ], -[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], - [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], - [AC_CHECK_TOOL(GCJ, gcj,) - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS)])])[]dnl -]) - -# Old name: -AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_GCJ], []) - - -# LT_PROG_GO -# ---------- -AC_DEFUN([LT_PROG_GO], -[AC_CHECK_TOOL(GOC, gccgo,) -]) - - -# LT_PROG_RC -# ---------- -AC_DEFUN([LT_PROG_RC], -[AC_CHECK_TOOL(RC, windres,) -]) - -# Old name: -AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_RC], []) - - -# _LT_DECL_EGREP -# -------------- -# If we don't have a new enough Autoconf to choose the best grep -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_EGREP], -[AC_REQUIRE([AC_PROG_EGREP])dnl -AC_REQUIRE([AC_PROG_FGREP])dnl -test -z "$GREP" && GREP=grep -_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) -_LT_DECL([], [EGREP], [1], [An ERE matcher]) -_LT_DECL([], [FGREP], [1], [A literal string matcher]) -dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too -AC_SUBST([GREP]) -]) - - -# _LT_DECL_OBJDUMP -# -------------- -# If we don't have a new enough Autoconf to choose the best objdump -# available, choose the one first in the user's PATH. -m4_defun([_LT_DECL_OBJDUMP], -[AC_CHECK_TOOL(OBJDUMP, objdump, false) -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) -AC_SUBST([OBJDUMP]) -]) - -# _LT_DECL_DLLTOOL -# ---------------- -# Ensure DLLTOOL variable is set. -m4_defun([_LT_DECL_DLLTOOL], -[AC_CHECK_TOOL(DLLTOOL, dlltool, false) -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) -AC_SUBST([DLLTOOL]) -]) - -# _LT_DECL_SED -# ------------ -# Check for a fully-functional sed program, that truncates -# as few characters as possible. Prefer GNU sed if found. -m4_defun([_LT_DECL_SED], -[AC_PROG_SED -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" -_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) -_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], - [Sed that helps us avoid accidentally triggering echo(1) options like -n]) -])# _LT_DECL_SED - -m4_ifndef([AC_PROG_SED], [ -############################################################ -# NOTE: This macro has been submitted for inclusion into # -# GNU Autoconf as AC_PROG_SED. When it is available in # -# a released version of Autoconf we should remove this # -# macro and use it instead. # -############################################################ - -m4_defun([AC_PROG_SED], -[AC_MSG_CHECKING([for a sed that does not truncate output]) -AC_CACHE_VAL(lt_cv_path_SED, -[# Loop through the user's path and test for sed and gsed. -# Then use that list of sed's as ones to test for truncation. -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for lt_ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then - lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" - fi - done - done -done -IFS=$as_save_IFS -lt_ac_max=0 -lt_ac_count=0 -# Add /usr/xpg4/bin/sed as it is typically found on Solaris -# along with /bin/sed that truncates output. -for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && continue - cat /dev/null > conftest.in - lt_ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >conftest.in - # Check for GNU sed and select it if it is found. - if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then - lt_cv_path_SED=$lt_ac_sed - break - fi - while true; do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >>conftest.nl - $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break - cmp -s conftest.out conftest.nl || break - # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break - lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then - lt_ac_max=$lt_ac_count - lt_cv_path_SED=$lt_ac_sed - fi - done -done -]) -SED=$lt_cv_path_SED -AC_SUBST([SED]) -AC_MSG_RESULT([$SED]) -])#AC_PROG_SED -])#m4_ifndef - -# Old name: -AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([LT_AC_PROG_SED], []) - - -# _LT_CHECK_SHELL_FEATURES -# ------------------------ -# Find out whether the shell is Bourne or XSI compatible, -# or has some other useful features. -m4_defun([_LT_CHECK_SHELL_FEATURES], -[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -AC_MSG_RESULT([$xsi_shell]) -_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) - -AC_MSG_CHECKING([whether the shell understands "+="]) -lt_shell_append=no -( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -AC_MSG_RESULT([$lt_shell_append]) -_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi -_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac -_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl -_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl -])# _LT_CHECK_SHELL_FEATURES - - -# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) -# ------------------------------------------------------ -# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and -# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. -m4_defun([_LT_PROG_FUNCTION_REPLACE], -[dnl { -sed -e '/^$1 ()$/,/^} # $1 /c\ -$1 ()\ -{\ -m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) -} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: -]) - - -# _LT_PROG_REPLACE_SHELLFNS -# ------------------------- -# Replace existing portable implementations of several shell functions with -# equivalent extended shell implementations where those features are available.. -m4_defun([_LT_PROG_REPLACE_SHELLFNS], -[if test x"$xsi_shell" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl - func_split_long_opt_name=${1%%=*} - func_split_long_opt_arg=${1#*=}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl - func_split_short_opt_arg=${1#??} - func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) - - _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) - - _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) - - _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) -fi - -if test x"$lt_shell_append" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) - - _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl - func_quote_for_eval "${2}" -dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ - eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) -fi -]) - -# _LT_PATH_CONVERSION_FUNCTIONS -# ----------------------------- -# Determine which file name conversion functions should be used by -# func_to_host_file (and, implicitly, by func_to_host_path). These are needed -# for certain cross-compile configurations and native mingw. -m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_MSG_CHECKING([how to convert $build file names to $host format]) -AC_CACHE_VAL(lt_cv_to_host_file_cmd, -[case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac -]) -to_host_file_cmd=$lt_cv_to_host_file_cmd -AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) -_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], - [0], [convert $build file names to $host format])dnl - -AC_MSG_CHECKING([how to convert $build file names to toolchain format]) -AC_CACHE_VAL(lt_cv_to_tool_file_cmd, -[#assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac -]) -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) -_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], - [0], [convert $build files to toolchain format])dnl -])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 deleted file mode 100644 index 5d9acd8..0000000 --- a/m4/ltoptions.m4 +++ /dev/null @@ -1,384 +0,0 @@ -# Helper functions for option handling. -*- Autoconf -*- -# -# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# Written by Gary V. Vaughan, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 7 ltoptions.m4 - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) - - -# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) -# ------------------------------------------ -m4_define([_LT_MANGLE_OPTION], -[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) - - -# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) -# --------------------------------------- -# Set option OPTION-NAME for macro MACRO-NAME, and if there is a -# matching handler defined, dispatch to it. Other OPTION-NAMEs are -# saved as a flag. -m4_define([_LT_SET_OPTION], -[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl -m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), - _LT_MANGLE_DEFUN([$1], [$2]), - [m4_warning([Unknown $1 option `$2'])])[]dnl -]) - - -# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) -# ------------------------------------------------------------ -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -m4_define([_LT_IF_OPTION], -[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) - - -# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) -# ------------------------------------------------------- -# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME -# are set. -m4_define([_LT_UNLESS_OPTIONS], -[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), - [m4_define([$0_found])])])[]dnl -m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 -])[]dnl -]) - - -# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) -# ---------------------------------------- -# OPTION-LIST is a space-separated list of Libtool options associated -# with MACRO-NAME. If any OPTION has a matching handler declared with -# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about -# the unknown option and exit. -m4_defun([_LT_SET_OPTIONS], -[# Set options -m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), - [_LT_SET_OPTION([$1], _LT_Option)]) - -m4_if([$1],[LT_INIT],[ - dnl - dnl Simply set some default values (i.e off) if boolean options were not - dnl specified: - _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no - ]) - _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no - ]) - dnl - dnl If no reference was made to various pairs of opposing options, then - dnl we run the default mode handler for the pair. For example, if neither - dnl `shared' nor `disable-shared' was passed, we enable building of shared - dnl archives by default: - _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) - _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) - _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], - [_LT_ENABLE_FAST_INSTALL]) - ]) -])# _LT_SET_OPTIONS - - -## --------------------------------- ## -## Macros to handle LT_INIT options. ## -## --------------------------------- ## - -# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) -# ----------------------------------------- -m4_define([_LT_MANGLE_DEFUN], -[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) - - -# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) -# ----------------------------------------------- -m4_define([LT_OPTION_DEFINE], -[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl -])# LT_OPTION_DEFINE - - -# dlopen -# ------ -LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes -]) - -AU_DEFUN([AC_LIBTOOL_DLOPEN], -[_LT_SET_OPTION([LT_INIT], [dlopen]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `dlopen' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) - - -# win32-dll -# --------- -# Declare package support for building win32 dll's. -LT_OPTION_DEFINE([LT_INIT], [win32-dll], -[enable_win32_dll=yes - -case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) - AC_CHECK_TOOL(AS, as, false) - AC_CHECK_TOOL(DLLTOOL, dlltool, false) - AC_CHECK_TOOL(OBJDUMP, objdump, false) - ;; -esac - -test -z "$AS" && AS=as -_LT_DECL([], [AS], [1], [Assembler program])dnl - -test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl - -test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl -])# win32-dll - -AU_DEFUN([AC_LIBTOOL_WIN32_DLL], -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -_LT_SET_OPTION([LT_INIT], [win32-dll]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `win32-dll' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) - - -# _LT_ENABLE_SHARED([DEFAULT]) -# ---------------------------- -# implement the --enable-shared flag, and supports the `shared' and -# `disable-shared' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_SHARED], -[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([shared], - [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], - [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) - - _LT_DECL([build_libtool_libs], [enable_shared], [0], - [Whether or not to build shared libraries]) -])# _LT_ENABLE_SHARED - -LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) - -# Old names: -AC_DEFUN([AC_ENABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) -]) - -AC_DEFUN([AC_DISABLE_SHARED], -[_LT_SET_OPTION([LT_INIT], [disable-shared]) -]) - -AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_SHARED], []) -dnl AC_DEFUN([AM_DISABLE_SHARED], []) - - - -# _LT_ENABLE_STATIC([DEFAULT]) -# ---------------------------- -# implement the --enable-static flag, and support the `static' and -# `disable-static' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_STATIC], -[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([static], - [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], - [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_static=]_LT_ENABLE_STATIC_DEFAULT) - - _LT_DECL([build_old_libs], [enable_static], [0], - [Whether or not to build static libraries]) -])# _LT_ENABLE_STATIC - -LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) - -# Old names: -AC_DEFUN([AC_ENABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) -]) - -AC_DEFUN([AC_DISABLE_STATIC], -[_LT_SET_OPTION([LT_INIT], [disable-static]) -]) - -AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AM_ENABLE_STATIC], []) -dnl AC_DEFUN([AM_DISABLE_STATIC], []) - - - -# _LT_ENABLE_FAST_INSTALL([DEFAULT]) -# ---------------------------------- -# implement the --enable-fast-install flag, and support the `fast-install' -# and `disable-fast-install' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. -m4_define([_LT_ENABLE_FAST_INSTALL], -[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl -AC_ARG_ENABLE([fast-install], - [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], - [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], - [p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) - -_LT_DECL([fast_install], [enable_fast_install], [0], - [Whether or not to optimize for fast installation])dnl -])# _LT_ENABLE_FAST_INSTALL - -LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) -LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) - -# Old names: -AU_DEFUN([AC_ENABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `fast-install' option into LT_INIT's first parameter.]) -]) - -AU_DEFUN([AC_DISABLE_FAST_INSTALL], -[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `disable-fast-install' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) -dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) - - -# _LT_WITH_PIC([MODE]) -# -------------------- -# implement the --with-pic flag, and support the `pic-only' and `no-pic' -# LT_INIT options. -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. -m4_define([_LT_WITH_PIC], -[AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; - *) - pic_mode=default - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for lt_pkg in $withval; do - IFS="$lt_save_ifs" - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac], - [pic_mode=default]) - -test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) - -_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl -])# _LT_WITH_PIC - -LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) -LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) - -# Old name: -AU_DEFUN([AC_LIBTOOL_PICMODE], -[_LT_SET_OPTION([LT_INIT], [pic-only]) -AC_DIAGNOSE([obsolete], -[$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `pic-only' option into LT_INIT's first parameter.]) -]) - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) - -## ----------------- ## -## LTDL_INIT Options ## -## ----------------- ## - -m4_define([_LTDL_MODE], []) -LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], - [m4_define([_LTDL_MODE], [nonrecursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [recursive], - [m4_define([_LTDL_MODE], [recursive])]) -LT_OPTION_DEFINE([LTDL_INIT], [subproject], - [m4_define([_LTDL_MODE], [subproject])]) - -m4_define([_LTDL_TYPE], []) -LT_OPTION_DEFINE([LTDL_INIT], [installable], - [m4_define([_LTDL_TYPE], [installable])]) -LT_OPTION_DEFINE([LTDL_INIT], [convenience], - [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 deleted file mode 100644 index 9000a05..0000000 --- a/m4/ltsugar.m4 +++ /dev/null @@ -1,123 +0,0 @@ -# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. -# Written by Gary V. Vaughan, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 6 ltsugar.m4 - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) - - -# lt_join(SEP, ARG1, [ARG2...]) -# ----------------------------- -# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their -# associated separator. -# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier -# versions in m4sugar had bugs. -m4_define([lt_join], -[m4_if([$#], [1], [], - [$#], [2], [[$2]], - [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) -m4_define([_lt_join], -[m4_if([$#$2], [2], [], - [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) - - -# lt_car(LIST) -# lt_cdr(LIST) -# ------------ -# Manipulate m4 lists. -# These macros are necessary as long as will still need to support -# Autoconf-2.59 which quotes differently. -m4_define([lt_car], [[$1]]) -m4_define([lt_cdr], -[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], - [$#], 1, [], - [m4_dquote(m4_shift($@))])]) -m4_define([lt_unquote], $1) - - -# lt_append(MACRO-NAME, STRING, [SEPARATOR]) -# ------------------------------------------ -# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. -# Note that neither SEPARATOR nor STRING are expanded; they are appended -# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). -# No SEPARATOR is output if MACRO-NAME was previously undefined (different -# than defined and empty). -# -# This macro is needed until we can rely on Autoconf 2.62, since earlier -# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. -m4_define([lt_append], -[m4_define([$1], - m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) - - - -# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) -# ---------------------------------------------------------- -# Produce a SEP delimited list of all paired combinations of elements of -# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list -# has the form PREFIXmINFIXSUFFIXn. -# Needed until we can rely on m4_combine added in Autoconf 2.62. -m4_define([lt_combine], -[m4_if(m4_eval([$# > 3]), [1], - [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl -[[m4_foreach([_Lt_prefix], [$2], - [m4_foreach([_Lt_suffix], - ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, - [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) - - -# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) -# ----------------------------------------------------------------------- -# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited -# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. -m4_define([lt_if_append_uniq], -[m4_ifdef([$1], - [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], - [lt_append([$1], [$2], [$3])$4], - [$5])], - [lt_append([$1], [$2], [$3])$4])]) - - -# lt_dict_add(DICT, KEY, VALUE) -# ----------------------------- -m4_define([lt_dict_add], -[m4_define([$1($2)], [$3])]) - - -# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) -# -------------------------------------------- -m4_define([lt_dict_add_subkey], -[m4_define([$1($2:$3)], [$4])]) - - -# lt_dict_fetch(DICT, KEY, [SUBKEY]) -# ---------------------------------- -m4_define([lt_dict_fetch], -[m4_ifval([$3], - m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), - m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) - - -# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) -# ----------------------------------------------------------------- -m4_define([lt_if_dict_fetch], -[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], - [$5], - [$6])]) - - -# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) -# -------------------------------------------------------------- -m4_define([lt_dict_filter], -[m4_if([$5], [], [], - [lt_join(m4_quote(m4_default([$4], [[, ]])), - lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), - [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl -]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 deleted file mode 100644 index 07a8602..0000000 --- a/m4/ltversion.m4 +++ /dev/null @@ -1,23 +0,0 @@ -# ltversion.m4 -- version numbers -*- Autoconf -*- -# -# Copyright (C) 2004 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# @configure_input@ - -# serial 3337 ltversion.m4 -# This file is part of GNU Libtool - -m4_define([LT_PACKAGE_VERSION], [2.4.2]) -m4_define([LT_PACKAGE_REVISION], [1.3337]) - -AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.2' -macro_revision='1.3337' -_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) -_LT_DECL(, macro_revision, 0) -]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 deleted file mode 100644 index c573da9..0000000 --- a/m4/lt~obsolete.m4 +++ /dev/null @@ -1,98 +0,0 @@ -# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004. -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 5 lt~obsolete.m4 - -# These exist entirely to fool aclocal when bootstrapping libtool. -# -# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) -# which have later been changed to m4_define as they aren't part of the -# exported API, or moved to Autoconf or Automake where they belong. -# -# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN -# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us -# using a macro with the same name in our local m4/libtool.m4 it'll -# pull the old libtool.m4 in (it doesn't see our shiny new m4_define -# and doesn't know about Autoconf macros at all.) -# -# So we provide this file, which has a silly filename so it's always -# included after everything else. This provides aclocal with the -# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything -# because those macros already exist, or will be overwritten later. -# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. -# -# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. -# Yes, that means every name once taken will need to remain here until -# we give up compatibility with versions before 1.7, at which point -# we need to keep only those names which we still refer to. - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) - -m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) -m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) -m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) -m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) -m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) -m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) -m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) -m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) -m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) -m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) -m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) -m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) -m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) -m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) -m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) -m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) -m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) -m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) -m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) -m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) -m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) -m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) -m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) -m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) -m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) -m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) -m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) -m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) -m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) -m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) -m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) -m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) -m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) -m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) -m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) -m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) -m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) -m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) -m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) -m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) -m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) -m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) -m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) -m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) -m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) -m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) -m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) -m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) -m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) -m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/m4/malloc.m4 b/m4/malloc.m4 deleted file mode 100644 index 704c7e0..0000000 --- a/m4/malloc.m4 +++ /dev/null @@ -1,34 +0,0 @@ -#serial 3 - -dnl From Jim Meyering. -dnl Determine whether malloc accepts 0 as its argument. -dnl If it doesn't, arrange to use the replacement function. -dnl - -AC_DEFUN([jm_FUNC_MALLOC], -[ - dnl xmalloc.c requires that this symbol be defined so it doesn't - dnl mistakenly use a broken malloc -- as it might if this test were omitted. - AC_DEFINE_UNQUOTED(HAVE_DONE_WORKING_MALLOC_CHECK, 1, - [Define if the malloc check has been performed. ]) - - AC_CACHE_CHECK([for working malloc], jm_cv_func_working_malloc, - [AC_TRY_RUN([ - char *malloc (); - int - main () - { - exit (malloc (0) ? 0 : 1); - } - ], - jm_cv_func_working_malloc=yes, - jm_cv_func_working_malloc=no, - dnl When crosscompiling, assume malloc is broken. - jm_cv_func_working_malloc=no) - ]) - if test $jm_cv_func_working_malloc = no; then - AC_LIBOBJ([malloc]) - AC_DEFINE_UNQUOTED(malloc, rpl_malloc, - [Define to rpl_malloc if the replacement function should be used.]) - fi -]) diff --git a/m4/nls.m4 b/m4/nls.m4 deleted file mode 100644 index 003704c..0000000 --- a/m4/nls.m4 +++ /dev/null @@ -1,32 +0,0 @@ -# nls.m4 serial 5 (gettext-0.18) -dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, -dnl Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2003. - -AC_PREREQ([2.50]) - -AC_DEFUN([AM_NLS], -[ - AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE([nls], - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT([$USE_NLS]) - AC_SUBST([USE_NLS]) -]) diff --git a/m4/po.m4 b/m4/po.m4 deleted file mode 100644 index 47f36a4..0000000 --- a/m4/po.m4 +++ /dev/null @@ -1,449 +0,0 @@ -# po.m4 serial 17 (gettext-0.18) -dnl Copyright (C) 1995-2010 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2003. - -AC_PREREQ([2.50]) - -dnl Checks for all prerequisites of the po subdirectory. -AC_DEFUN([AM_PO_SUBDIRS], -[ - AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_PROG_INSTALL])dnl - AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake - AC_REQUIRE([AM_NLS])dnl - - dnl Release version of the gettext macros. This is used to ensure that - dnl the gettext macros and po/Makefile.in.in are in sync. - AC_SUBST([GETTEXT_MACRO_VERSION], [0.18]) - - dnl Perform the following tests also if --disable-nls has been given, - dnl because they are needed for "make dist" to work. - - dnl Search for GNU msgfmt in the PATH. - dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. - dnl The second test excludes FreeBSD msgfmt. - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], - :) - AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) - - dnl Test whether it is GNU msgfmt >= 0.15. -changequote(,)dnl - case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; - *) MSGFMT_015=$MSGFMT ;; - esac -changequote([,])dnl - AC_SUBST([MSGFMT_015]) -changequote(,)dnl - case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; - *) GMSGFMT_015=$GMSGFMT ;; - esac -changequote([,])dnl - AC_SUBST([GMSGFMT_015]) - - dnl Search for GNU xgettext 0.12 or newer in the PATH. - dnl The first test excludes Solaris xgettext and early GNU xgettext versions. - dnl The second test excludes FreeBSD xgettext. - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], - :) - dnl Remove leftover from FreeBSD xgettext call. - rm -f messages.po - - dnl Test whether it is GNU xgettext >= 0.15. -changequote(,)dnl - case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; - *) XGETTEXT_015=$XGETTEXT ;; - esac -changequote([,])dnl - AC_SUBST([XGETTEXT_015]) - - dnl Search for GNU msgmerge 0.11 or newer in the PATH. - AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, - [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) - - dnl Installation directories. - dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we - dnl have to define it here, so that it can be used in po/Makefile. - test -n "$localedir" || localedir='${datadir}/locale' - AC_SUBST([localedir]) - - dnl Support for AM_XGETTEXT_OPTION. - test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= - AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) - - AC_CONFIG_COMMANDS([po-directories], [[ - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - # Treat a directory as a PO directory if and only if it has a - # POTFILES.in file. This allows packages to have multiple PO - # directories under different names or in different locations. - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - POMAKEFILEDEPS="POTFILES.in" - # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$OBSOLETE_ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake < 1.5. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" - else - # The set of available languages was given in configure.in. - # Hide the ALL_LINGUAS assigment from automake < 1.5. - eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' - fi - # Compute POFILES - # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) - # Compute UPDATEPOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) - # Compute DUMMYPOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) - # Compute GMOFILES - # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - UPDATEPOFILES= - DUMMYPOFILES= - GMOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done]], - [# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it - # from automake < 1.5. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - ]) -]) - -dnl Postprocesses a Makefile in a directory containing PO files. -AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], -[ - # When this code is run, in config.status, two variables have already been - # set: - # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, - # - LINGUAS is the value of the environment variable LINGUAS at configure - # time. - -changequote(,)dnl - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - # Find a way to echo strings without interpreting backslash. - if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then - gt_echo='echo' - else - if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then - gt_echo='printf %s\n' - else - echo_func () { - cat < "$ac_file.tmp" - if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then - # Add dependencies that cannot be formulated as a simple suffix rule. - for lang in $ALL_LINGUAS; do - frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` - cat >> "$ac_file.tmp" < /dev/null; then - # Add dependencies that cannot be formulated as a simple suffix rule. - for lang in $ALL_LINGUAS; do - frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` - cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. - -AC_PREREQ([2.50]) - -# Search path for a program which passes the given test. - -dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -AC_DEFUN([AM_PATH_PROG_WITH_TEST], -[ -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "$2", so it can be a program name with args. -set dummy $2; ac_word=[$]2 -AC_MSG_CHECKING([for $ac_word]) -AC_CACHE_VAL([ac_cv_path_$1], -[case "[$]$1" in - [[\\/]]* | ?:[[\\/]]*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in ifelse([$5], , $PATH, [$5]); do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" -dnl If no 4th arg is given, leave the cache variable unset, -dnl so AC_PATH_PROGS will keep looking. -ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -])dnl - ;; -esac])dnl -$1="$ac_cv_path_$1" -if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then - AC_MSG_RESULT([$][$1]) -else - AC_MSG_RESULT([no]) -fi -AC_SUBST([$1])dnl -]) diff --git a/m4/realloc.m4 b/m4/realloc.m4 deleted file mode 100644 index fabc3da..0000000 --- a/m4/realloc.m4 +++ /dev/null @@ -1,34 +0,0 @@ -#serial 3 - -dnl From Jim Meyering. -dnl Determine whether realloc works when both arguments are 0. -dnl If it doesn't, arrange to use the replacement function. -dnl - -AC_DEFUN([jm_FUNC_REALLOC], -[ - dnl xmalloc.c requires that this symbol be defined so it doesn't - dnl mistakenly use a broken realloc -- as it might if this test were omitted. - AC_DEFINE_UNQUOTED(HAVE_DONE_WORKING_REALLOC_CHECK, 1, - [Define if the realloc check has been performed. ]) - - AC_CACHE_CHECK([for working realloc], jm_cv_func_working_realloc, - [AC_TRY_RUN([ - char *realloc (); - int - main () - { - exit (realloc (0, 0) ? 0 : 1); - } - ], - jm_cv_func_working_realloc=yes, - jm_cv_func_working_realloc=no, - dnl When crosscompiling, assume realloc is broken. - jm_cv_func_working_realloc=no) - ]) - if test $jm_cv_func_working_realloc = no; then - AC_LIBOBJ([realloc]) - AC_DEFINE_UNQUOTED(realloc, rpl_realloc, - [Define to rpl_realloc if the replacement function should be used.]) - fi -]) diff --git a/m4/utimbuf.m4 b/m4/utimbuf.m4 deleted file mode 100644 index 4310647..0000000 --- a/m4/utimbuf.m4 +++ /dev/null @@ -1,40 +0,0 @@ -#serial 2 - -dnl From Jim Meyering - -dnl Define HAVE_STRUCT_UTIMBUF if `struct utimbuf' is declared -- -dnl usually in . -dnl Some systems have utime.h but don't declare the struct anywhere. - -AC_DEFUN([jm_STRUCT_UTIMBUF], -[ - AC_CHECK_HEADERS(utime.h) - AC_REQUIRE([AC_HEADER_TIME]) - AC_CACHE_CHECK([for struct utimbuf], fu_cv_sys_struct_utimbuf, - [AC_TRY_COMPILE( - [ -#ifdef TIME_WITH_SYS_TIME -# include -# include -#else -# ifdef HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif -#ifdef HAVE_UTIME_H -# include -#endif - ], - [static struct utimbuf x; x.actime = x.modtime;], - fu_cv_sys_struct_utimbuf=yes, - fu_cv_sys_struct_utimbuf=no) - ]) - - if test $fu_cv_sys_struct_utimbuf = yes; then - AC_DEFINE_UNQUOTED(HAVE_STRUCT_UTIMBUF, 1, -[Define if struct utimbuf is declared -- usually in . - Some systems have utime.h but don't declare the struct anywhere. ]) - fi -]) diff --git a/missing b/missing deleted file mode 100755 index 1c8ff70..0000000 --- a/missing +++ /dev/null @@ -1,367 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. - -scriptversion=2006-05-10.23 - -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 -# Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. - -# 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 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 General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -msg="missing on your system" - -case $1 in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - autom4te touch the output file, or create a stub one - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] - -Send bug reports to ." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - -esac - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). -case $1 in - lex|yacc) - # Not GNU programs, they don't have --version. - ;; - - tar) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case $1 in - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te) - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit 1 - fi - ;; - - makeinfo) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - tar) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/mkinstalldirs b/mkinstalldirs deleted file mode 100755 index ef7e16f..0000000 --- a/mkinstalldirs +++ /dev/null @@ -1,161 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy - -scriptversion=2006-05-11.19 - -# Original author: Noah Friedman -# Created: 1993-05-16 -# Public domain. -# -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -nl=' -' -IFS=" "" $nl" -errstatus=0 -dirmode= - -usage="\ -Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... - -Create each directory DIR (with mode MODE, if specified), including all -leading file name components. - -Report bugs to ." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" - exit $? - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --version) - echo "$0 $scriptversion" - exit $? - ;; - --) # stop option processing - shift - break - ;; - -*) # unknown option - echo "$usage" 1>&2 - exit 1 - ;; - *) # first non-opt arg - break - ;; - esac -done - -for file -do - if test -d "$file"; then - shift - else - break - fi -done - -case $# in - 0) exit 0 ;; -esac - -# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and -# mkdir -p a/c at the same time, both will detect that a is missing, -# one will create a, then the other will try to create a and die with -# a "File exists" error. This is a problem when calling mkinstalldirs -# from a parallel make. We use --version in the probe to restrict -# ourselves to GNU mkdir, which is thread-safe. -case $dirmode in - '') - if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - echo "mkdir -p -- $*" - exec mkdir -p -- "$@" - else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - test -d ./-p && rmdir ./-p - test -d ./--version && rmdir ./--version - fi - ;; - *) - if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && - test ! -d ./--version; then - echo "mkdir -m $dirmode -p -- $*" - exec mkdir -m "$dirmode" -p -- "$@" - else - # Clean up after NextStep and OpenStep mkdir. - for d in ./-m ./-p ./--version "./$dirmode"; - do - test -d $d && rmdir $d - done - fi - ;; -esac - -for file -do - case $file in - /*) pathcomp=/ ;; - *) pathcomp= ;; - esac - oIFS=$IFS - IFS=/ - set fnord $file - shift - IFS=$oIFS - - for d - do - test "x$d" = x && continue - - pathcomp=$pathcomp$d - case $pathcomp in - -*) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - else - if test ! -z "$dirmode"; then - echo "chmod $dirmode $pathcomp" - lasterr= - chmod "$dirmode" "$pathcomp" || lasterr=$? - - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi - fi - fi - - pathcomp=$pathcomp/ - done -done - -exit $errstatus - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/po/.gitignore b/po/.gitignore new file mode 100644 index 0000000..7974c39 --- /dev/null +++ b/po/.gitignore @@ -0,0 +1,19 @@ +*.gmo +*.po +.reference/ +recode.pot +LINGUAS +Makefile.in +Makefile.in.in +Makevars +Makevars.template +POTFILES +Rules-quot +boldquot.sed +en@boldquot.header +en@quot.header +insert-header.sin +quot.sed +remove-potcdate.sin +remove-potcdate.sed +stamp-po diff --git a/po/ChangeLog b/po/ChangeLog deleted file mode 100644 index a6fb840..0000000 --- a/po/ChangeLog +++ /dev/null @@ -1,187 +0,0 @@ -2013-11-30 gettextize - - * Makefile.in.in: Upgrade to gettext-0.18.1. - * Rules-quot: Upgrade to gettext-0.18.1. - -2008-04-18 François Pinard - - * sk.po: Updated. - -2008-04-10 François Pinard - - * sk.po: New file. - -2008-03-06 François Pinard - - * rw.po: Deleted, not currently conveyed by the TP. - * el.po: Updated. - * LINGUAS: Adjusted. - -2008-03-05 François Pinard - - * de.po, nl.po, pt.po: Updated. - * zh_CN.po: New file. - * LINGUAS: Adjusted. - -2008-02-21 gettextize - - * Makefile.in.in: Upgrade to gettext-0.16. - * boldquot.sed: New file, from gettext-0.16. - * en@boldquot.header: New file, from gettext-0.16. - * en@quot.header: New file, from gettext-0.16. - * insert-header.sin: New file, from gettext-0.16. - * quot.sed: New file, from gettext-0.16. - * Rules-quot: New file, from gettext-0.16. - -2005-11-05 François Pinard - - * Makefile.in.in, Makevars, LINGUAS, POTFILE.in: New files. - * Makefile.am: Deleted. - - * po: New name for i18n. Rename all .mo files to .gmo. - * remove-potcdate.sin: New file, from elsewhere. - -2005-10-28 François Pinard - - * Makefile.am (uninstall): Add missing backslash. - - * be.po, ca.po, eo.po, ga.po, he.po, hr.po, hu.po, id.po, pt_BR.po, - ro.po, ru.po, rw.po, tr.po, vi.po: New files. - - * da.po, de.po, el.po, es.po, fr.po, it.po, nl.po, pl.po, pt.po, - sl.po, sv.po: Updated, from the Translation Project. - - * : Save .mo files for new .po files. - -2005-10-27 François Pinard - - * el.po: Replace all 0xD2 characters by 0xB7, to be - ISO 8859-7 as declared, and not CP 1253 as apparently used. - Reported by Christian Weisgerber. - -2005-03-06 gettextize - - * Makefile.in.in: New file, from gettext-0.14.1. - * boldquot.sed: New file, from gettext-0.14.1. - * en@boldquot.header: New file, from gettext-0.14.1. - * en@quot.header: New file, from gettext-0.14.1. - * insert-header.sin: New file, from gettext-0.14.1. - * quot.sed: New file, from gettext-0.14.1. - * remove-potcdate.sin: New file, from gettext-0.14.1. - * Rules-quot: New file, from gettext-0.14.1. - -2001-12-23 François Pinard - - * da.po, es.po, fr.po, gl.po, it.po, sl.po, sv.po: Updated. - * eo.po, he.po, ru.po: New files. - -2000-06-29 François Pinard - - * gl.po: Updated. - -2000-05-31 François Pinard - - * da.po: Updated. - -2000-02-07 François Pinard - - * sl.po: Updated. - -2000-01-27 François Pinard - - * gl.po: New file. - -1999-12-14 François Pinard - - * Makefile.am: New file. - * Makefile.in.in, POTFILES.in, cat-id-tbl.c, stamp-cat-id: Deleted. - -1999-12-13 François Pinard - - * de.po, pl.po, sv.po: Updated. - -1999-11-27 François Pinard - - * it.po: New file. - -1999-06-22 François Pinard - - * el.po: New file. - -1999-06-14 François Pinard - - * de.po: Updated. - -1999-06-01 François Pinard - - * da.po, es.po, fr.po: Updated. - -1999-04-07 François Pinard - - * POTFILES.in: Add renamed or new source files. - Reported by Laurent Bourbeau. - -1999-04-02 François Pinard - - * sv.po: Updated. - -1999-03-18 François Pinard - - * de.po: Updated. - -1998-12-11 François Pinard - - * es.po: Updated. - -1998-12-09 François Pinard - - * da.po: Updated. - -1998-12-07 François Pinard - - * fr.po: Updated. - -1998-11-03 François Pinard - - * POTFILES.in: Rename charset.c to names.c. - -1998-05-01 François Pinard - - * da.po: Updated. - -1998-02-23 François Pinard - - * es.po: Updated. - -1997-12-27 François Pinard - - * es.po: Updated. - -1997-12-09 François Pinard - - * POTFILES.in: Add src/main.c. - Reported by Erick Branderhorst, Niels Kr. Bech Jensen, Primož - Peterlin and Santiago Vila Doncel. - -1997-05-04 François Pinard - - * sv.po: Updated. - -1997-04-28 François Pinard - - * es.po: Updated. - -1996-03-06 François Pinard - - * es.po: New, for Spanish. - Reported by Santiago Vila Doncel. - -1995-07-10 François Pinard - - Distribution unflattened, for using GNU gettext. - * Makefile.in: New file. - -1995-06-22 François Pinard - - * pt.po: New, for Portuguese. - Reported by Vitor Duarte. diff --git a/po/LINGUAS b/po/LINGUAS deleted file mode 100644 index a5f2820..0000000 --- a/po/LINGUAS +++ /dev/null @@ -1,27 +0,0 @@ -be -ca -da -de -el -eo -es -fr -ga -gl -he -hr -hu -id -it -nl -pl -pt -pt_BR -ro -ru -sl -sk -sv -tr -vi -zh_CN diff --git a/po/Makefile.in.in b/po/Makefile.in.in deleted file mode 100644 index 83d8838..0000000 --- a/po/Makefile.in.in +++ /dev/null @@ -1,444 +0,0 @@ -# Makefile for PO directory in any package using GNU gettext. -# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper -# -# This file can be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU General Public -# License but which still want to provide support for the GNU gettext -# functionality. -# Please note that the actual code of GNU gettext is covered by the GNU -# General Public License and is *not* in the public domain. -# -# Origin: gettext-0.18 -GETTEXT_MACRO_VERSION = 0.18 - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - -SHELL = /bin/sh -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datarootdir = @datarootdir@ -datadir = @datadir@ -localedir = @localedir@ -gettextsrcdir = $(datadir)/gettext/po - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -# We use $(mkdir_p). -# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as -# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, -# @install_sh@ does not start with $(SHELL), so we add it. -# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined -# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake -# versions, $(mkinstalldirs) and $(install_sh) are unused. -mkinstalldirs = $(SHELL) @install_sh@ -d -install_sh = $(SHELL) @install_sh@ -MKDIR_P = @MKDIR_P@ -mkdir_p = @mkdir_p@ - -GMSGFMT_ = @GMSGFMT@ -GMSGFMT_no = @GMSGFMT@ -GMSGFMT_yes = @GMSGFMT_015@ -GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) -MSGFMT_ = @MSGFMT@ -MSGFMT_no = @MSGFMT@ -MSGFMT_yes = @MSGFMT_015@ -MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) -XGETTEXT_ = @XGETTEXT@ -XGETTEXT_no = @XGETTEXT@ -XGETTEXT_yes = @XGETTEXT_015@ -XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) -MSGMERGE = msgmerge -MSGMERGE_UPDATE = @MSGMERGE@ --update -MSGINIT = msginit -MSGCONV = msgconv -MSGFILTER = msgfilter - -POFILES = @POFILES@ -GMOFILES = @GMOFILES@ -UPDATEPOFILES = @UPDATEPOFILES@ -DUMMYPOFILES = @DUMMYPOFILES@ -DISTFILES.common = Makefile.in.in remove-potcdate.sin \ -$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) -DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ -$(POFILES) $(GMOFILES) \ -$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) - -POTFILES = \ - -CATALOGS = @CATALOGS@ - -# Makevars gets inserted here. (Don't remove this line!) - -.SUFFIXES: -.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update - -.po.mo: - @echo "$(MSGFMT) -c -o $@ $<"; \ - $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ - -.po.gmo: - @lang=`echo $* | sed -e 's,.*/,,'`; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ - cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo - -.sin.sed: - sed -e '/^#/d' $< > t-$@ - mv t-$@ $@ - - -all: check-macro-version all-@USE_NLS@ - -all-yes: stamp-po -all-no: - -# Ensure that the gettext macros and this Makefile.in.in are in sync. -check-macro-version: - @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ - || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ - exit 1; \ - } - -# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no -# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because -# we don't want to bother translators with empty POT files). We assume that -# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. -# In this case, stamp-po is a nop (i.e. a phony target). - -# stamp-po is a timestamp denoting the last time at which the CATALOGS have -# been loosely updated. Its purpose is that when a developer or translator -# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, -# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent -# invocations of "make" will do nothing. This timestamp would not be necessary -# if updating the $(CATALOGS) would always touch them; however, the rule for -# $(POFILES) has been designed to not touch files that don't need to be -# changed. -stamp-po: $(srcdir)/$(DOMAIN).pot - test ! -f $(srcdir)/$(DOMAIN).pot || \ - test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) - @test ! -f $(srcdir)/$(DOMAIN).pot || { \ - echo "touch stamp-po" && \ - echo timestamp > stamp-poT && \ - mv stamp-poT stamp-po; \ - } - -# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', -# otherwise packages like GCC can not be built if only parts of the source -# have been downloaded. - -# This target rebuilds $(DOMAIN).pot; it is an expensive operation. -# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. -$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed - if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ - package_gnu='GNU '; \ - else \ - package_gnu=''; \ - fi; \ - if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ - msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ - else \ - msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ - fi; \ - case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ - $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ - --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ - --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ - --msgid-bugs-address="$$msgid_bugs_address" \ - ;; \ - *) \ - $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ - --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ - --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ - --package-name="$${package_gnu}@PACKAGE@" \ - --package-version='@VERSION@' \ - --msgid-bugs-address="$$msgid_bugs_address" \ - ;; \ - esac - test ! -f $(DOMAIN).po || { \ - if test -f $(srcdir)/$(DOMAIN).pot; then \ - sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ - sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ - if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ - else \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - else \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - } - -# This rule has no dependencies: we don't need to update $(DOMAIN).pot at -# every "make" invocation, only create it when it is missing. -# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. -$(srcdir)/$(DOMAIN).pot: - $(MAKE) $(DOMAIN).pot-update - -# This target rebuilds a PO file if $(DOMAIN).pot has changed. -# Note that a PO file is not touched if it doesn't need to be changed. -$(POFILES): $(srcdir)/$(DOMAIN).pot - @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ - if test -f "$(srcdir)/$${lang}.po"; then \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ - cd $(srcdir) \ - && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ - $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ - *) \ - $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ - esac; \ - }; \ - else \ - $(MAKE) $${lang}.po-create; \ - fi - - -install: install-exec install-data -install-exec: -install-data: install-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ - for file in $(DISTFILES.common) Makevars.template; do \ - $(INSTALL_DATA) $(srcdir)/$$file \ - $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - for file in Makevars; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -install-data-no: all -install-data-yes: all - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $(DESTDIR)$$dir; \ - if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ - $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ - echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ - fi; \ - done; \ - done - -install-strip: install - -installdirs: installdirs-exec installdirs-data -installdirs-exec: -installdirs-data: installdirs-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ - else \ - : ; \ - fi -installdirs-data-no: -installdirs-data-yes: - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $(DESTDIR)$$dir; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - fi; \ - done; \ - done - -# Define this as empty until I found a useful application. -installcheck: - -uninstall: uninstall-exec uninstall-data -uninstall-exec: -uninstall-data: uninstall-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - for file in $(DISTFILES.common) Makevars.template; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -uninstall-data-no: -uninstall-data-yes: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - done; \ - done - -check: all - -info dvi ps pdf html tags TAGS ctags CTAGS ID: - -mostlyclean: - rm -f remove-potcdate.sed - rm -f stamp-poT - rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po - rm -fr *.o - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f stamp-po $(GMOFILES) - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: - $(MAKE) update-po - @$(MAKE) dist2 -# This is a separate target because 'update-po' must be executed before. -dist2: stamp-po $(DISTFILES) - dists="$(DISTFILES)"; \ - if test "$(PACKAGE)" = "gettext-tools"; then \ - dists="$$dists Makevars.template"; \ - fi; \ - if test -f $(srcdir)/$(DOMAIN).pot; then \ - dists="$$dists $(DOMAIN).pot stamp-po"; \ - fi; \ - if test -f $(srcdir)/ChangeLog; then \ - dists="$$dists ChangeLog"; \ - fi; \ - for i in 0 1 2 3 4 5 6 7 8 9; do \ - if test -f $(srcdir)/ChangeLog.$$i; then \ - dists="$$dists ChangeLog.$$i"; \ - fi; \ - done; \ - if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ - for file in $$dists; do \ - if test -f $$file; then \ - cp -p $$file $(distdir) || exit 1; \ - else \ - cp -p $(srcdir)/$$file $(distdir) || exit 1; \ - fi; \ - done - -update-po: Makefile - $(MAKE) $(DOMAIN).pot-update - test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) - $(MAKE) update-gmo - -# General rule for creating PO files. - -.nop.po-create: - @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ - echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ - exit 1 - -# General rule for updating PO files. - -.nop.po-update: - @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ - if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ - tmpdir=`pwd`; \ - echo "$$lang:"; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ - cd $(srcdir); \ - if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ - $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ - *) \ - $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ - esac; \ - }; then \ - if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.po failed!" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi - -$(DUMMYPOFILES): - -update-gmo: Makefile $(GMOFILES) - @: - -# Recreate Makefile by invoking config.status. Explicitly invoke the shell, -# because execution permission bits may not work on the current file system. -# Use @SHELL@, which is the shell determined by autoconf for the use by its -# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. -Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ - cd $(top_builddir) \ - && @SHELL@ ./config.status $(subdir)/$@.in po-directories - -force: - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/po/Makevars b/po/Makevars deleted file mode 100644 index 3c5e034..0000000 --- a/po/Makevars +++ /dev/null @@ -1,41 +0,0 @@ -# Makefile variables for PO directory in any package using GNU gettext. - -# Usually the message domain is the same as the package name. -DOMAIN = $(PACKAGE) - -# These two variables depend on the location of this directory. -subdir = po -top_builddir = .. - -# These options get passed to xgettext. -XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ - -# This is the copyright holder that gets inserted into the header of the -# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding -# package. (Note that the msgstr strings, extracted from the package's -# sources, belong to the copyright holder of the package.) Translators are -# expected to transfer the copyright for their translations to this person -# or entity, or to disclaim their copyright. The empty string stands for -# the public domain; in this case the translators are expected to disclaim -# their copyright. -COPYRIGHT_HOLDER = Free Software Foundation, Inc. - -# This is the email address or URL to which the translators shall report -# bugs in the untranslated strings: -# - Strings which are not entire sentences, see the maintainer guidelines -# in the GNU gettext documentation, section 'Preparing Strings'. -# - Strings which use unclear terms or require additional context to be -# understood. -# - Strings which make invalid assumptions about notation of date, time or -# money. -# - Pluralisation problems. -# - Incorrect English spelling. -# - Incorrect formatting. -# It can be your email address, or a mailing list address where translators -# can write to without being subscribed, or the URL of a web page through -# which the translators can contact you. -MSGID_BUGS_ADDRESS = recode-bugs@iro.umontreal.ca - -# This is the list of locale categories, beyond LC_MESSAGES, for which the -# message catalogs shall be used. It is usually empty. -EXTRA_LOCALE_CATEGORIES = diff --git a/po/Makevars.template b/po/Makevars.template deleted file mode 100644 index 32692ab..0000000 --- a/po/Makevars.template +++ /dev/null @@ -1,41 +0,0 @@ -# Makefile variables for PO directory in any package using GNU gettext. - -# Usually the message domain is the same as the package name. -DOMAIN = $(PACKAGE) - -# These two variables depend on the location of this directory. -subdir = po -top_builddir = .. - -# These options get passed to xgettext. -XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ - -# This is the copyright holder that gets inserted into the header of the -# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding -# package. (Note that the msgstr strings, extracted from the package's -# sources, belong to the copyright holder of the package.) Translators are -# expected to transfer the copyright for their translations to this person -# or entity, or to disclaim their copyright. The empty string stands for -# the public domain; in this case the translators are expected to disclaim -# their copyright. -COPYRIGHT_HOLDER = Free Software Foundation, Inc. - -# This is the email address or URL to which the translators shall report -# bugs in the untranslated strings: -# - Strings which are not entire sentences, see the maintainer guidelines -# in the GNU gettext documentation, section 'Preparing Strings'. -# - Strings which use unclear terms or require additional context to be -# understood. -# - Strings which make invalid assumptions about notation of date, time or -# money. -# - Pluralisation problems. -# - Incorrect English spelling. -# - Incorrect formatting. -# It can be your email address, or a mailing list address where translators -# can write to without being subscribed, or the URL of a web page through -# which the translators can contact you. -MSGID_BUGS_ADDRESS = - -# This is the list of locale categories, beyond LC_MESSAGES, for which the -# message catalogs shall be used. It is usually empty. -EXTRA_LOCALE_CATEGORIES = diff --git a/po/Rules-quot b/po/Rules-quot deleted file mode 100644 index af52487..0000000 --- a/po/Rules-quot +++ /dev/null @@ -1,47 +0,0 @@ -# Special Makefile rules for English message catalogs with quotation marks. - -DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot - -.SUFFIXES: .insert-header .po-update-en - -en@quot.po-create: - $(MAKE) en@quot.po-update -en@boldquot.po-create: - $(MAKE) en@boldquot.po-update - -en@quot.po-update: en@quot.po-update-en -en@boldquot.po-update: en@boldquot.po-update-en - -.insert-header.po-update-en: - @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ - if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ - tmpdir=`pwd`; \ - echo "$$lang:"; \ - ll=`echo $$lang | sed -e 's/@.*//'`; \ - LC_ALL=C; export LC_ALL; \ - cd $(srcdir); \ - if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ - if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "creation of $$lang.po failed!" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi - -en@quot.insert-header: insert-header.sin - sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header - -en@boldquot.insert-header: insert-header.sin - sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header - -mostlyclean: mostlyclean-quot -mostlyclean-quot: - rm -f *.insert-header diff --git a/po/be.gmo b/po/be.gmo deleted file mode 100644 index 29bba98..0000000 Binary files a/po/be.gmo and /dev/null differ diff --git a/po/be.po b/po/be.po deleted file mode 100644 index 6c33de3..0000000 --- a/po/be.po +++ /dev/null @@ -1,540 +0,0 @@ -# SOME DESCRIPTIVE TITLE -# Copyright (C) 2003 Free Software Foundation, Inc. -# Hleb Valoska , 2003. -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2003-04-06 23:16+0300\n" -"Last-Translator: Ales Nyakhaychyk \n" -"Language-Team: Belarusian \n" -"Language: be\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 0.9.6\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Без памылак" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Некананічнасьць на ўваходзе" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Двухсэнсоўнасьць на выхадзе" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Неперакладальнае на ўваходзе" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Няправільнае на ўваходзе" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Сыстэма выявіла праблему" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Няправільнае ўжываньне бібліятэкі перакадаваньня" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Нутраная памылка перакадаваньня" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Гэтая праграма зьяўляецца свабодным праграмным забесьпячэньнем, яе\n" -"можна распаўсюджваць і/ці зьмяняць паводле ўмоваў Агульнай Публічнай\n" -"Ліцэнзіі (GPL) GNU, надрукаванай Free Software Foundation; другой ці\n" -"(на твой погляд) пазьнейшай вэрсіі.\n" -"\n" -"Гэтая праграма разпаўсюджваецца з надзеяй, што яна будзе карыснай,\n" -"але БЕЗЬ НІЯКАЕ ГАРАНТЫІ; нават без гарантыі КАШТОЎНАСЬЦІ ці\n" -"ПРЫДАТНАСЬЦІ ДЛЯ КАНКРЭТНАЕ МЭТЫ. Глядзі падрабязнасьці ў GNU GPL.\n" -"\n" -"Ты мусіш атрымаць копію Агульнай Публічнай Ліцэнзіі (GPL) GNU разам\n" -"з гэтай праграмай, калі не, напішы на адрас Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Паспрабуй `%s %s', каб атрымаць болей інфармацыі.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "Свабодная `recode' зьмяняе знаказбор ці спосаб кадаваньня файла.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Ужывай: %s [ОПЦЫІ]... [ [ЗНАКАЗБОР] | ЗАПЫТ [ФАЙЛ]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Калі парамэтар абавязковы для доўгае опцыі, то ён абавязковы й для\n" -"кароткае опцыі таксама. Аналягічна для неабавязковых парамэтраў.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Адлюстраваньне:\n" -" -l, --list[=ФАРМАТ] паказаць адзін ці ўсе вядомыя знаказборы\n" -" -k, --known=ПАРЫ абмежаваць знаказборы адпаведна сьпісу ПАР\n" -" -h, --header[=[МОВА/]ІМЯ] запісаць табліцу ІМЯ у stdout на МОВЕ й " -"выйсьці\n" -" -F, --freeze-tables запісаць модуль С, які ўтрымлівае ўсе " -"знаказборы\n" -" -T, --find-subsets паведаміць, якія знаказборы зьяўляюцца " -"падмноствам \n" -" іншых\n" -" -C, --copyright надрукаваць зьвесткі аб аўтарскіх правох і " -"ўмовах\n" -" капіяваньня\n" -" --help надрукаваць гэты экран даведкі й выйсьці\n" -" --version надрукаваць зьвесткі аб вэрсіі праграмы й " -"выйсьці\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Рэжымы працы:\n" -" -v, --verbose інфармаваць пра пасьлядоўнасьць крокаў і \n" -" зьдзейсьненую працу\n" -" -q, --quiet, --silent не паведамляць пра незваротныя перакадаваньні\n" -" -f, --force зьдзяйсьняць перакадаваньне нават у выпадку\n" -" атрыманьня незваротнага выніку\n" -" -t, --touch абнавіць час перакадаваных файлаў пасьля іх\n" -" замены\n" -" -i, --sequence=files ужываць часовыя файлы для працы\n" -" --sequence=memory ужываць буфэры памяці для працы\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=pipe ужываць каналы пры апрацоўцы\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe аналягічнае -i (на гэтай сыстэме)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Зьмяненьне парамэтраў працы:\n" -" -s, --strict строгая адпаведнасьць, нават са стратай знакаў\n" -" -d, --diacritics канвэртаваць толькі дыякрытычныя знакі, кшталту\n" -" ўжываных у HTML ці LaTeX\n" -" -S, --source[=МОВА] перакадоўваць толькі радкі й камэнтары МОВЫ\n" -" -c, --colons ужываць двухкроп'е замест двухкосься ў " -"дыякрытычных\n" -" знаках\n" -" -g, --graphics справаць замяніць рамкі IBMPC знакамі ASCII\n" -" -x, --ignore=ЗНАКАЗБОР ігнараваць ЗНАКАЗБОР, абіраючы шлях кадаваньня\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"Опцыя -l без ФАРМАТУ ні ЗНАКАЗБОРУ паказвае вядомыя табліцы знакаў і " -"спосабы\n" -"кадаваньня.\n" -"ФАРМАТ -- `decimal', `octal', `hexadecimal' ці `full' (ці адзін з `dohf').\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Калі не атачэньне ня мае усталёўкі DEFAULT_CHARSET, то ЗНАКАЗБОР адпавядае\n" -"кадзіроўцы лякалі, якая вызначаецца з LC_ALL, LC_CTYPE, LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Опцыя -k адлюстроўвае магчымыя `зыходныя' знаказборы для зададзенага\n" -"`выніковага' ЗНАКАЗБОРУ, з ПАРАМІ перакадаваньня ў фармаце ДА1:ПА1,\n" -"ДА2:ПА2,..., дзе ДА і ПА зьяўляюцца кодамі, зададзенымі дзесятковымі " -"лікамі.\n" -"І зыходныя, і выніковыя знаказборы мусяць быць таблічнымі.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"МОВА задае мову праграмаваньня, прыкладам `c', `perl' ці `po'; даўнята `c'.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"ЗАПЫТ: ПАДЗАПЫТ[,ПАДЗАПЫТ]...; ПАДЗАПЫТ: КАДЗІРОЎКА[..КАДЗІРОЎКА]...;\n" -"КАДЗІРОЎКА: [ЗНАКАЗБОР][/[СПОСАБ КАДАВАНЬНЯ]]...; ЗАПЫТ часта выглядае\n" -"як ПЕРАД..ПАСЬЛЯ, дзе ПЕРАД і ПАСЬЛЯ -- знаказборы. Замест прапушчанага\n" -"ЗНАКАЗБОРУ ужываецца даўняты знаказбор сыстэмы; замест прапушчанага\n" -"СПОСАБУ ўжываецца спосаб, стандартны для ЗНАКАЗБОРА; адзін / без " -"зададзенага\n" -"СПОСАБУ азначае адсутнасьць СПОСАБАЎ увогуле. Глядзі кіраўніцтва.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Калі ня ўжытыя ані -i, ані -p, мяркуецца -p, калі ня дадзены ФАЙЛ, ці -i у \n" -"адваротным выпадку.\n" -"Кожны ФАЙЛ перакадоўваецца паверх самога сябе, зьнішчаючы арыгінал. Калі " -"ФАЙЛ\n" -"ня дадзены, то праграма працуе фільтрам і перакадоўвае з stdin на stdout.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Паведамляй пра памылкі на адрас .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "Двухсэнсоўная пасьлядоўнасьць: `%s'" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "Невядомая пасьлядоўнасьць: `%s'" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "Невядомая мова: `%s'" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Невядомая мова: `%s'" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Двухсэнсоўны фармат: `%s'" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Невядомы фармат: `%s'" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Напісаў: Franc,ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Гэта свабоднае праграмовае забесьпячэньне; глядзі ўмовы капіяваньня ў\n" -"зыходным кодзе. Няма НІЯКАЕ гарантыі, нават гарантыі КАШТОЎНАСЬЦІ ці\n" -"ПРЫДАТНАСЬЦІ ДЛЯ КАНКРЭТНАЕ МЭТЫ.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Невядомы знак: `%s'" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Знаказбор `%s' невядомы ці двухсэнсоўны" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Прапушчаны патрэбны парамэтар" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Сынтаксыс не найлепшы, ужывай, калі ласка, `%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Памылковы запыт: `%s'" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Перакадаваньне %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " зроблена\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " няўдалае: %s у кроку `%s..%s'\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "Няўдалае %s: %s у кроку `%s..%s'" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s у кроку `%s..%s'" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Знаказбор %s ужо існуе і не зьяўляецца %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "Немагчыма адлюстраваць `%s', бо няма імёнаў для гэтага знаказбора" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Дзес Вас Шасн UCS2 Мнэма %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Нажаль няма імёнаў для `%s'" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Працэдура закадаваньня ўжываецца часьцей, як адзін раз для `%s'" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Працэдура раскадаваньня ўжываецца часьцей, як адзін раз для `%s'" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Скончылася віртуальная памяць" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Коды %3d і %3d абодва кадуюцца ў %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Ніводзін знак не кадуецца ў %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Зваротнае пераўтварэньне па дадзенай табліцы `адзін-у-адзін'" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Дыягностыка пераўтварэньня з `%s' у `%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Пара нумар %d: <%3d, %3d> канфліктуе з <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Не магу ўтварыць табліцу з мноства вядомых пар" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Простае перакадаваньне, якому не патрэбная табліца" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Перакадаваньне заскладанае для простай табліцы" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "" -"%sТабліца перакадаваньня, аўтаматычна створаная з дапамогай GNU `%s' %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%sдля пасьлядоўнасьці %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Няма табліцы для друку" - -#: src/request.c:34 -msgid "reversible" -msgstr "зваротная" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s у %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "байт" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "пераменная" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Недасяжна*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*простая копія*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Скончылася віртуальная памяць!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Няўдалая ініцыялізацыя кроку" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Няўдалая ініцыялізацыя кроку (неапрацаваныя опцыі)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Запыт: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Скарочаны да: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Невядомае імя спосабу кадаваньня `%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Немагчыма перакадаваць з `%s' у `%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "У запыце чакалася `..'" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Статус чаканьня даччынага працэсу -- 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Мнэма Апісаньне\n" -"\n" diff --git a/po/boldquot.sed b/po/boldquot.sed deleted file mode 100644 index 4b937aa..0000000 --- a/po/boldquot.sed +++ /dev/null @@ -1,10 +0,0 @@ -s/"\([^"]*\)"/“\1”/g -s/`\([^`']*\)'/‘\1’/g -s/ '\([^`']*\)' / ‘\1’ /g -s/ '\([^`']*\)'$/ ‘\1’/g -s/^'\([^`']*\)' /‘\1’ /g -s/“”/""/g -s/“/“/g -s/”/”/g -s/‘/‘/g -s/’/’/g diff --git a/po/ca.gmo b/po/ca.gmo deleted file mode 100644 index 87a4e31..0000000 Binary files a/po/ca.gmo and /dev/null differ diff --git a/po/ca.po b/po/ca.po deleted file mode 100644 index 9dba91a..0000000 --- a/po/ca.po +++ /dev/null @@ -1,592 +0,0 @@ -# Catalan translation of GNU recode. -# Copyright � 2002, 2003 Free Software Foundation, Inc. -# Jordi Mallach , 2002, 2003. -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2003-08-30 16:48+0200\n" -"Last-Translator: Jordi Mallach \n" -"Language-Team: Catalan \n" -"Language: ca\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 0.9.6\n" - -#: src/main.c:142 -msgid "No error" -msgstr "No hi ha cap error" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "L'entrada no �s can�nica" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "L'eixida �s ambigua" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "L'entrada no �s convertible" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "L'entrada �s inv�lida" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "El sistema ha detectat un problema" - -# El verb "to misuse" vol dir "desaprofitar" o tamb� "fer mal �s". Crec -# que en aquest cas la traducci� m�s correcta seria: "Mal �s de la -# biblioteca de recodificaci�" o, si es prefereix, "�s incorrecte de -# la biblioteca de recodificaci�". mvs -# B�, les teues frases s�n en "indi", que diem Ivan i jo... -# es a dir, no s�n frases completes. No veig massa difer�ncia entre -# ��s incorrecte de la biblioteca de recodificaci� i la forma que he -# fet servir jo... jm -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "L'�s de la biblioteca de recodificaci� �s incorrecte" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "S'ha produ�t un error intern de recodificaci�" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"A�� �s programari lliure; podeu redistribuir-lo i/o modificar-lo\n" -"sota els termes de la Llic�ncia P�blica General GNU tal i com ha estat\n" -"publicada per la Free Software Foundation; b� sota la versi� 2 de la\n" -"Llic�ncia o b� (si ho preferiu) sota qualsevol versi� posterior.\n" -"\n" -"Aquest programa es distribueix amb l'expectativa de que ser� �til,\n" -"per� SENSE CAP GARANTIA; ni tan sols la garantia impl�cita de\n" -"COMERCIABILITAT o ADEQUACI� PER UN PROP�SIT PARTICULAR. Vegeu la\n" -"Llic�ncia P�blica General GNU per obtenir-ne m�s detalls.\n" -"\n" -"Haur�eu d'haver rebut una c�pia de la Llic�ncia P�blica General GNU\n" -"juntament amb aquest programa; en cas contrari, escriviu a la Free\n" -"Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,\n" -"MA 02111, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Proveu �%s %s� per a obtindre m�s informaci�.\n" - -# On posa "entre varios", a�� no �s un castellanisme?. -# Em sembla que seria m�s correcte posar "diversos" en voltes de "varios". mvs -# I tant... jm -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"El �recode� lliure converteix fitxers entre diversos jocs de car�cters i " -"superf�cies.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Forma d'�s: %s [OPCI�]... [ [JOC DE CAR�CTERS] | PETICI� [FITXER]... ]\n" - -# Aquest programa s'executa en terminal o en un -# servidor x?. Si �s per a una terminal potser caldria respectar -# un salt de l�nia fins la columna n�m. 70. S'edita el missatge -# a un editor de textos que aplique salt de l�nia autom�ticament, -# i el copiem al programa traductor (si feu servir kbabel, no -# oblideu d'afegir "\n" al final de cada l�nia). mvs -# S�, �s en mode text, i corregit. El kbabel us fa ficar el salt -# de l�nia a ma? Qu� mal... :) jm -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Si una opci� llarga mostra un argument com requerit, aleshores tamb� �s\n" -"requerit per a l'opci� curta equivalent, i de forma similar per als\n" -"arguments opcionals.\n" - -# Que tal si traduim "copyright", per "drets reservats"?. -# Tamb� on posa "copying conditions", �aix� no vol dir -# "condicions de l'autor" en voltes de "condicions de c�pia"? mvs -# �copyright� != �drets reservats�, aix� seria �all rights reserved� -# o similar. Crec que �copying conditions� �s l'evident: �condicions -# de c�pia�. El tema de traduir o no �copyright� s'ha discutit alguna -# vegada si no recorde mal, i sempre s'ha preferit no traduir-ho. jm -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Llistats:\n" -" -l, --list[=FORMAT] llista un o tots els jocs de car�cters i �lies\n" -" coneguts\n" -" -k, --known=PARELLES limita els jocs de car�cters d'acord amb la\n" -" llista de PARELLES conegudes\n" -" -h, --header=[={LN/}NOM} mostra la taula NOM a l'eixida est�ndard\n" -" utilitzant LN, i surt a continuaci�\n" -" -F, --freeze-tables mostra un m�dul de C contenint totes les " -"taules\n" -" -T, --find-subsets informa de tots els jocs de car�cters que s�n\n" -" subconjunts d'altres\n" -" -C, --copyright mostra el Copyright i les condicions de c�pia\n" -" --help mostra aquesta ajuda i ix\n" -" --version mostra la informaci� sobre la versi� i ix\n" - -# Una "passa" no �s un "pas". "Passa" es un sin�nim de -# epid�mia. Per tant, hauria de posar-se "passos" i no "passes". -# Concretant: -# "step" �s "pas" ("passos") o "iteraci�" -# "pass" �s "passi" ("passis"), sin�nim de perm�s -# ("cinema session pass" = "passi de sessi� de cinema"). mvs -# Uff. Aquesta errada l'arrossegue en altres traduccions, aleshores. -# Caldr� fer una bonica sessi� de greps. jm -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Modes d'operaci�:\n" -" -v, --verbose explica la seq��ncia de passos i informa del " -"progr�s\n" -" -q, --quiet, --silent inhabilita els missatges sobre recodificacions\n" -" irreversibles\n" -" -f, --force for�a les recodificacions incl�s si s�n " -"irreversibles\n" -" -t, --touch toca els fitxers recodificats despr�s del " -"reempla�\n" -" -i, --sequence=files utilitza fitxers intermedis per als passos\n" -" --sequence=memory utilitza b�fers de mem�ria per als passos\n" - -# Vegeu la mateixa observaci� que vaig fer al missatge n�m 15. mvs -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr "" -" -p, --sequence=pipe utilitza conductes per als passos de\n" -" seq��ncies\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe el mateix que -i (en aquest sistema)\n" - -# A l'opci� "-g" has obviat la paraula "rules", que -# voldria dir "normes". Aix�, "IBMPC rulers" voldria dir -# "normes IBMPC", encara que no estic del tot segur. mvs -# No, he tradu�t �rules� per �gr�fics�. Es refereix als car�cters -# amb els que es dibuixen les caixetes i tal. jm -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Ajustament afinat:\n" -" -s, --strict utilitza coincid�ncies estrictes, encara que es\n" -" perden car�cters\n" -" -d, --diacritics converteix nom�s els accents o pareguts per a\n" -" HTML/LaTeX\n" -" -S, --source[=LN] limita la recodificaci� a cadenes i comentaris\n" -" segons LN\n" -" -c, --colons utilitza dos punts en comptes de cometes dobles\n" -" per a la di�resis\n" -" -g, --graphics aproxima els gr�fics IBMPC amb gr�fics ASCII\n" -" -x, --ignore=JOC descarta JOC al escollir un cam� de recodificaci�\n" - -# "L'opci� "-l" sense cap FORMAT ni JOC DE CARACTERS llista..." mvs -# Fet. jm -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"L'opci� -l sense cap FORMAT o JOC DE CAR�CTERS llista els jocs de car�cters\n" -"i facetes disponibles. FORMAT �s �decimal�, �octal�, �hexadecimal� o �full�\n" -"(o un de �dohf�).\n" - -# "... de la que dep�n...", aix� �s un castellanisme. -# El correcte �s dir: "... de la qual dep�n...", o -# "... de qu� dep�n...", (ull!: amb laccent tancat). mvs -# Oops. Volia haver ficat �de la qual�. jm -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"A no ser que s'establisca DEFAULT_CHARSET a l'entorn, el valor\n" -"predeterminat de CHARSET �s la codificaci� de la qual depen el locale,\n" -"determinat per LC_ALL, LC_CTYPE, LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Amb -k, es mostren els possibles jocs de car�cters �abans� per al JOC\n" -"�despr�s� donat, sent ambd�s jocs de car�cters tabulars, amb PARELLES de la\n" -"forma �ABAN1:DESP1,ABAN2:DESP2,...� i sent els ABAN i DESP codis donats com\n" -"n�meros decimals.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN �s un llenguatge, pot ser �c�, �perl� o �po; �c� �s el predeterminat.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"PETICI� �s SUBPETICI�[,SUBPETICI�]...;\n" -"SUBPETICI� �s CODIFICACI�[..CODIFICACI�]...\n" -"CODIFICACI� �s [JOC DE CAR�CTERS[/[FACETA]]...;\n" -"PETICI� sovint �s ABANS..DESPR�S,\n" -"amb ABANS i DESPR�S sent jocs de car�cters. Un JOC DE CAR�CTERS om�s\n" -"implica el joc de car�cters habitual; una [/FACETA] omesa vol dir la faceta\n" -"impl�cita per al JOC DE CAR�CTERS; un / amb una faceta buida vol dir que no\n" -"hi ha faceta. Vegeu el manual.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Si no es dona cap de -i i -p, es suposa -p si no hi ha cap FITXER, si no, -" -"i.\n" -"Cada FITXER es recodifica damunt d'ell mateix, destru�nt l'original. Si no\n" -"s'especifica cap FITXER, aleshores actua com un filtre i recodifica\n" -"l'entrada est�ndard a l'eixida est�ndard.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Informeu dels errors a .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "La seq��ncia �%s� �s amb�gua" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "La seq��ncia �%s� �s desconeguda" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "El llenguatge �%s� �s ambigu" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "El llenguatge �%s� �s desconegut" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "El format �%s� �s ambigu" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "El format �%s� �s desconegut" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Escrit per Fran�ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright � 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"A�� �s Programari Lliure; vegeu el codi font per les condicions de\n" -"c�pia. NO hi ha CAP garantia; ni tan sols de COMERCIABILITAT o ADEQUACI�\n" -"PER UN PROP�SIT DETERMINAT.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "El s�mbol �%s� �s desconegut" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "El joc de car�cters �%s� �s desconegut o ambigu" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Manca un argument requerit" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Aquesta sintaxi �s desaconsellada, si us plau, utilitzeu �%s�" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "La petici� �%s� �s err�nia" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "S'est� recodificant %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " fet\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " ha fallat: %s al pas �%s..%s�\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s ha fallat: %s al pas �%s..%s�" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s al pas �%s..%s�" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "El joc de car�cters %s ja existeix i no �s %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "" -"No es pot llistar �%s�, no hi ha noms disponibles per a aquest\n" -"joc de car�cters" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Oct Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "No hi ha noms disponibles per a �%s�" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "S'ha establert �resurfacer� m�s d'una vegada per a �%s�" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "S'ha establert �unsurfacer� m�s d'una vegada per a �%s�" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "La mem�ria virtual s'ha exhaurit" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Els codis %3d i %3d es recodifiquen ambd�s a %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Cap car�cter es recodifica a %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "No es pot invertir la taula un-a-un donada" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "S'estan seguint els diagn�stics per �%s� a �%s�" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "La parella no. %d: <%3d, %3d> �s conflictiu amb <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "No es pot completar la taula des del joc de parelles conegudes" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Recodificaci� identitat, no mereix una taula" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "La recodificaci� �s massa complexa per a una simple taula" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sTaula de conversi� generada mec�nicament per Free �%s� %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%sper la seq��ncia %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "No hi ha cap taula a imprimir" - -#: src/request.c:34 -msgid "reversible" -msgstr "reversible" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s a %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "variable" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Impossible*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*simple c�pia*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "La mem�ria virtual s'ha exhaurit!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "L'inicialitzaci� del pas ha fallat" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "L'inicialitzaci� del pas ha fallat (opcions no processades)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Petici�: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Encogit a: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "El nom de faceta �%s� �s desconegut" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "No hi ha manera de recodificar de �%s� a �%s�" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "S'esperava �..� a la petici�" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "L'estat d'espera del proc�s fill �s 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "UCS2 Mne Descripci�\n" diff --git a/po/da.gmo b/po/da.gmo deleted file mode 100644 index c9bc696..0000000 Binary files a/po/da.gmo and /dev/null differ diff --git a/po/da.po b/po/da.po deleted file mode 100644 index f50cb2a..0000000 --- a/po/da.po +++ /dev/null @@ -1,536 +0,0 @@ -# Danish message catalog for GNU recode. -# Copyright (C) 1997 Free Software Foundation, Inc. -# Niels Kristian Bech Jensen , 1997-2000. -# Keld Simonsen , 2001. -# -# Reviewed: 2000-09-09: byrial@image.dk -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2001-09-12 11:05+02:00\n" -"Last-Translator: Niels Kristian Bech Jensen \n" -"Language-Team: Danish \n" -"Language: da\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Ingen fejl" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Unormale inddata" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Flertydige uddata" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Uovers�ttelige inddata" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Ugyldige inddata" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Systemet fandt et problem" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Misbrug af omkodningsbibliotek" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Intern omkodningsfejl" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Dette program er fri software; du m� redistribuere det og/eller modificere\n" -"det under betingelserne givet i GNU General Public License som publiceret " -"af\n" -"Free Software Foundation; enten version 2, eller (efter dit valg) en senere\n" -"version.\n" -"\n" -"Dette program distribueres i h�bet om, at det vil v�re nyttigt, men UDEN\n" -"NOGEN GARANTI; end ikke en underforst�et garanti for SALGBARHED eller\n" -"ANVENDELIGHED TIL ET GIVET FORM�L. Se GNU General Public License for\n" -"flere detaljer.\n" -"\n" -"Du skulle have modtaget en kopi af GNU General Public License sammen med\n" -"dette program; hvis ikke, s� skriv til Free Software Foundation, Inc.,\n" -"59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Pr�v '%s %s' for mere information.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Fri 'recode' konverterer filer mellem forskellige tegns�t og indpakninger.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Brug: %s [TILVALG]... [ [TEGNS�T] | FORESP�RGSEL [FIL]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Hvis et langt tilvalg viser et argument som obligatorisk, s� er det ogs�\n" -"obligatorisk for det tilsvarende korte tilvalg. P� samme m�de for valgfri\n" -"argumenter.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Lister:\n" -" -l, --list[=FORMAT] vis liste over et eller alle kendte tegns�t\n" -" -k, --known=PAR begr�ns tegns�t til liste af kendte PAR\n" -" -h, --header[=[SPR/]NAVN] skriv tabel NAVN til std-ud i SPR og afslut\n" -" -F, --freeze-tables udskriv et C-modul indeholdende alle tabeller\n" -" -T, --find-subsets find alle tegns�t, der er delm�ngder af andre\n" -" -C, --copyright vis copyright- og kopieringsbetingelser\n" -" --help vis denne hj�lp og afslut\n" -" --version vis versionsnummer og afslut\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Virkem�der:\n" -" -v, --verbose vis r�kkef�lgen af genneml�b, og rapport�r " -"fremskridt\n" -" -q, --quiet, --silent udelad meddelelser om irreversible omkodninger\n" -" -f, --force gennemtving omkodninger, selv hvis de ikke er\n" -" reversible\n" -" -t, --touch giv den omkodede fil system-urets tid\n" -" -i, --sequence=files brug midlertidige filer mellem genneml�bene\n" -" --sequence=memory brug hukommelsesbuffere mellem genneml�bene\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=pipe brug pibe-mekanismen mellem genneml�bene\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe samme som -i (p� dette system)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Finjustering:\n" -" -s, --strict brug kun n�jagtige tegns�t selvom der mistes tegn\n" -" -d, --diacritics omkod kun diakritiske/specielle tegn i HTML/LaTeX\n" -" -S, --source[=SPR] begr�ns omkodning til strenge og kommentarer som\n" -" for SPR\n" -" -c, --colons brug koloner i stedet for anf�rselstegn som trema " -"(�)\n" -" -g, --graphics tiln�rm IBMPC linie- og kassetegn med ASCII-grafik\n" -" -x, --ignore=TEGNS�T ignor�r TEGNS�T n�r en omkodningsrute v�lges\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"Tilvalg -l uden FORMAT eller TEGNS�T viser en liste over alle tegns�t og\n" -"indpakninger. FORMAT er et af ordene 'decimal', 'octal', 'hexadecimal' " -"eller\n" -"'full' (eller et af bogstaverne d, o, h eller f).\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Med mindre DEFAULT_CHARSET er angivet i milj�et, er\n" -"Standard TEGNS�T det lokaleafh�ngige tegns�t, bestemt ud fra LC_ALL, " -"LC_CTYPE og LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Med -k vises en liste over mulige f�r-tegns�t for det givne efter-TEGNS�T,\n" -"begge tabellariske tegns�t, med PAR af typen 'F�R1:EFTER1,F�R2:EFTER2,...'\n" -"hvor F�R'er og EFTER'e er givet som decimale tal.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"SPR er et programmeringssprog, f.eks. 'c', 'perl' eller 'po'; 'c' er " -"standard.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"FORESP�RGSEL er UNDERFORESP�RGSEL[,UNDERFORESP�RGSEL]...; UNDERFORESP�RGSEL " -"er\n" -"INDPAKNING[..INDPAKNING]...; INDPAKNING er [TEGNS�T][/[INDPAKNING]]...\n" -"FORESP�RGSEL har ofte formen F�R..EFTER, hvor F�R og EFTER er tegns�t.\n" -"Hvis et TEGNS�T udelades, anvendes det normale tegns�t; hvis [/" -"INDPAKNING]...\n" -"udelades, anvendes den normale pakning af TEGNS�T; / uden navnet p� en\n" -"indpakning betyder ingen indpakninger. Se manualen.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Hvis hverken -i eller -p er valgt, bruges -p hvis ingen FIL, ellers -i.\n" -"Hver FIL bliver omkodet oven i sig selv og overskriver originalen. Hvis " -"ingen\n" -"FIL er valgt, er programmet et filter, der omkoder fra std-ind til std-ud.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Rapport�r fejl til .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "Sekvens '%s' er flertydig" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "Sekvens '%s' er ukendt" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "Sprog '%s' er flertydigt" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Sprog '%s' er ukendt" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Format '%s' er flertydigt" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Format '%s' er ukendt" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Skrevet af Fran�ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Ophavsret (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Dette er fri software; se kopieringsbetingelserne i kildeteksten. Der gives\n" -"INGEN garanti; end ikke for SALGBARHED eller ANVENDELIGHED TIL NOGET " -"FORM�L.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Symbol '%s' er ukendt" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Tegns�t '%s' er ukendt eller flertydigt" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Kr�vet argument mangler" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "For�ldet syntaks, brug hellere '%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Foresp�rgsel '%s' er fejlagtig" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Omkoder %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " f�rdig\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " fejlede: %s i trin '%s..%s'\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s fejlede: %s i trin '%s..%s'" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s i trin '%s..%s'" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Tegns�t %s findes allerede og er ikke %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "Kan ikke vise '%s', ingen navne tilg�ngelige for dette tegns�t" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Okt Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Beklager, ingen navne tilg�ngelige for '%s'" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Genindpakker indstillet flere gange for '%s'" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Udpakker indstillet flere gange for '%s'" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Virtuel hukommelse opbrugt" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Tegnkoderne %3d og %3d omkodes begge til %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Ingen tegn omkodes til %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Kan ikke invertere denne en-til-en tabel" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "F�lgende fejl er for '%s' til '%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Par nr. %d: <%3d, %3d> er i konflikt med <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Kan ikke fuldende tabellen ud fra m�ngden af kendte par" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Triviel omkodning, ikke v�rd at bruge en tabel" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Omkodningen er for kompleks for en simpel tabel" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sOmkodningstabellen er genereret automatisk af Fri '%s' %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%sfor sekvensen %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Ingen tabel at udskrive" - -#: src/request.c:34 -msgid "reversible" -msgstr "reversibel" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s til %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "variabel" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Uopn�elig*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*bare kopi*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Virtuel hukommelse opbrugt!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Trinopstart fejlede" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Trinopstart fejlede (ubearbejdede tilvalg)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Foresp�rgsel: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Formindsket til: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Ukendt indpakningsnavn '%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Umuligt at omkode fra '%s' til '%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "Forventer '..' i foresp�rgsel" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Underprocessens ventestatus er 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mnem Beskrivelse\n" -"\n" diff --git a/po/de.gmo b/po/de.gmo deleted file mode 100644 index a41d1f3..0000000 Binary files a/po/de.gmo and /dev/null differ diff --git a/po/de.po b/po/de.po deleted file mode 100644 index f27ee54..0000000 --- a/po/de.po +++ /dev/null @@ -1,562 +0,0 @@ -# recode. -# Copyright (C) 1995, 1996, 2006 Free Software Foundation, Inc. -# Ulrich Drepper , 1995. -# Karl Eichwalder , 1996, 2006 -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2006-12-09 19:25+0100\n" -"Last-Translator: Karl Eichwalder \n" -"Language-Team: German \n" -"Language: de\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Kein Fehler" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Keine gültige Eingabe" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Mehrdeutige Ausgabe" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Nicht übersetzbare Eingabe" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Ungültige Eingabe" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Das System ist auf ein Problem gestoßen" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Falsche Benutzung der Umkodierungs-Bibliothek" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Interner Umkodierungsfehler" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Der folgende Text ist eine nicht überprüfte Übersetzung, die zur\n" -"Information dient; in rechtlichen Fragen ist immer das englische\n" -"Original ausschlaggebend.\n" -"\n" -"Dieses Programm ist freie Software; Sie können es nach den Bedingungen\n" -"der von der Free Software Foundation als \"GNU General Public License\"\n" -"veröffentlichten Lizenz weitergeben und/oder verändern; dabei gilt\n" -"die Version 2 oder (frei nach ihrer Wahl) jede spätere Version.\n" -"\n" -"Dieses Programm wird in der Hoffnung verteilt, daß es nützlich ist,\n" -"jedoch OHNE JEGLICHE GARANTIE; sogar ohne die implizite Garantie der\n" -"MARKTFÄHIGKEIT oder der ERFÜLLUNG EINES BESTIMMTEN ZWECKES. In der\n" -"\"GNU General Public License\" können weitere Einzelheiten nachgelesen\n" -"werden.\n" -"\n" -"Sie sollten mit diesem Programm eine Kopie der \"GNU General Public License" -"\"\n" -"erhalten haben; wenn nicht, schreiben Sie an die Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "`%s %s' zeigt weitere Informationen.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"`recode' konvertiert Dateien zwischen diversen Zeichensätzen und\n" -"-formaten.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Aufruf: %s [OPTION]... [ [ZEISATZ] | ANFRAGE [DATEI]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Wenn eine Option ein Argument zwingend braucht, gilt das unabhängig\n" -"davon, ob die Kurz- oder Langschreibweise der Option benutzt wird.\n" -"Entsprechendes gilt für optionale Argumente.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Auflistungen:\n" -" -l, --list[=FORMAT] Einen oder alle bekannten Zeichensätze " -"auflisten\n" -" -k, --known=PAARE Zeichensätze auf Liste bekannter PAARE " -"beschränken\n" -" -h, --header[=[LN/]NAME] LN-Code für Tabelle NAME ausgeben\n" -" -F, --freeze-tables Ein C-Modul mit allen Tabellen ausgeben\n" -" -T, --find-subsets Alle Zeichensätze ausgeben, die Untermengen " -"von\n" -" anderen Zeichensätzen sind\n" -" -C, --copyright Copyright und Kopierbedingungen anzeigen\n" -" --help Diese Hilfe anzeigen\n" -" --version Versionsnummer ausgeben\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Funktionsmodi:\n" -" -v, --verbose Reihenfolge der Umkodierungsschritte und " -"Fortschritt\n" -" anzeigen\n" -" -q, --quiet, --silent Keine Meldungen über nicht umkehrbare " -"Umkodierungen\n" -" -f, --force Umkodierung vornehmen, auch wenn sie nicht " -"umkehrbar ist\n" -" -t, --touch Nach der Umkodierung ein 'touch' auf die " -"umkodierte\n" -" Datei ausführen\n" -" -i, --sequence=files Für Zwischenschritte temporäre Dateien anlegen\n" -" --sequence=memory Für Zwischenschritte Speicherpuffer verwenden\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr "" -" -p, --sequence=pipe benutze \"pipe\" für Abarbeitung der Schritte\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe das gleiche wie '-i' (auf diesem System)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Feineinstellungen:\n" -" -s, --strict Strikte Abbildung benutzen, auch bei " -"Zeichenverlust\n" -" -d, --diacritics Nur Akzente/Umlaute umkodieren (z.B. für HTML/" -"LaTeX)\n" -" -S, --source[=LN] Bei LN nur Zeichenketten und Kommentare umkodieren\n" -" -c, --colons benutze ':' statt '\"' für Umlaute (z.B. 'fu:r' " -"statt\n" -" ('fu\"r')\n" -" -g, --graphics 'Linienzeichen' des IBMPC-Zeichensatzes durch " -"ähnliche\n" -" ASCII-Zeichen darstellen\n" -" -x, --ignore=ZEISATZ ZEISATZ bei der Wahl der Kodierungsschritte " -"ignorieren\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"Die Option -l ohne FORMAT und ZEISATZ listet alle Zeichensätze und -formate\n" -"auf. FORMAT ist `decimal', `octal', `hexadecimal' oder `full' (können durch " -"den\n" -"Anfangsbuchstaben abgekürzt werden)\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Wenn die Umgebungsvariable DEFAULT_CHARSET nicht gesetzt ist, gilt für " -"ZEISATZ\n" -"die lokale-abhängiges Kodierung, festgelegt von LC_ALL, LC_CTYPE. LANG " -"wird.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Mit '-k' werden mögliche 'Vorher'-Zeichensätze für den 'Nachher'-ZEISATZ\n" -"ausgegeben, mit PAAREn der Form 'VOR1:NACH1,VOR2:NACH2,...', wobei die VORs " -"und\n" -"NACHs Kodes sind. Alle Kodes werden als Dezimalzahlen angegeben.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN ist eine Programmiersprache, z.B. `c', `perl' oder `po', wobei `c' die\n" -"Voreinstellung ist.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"ANFRAGE ist UNTERANFRAGE[,UNTERANFRAGE]...; UNTERANFRAGE ist KODIERUNG[.." -"KODIERUNG]...\n" -"KODIERUNG ist [ZEISATZ][/[SURFACE]]...; ANFRAGE ist meistens VORHER.." -"NACHHER,\n" -"wobei VORHER und NACHHER Zeichensätze sind. Ohne ZEISATZ wird der übliche\n" -"Zeichensatz benutzt; ohne [/SURFACE]... wird das für ZEISATZ übliche Format\n" -"angenommen; ein / ohne Angabe eines Formats heißt, dass kein Format " -"angenommen\n" -"wird. Siehe Anleitung.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Wenn weder -i noch -p angegeben sind, wird -p angenommen wenn keine DATEI\n" -"angegeben ist, sonst -i.\n" -"Jede DATEI wird bei mit der umkodierten Datei überschrieben. Wenn keine\n" -"DATEI angegen ist wird die Standardeingabe umkodiert und auf der\n" -"Standardausgabe ausgegeben.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Berichte über Programmfehler bitte an .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "Abfolge »%s« ist zweideutig" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "Abfolge »%s« ist unbekannt" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "Sprache »%s« ist zweideutig" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Sprache »%s« ist unbekannt" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Format »%s« ist zweideutig" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Format »%s« ist unbekannt" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Geschrieben von François Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Dieses Programm ist freie Software; die genauen Nutzungsbedingungen\n" -"sind der Datei »COPYING« in den Quellen zu entnehmen.\n" -"Es wird keinerlei Gewährleistung übernommen; auch nicht für gewerbliche\n" -"Nutzbarkeit oder Tauglichkeit zu einem anderen Zweck.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Symbol »%s« ist unbekannt" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Zeichensatz »%s« ist unbekannt oder zweideutig" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Erforderliches Argument fehlt" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Veraltete Syntax, bitte »%s« bevorzugen" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Anfrage »%s« ist fehlerhaft" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Kodiere `%s' um..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " fertig\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " fehlgeschlagen: %s bei Schritt »%s..%s«\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s fehlgeschlagen: %s bei Schritt »%s..%s«" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s bei Schritt »%s..%s«" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Zeichensatz %s existiert bereits und ist nicht %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "" -"Kann `%s' nicht anzeigen, keine Namen für diesen Zeichensatz\n" -" verfügbar" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Oct Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Tut mir leid, aber es sind für `%s' keine Namen verfügbar" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "`Resurfacer' für `%s' mehr als einmal gesetzt." - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "`Unsurfacer' für `%s' mehr als einmal gesetzt." - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Virtueller Speicher voll" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Die Kodes %3d und %3d werden beide konvertiert zu %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Kein Zeichen wird zu %3d umkodiert" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Kann die gegebene \"Eins-zu-Eins\"-Tabelle nicht invertieren" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Folgende Diagnose für Konvertierung von `%s' nach `%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Paar Nr. %d: { %3d, %3d } steht in Konflikt mit { %3d, %3d }" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "" -"Kann die Tabelle aus der Menge der bekannten Paare nicht vervollständigen" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Umkodierung ohne Änderung, zu trivial für eine Tabelle" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Umkodierung ist für eine einfache Tabelle zu kompliziert" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sKonvertierung automatisch generiert von »GNU %s %s«" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%sfür Folge %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Keine Tabelle auszugeben" - -#: src/request.c:34 -msgid "reversible" -msgstr "umkehrbar" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s nach %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "variabel" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*unmöglich*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*einface Kopie*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Virtueller Speicher voll!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Schrittinitialisierung fehlgeschlagen" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Schrittinitialisierung fehlgeschlagen (nichtbeachtete Optionen)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Anfrage: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Geschrumpft zu: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Unbekannter `surface' Name `%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Keine Möglichkeit, von `%s' nach `%s' umzukodieren" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "In der Anfrage wird `..' erwartet" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Wartezustand des Kindprozesses ist 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Beschreibung\n" -"\n" diff --git a/po/el.gmo b/po/el.gmo deleted file mode 100644 index f3c16f0..0000000 Binary files a/po/el.gmo and /dev/null differ diff --git a/po/el.po b/po/el.po deleted file mode 100644 index 9d9539f..0000000 --- a/po/el.po +++ /dev/null @@ -1,652 +0,0 @@ -# Greek messages for GNU recode -# Copyright (C) 1999, 2008 Free Software Foundation, Inc. -# Simos Xenitellis , 1999, 2008. -# -msgid "" -msgstr "" -"Project-Id-Version: GNU recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2008-02-13 01:30+0000\n" -"Last-Translator: Simos Xenitellis \n" -"Language-Team: Greek \n" -"Language: el\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" - -# src/main.c:157 -#: src/main.c:142 -msgid "No error" -msgstr "Κανένα σφάλμα" - -# src/main.c:160 -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Μη κανονικοποιημένη είσοδος" - -# src/main.c:163 -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Ασαφής έξοδος" - -# src/main.c:166 -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Μη μεταφράσιμη είσοδος" - -# src/main.c:169 -#: src/main.c:154 -msgid "Invalid input" -msgstr "Μη έγκυρη είσοδος" - -# src/main.c:172 -#: src/main.c:157 -msgid "System detected problem" -msgstr "Το σύστημα διαπίστωσε πρόβλημα" - -# src/main.c:175 -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Κακή χρήση της βιβλιοθήκης recode" - -# src/main.c:178 -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Εσωτερικό σφάλμα (recoding)" - -# src/main.c:454 -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Αυτό το πρόγραμμα είναι ελεύθερο λογισμικό· μπορείτε να το αναδιανείμετε\n" -"και/ή να το τροποποιήσετε σύμφωνα με τους κανόνες της Γενικής Δημόσιας\n" -"Άδειας GNU όπως εκδίδεται από το Free Software Foundation· είτε την\n" -"έκδοση 2 είτε (κατά την προτίμησή σας) οποιασδήποτε μεταγενέστερης έκδοσης.\n" -"\n" -"Αυτό το πρόγραμμα διανέμεται με την ελπίδα ότι θα είναι χρήσιμο,\n" -"αλλά ΧΩΡΙΣ ΚΑΜΙΑ ΕΓΓΫΗΣΗ· χωρίς ούτε έμμεση εγγύηση\n" -"ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑΣ ή ΚΑΤΑΛΛΗΛΟΤΗΤΑΣ ΓΙΑ ΕΝΑ ΣΥΓΚΕΚΡΙΜΕΝΟ ΣΚΟΠΟ.\n" -"Αναφερθείτε στο GNU General Public License για περισσότερες λεπτομέρειες.\n" -"\n" -"Θα πρέπει να έχεται λάβει ένα αντίγραφο της Γενικής Δημόσιας Άδειας GNU\n" -"μαζί με αυτό το πρόγραμμα εάν όχι· γράψτε στο Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -# src/main.c:479 -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Δοκιμάστε `%s %s' για περισσότερες πληροφορίες.\n" - -# src/main.c:483 -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Το ελεύθερο `recode' μετατρέπει αρχεία μεταξύ ποικίλων συνόλων χαρακτήρων " -"και επιφανειών.\n" - -# src/main.c:486 -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Χρήση: %s [ΕΠΙΛΟΓΗ]... [ [ΣΥΝΟΛΟΧΑΡΑΚΤΉΡΩΝ] | ΑΙΤΗΣΗ [ΑΡΧΕΙΟ]...\n" - -# src/main.c:489 -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Αν μια μακρά επιλογή αναφέρει μια παράμετρο σαν υποχρεωτική, τότε είναι\n" -"υποχρεωτική και για την αντίστοιχη σύντομη επιλογή επίσης. Το ίδιο\n" -"και για τις προαιρετικές παραμέτρους.\n" - -# src/main.c:494 -#: src/main.c:250 -#, fuzzy -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Εμφανίσεις:\n" -" -l, --list[=ΜΟΡΦΗ] εμφάνιση ένα ή όλα τα γνωστά σύνολα χαρακτήρων\n" -" -k, --known=ΖΕΥΓΗ περιορισμός των συνόλων χαρακτήρων σύμφωνα με\n" -" τη λίστα από γνωστά ΖΕΥΓΗ. -h, --header[=" -"[LN/]ΟΝΟΜΑ] εμφάνιση του πίνακα ΟΝΟΜΑ στην κανονική έξοδο\n" -" με χρήση του LN, μετά έξοδος\n" -" -F, --freeze-tables εμφάνιση σε κώδικα C με όλους τους πίνακες\n" -" -T, --find-subsets αναφορά όλων των συνόλων χαρακτήρων που είναι\n" -" υποσύνολα σε άλλα\n" -" -C, --copyright εμφάνιση του Copyright και κανόνων αντιγραφής\n" -" --help εμφάνιση αυτής της βοήθειας και έξοδος\n" -" --version εμφάνιση πληροφοριών έκδοσης και έξοδος\n" - -# src/main.c:506 -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Καταστάσεις λειτουργίας:\n" -" -v, --verbose αναφορά διαδοχής βημάτων και προόδου\n" -" -q, --quiet, --silent απόκρυψη μηνυμάτων μη-αντιστρεπτών μετατροπών\n" -" -f, --force επιβολή μετατροπών ακόμα και αν είναι μη " -"αντιστρεπτές\n" -" -t, --touch ενημέρωση της ημερομηνίας των μετατρεπομένων " -"αρχείων\n" -" μετά την αντικατάσταση\n" -" -i, --sequence=files χρήση ενδιάμεσων αρχείων στα διαδοχικά περάσματα\n" -" --sequence=memory χρήση ενταμιευτών μνήμης στα διαδοχικά περάσματα\n" - -# src/main.c:517 -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=pipe χρήση σωλήνωσης στα διαδοχικά περάσματα\n" - -# src/main.c:521 -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe το ίδιο με -i (σε αυτό το σύστημα)\n" - -# src/main.c:525 -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Ρυθμίσεις:\n" -" -s, --strict χρήση αυστηρών συσχετίσεων, ακόμα και ελεύθερων " -"χαρακτήρων\n" -" -d, --diacritics μετατροπή μόνο διακριτικών ή παρόμοιων για HTML/" -"LaTeX\n" -" -S, --source[=LN] περιορισμός μετατροπών σε αλφαριθμητικά και σχόλια\n" -" κάτα το LN\n" -" -c, --colons χρήση κολώνων αντί διπλών εισαγωγικών για τη " -"διαίρεση\n" -" -g, --graphics προσέγγιση κανόνων IBMPC με ASCII γραφικά\n" -" -x, --ignore=ΠΙΝΧΑΡ αγνόηση πίνακα χαρακτήρων (ΠΙΝΧΑΡ) στην επιλογή " -"μονοπατιού μετατροπών\n" - -# src/main.c:294 -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"Η επιλογή -l χωρίς ΜΟΡΦΗ, ούτε ΠΙΝΧΑΡ, απαριθμεί τους διαθέσιμους πίνακες\n" -"χαρακτήρων και επιφάνειες. ΜΟΡΦΗ είναι `decimal', `octal', `hexadecimal'\n" -"ή `full' (ή ένα από τα `dohf').\n" - -# src/main.c:302 -#: src/main.c:302 -#, fuzzy -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Εκτός και αν έχει οριστεί η μεταβλητή περιβάλλοντος DEFAULT_CHARSET,\n" -"ο πίνακας χαρακτήρων (CHARSET) είναι ως προεπιλογή το `%s'.\n" - -# src/main.c:540 -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Με -k, πιθανοί προηγούμενοι πίνακες χαρακτήρων εμφανίζονται για το δοθέν\n" -"επόμενο πίνακα χαρακτήρων (CHARSET), όντας και τα δύο σε μορφή πεδίων,\n" -"σε ΖΕΥΓΗ της μορφής `ΠΡΟΗΓ1:ΕΠΟΜΕΝ1,ΠΡΟΗΓ1:ΕΠΟΜΕΝ2,...'\n" -"και τα ΠΡΟΗΓ και ΕΠΟΜΕΝ, όντας κωδικοί, δίνονται ως αριθμοί.\n" - -# src/main.c:318 -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN είναι μια γλώσσα, μπορεί να είναι `c', `perl' ή `po'· προεπιλογή είναι το " -"`c'.\n" - -# src/main.c:321 -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"ΑΙΤΗΣΗ είναι ΥΠΟΑΙΤΗΣΗ[,ΥΠΟΑΙΤΗΣΗ]...· ΥΠΟΑΙΤΗΣΗ είναι ΚΩΔΙΚΟΠΟΙΗΣΗ[..." -"ΚΩΔΙΚΟΠΟΙΗΣΗ]...\n" -"ΚΩΔΙΚΟΠΟΙΗΣΗ είναι [ΠΙΝΧΑΡ][/[ΕΠΙΦΑΝΕΙΑ]]...· ΑΙΤΗΣΗ συνήθως μοιάζει με " -"ΠΡΟΗΓΟΥΜΕΝΟ...ΕΠΟΜΕΝΟ,\n" -"με ΠΡΟΗΓΟΥΜΕΝΟ και ΕΠΟΜΕΝΟ να είναι πίνακες χαρακτήρων. Ένας ΠΙΝΧΑΡ που\n" -"έχει παραληφθεί, υποδηλώνει το συνήθες πίνακα χαρακτήρων· ένα [/" -"ΕΠΙΦΑΝΕΙΑ]...\n" -"που έχει παραληφθεί, σημαίνει τις υποδηλωμένες επιφάνειες του ΠΙΝΧΑΡ ένα /\n" -"χωρίς όνομα επιφάνειας σημαίνει χωρίς καθόλου επιφάνειες. Κοιτάξτε το " -"εγχειρίδιο.\n" - -# src/main.c:556 -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Αν κανένα από τα -i και -p δε δίδονται, θεώρησε -p αν δεν υπάρχει ΑΡΧΕΙΟ, " -"αλλιώς -i.\n" -"Κάθε ΑΡΧΕΙΟ μετατρέπεται πάνω στον εαυτό του, καταστρέφοντας το πρωτότυπο.\n" -"Αν κανένα ΑΡΧΕΙΟ δεν έχει οριστεί, τότε φέρσου σαν φίλτρο και μετέτρεψε\n" -"την κανονική είσοδο στην κανονική έξοδο.\n" - -# src/main.c:562 -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Αναφέρατε σφάλματα στο .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "" - -# src/main.c:854 -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Γραμμένο από τον Franc,ois Pinard .\n" - -# src/main.c:622 -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -# src/main.c:850 -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Αυτό είναι ελεύθερο λογισμικό· δείτε το πηγαίο κώδικα για τους κανόνες " -"αντιγραφής.\n" -"ΔΕΝ υπάρχει εγγύηση· ούτε ακόμα για ΧΡΗΣΙΜΟΤΗΤΑ ή ΚΑΤΑΛΛΗΛΟΤΗΤΑ ΓΙΑ ΕΝΑ\n" -"ΣΥΓΚΕΚΡΙΜΕΝΟ ΣΚΟΠΟ.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "" - -# src/main.c:999 -#: src/main.c:801 -#, fuzzy, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Μη συνιστώμενη σύνταξη, παρακαλώ προτιμίστε `%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "" - -# src/main.c:1098 -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Μετατροπή του %s..." - -# src/main.c:1108 -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " έγινε\n" - -# src/main.c:1142 -#: src/main.c:958 -#, fuzzy, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " απέτυχε: %s σε %s..%s\n" - -# src/main.c:1149 -#: src/main.c:965 -#, fuzzy, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s απέτυχε: %s σε %s..%s" - -# src/main.c:1172 -#: src/main.c:988 -#, fuzzy, c-format -msgid "%s in step `%s..%s'" -msgstr "%s σε %s..%s" - -# src/names.c:259 -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Ο πίνακας χαρακτήρων %s υπάρχει ήδη και δεν είναι το %s" - -# src/names.c:754 -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "" -"Αδυναμία εμφάνισης του `%s', δεν υπάρχουν ονόματα διαθέσιμα για αυτόν τον " -"πίνακα χαρακτήρων" - -# src/names.c:974 src/names.c:1020 -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Oct Hex UCS2 Mne %s\n" - -# src/names.c:847 -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Συγνώμη, δεν υπάρχουν διαθέσιμα ονόματα για το `%s'" - -# src/outer.c:95 -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "" -"Ο επανατοποθετητής επιφάνειας έχει τεθεί περισσότερο από μια φορά για το `%s'" - -# src/outer.c:102 -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "" -"Ο αντιτοποθετητής επιφάνειας έχει τεθεί περισσότερο από μια φορά για το `%s'" - -# src/recode.c:117 src/recode.c:129 -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Η ιδεατή μνήμη εξαντλήθηκε" - -# src/recode.c:157 -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Και οι δύο κωδικοί %3d και %3d μετατρέπονται σε %3d" - -# src/recode.c:171 -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Κανένας χαρακτήρας δεν μετατρέπεται σε %3d" - -# src/recode.c:172 -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Αδυναμία αντιστροφής δοθέντος 1-1 πίνακα" - -# src/recode.c:226 src/recode.c:238 -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Ακολουθούν διαγνωστικά για `%s' σε `%s'" - -# src/recode.c:231 src/recode.c:243 -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Αριθμ. ζεύγους %d: <%3d, %3d> συγκρούεται με <%3d, %3d>" - -# src/recode.c:274 -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Αδυναμία συμπλήρωσης πίνακα από το σύνολο γνωστών ζευγών" - -# src/recode.c:504 -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Μηδαμηνή μετατροπή, δεν χρειάζεται πίνακα" - -# src/recode.c:512 -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Η μετατροπή είναι πολύ περίπλοκη για ένα μόνο πίνακα" - -# src/recode.c:544 -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sΠίνακας μετατροπής δημιουργήθηκε μηχανικά από το Ελεύθερο `%s' %s" - -# src/recode.c:546 -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%sγια διαδοχή %s.%s" - -# src/recode.c:736 -#: src/recode.c:744 -msgid "No table to print" -msgstr "Κανένας πίνακας για εκτύπωση" - -# src/request.c:35 -#: src/request.c:34 -msgid "reversible" -msgstr "αντιστρεπτό" - -# src/request.c:37 -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s σε %s" - -# src/request.c:38 src/request.c:40 -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -# src/request.c:39 src/request.c:41 -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -# src/request.c:39 src/request.c:41 -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "μεταβλητή" - -# src/request.c:112 -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Μη κατορθωτό*" - -# src/request.c:114 -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*απλή αντιγραφή*" - -# src/request.c:244 -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Η ιδεατή μνήμη εξαντλήθηκε!" - -# src/request.c:263 -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Το βήμα αρχικοποίησης απέτυχε" - -# src/request.c:270 -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Το βήμα αρχικοποίησης απέτυχε (επιλογές που δεν έχουν επεξεργαστεί)" - -# src/request.c:566 -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Αίτηση: %s\n" - -# src/request.c:702 -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Συρρίκνωση σε %s\n" - -# src/request.c:806 src/request.c:912 -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Μη αναγνωρίσημο όνομα επιφάνειας `%s'" - -# src/request.c:884 -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Κανένας τρόπος να μετατραπεί από `%s' σε `%s'" - -# src/request.c:992 -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "Αναμένεται `..' στην αίτηση" - -# src/task.c:751 src/task.c:915 -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Η κατάσταση παραμονής της θυγατρικής διεργασίας είναι 0x%0.2x" - -# src/debug.c:287 -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Περιγραφή\n" -"\n" - -# src/main.c:308 -#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n" -#~ msgstr "" -#~ "O ΠΙΝΧΑΡ (πίνακας χαρακτήρων ή CHARSET) δεν έχει εξ' ορισμού τιμή,\n" -#~ "ορίστε τη μεταβλητή περιβάλλοντος DEFAULT_CHARSET.\n" - -# src/main.c:659 -#~ msgid "Ambiguous sequence `%s'" -#~ msgstr "Ασαφής συμβολοσειρά `%s'" - -# src/main.c:663 -#~ msgid "Unknown sequence `%s'" -#~ msgstr "Άγνωστη συμβολοσειρά `%s'" - -# src/main.c:693 src/main.c:747 -#~ msgid "Ambiguous language `%s'" -#~ msgstr "Ασαφής γλώσσα `%s'" - -# src/main.c:697 src/main.c:751 -#~ msgid "Unknown language `%s'" -#~ msgstr "Άγνωστη γλώσσα `%s'" - -# src/main.c:785 -#~ msgid "Ambiguous format `%s'" -#~ msgstr "Ασαφής μορφή `%s'" - -# src/main.c:789 -#~ msgid "Unknown format `%s'" -#~ msgstr "Άγνωστη μορφή `%s'" - -# src/main.c:1005 -#~ msgid "Erroneous request `%s'" -#~ msgstr "Εσφαλμένη αίτηση `%s'" diff --git a/po/en@boldquot.header b/po/en@boldquot.header deleted file mode 100644 index fedb6a0..0000000 --- a/po/en@boldquot.header +++ /dev/null @@ -1,25 +0,0 @@ -# All this catalog "translates" are quotation characters. -# The msgids must be ASCII and therefore cannot contain real quotation -# characters, only substitutes like grave accent (0x60), apostrophe (0x27) -# and double quote (0x22). These substitutes look strange; see -# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html -# -# This catalog translates grave accent (0x60) and apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019). -# It also translates pairs of apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019) -# and pairs of quotation mark (0x22) to -# left double quotation mark (U+201C) and right double quotation mark (U+201D). -# -# When output to an UTF-8 terminal, the quotation characters appear perfectly. -# When output to an ISO-8859-1 terminal, the single quotation marks are -# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to -# grave/acute accent (by libiconv), and the double quotation marks are -# transliterated to 0x22. -# When output to an ASCII terminal, the single quotation marks are -# transliterated to apostrophes, and the double quotation marks are -# transliterated to 0x22. -# -# This catalog furthermore displays the text between the quotation marks in -# bold face, assuming the VT100/XTerm escape sequences. -# diff --git a/po/en@quot.header b/po/en@quot.header deleted file mode 100644 index a9647fc..0000000 --- a/po/en@quot.header +++ /dev/null @@ -1,22 +0,0 @@ -# All this catalog "translates" are quotation characters. -# The msgids must be ASCII and therefore cannot contain real quotation -# characters, only substitutes like grave accent (0x60), apostrophe (0x27) -# and double quote (0x22). These substitutes look strange; see -# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html -# -# This catalog translates grave accent (0x60) and apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019). -# It also translates pairs of apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019) -# and pairs of quotation mark (0x22) to -# left double quotation mark (U+201C) and right double quotation mark (U+201D). -# -# When output to an UTF-8 terminal, the quotation characters appear perfectly. -# When output to an ISO-8859-1 terminal, the single quotation marks are -# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to -# grave/acute accent (by libiconv), and the double quotation marks are -# transliterated to 0x22. -# When output to an ASCII terminal, the single quotation marks are -# transliterated to apostrophes, and the double quotation marks are -# transliterated to 0x22. -# diff --git a/po/eo.gmo b/po/eo.gmo deleted file mode 100644 index 3c91121..0000000 Binary files a/po/eo.gmo and /dev/null differ diff --git a/po/eo.po b/po/eo.po deleted file mode 100644 index d11f4f1..0000000 --- a/po/eo.po +++ /dev/null @@ -1,522 +0,0 @@ -# Esperantaj mesa�oj por recode. -# Copyright (C) 2001 Free Software Foundation, Inc. -# Edmund GRIMLEY EVANS , 2001. -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2001-06-06 20:34+01:00\n" -"Last-Translator: Edmund GRIMLEY EVANS \n" -"Language-Team: Esperanto \n" -"Language: eo\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-3\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Neniu eraro" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Nekanoneca enigo" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Plursenca eligo" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Netradukebla enigo" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Nevalida enigo" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Sistemo trovis problemon" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Misuzo de la rekodado-biblioteko" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Interna eraro dum rekodado" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"�i tiu programo estas libera; vi povas pludoni kopiojn kaj modifi\n" -"�in sub la kondi�oj de la �enerala Publika Rajtigilo de GNU,\n" -"kiel tio estas eldonita de Free Software Foundation; a� versio 2\n" -"de la Rajtigilo, a� (la� via elekto) iu sekva versio.\n" -"\n" -"�i tiu programo estas disdonita kun la espero, ke �i estos utila,\n" -"sed SEN IA AJN GARANTIO; e� sen la implicita garantio de\n" -"KOMERCA KVALITO a� ADEKVATECO POR DIFINITA CELO. Vidu la\n" -"�eneralan Publikan Rajtigilon de GNU por pli da detaloj.\n" -"\n" -"Vi devus esti ricevinta kopion de la �enerala Publika Rajtigilo de\n" -"GNU kun �i tiu programo; se ne, skribu al Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Usono.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Provu '%s %s' por pli da informoj.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Libera 'recode' konvertas dosierojn inter diversaj signaroj kaj surfacoj.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Uzado: %s [OPCIO]... [ [SIGNARO] | PETO [DOSIERO]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Se longa opcio montras argumenton kiel devigan, tiam �i estas deviga\n" -"anka� por la ekvivalenta mallonga opcio. Simile por nedevigaj argumentoj.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Listigoj:\n" -" -l, --list[=FORMO] Listigi unu a� �iujn signarojn kaj kromnomojn\n" -" -k, --known=PAROJ Limigi signarojn la� konataj PAROJ\n" -" -h, --header[=[LN/]NOMO] Skribi tabelon NOMO al normala eligo per LN\n" -" -F, --freeze-tables Eligi C-modulon kun �iuj tabeloj\n" -" -T, --find-subsets Raporti signarojn, kiuj estas subaroj de aliaj\n" -" -C, --copyright Montri kopirajton kaj kopikondi�ojn\n" -" --help Montri �i tiun helpon kaj eliri\n" -" --version Montri versiinformon kaj eliri\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Funkcimanieroj:\n" -" -v, --verbose klarigi sinsekvon de pa�oj kaj raporti progreson\n" -" -q, --quiet, --silent subpremi mesa�ojn pri neinversigeblaj rekodadoj\n" -" -f, --force fari rekodadon, anka� kiam ne inversigebla\n" -" -t, --touch fari 'touch' al konvertitaj dosieroj\n" -" -i, --sequence=files uzi dumtempajn dosierojn por internaj pa�oj\n" -" --sequence=memory uzi bufrojn en memoro por internaj pa�oj\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=pipe uzi tubojn (\"pipe\") por internaj pa�oj\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe same kiel -i (en �i tiu sistemo)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Fajnaj agordoj:\n" -" -s, --strict uzi striktajn mapojn, e� �e signoperdo\n" -" -d, --diacritics konverti nur kromsignojn a� simile por HTML/LaTeX\n" -" -S, --source[=LN] limigi rekodadon al signo�enoj kaj komentoj por LN\n" -" -c, --colons uzi ':' anstata� '\"' por diarezoj\n" -" -g, --graphics prezenti IBMPC-liniilojn per askiaj bildoj\n" -" -x, --ignore=SIGNARO ignori SIGNAROn dum elekto de rekodado-vojo\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"La opcio -l kun neniu FORMO a� SIGNARO listigas �iujn disponatajn\n" -"signarojn kaj surfacojn. FORMO estas 'decimal', 'octal', 'hexadecimal'\n" -"a� 'full' (a� unu el 'dohf').\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Se la media variablo DEFAULT_CHARSET ne estas agordita, SIGNARO implicite\n" -"estas tiu de la loka�aro, determinita de LC_ALL, LC_CTYPE, LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Kun -k, eblaj anta�aj signaroj por la donita posta SIGNARO estas " -"listigitaj,\n" -"kun PAROJ en la formo 'ANT1:POST1,ANT2,POST2,...', kie ANT-oj kaj POST-oj\n" -"estas kodoj donitaj kiel dekumaj nombroj.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN estas programlingvo, ekzemple 'c', 'perl' a� 'po'; implicite estas 'c'.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"PETO estas SUBPETO[,SUBPETO]...; SUBPETO estas KODO[..KODO]...\n" -"KODO estas [SIGNARO][/[SURFACO]]...; PETO ofte aspektas kiel ANTA�...POST,\n" -"kie ANTA� kaj POST estas signaroj. Ellasita SIGNARO implicas la kutiman\n" -"signaron; ellasita [/SURFACO]... signifas la implicitan surfacon por " -"SIGNARO;\n" -"/ kun malplena surfaco-nomo signifas neniajn surfacojn. Vidu la manlibron.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Se neniu el -i kaj -p estas donita, supozi -p, se neniu DOSIERO, alie -i.\n" -"�iu DOSIERO estas rekodita surloke, anstata�ante la originalon. Se neniu\n" -"DOSIERO estas specifita, agi kiel filtrilo kaj rekodi de la normala enigo\n" -"al la normala eligo.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Raportu cimojn al .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "Sinsekvo '%s' estas plursenca" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "Sinsekvo '%s' estas nekonata" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "Lingvo '%s' estas plursenca" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Lingvo '%s' estas nekonata" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Formo '%s' estas plursenca" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Formo '%s' estas nekonata" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Verkita de Fran�ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Kopirajto (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"�i tio estas libera programo; vidu la fonton por kopikondi�oj. Estas\n" -"NENIA GARANTIO; e� ne por KOMERCA KVALITO a� ADEKVATECO POR DIFINITA CELO.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Simbolo '%s' estas nekonata" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Signaro '%s' estas nekonata a� plursenca" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Bezonata argumento mankas" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Malrekomendata sintakso; bonvolu uzi '%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Peto '%s' estas erara" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Rekodas '%s' ..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " preta\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " malsukcesis: %s en pa�o '%s..%s'\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s malsukcesis: %s en pa�o '%s..%s'" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s en pa�o '%s..%s'" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "La signaro %s jam ekzistas kaj ne estas %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "Ne povas montri '%s'; neniuj nomoj disponataj por �i tiu signaro" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Oct Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Pardonu, sed neniaj nomoj disponataj por '%s'" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Resurfacigilo agordita pli ol unufoje por '%s'" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Malsurfacigilo por '%s' agordita pli ol unufoje" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Vituala memoro el�erpi�is" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "La kodoj %3d kaj %3d estas amba� konvertataj al %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Neniu signo estas konvertata al %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Ne povas inversigi la donitan unusencan tabelon" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Jena diagnozo por konvertado de '%s' al '%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Paro numero %d: <%3d, %3d> konfliktas kun <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Ne povas kompletigi tabelon el aro de konataj paroj" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Sen�an�a rekodado ne indas je tabelo" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Rekodado estas tro komplika por nura tabelo" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sKonvertotabelo kreita a�tomate de Free '%s' %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%spor sinsekvo %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Mankas tabelo por eligado" - -#: src/request.c:34 -msgid "reversible" -msgstr "inversigebla" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s al %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "bitoko" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "variablo" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*neebla*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*nura kopio*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Virtuala memoro estas plena!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Komencado de pa�o malsukcesis" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Komencado de pa�o malsukcesis (netraktitaj opcioj)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Peto: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "�rumpis �is: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Nekonata nomo de surfaco '%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Mankas eblo por konverti de '%s' al '%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "Atendas '..' en peto" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Atendostatuso de ido-procezo estas 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Priskribo\n" -"\n" diff --git a/po/es.gmo b/po/es.gmo deleted file mode 100644 index 07dd12a..0000000 Binary files a/po/es.gmo and /dev/null differ diff --git a/po/es.po b/po/es.po deleted file mode 100644 index 753bd77..0000000 --- a/po/es.po +++ /dev/null @@ -1,844 +0,0 @@ -# Mensajes en espa�ol para Free recode. -# Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc. -# Santiago Vila Doncel , 1999, 2001, 2002. -# -msgid "" -msgstr "" -"Project-Id-Version: Free recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2002-09-17 00:28+0200\n" -"Last-Translator: Santiago Vila Doncel \n" -"Language-Team: Spanish \n" -"Language: es\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "No hay ning�n error" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "La entrada no es can�nica" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Resultado ambiguo" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Entrada no convertible" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Entrada inv�lida" - -# FIXME: "System-detected problem" or -# "The system has detected a problem"? -#: src/main.c:157 -msgid "System detected problem" -msgstr "Problema detectado por el sistema" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Uso inadecuado de la biblioteca de conversi�n" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Bug interno de conversi�n" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Este programa es software libre; puede ser redistribuido y/o\n" -"modificado bajo los t�rminos de la Licencia P�blica General de\n" -"GNU tal y como se publica por la Free Software Foundation; bien\n" -"en su versi�n 2, o (a su elecci�n) cualquier versi�n posterior.\n" -"\n" -"Este programa se distribuye con la esperanza de que sea �til,\n" -"pero SIN NINGUNA GARANT�A; ni siquiera la garant�a impl�cita de\n" -"COMERCIABILIDAD o IDONEIDAD PARA UN FIN DETERMINADO. V�ase la\n" -"Licencia P�blica General de GNU para m�s detalles.\n" -"\n" -"Usted deber�a haber recibido una copia de la Licencia P�blica\n" -"General de GNU junto con este programa; en caso contrario, escriba\n" -"a la Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n" -"Boston, MA 02111-1307, EE.UU.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Pruebe `%s %s' para m�s informaci�n.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Free `recode' convierte ficheros entre varios juegos de caracteres y " -"facetas.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Modo de empleo: %s [OPCI�N]... [ [JUEGO] | PETICI�N [FICHERO]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Si una opci�n larga muestra un argumento como obligatorio, entonces es\n" -"obligatorio tambi�n para la opci�n corta equivalente. Lo mismo para los\n" -"argumentos opcionales.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Listados:\n" -" -l, --list[=FORMATO] muestra uno o todos los juegos y alias " -"conocidos\n" -" -k, --known=PARES restringe los juegos de acuerdo con la lista " -"de\n" -" PARES conocidos\n" -" -h, --header[=[LN/]NOMBRE escribe la tabla NOMBRE en la salida est�ndar\n" -" usando LN, y finaliza\n" -" -F, --freeze-tables escribe un m�dulo en C con todas las tablas\n" -" -T, --find-subsets informa acerca de todos los juegos de " -"caracteres\n" -" que son subconjuntos de otros\n" -" -C, --copyright muestra el Copyright y las condiciones de " -"copia\n" -" --help muestra esta ayuda y finaliza\n" -" --version muestra la versi�n y finaliza\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Modos de operaci�n:\n" -" -v, --verbose explica la sucesi�n de pasos e informa del " -"desarrollo\n" -" -q, --quiet, --silent no muestra mensajes sobre conversiones " -"irreversibles\n" -" -f, --force realiza la conversi�n incluso si no es reversible\n" -" -t, --touch toca los ficheros convertidos despu�s del " -"reemplazo\n" -" -i, --sequence=files utiliza ficheros intermedios para las pasadas\n" -" --sequence=memory utiliza b�fers en memoria para las pasadas\n" - -# S�: "pipe" es tuber�a: Se refiere a "|" -# -# En estos casos, se puede poner el t�rmino en espa�ol seguido del t�rmino -# ingl�s entre par�ntesis. Por ejemplo "tuber�a (`pipe')" para que lo entiendan -# las personas que casi todo lo que leen est� en ingl�s. -# -# Pero en este caso concreto, no hace falta porque la palabra pipe forma -# parte del nombre de la opci�n (a la izquierda se ve). sv -# -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=pipe utiliza tuber�as para las pasadas\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe lo mismo que -i (en este sistema)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Ajuste `fino':\n" -" -s, --strict utiliza correspondencias estrictas, aunque se " -"pierdan\n" -" caracteres\n" -" -d, --diacritics convierte solamente acentos y dem�s para HTML/" -"LaTeX\n" -" -S, --source[=LN] limita la conversi�n a cadenas y comentarios seg�n " -"LN\n" -" -c, --colons utiliza dos puntos en vez de comillas para " -"di�resis\n" -" -g, --graphics aproxima gr�ficos IBMPC mediante gr�ficos ASCII\n" -" -x, --ignore=JUEGO descarta JUEGO al escoger un camino de conversi�n\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"La opci�n -l sin FORMATO ni JUEGO muestra los juegos de caracteres y " -"facetas.\n" -"disponibles. FORMATO es `decimal', `octal', `hexadecimal' o `full' (o uno " -"de\n" -"entre `dohf').\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"A menos que se establezca DEFAULT_CHARSET en el entorno, el valor\n" -"predeterminado de CHARSET es la codificaci�n de la que depende el locale,\n" -"determinada por LC_ALL, LC_CTYPE, LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Con -k, se muestran los posibles juegos `antes' para el JUEGO `despu�s' " -"dado,\n" -"siendo ambos juegos de caracteres tabulares, con PAREJAS de la forma\n" -"`ANT1:DES1,ANT2:DES2,...' y siendo los ANTs y los DESs c�digos dados\n" -"como n�meros decimales.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN es alg�n lenguaje, puede ser `c', `perl' o `po', el valor predeterminado\n" -"es `c'\n" - -# FIXME: [SURFACE]... means the usual surfaces or the usual surface? -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"PETICI�N es SUBPETICI�N[,SUBPETICI�N]...;\n" -"SUBPETICI�N es CODIFICACI�N[..CODIFICACI�N]...\n" -"CODIFICACI�N es [JUEGO][/[FACETA]]...; PETICI�N suele ser ANTES..DESPU�S,\n" -"donde ANTES y DESPU�S son juegos de caracteres. Un JUEGO omitido implica " -"el\n" -"juego de caracteres usual; una [/FACETA]... omitida significa la faceta\n" -"impl�cita para el JUEGO; una / con una faceta vac�a significa que no hay\n" -"ninguna faceta. V�ase el manual.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Si no se especifica ninguna de las opciones -i � -p, se supone -p si no\n" -"hay ning�n FICHERO, o si no, -i. Cada FICHERO se convierte sobre s� mismo,\n" -"destruyendo el original. Si no es especifica ning�n FICHERO, entonces " -"funciona\n" -"como filtro y convierte la entrada est�ndar en la salida est�ndar.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Comunicar bichos a .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "La sucesi�n `%s' es ambigua" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "La sucesi�n `%s' es desconocida" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "El idioma `%s' es ambiguo" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "El idioma `%s' es desconocido" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "El formato `%s' es ambiguo" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "El formato `%s' es desconocido" - -# Se entiende que los usuarios espa�oles s� tendr�n iso-8859-1. -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Escrito por Fran�ois Pinard .\n" - -# FIXME: A�adir 1998 (?). -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Esto es software libre; vea el c�digo fuente para las condiciones de copia.\n" -"No hay NINGUNA garant�a; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA UN\n" -"FIN DETERMINADO.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "El s�mbolo `%s' es desconocido" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "El juego de caracteres `%s' es desconocido o ambiguo" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Falta el argumento requerido" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "La sintaxis es antigua, por favor utilice `%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "La petici�n `%s' es err�nea" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Convirtiendo %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " hecho\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " fall�: %s en el paso %s..%s\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s fall�: %s en el paso %s..%s" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s en el paso %s..%s" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "El juego de caracteres %s ya existe y no es %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "" -"No se puede mostrar `%s', no hay nombres disponibles para este\n" -"juego de caracteres" - -# "Nem" de "Nem�nico", supongo. -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Oct Hex UCS2 Nem %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Lo siento, no hay nombres disponibles para `%s'" - -# FIXME: �La palabra "Resurface" hab�a desaparecido o no? -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Se ha establecido `resurfacer' m�s de una vez para `%s'" - -# FIXME: Lo mismo. �? -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Se ha establecido `unsurfacer' m�s de una vez para `%s'" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Memoria virtual agotada" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Los c�digos %3d y %3d se convierten ambos en %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Ning�n car�cter se convierte en %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "No se puede invertir la tabla uno-a-uno dada" - -# "Siguen diagn�sticos" suena horrible. -# -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Procedimiento para convertir de `%s' a `%s':" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "El par n� %d: <%3d, %3d> es conflictivo con <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "" -"No se puede completar la tabla a partir del conjunto de pares conocidos" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Conversi�n identidad, no merece una tabla" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "La conversi�n es demasiado compleja para una simple tabla" - -# ## �Se supone que �ste mensaje era continuaci�n de otro? -# ## (el de "Tabla de conversi�n ..." ver m�s adelante) -# ## (creo que ese mensaje anterior ya no existe (?)) -# -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sTabla de conversi�n generada autom�ticamente por Free `%s' %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%spara la sucesi�n %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "No hay ninguna tabla que mostrar" - -#: src/request.c:34 -msgid "reversible" -msgstr "reversible" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s a %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "variable" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Imposible*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*copia pura y simple*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "�Memoria virtual agotada!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Fall� la etapa de inicializaci�n" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Fall� la etapa de inicializaci�n (opciones sin procesar)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Petici�n: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Encogido a: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Nombre de faceta no reconocido `%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "No se puede convertir de `%s' a `%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "Se esperaba `..' en la petici�n" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "El estado de espera del proceso hijo es 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Nem Descripci�n\n" -"\n" - -# Este es dif�cil. Se admiten sugerencias. -# Especialmente de alguien que conozca bien el programa. -# Creo que "stats" en este caso es abreviatura de "statistics" -# Pero, �Qu� es un bucket? (�balde, cubito, cangil�n?) -# M�s importante: �Qu� significa en este contexto? -# -# Afortunadamente, el mensaje parece ser del tipo "debug", porque -# en el c�digo fuente de la versi�n 3.4.1, en charset.c, el mensaje -# aparece dentro de un #if HASH_STATS y en el Makefile.in se puede ver -# que ese s�mbolo normalmente no est� definido: -# -# # These CFLAGS values are not auto-configured: -# # -DDIFF_HASH For using GNU diff's hash algorithm instead. -# # -DHASH_STATS For printing a one-liner hash statistics. -# -# As� que si no est� completamente traducido, no importa demasiado. -# Puede que a ning�n usuario normal le salga este mensaje jam�s. -# -#~ msgid "Hash stats: %d names using %d buckets out of %d\n" -#~ msgstr "Estad�stica: %d nombres utilizan %d `buckets' de un total de %d\n" - -# J!: Actualmente suena infame. �Qu� tal "en esta versi�n"? -# -# No s�. Enrique, �qu� opinas? sv -# -# 'Por el momento' me suena igual de bien em+ -# -# Vaya, pues al final me quedo con la sugerencia de Juan Carlos. -# No veo mucha diferencia, pero un poco mejor s� queda. -# -#~ msgid "Currently, -s is ignored when -g is selected" -#~ msgstr "En esta versi�n, -s no tiene efecto si se selecciona -g" - -#~ msgid "one to one" -#~ msgstr "de uno a uno" - -#~ msgid "one to many" -#~ msgstr "de uno a varios" - -#~ msgid "many to one" -#~ msgstr "de varios a uno" - -#~ msgid "many to many" -#~ msgstr "de varios a varios" - -#~ msgid " failed (reversibility problem?)\n" -#~ msgstr " fall� (�problema de reversibilidad?)\n" - -#~ msgid "%s: Task failed (reversibility problem?)" -#~ msgstr "%s: La tarea fall� (�problema de reversibilidad?)" - -#~ msgid "Task failed (reversibility problem?)" -#~ msgstr "La tarea fall� (�problema de reversibilidad?)" - -#~ msgid "MAX_CHARSETS is too small" -#~ msgstr "MAX_CHARSETS es demasiado peque�o" - -# FIXME. -# Aqu� hay un peque�o problema, y es que "juego" es masculino y -# "codificaci�n" es femenino. -# Otra posibilidad ser�a comerse el "encoding" -#~ msgid "Ambiguous charset or encoding `%s'" -#~ msgstr "Juego de caracteres o codificaci�n ambigua `%s'" - -# FIXME. -# Aqu� ocurre lo mismo. -#~ msgid "Unknown charset or encoding `%s'" -#~ msgstr "Juego de caracteres o codificaci�n ambigua `%s'" - -#~ msgid "Simplified to: %s\n" -#~ msgstr "Simplificado por: %s\n" - -#~ msgid "Unbalanced quotes in request" -#~ msgstr "Comillas desemparejadas" - -#~ msgid "Illegal backslash" -#~ msgstr "Barra invertida no permitida" - -#~ msgid "Internal error - strategy undecided" -#~ msgstr "Error interno - estrategia no decidida" - -#~ msgid "ONE to SAME" -#~ msgstr "de UNO al MISMO" - -#~ msgid "steps: %d" -#~ msgstr "pasos: %d" - -# (J! = Juan Carlos Borr�s). -# J!: �optimizado en vez de ahorrado? -# J!: �merging como combinaciones? -# J!: merge es uni�n en bases de datos o incluso podr�a ser fusi�n. -# -# Tal vez s�, o tal vez no. Como yo lo veo, hay una serie de transformaciones -# o caminos a->b->c->d Si combinas varios de estos puedes obtener un camino -# m�s corto a -> c -> d � a -> b -> d � a -> d -# y te ahorras pasos. -# -#~ msgid ", %d saved by merging" -#~ msgstr ", %d ahorrados mediante combinaciones" - -# "ignore" es un falso amigo. -# -#~ msgid "Cannot auto check the ignored charset" -#~ msgstr "No se puede comprobar el juego descartado" - -#~ msgid "Cannot auto check on %s" -#~ msgstr "No se puede comprobar sobre %s" - -# T�ngase en cuenta (al contar la longitud) que en la antepen�ltima -# l�nea de esta entrada cada \" cuenta como *un* car�cter. -#~ msgid "" -#~ "Mandatory or optional arguments to long options are mandatory or " -#~ "optional\n" -#~ "for short options too.\n" -#~ "\n" -#~ " -C, --copyright display Copyright and copying conditions\n" -#~ " -a, --auto-check report about some or all recoding paths, then " -#~ "exit\n" -#~ " -l, --list[=FORMAT] list one or all known charsets\n" -#~ " -k, --known=PAIRS restrict charsets according to known PAIRS list\n" -#~ " --help display this help and exit\n" -#~ " --version output version information and exit\n" -#~ "\n" -#~ "FORMAT is a word among decimal, octal, hexadecimal or full (which may be\n" -#~ "abbreviated to one of `dohf'), it defaults to just the canonical name.\n" -#~ "With -k, possible before charsets are listed for the given after " -#~ "CHARSET,\n" -#~ "both being RFC1345 charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -#~ "AFT2,...\n" -#~ "and BEFs and AFTs being codes. All codes are given as decimal numbers.\n" -#~ msgstr "" -#~ "Los argumentos obligatorios u opcionales para las opciones largas tambi�n " -#~ "son\n" -#~ "obligatorios u opcionales para las opciones cortas.\n" -#~ "\n" -#~ " -C, --copyright muestra el Copyright y la condiciones de copia\n" -#~ " -a, --auto-check informa sobre algunos o todos los caminos de\n" -#~ " conversi�n, y finaliza\n" -#~ " -l, --list[=FORMATO] muestra uno o todos los juegos conocidos\n" -#~ " -k, --known=PARES limita los juegos conforme a la lista de PARES\n" -#~ " conocidos\n" -#~ " --help muestra esta ayuda y finaliza\n" -#~ " --version informa de la versi�n y finaliza\n" -#~ "\n" -#~ "FORMATO es la palabra decimal, octal, hexadecimal o full (que se pueden\n" -#~ "abreviar por una de las letras `dohf'), por omisi�n el nombre can�nico.\n" -#~ "Con -k, se muestran los posibles juegos \"antes\" para el JUEGO \"despu�s" -#~ "\" dado,\n" -#~ "siendo ambos juegos RFC1345, con PARES de la forma `ANT1:DES1,ANT2:" -#~ "DES2,...\n" -#~ "donde los ANTs y los DESs son c�digos. Todos los c�digos se dan en " -#~ "decimal\n" - -# Problema �C�mo debo traducir "mis juegos favoritos son..."? -# �Debo poner "Los juegos favoritos de Fran�ois Pinard"? -# �O debo poner "mis juegos favoritos" y poner realmente MIS juegos favoritos? -# Por ejemplo, 850 y no ibmpc... -# Si al final los de F. Pinard y los m�os coinciden, un buen compromiso ser�a -# "Mis juegos favoritos (y los de Pinard :-) son..." -# -#~ msgid "" -#~ "Option -l with no FORMAT nor CHARSET list all charsets, also see the " -#~ "Texinfo\n" -#~ "documentation. My preferred charsets are (each user has preferences):\n" -#~ "\n" -#~ " ascii-bs ASCII (7-bit), using backspace to apply diacritics\n" -#~ " ibmpc IBM-PC 8-bit characters, with proper newlines\n" -#~ " latex LaTeX coding of foreign and diacriticized characters\n" -#~ " latin1 ISO Latin-1 8-bit extension of ASCII\n" -#~ " texte Easy French convention for transmitting email messages\n" -#~ msgstr "" -#~ "La opci�n -l sin FORMATO ni JUEGO muestra todos los juegos, v�ase tambi�n " -#~ "la\n" -#~ "documentaci�n de Texinfo. Mis juegos favoritos son (cada uno tendr� los " -#~ "suyos):\n" -#~ "\n" -#~ " ascii-bs ASCII (7-bit), utilizando backspace para acentos y dem�s\n" -#~ " ibmpc IBM-PC (8-bit), con retornos de carro adecuados\n" -#~ " latex LaTeX para los caracteres no ingleses, acentos y dem�s\n" -#~ " latin1 ISO Latin-1 extensi�n del ASCII de 8 bits\n" -#~ " texte Convenio franc�s para mensajes por correo electr�nico\n" - -#~ msgid "" -#~ "\n" -#~ "Usage: %s [OPTION]... [BEFORE]:[AFTER] [FILE]...\n" -#~ msgstr "" -#~ "\n" -#~ "Modo de empleo: %s [OPCI�N]... [ANTES]:[DESPU�S] [FICHERO]...\n" - -# Acerca de la palabra "pasada": -# -# J!: �qu� te parece "iteraci�n"? es m�s t�cnico -# El original franc�s dice "pour ordonnancer les passes" -# En principio puse "pasos", pero "pasadas" lleva el matiz de "sucesivas" -# �De verdad te parece que hay que ser tan t�cnico? sv -# -# Uff pasadas no me gusta, lo siento. Iteraci�n tampoco -# porque no sabemos si se trata de un bucle con mismo c�digo dentro -# � qu� tal para las sucesivas pasadas ? em+ -# -# Me vais a marear. Esto tendr� que pensarlo despacito. sv -# De momento no veo qu� de malo tiene "pasada". -# Si acaso, que modernamente tenga otros significados ("�es una pasada!" :-). -# -#~ msgid "" -#~ " -o, --sequence=popen use popen machinery for sequencing passes\n" -#~ msgstr " -o, --sequence=popen utiliza popen para las pasadas\n" - -#~ msgid " -o, --sequence=popen same as -i (on this system)\n" -#~ msgstr " -o, --sequence=popen lo mismo que -i (en este sistema)\n" - -#~ msgid "BEFORE and AFTER both default to `%s' when needed.\n" -#~ msgstr "Por omisi�n, tanto ANTES como DESPU�S son `%s' si es necesario.\n" - -#~ msgid "%s: Recoding is not reversible" -#~ msgstr "%s: La conversi�n es irreversible" - -#~ msgid "Recoding is not reversible" -#~ msgstr "La conversi�n es irreversible" - -# Otras posibilidades: -# "cada car�cter de entrada" SV (antes) -# "cada car�cter le�do" EM -# Puestos a comerse el "output", nos comemos tambi�n el "input". -# Entenderse, se entiende igual. -# -# Teniendo en cuenta que es un programa de conversi�n, y teniendo -# en cuenta que estamos usando el verbo transformarse, est� claro -# que "lo que se transforma" es la entrada y "en lo que se tranforma" -# es la salida. -# -#~ msgid " Each input char transforms into an output string,\n" -#~ msgstr " Cada car�cter se transforma en una cadena,\n" - -#~ msgid " Each input char transforms into an output string.\n" -#~ msgstr " Cada car�cter se transforma en una cadena.\n" - -# Esperemos que sea ese el sentido de la frase. -# No hay c�digo fuente donde poder comprobarlo. -# -#~ msgid " Programming is needed to handle multichar input.\n" -#~ msgstr " Los caracteres multibyte todav�a no est�n implementados.\n" - -#~ msgid " The recoding might not be reversible.\n" -#~ msgstr " La conversi�n podr�a ser irreversible.\n" - -#~ msgid " The recoding should be reversible.\n" -#~ msgstr " La conversi�n deber�a ser reversible.\n" - -# lo mismo de antes -# -#~ msgid " programming is needed to handle multichar input.\n" -#~ msgstr " los caracteres multibyte todav�a no est�n implementados.\n" - -#~ msgid "/* Conversion table from `%s' charset to `%s' charset.\n" -#~ msgstr "/* Tabla de conversi�n del juego `%s' al juego `%s'.\n" - -#~ msgid "MAX_SEQUENCE is too small" -#~ msgstr "MAX_SEQUENCE es demasiado peque�o" - -#~ msgid "MAX_SINGLE_STEPS is too small" -#~ msgstr "MAX_SINGLE_STEPS es demasiado peque�o" - -#~ msgid "Mere copy for the trivial recoding\n" -#~ msgstr "Copia pura y simple para la conversi�n trivial\n" - -#~ msgid "You may not explicitly recode from RFC 1345" -#~ msgstr "No se puede convertir expl�citamente a partir de RFC 1345" diff --git a/po/fr.gmo b/po/fr.gmo deleted file mode 100644 index c9c5a1b..0000000 Binary files a/po/fr.gmo and /dev/null differ diff --git a/po/fr.po b/po/fr.po deleted file mode 100644 index 49fa988..0000000 --- a/po/fr.po +++ /dev/null @@ -1,614 +0,0 @@ -# Messages fran�ais pour Free recode. -# Copyright � 2004 Free Software Foundation, Inc. -# Michel Robitaille , traduction depuis/since 1996. -# -msgid "" -msgstr "" -"Project-Id-Version: Free recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2004-05-10 08:00-0500\n" -"Last-Translator: Michel Robitaille \n" -"Language-Team: French \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Pas d'erreur" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Entr�e en forme non canonique" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Sortie ambigu�" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Entr�e non traduisible" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Entr�e invalide" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Probl�me rapport� par le syst�me" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Mauvais usage de la logith�que de recodage" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Probl�me interne durant le recodage" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Ce programme est un logiciel libre; vous pouvez le redistribuer ou le\n" -"modifier selon les termes de la License Publique G�n�rale de GNU, publi�e\n" -"par la Free Software Foundation (soit la version 2 ou soit, � votre\n" -"discr�tion, toute version ult�rieure).\n" -"\n" -"Ce programme est distribu� pour �tre utile, mais SANS AUCUNE GARANTIE;\n" -"sans m�me la garantie implicite qu'il est DE QUALITE LOYALE ET MARCHANDE\n" -"ou APPROPRIE POUR UN BUT PARTICULIER. Voir la Licence Publique G�n�rale\n" -"de GNU pour plus de d�tails.\n" -"\n" -"Vous devriez avoir re�u copie de la Licence Publique G�n�rale de GNU\n" -"avec ce programme; sinon, �crire � la Free Software Foundation, Inc.,\n" -"59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Pour plus d'information, essayez � %s %s �.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"� Free recode � transforme les jeux de caract�res et les surfaces de " -"fichiers\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | DEMANDE [FICHIER]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Un param�tre obligatoire pour une option de forme longue l'est aussi pour " -"une\n" -"option de forme courte. La m�me r�gle s'applique � un param�tre indiqu� " -"comme\n" -"�tant optionnel.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Listes:\n" -" -l, --list[=FORMAT] afficher un charset donn�, ou fournir toute la " -"liste\n" -" -k, --known=PAIRES choisir les charsets selon quelques PAIRES " -"connues\n" -" -h, --header[=[LN/]NOM] tabuler NOM sur stdout, utilisant LN, puis " -"terminer\n" -" -F, --freeze-tables produire un module C contenant toutes les " -"tables\n" -" -T, --find-subsets lister tout charset qui est sous-ensemble d'un " -"autre\n" -" -C, --copyright afficher les conditions de copie, puis terminer\n" -" --help fournir ce message d'aide, puis terminer\n" -" --version identifier la programme, puis terminer\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Modes d'op�ration:\n" -" -v, --verbose afficher les �tapes pr�vues, suivre la " -"progression\n" -" -q, --quiet, --silent taire les messages sur les recodages " -"irr�versibles\n" -" -f, --force effectuer m�me les recodages irr�versibles\n" -" -t, --touch toucher les fichiers apr�s leur remplacement\n" -" -i, --sequence=files fabriquer des fichiers pour ordonnancer les " -"passes\n" -" --sequence=memory utiliser des tampons pour ordonnancer les passes\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr "" -" -p, --sequence=pipe utiliser � pipe � pour ordonnancer les passes\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe m�me chose que -i (sur cette machine)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Ajustements fins:\n" -" -s, --strict recoder strictement, perte possible de caract�res\n" -" -d, --diacritics se restreindre aux diacritiques pour HTML/LaTeX\n" -" -S, --source[=LN] ne recoder que les cha�nes et les commentaires LN\n" -" -c, --colons utiliser � : � plut�t que � \\\" � pour les tr�mas\n" -" -g, --graphics convertir au mieux possible les � rulers � IBMPC\n" -" -x, --ignore=CHARSET ignorer CHARSET durant le choix des �tapes\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"L'option � -l � sans FORMAT ni CHARSET donne les charsets et surfaces " -"disponibles.\n" -"FORMAT vaut � decimal �, � octal �, � hexadecimal � ou � full �, ou encore " -"un caract�re\n" -"dans � dohf �.\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"� moins que DEFAULT_CHARSET ne soit initialis� dans l'environnement,\n" -"le CHARSET par d�faut est locale selon l'encodage, d�termin� par LC_ALL, " -"LC_CTYPE, LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Avec -k, les charsets ant�c�dents possibles sont list�s pour le CHARSET\n" -"cons�quent, tous deux �tant des charsets RFC1345, restreints par les PAIRES\n" -"dites selon la syntaxe � AVANT1:APR�S1,AVANT2:APR�S2,... �; chaque code " -"AVANT\n" -"et APR�S est exprim� en d�cimal.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN est un langage de programmation, valant � c � (implicite), � perl � ou � " -"po �.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"DEMANDE est SOUS-DEMANDE[,SOUS-DEMANDE]...; SOUS-DEMANDE est CODAGE[.." -"CODAGE]...\n" -"CODAGE est [CHARSET][/[SURFACE]]...; DEMANDE ressemble souvent � AVANT.." -"APR�s,\n" -"AVANT et APR�S �tant des charsets. Un CHARSET omis sous-entend le charset\n" -"habituel; une [/SURFACE]... omise sous-entend les surfaces habituelles pour\n" -"CHARSET; un / sans surface indique l'absence de toute surface. Voir le " -"manuel!\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"En l'absence de � -i � ou � -p �, choisir � -i � avec FICHIER, sinon � -p " -"�.\n" -"Chaque FICHIER est recod� sur lui-m�me, d�truisant l'original. Si aucun\n" -"FICHIER n'est donn�, alors agir comme un filtre et recoder stdin sur " -"stdout.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Rapporter toutes anomalies � .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "S�quence � %s � est ambigu�" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "S�quence � %s � est inconnue" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "Langage � %s � est ambigu" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Langage � %s � est inconnu" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Format � %s � est ambigu" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Format � %s � est inconnu" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "�crit par Fran�ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright � 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Ce programme est un logiciel libre; consulter les sources pour conna�tre\n" -"les droits de copie. Il n'y AUCUNE GARANTIE; m�me pas celle qu'il est\n" -"DE QUALIT� LOYALE ET MARCHANDE ou APPROPRI� POUR UN BUT PARTICULIER.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "�Symbole � %s � est inconnu" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Charset � %s � est inconnu ou ambigu" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Argument requis est manquant" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Syntaxe d�su�te, veuillez pr�f�rer � %s �" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Requ�te � %s � est erron�e" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Recodage de � %s �..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " compl�t�\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " non-r�ussi: %s dans � %s..%s �\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s non-r�ussi: %s dans � %s..%s �" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s dans � %s..%s �" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Le charset %s existe d�j�, et n'est pas %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "Incapable de lister � %s �: les noms n'y sont pas disponibles" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "d�c oct hex UCS2 mn� %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "D�sol�, aucun nom disponible pour � %s �" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Plus d'un re-surfaceur pour � %s �" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Plus d'un d�-surfaceur pour � %s �" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "M�moire virtuelle �puis�e" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Les codes %3d et %3d s'injectent tous deux dans %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Aucun caract�re ne peut produire %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Incapable d'inverser une table un-�-un" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Les diagnostics suivants s'appliquent pour � %s � vers � %s �" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Paire no. %d: < %3d, %3d > en conflit avec < %3d, %3d >" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Incapable de fermer une table en partant des paires connues" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Le recodage est trivial, une table n'est pas requise" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Recodage plus complexe que ce qu'une table peut d�crire" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sTable de conversion engendr�e m�caniquement par Free � %s � %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%spour s�quence � %s �.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Aucune table � imprimer" - -#: src/request.c:34 -msgid "reversible" -msgstr "r�versible" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s vers %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "octet" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "flottant" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Irr�alisable*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*simple copie*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "M�moire virtuelle �puis�e" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "L'�tape n'a pas �t� correctement initialis�e" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "L'�tape n'a pas �t� correctement initialis�e (options non-trait�es)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Demande: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "R�duit �: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Nom de surface inconnu: %s" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Pas moyen de recoder %s vers %s" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "Cha�ne � .. � attendue dans la demande" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "L'�tat du processus fils en attente est 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mn� Description\n" -"\n" - -#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n" -#~ msgstr "" -#~ "CHARSET ne peut �tre omis, d�finir DEFAULT_CHARSET dans l'environment.\n" - -#~ msgid "Ambiguous sequence `%s'" -#~ msgstr "La s�quence �%s� est ambigu�" - -#~ msgid "Unknown sequence `%s'" -#~ msgstr "S�quence �%s� inconnue" - -#~ msgid "Ambiguous language `%s'" -#~ msgstr "Le langage �%s� est ambigu" - -#~ msgid "Unknown language `%s'" -#~ msgstr "Langage �%s� inconnu" - -#~ msgid "Ambiguous format `%s'" -#~ msgstr "Le format �%s� est ambigu" - -#~ msgid "Unknown format `%s'" -#~ msgstr "Format �%s� inconnu" - -#~ msgid "Erroneous request `%s'" -#~ msgstr "Demande �%s� en erreur" - -#~ msgid " Each input char transforms into an output string,\n" -#~ msgstr " Chaque caract�re lu devient une cha�ne � la sortie,\n" - -#~ msgid " Each input char transforms into an output string.\n" -#~ msgstr " Chaque caract�re lu devient une cha�ne � la sortie.\n" - -#~ msgid " Programming is needed to handle multichar input.\n" -#~ msgstr " Il faudra programmer la lecture des multi-caract�res.\n" - -#~ msgid " The recoding might not be reversible.\n" -#~ msgstr " Ce recodage pourrait �tre irr�versible.\n" - -#~ msgid " The recoding should be reversible.\n" -#~ msgstr " Ce recodage est normalement r�versible.\n" - -#~ msgid " programming is needed to handle multichar input.\n" -#~ msgstr " il faudra programmer la lecture des multi-caract�res.\n" - -#~ msgid "%s: Recoding is not reversible" -#~ msgstr "%s: Recodage irr�versible" - -#~ msgid ", %d saved by merging" -#~ msgstr ", %d �conomis�s par fusion" - -#~ msgid "/* Conversion table from `%s' charset to `%s' charset.\n" -#~ msgstr "/* Table de conversion du charset �%s� vers le charset �%s�.\n" - -#~ msgid "Hash stats: %d names using %d buckets out of %d\n" -#~ msgstr "Statistiques de dispersion: %d noms, dans %d/%d pigeonniers\n" - -#~ msgid "Internal error - strategy undecided" -#~ msgstr "Erreur interne - strag�gie non choisie" - -#~ msgid "Mere copy for the trivial recoding\n" -#~ msgstr "Recodage trivial par simple recopie\n" - -#~ msgid "Recoding is not reversible" -#~ msgstr "Recodage irr�versible" - -#~ msgid "BEFORE and AFTER both default to `%s' when needed.\n" -#~ msgstr "" -#~ "AVANT et APR�S ont implicitement la valeur canonique �%s�, " -#~ "lorsqu'absents.\n" diff --git a/po/ga.gmo b/po/ga.gmo deleted file mode 100644 index a912c75..0000000 Binary files a/po/ga.gmo and /dev/null differ diff --git a/po/ga.po b/po/ga.po deleted file mode 100644 index 7c12506..0000000 --- a/po/ga.po +++ /dev/null @@ -1,542 +0,0 @@ -# Irish translations for recode. -# Copyright (C) 2005 Free Software Foundation, Inc. -# Kevin Patrick Scannell , 2005. -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2005-09-13 18:45-0500\n" -"Last-Translator: Kevin Patrick Scannell \n" -"Language-Team: Irish \n" -"Language: ga\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "N� raibh aon earr�id" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Ionchur neamhchan�nta" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Aschur d�bhr�och" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Aschur neamh-inaistrithe" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Ionchur neamhbhail�" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Bhraith an c�ras fadhb" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "M�-�s�id den leabharlann ath-ionch�daithe" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Fabht inmhe�nach ath-ionch�daithe" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Is saorbhogearra an r�omhchl�r seo; is f�idir leat � a scaipeadh agus/n�\n" -"a athr� de r�ir na gcoinn�ollacha den GNU General Public License mar at�\n" -"foilsithe ag an Free Software Foundation; faoi leagan 2 den chead�nas,\n" -"n� (m�s mian leat) aon leagan n�os d�ana�.\n" -"\n" -"Scaiptear an r�omhchl�r seo le s�il go mbeidh s� �isi�il,\n" -"ach GAN AON BAR�NTA; go fi� gan an bar�ntas intuigthe de\n" -"IND�OLTACHT n� FEILI�NACHT DO FHEIDHM AR LEITH. F�ach ar an\n" -"GNU General Public License chun n�os m� sonra� a fh�il.\n" -"\n" -"Ba chomhair go mbeife� tar �is c�ip den GNU General Public License a fh�il " -"in\n" -"�ineacht leis an r�omhchl�r seo; mura bhfuair, scr�obh chuig an Free " -"Software\n" -"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Bain triail as `%s %s' chun tuilleadh eolais a fh�il.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Tionta�onn saorbhogearra `recode' comhaid idir tacair charachtar agus " -"craicne �ags�la.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"�s�id: %s [ROGHA]... [ [TACAR] | IARRATAS [COMHAD]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Is riachtanach le rogha ghearr aon arg�int at� riachtanach\n" -"leis an rogha fhada, agus ar an n�s c�anna leis na harg�int� roghnacha.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Liost�:\n" -" -l, --list[=FORM�ID] taispe�in tacair charachtar agus ailiasanna ar " -"eolas\n" -" -k, --known=P�IR� �s�id tacair charachtar �n liosta P�IR� amh�in\n" -" -h, --header[=[TN/]AINM] scr�obh t�bla AINM ar stdout le TN, agus scoir\n" -" -F, --freeze-tables scr�obh mod�l C le gach t�bla ann\n" -" -T, --find-subsets taispe�in gach tacar carachtar at� i gceann " -"eile\n" -" -C, --copyright taispe�in C�ipcheart agus coinn�ollacha " -"c�ipe�la\n" -" --help taispe�in an chabhair seo agus scoir\n" -" --version taispe�in eolas faoin leagan agus scoir\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"M�id oibr�ochta:\n" -" -v, --verbose taispe�in na c�imeanna agus dul chun cinn\n" -" -q, --quiet, --silent n� taispe�in teachtaireachta� maidir le\n" -" ath-ionch�duithe doch�laithe\n" -" -f, --force f�rs�il ath-ionch�d� fi� m�s doch�laithe �\n" -" -t, --touch teagmh�il na comhaid ath-ionch�daithe tar �is\n" -" iad a athshu�omh\n" -" -i, --sequence=comhaid �s�id comhaid idirmhe�nacha le linn " -"seicheamhaithe\n" -" --sequence=cuimhne �s�id maol�in chuimhne le linn seicheamhaithe\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=p�opa �s�id p�opa le linn seicheamhaithe\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=p�opa ar comhbhr� le -i (ar an gc�ras seo)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Mionchoigeart�:\n" -" -s, --strict �s�id dianmhap�il, fi� le carachtair neamhchruinn\n" -" -d, --diacritics tiontaigh diaicritic� amh�in le haghaidh HTML/" -"LaTeX\n" -" -S, --source[=TN] ath-ionch�daigh teaghr�in agus n�ta� amh�in, mar le " -"TN\n" -" -c, --colons �s�id idirstadanna in ionad \" le haghaidh " -"d�ir�ise\n" -" -g, --graphics neasaigh rial�ir� IBMPC le grafaic ASCII\n" -" -x, --ignore=TACAR n� h�s�id TACAR agus conair ath-ionch�daithe � " -"roghn�\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"Taispe�nann rogha -l (gan FORM�ID gan TACAR) gach tacar carachtar agus\n" -"gach craiceann at� ar f�il. Is FORM�ID ceann de `decimal', `octal',\n" -"`hexadecimal' n� `full' (n� ceann de `dohf').\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Mura bhfuil DEFAULT_CHARSET socraithe mar athr�g thimpeallachta, �s�id an\n" -"t-ionch�d� �n logchaighde�n mar luach r�amhshocraithe ar CHARSET;\n" -"socra�tear an t-ionch�d� seo leis na hathr�ga LC_ALL, LC_CTYPE, agus LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Le -k, taispe�ntar gach tacar tosaithe gur f�idir a �s�id leis\n" -"an TACAR deiridh, gach ina tacar t�blach. Is san fhoirm\n" -"`TOS1:DEIR1,TOS2:DEIR2,...' iad na P�IR�, agus na c�id TOS1, DEIR1,\n" -"srl. tugtha mar uimhreacha deach�lacha.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"Is teanga � TN, ceann de `c', `perl' n� `po'; is `c' an r�amhshocr� �.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"Is san fhoirm FOIARRATAS[,FOIARRATAS]... � IARRATAS, is san fhoirm\n" -"IONCH�D�[..IONCH�D�]... � FOIARRATAS, agus is san fhoirm\n" -"[TACARCARACHTAR][/CRAICEANN]]... � IONCH�D�; is IARRATAS cos�il le\n" -"TOSACH..DEIREADH go minic, le TOSACH agus DEIREADH ina dtacair\n" -"charachtar. M� t� TACAR ligthe ar l�r, �s�id an gn�th-thacar;\n" -"M� t� [/CRAICEANN] ar l�r, �s�id an craiceann intuigthe le TACAR;\n" -"Mura bhfuil ach `/' ann gan chraiceann, n� h�s�id craiceann ar chor ar " -"bith.\n" -"F�ach ar an l�mhleabhar.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Mura bhfuil -i n� -p ann, glac le -p mura bhfuil COMHAD ann, agus\n" -"le -i i ngach c�s eile. Ath-ionch�da�tear gach COMHAD anuas air f�in,\n" -"agus beidh na bunch�ipeanna scriosta. Mura bhfuil COMHAD sonraithe,\n" -"oibr�onn recode mar scagaire, agus ath-ionch�da�tear stdin go stdout.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Seol tuairisc� fabhtanna chuig .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "T� an seicheamh `%s' d�bhr�och" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "T� an seicheamh `%s' anaithnid" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "T� an teanga `%s' d�bhr�och" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Teanga anaithnid `%s'" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Form�id dh�bhr�och `%s'" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Form�id anaithnid `%s'" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Le Fran�ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright � 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Is saorbhogearra an r�omhchl�r seo; f�ach ar an bhunch�d le haghaidh\n" -"coinn�ollacha c�ipe�la. N�l bar�nta ar bith ann; go fi� n�l bar�nta ann\n" -"d'IND�OLTACHT n� FEILI�NACHT DO FHEIDHM AR LEITH.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Siombail anaithnid `%s'" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Tacar carachtar `%s' anaithnid n� d�bhr�och" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Arg�int riachtanach ar iarraidh" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Comhr�ir i l�ig, �s�id `%s' ina hionad" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Iarratas lochtach `%s'" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "%s � ath-ionch�d�..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " cr�ochnaithe\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " teipthe: %s i gc�im `%s..%s'\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "theip ar %s: %s i gc�im `%s..%s'" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s i gc�im `%s..%s'" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "T� tacar carachtar %s ann cheana, agus n� %s �" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "" -"N� f�idir `%s' a liost�; n�l aon ainm ar f�il le haghaidh an tacair " -"carachtar seo" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Deach Ocht Heics UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "T� br�n orm, n�l aon ainm ar f�il le haghaidh `%s'" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Athchraiceannad�ir socraithe n�os m� n� uair amh�in le haghaidh `%s'" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Feannad�ir socraithe n�os m� n� uair amh�in le haghaidh `%s'" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Cuimhne fh�or�il �dithe" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Ath-ionch�da�onn na c�id %3d agus %3d go dt� %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "N�l aon charachtar a ath-ionch�da�tear go dt� %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "N� f�idir an t�bla tugtha aon-le-haon a inbh�art�" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Diagn�isic le haghaidh `%s' go `%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "P�ire uimh. %d: tagann <%3d, %3d> agus <%3d, %3d> salach ar a ch�ile" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "N� f�idir an t�bla a chur i gcr�ch le tacar de ph�ir� at� ar eolas" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Ath-ionch�d� ionannais; n� fi� t�bla �" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Is r�chasta � an t-ath-ionch�d� mura bhfuil ach t�bla ann" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sT�bla tiontaithe ginte go huathoibr�och ag saorbhogearr� `%s' %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%sle haghaidh sheichimh %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "N�l t�bla ann le priont�il" - -#: src/request.c:34 -msgid "reversible" -msgstr "inch�laithe" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s go %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "beart" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "athr�g" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Dodh�anta*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*lomch�ip*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Cuimhne fh�or�il �dithe!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Theip ar th�s� na c�ime" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Theip ar th�s� na c�ime (roghanna gan phr�ise�il)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Iarratas: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Crapadh go: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Ainm anaithnid craicinn `%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "N� f�idir `%s' a ath-ionch�d� mar `%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "Bh�othas ag s�il le `..' san iarratas" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Is 0x%0.2x � st�das feithimh le haghaidh an mhacphr�isis" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Cur S�os\n" -"\n" diff --git a/po/gl.gmo b/po/gl.gmo deleted file mode 100644 index 1f78825..0000000 Binary files a/po/gl.gmo and /dev/null differ diff --git a/po/gl.po b/po/gl.po deleted file mode 100644 index 3c93706..0000000 --- a/po/gl.po +++ /dev/null @@ -1,568 +0,0 @@ -# Galician translation of GNU recode -# Copyright (C) 2000 Free Software Foundation, Inc. -# Jacobo Tarr�o Barreiro , 2000. -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2001-06-09 17:28+0200\n" -"Last-Translator: Jacobo Tarr�o Barreiro \n" -"Language-Team: Galician \n" -"Language: gl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Sen erros" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Sen sa�da normalizada" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Sa�da ambigua" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Entrada non traducible" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Entrada incorrecta" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "O sistema detectou un problema" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Uso incorrecto da librer�a de recodificaci�n" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Erro interno na recodificaci�n" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Este programa � software libre; pode redistribu�lo e/ou modificalo\n" -"baixo os termos da Licencia P�blica Xeral de GNU tal como foi publicada\n" -"pola Free Software Foundation; xa a versi�n 2, ou (� s�a elecci�n)\n" -"calqueira versi�n posterior.\n" -"\n" -"Este programa � distribu�do coa esperanza de que sexa �til, pero\n" -"SEN NINGUNHA GARANT�A; nin sequera a garant�a impl�cita de COMERCIABILIDADE\n" -"ou APTITUDE PARA UN FIN EN PARTICULAR. Vexa a Licencia P�blica Xeral de\n" -"GNU para ter m�is detalles.\n" -"\n" -"Deber�a ter recibido unha copia da Licencia P�blica Xeral de GNU con\n" -"este programa; se non � o caso, escriba � Free Software Foundation, Inc.,\n" -"59 Temple Place - Suite 330, Boston, MA 02111-1307, EE.UU.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Escriba `%s %s' para obter m�is informaci�n.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"O `recode' libre convirte ficheiros entre varios xogos de caracteres e " -"superficies.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Uso: %s [OPCI�N]... [ [XOGO-DE-CARACTERES] | PETICI�N [FICHEIRO]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Se unha opci�n longa amosa un par�metro como obrigatorio, ent�n tam�n �\n" -"obrigatorio para a opci�n curta equivalente. Do mesmo xeito para " -"par�metros\n" -"opcionais.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Listados:\n" -" -l, --list[=FORMATO] listar un ou t�dolos xogos de caracteres e " -"alias\n" -" co�ecidos\n" -" -k, --known=PARES restrinxi-los xogos de acordo coa lista de " -"PARES\n" -" co�ecidos\n" -" -h, --header[=[LN/]NOME] escribi-la t�boa NOME na sa�da est�ndar usando\n" -" LN, e logo sair\n" -" -F, --freeze-tables escribir un m�dulo en C que cont�n t�dalas " -"t�boas\n" -" -T, --find-subsets informar dos xogos que son subconxuntos doutros\n" -" -C, --copyright amosa-lo copyright e as condici�ns de copia\n" -" --help amosar esta axuda e sair\n" -" --version amosar informaci�n sobre a versi�n e sair\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Modos de operaci�n:\n" -" -v, --verbose explica-la secuencia de pasos e informar dos\n" -" progresos\n" -" -q, --quite, --silent inhibi-las mensaxes sobre recodificaci�ns\n" -" irreversibles\n" -" -f, --force forza-las recodificaci�ns incluso cando non son\n" -" reversibles\n" -" -t, --touch toca-los ficheiros recodificados despois de\n" -" cambialos\n" -" -i, --sequence=files usar ficheiros intermedios para pasos " -"secuenciais\n" -" --sequence=memory usa-la memoria para pasos secuenciais\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr "" -" -p, --sequence=pipe usar canalizaci�ns para pasos secuenciais\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe o mesmo que -i (neste sistema)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Axustes finos:\n" -" -s, --strict usar mapeados estrictos, incluso perder caracteres\n" -" -d, --diacritics converter s� diacr�ticos ou similares para HTML/LaTeX\n" -" -S, --source[=LN] limita-la recodificaci�n a cadeas e comentarios para " -"LN\n" -" -c, --colon usar dous puntos no canto de comi�as dobres para " -"di�rese\n" -" -g, --graphics aproxima-las li�as de IBMPC con gr�ficos ASCII\n" -" -x, --ignore=XOGO ignora-lo XOGO ao escoller unha rota de " -"recodificaci�n\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"A opci�n -l sen FORMATO ou XOGO lista os xogos e superficies dispo�ibles.\n" -"O FORMATO � `decimal', `octal', `hexadecimal' ou `full' (completo), ou unha\n" -"letra entre `dofh'.\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"A menos que se estableza a variable de ambiente DEFAULT_CHARSET, XOGO � o do " -"`locale'.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Con -k, os posibles xogos iniciais l�stanse para o XOGO final indicado,\n" -"sendo os dous xogos tabulares, con PARES da forma `INI1:FIN1,INI2:FIN2,...'\n" -"e os c�digos INI e FIN d�ndose coma n�meros decimais.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "LN � unha linguaxe, pode ser `c', `perl' ou `po'; `c' por defecto.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"PETICI�N � SUBPETICI�N[,SUBPETICI�N]...; SUBPETICI�N �\n" -"CODIFICACI�N[..CODIFICACI�N]...; CODIFICACI�N � [XOGO][/[SUPERFICIE]]...;\n" -"PETICI�N adoita parecer INICIAL..FINAL, sendo INICIAL e FINAL uns xogos de\n" -"caracteres. Se non se indica un XOGO t�mase o xogo normal; se non se " -"indica\n" -"unha [/SUPERFICIE]... t�manse as superficies implicadas en XOGO; cunha /\n" -"cun nome de superficie baleiro non se toma ningunha superficie. Lea o " -"manual.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Se non se indica -i nin -p, suponse -p se non se indica un FICHEIRO, sen�n -" -"i.\n" -"Cada FICHEIRO recodif�case sobre si mesmo, destru�ndose o orixinal. Se non\n" -"se indica un FICHEIRO, traballa coma un filtro e recodifica stdin a stdout.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Informe dos erros en .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "A secuencia `%s' � ambigua" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "A secuencia `%s' � desco�ecida" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "A linguaxe `%s' � ambigua" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "A linguaxe `%s' � desco�ecida" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "O formato `%s' � ambiguo" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "O formato `%s' � desco�ecido" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Escrito por Fran�ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Isto � software libre; vexa o c�digo fonte polas condici�ns de copia. NON " -"hai\n" -"garant�a; nin sequera de COMERCIABILIDADE ou APTITUDE PARA UN FIN " -"DETERMINADO.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "O s�mbolo `%s' � desco�ecido" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Xogo de caracteres `%s' desco�ecido ou ambiguo" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Falla o argumento requirido" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Sintaxe a estinguir, pref�rese `%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "A petici�n `%s' � err�nea" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Recodificando %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " feito\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " fallou: %s no paso `%s..%s'\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s fallou: %s no paso `%s..%s'" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s no paso `%s..%s'" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "O xogo de caracteres %s xa existe e non � %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "Non se pode listar `%s', non hai nomes dispo�ibles para este xogo" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Oct Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "S�ntoo, non hai nomes dispo�ibles para `%s'" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Aplic�ronse superficies m�is dunha vez para `%s'" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Quit�ronse superficies m�is dunha vez para `%s'" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Memoria virtual esgotada" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "�mbolos dous c�digos %3d e %3d recodif�canse a %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Non hai caracteres que se recodifiquen a %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Non se pode inverti-la t�boa un-a-un dada" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Seguen os diagn�sticos para `%s' a `%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "O par n�m. %d: <%3d, %3d> entra en conflicto con <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Non podo completa-la t�boa dado o conxunto de pares co�ecidos" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Recodificaci�n identidade, non merece a pena facer unha t�boa" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "A recodificaci�n � demasiado complicada para unha simple t�boa" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sT�boa de conversi�n xerada mec�nicamente polo `%s' Libre %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%spara a secuencia %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Non hai ningunha t�boa que visualizar" - -#: src/request.c:34 -msgid "reversible" -msgstr "reversible" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s a %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "variable" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Inalcanzable*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*simple copia*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "�Memoria virtual esgotada!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "A inicializaci�n do paso fallou" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "A inicializaci�n do paso fallou (opci�ns sen procesar)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Petici�n: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Encollido a: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Nome de superficie `%s' non reco�ecido" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Non hay xeito de recodificar de `%s' a `%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "Esper�base un `..' na petici�n" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "O estado de espera do proceso fillo � 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Descripci�n\n" -"\n" - -#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n" -#~ msgstr "" -#~ "XOGO non ten valor por defecto, defina a variable de ambiente " -#~ "DEFAULT_CHARSET.\n" - -#~ msgid "Ambiguous sequence `%s'" -#~ msgstr "Secuencia `%s' ambigua" - -#~ msgid "Unknown sequence `%s'" -#~ msgstr "Secuencia `%s' desco�ecida" - -#~ msgid "Ambiguous language `%s'" -#~ msgstr "Linguaxe `%s' ambigua" - -#~ msgid "Unknown language `%s'" -#~ msgstr "Linguaxe `%s' desco�ecida" - -#~ msgid "Ambiguous format `%s'" -#~ msgstr "Formato `%s' ambigua" - -#~ msgid "Unknown format `%s'" -#~ msgstr "Formato `%s' desco�ecido" - -#~ msgid "Erroneous request `%s'" -#~ msgstr "Petici�n `%s' err�nea" diff --git a/po/he.gmo b/po/he.gmo deleted file mode 100644 index 26afcea..0000000 Binary files a/po/he.gmo and /dev/null differ diff --git a/po/he.po b/po/he.po deleted file mode 100644 index 29e8315..0000000 --- a/po/he.po +++ /dev/null @@ -1,524 +0,0 @@ -# Hebrew messages for Free recode -*- coding: hebrew-iso-8bit -*- -# Copyright (C) 2001 Free Software Foundation, Inc. -# Eli Zaretskii , 2001. -# -msgid "" -msgstr "" -"Project-Id-Version: Free recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2001-05-27 17:06+0300\n" -"Last-Translator: Eli Zaretskii \n" -"Language-Team: Hebrew \n" -"Language: he\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-8\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "������ ���" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "���� ���� ���" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "�����-�� ���� ���" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "������ ���� ���� ���" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "������ ����� ����� ���� ���" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "����� ����" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "����� ������ ������� ���� �����" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "����� ����� ������ ������ ����" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -" ����� ������ ��/� ������ ����� ;����� ���� ���� �� �����\n" -" �\"� ���� ����� ,GNU General Public License ������ �����\n" -" ��� ,������ �� 2 ����� �� ;Free Software Foundation\n" -" .���� ������ ���� ��� (�� ������ �������)\n" -"\n" -" ,����� ���� ���� ����� ���� ����� �� �����\n" -" ������-������ �� ����� ;������ ��� �� ��� ����\n" -" ,������ .������ ����� ����� ����� �� ������ ��\n" -" .GNU General Public License-� ���� ���\n" -"\n" -";GNU General Public License �� ����� ����� ����� ����� �� �����\n" -" Free Software Foundation, Inc.-� ���� ��� ,���� ����� �� ��\n" -" .59 Temple Place - Suite 330, Boston, MA 02111-1307, USA\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr ".`%s %s' ���� ,�� ������ ����� �� ���� ���� �����\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -" .����� ������� ����� ������ ��� ����� ������ Free `recode' ������\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"%s [��������]... [ [����� | ����� ����� [����]... ] :������ ����\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -" ���� �� ����� ��� �� ,������ �������� �� ���� ������ ������ ������ ��\n" -" .������� ����� ��������� ���� �� ��� .������ ���� �� ������� �����\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -" :������\n" -" ������� ����� ������ ������ �� �� ��� ����� ��� -l, --list[=�����]\n" -"������ ����� ������ �������� ����� ������ �� ��� -k, --known=�����\n" -" LN ����� ���� ������� NAME ��� ���� ���� -h, --header[=[LN/]NAME]\n" -" ������� �� �� ����� C ���� ���� ���� ���� -F, --freeze-tables\n" -"����� ������ �� ������-�� ����� ����� ������ ��� -T, --find-subsets\n" -" ����� ����� ������ ������ ��� -C, --copyright\n" -" �� ���� ��� ��� --help\n" -" ������ ����� �� ��� --version\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -" :����� �����\n" -" ������� ����� ������� ���� �� ���� -v, --verbose\n" -" ������-���� ������ �� ������ ����� �� -q, --quiet, --silent\n" -" ����� ���� �� �� ����� ��� -f, --force\n" -" ������� ���� ����� �� ���� ����� ���� -t, --touch\n" -"������ ���� �� ������ ������ ������ ������ ����� -i, --sequence=files\n" -" ������ ������ ���� �� ������� ������ ���� --sequence=memory\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " ������ ���� ������ (pipe) ����� ����� -p, --sequence=pipe\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " (�� ������) -i ��� -p, --sequence=pipe\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -" ���� �������\n" -" ����� ����� ����� ����� ,����� ������ ����� -s, --strict\n" -" LaTeX-� HTML ���� ��������� �� ����� �� ���� -d, --diacritics\n" -" LN ����� ��� ����� ������ �������� ����� ���� -S, --source[=LN]\n" -" ������� ������ ������ ����� ���������� ����� -c, --colons\n" -" ASCII ���� ��� �\"� IBM �� ������ ����� ��� -g, --graphics\n" -" ����� ���� ����� ��� CHARSET ����� ������ ����� -x, --ignore=CHARSET\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -".�������� ������ ������ �� �� ���� ����� ����� �� ����� ���� ��� -l ������\n" -" ��� ��� ��) `full' �� `hexadecimal' ,`octal' ,`decimal' ����� ���� �����\n" -" .(`dohf' ������ ����\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -" ����� ����� �� ����� ����� ,����� ���� DEFAULT_CHARSET ����� ����� ��\n" -".LANG, LC_CTYPE, LC_ALL ������ ���� ���� ������ �������� ������ �\"� �����\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -" ����� �� ����� ���� ������ ������ ��� ������ ������ �� ������ ,-k �������\n" -".�������� ����� �� AFT-� BEF-� ,`BEF1:AFT1,BEF2:AFT2,...'-� ������� ������\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -" .`c' ��� ����� ����� ;`po' �� ,`perl' ,`c' :����� ��� ����� LN\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -":����� SUBREQUEST ��� SUBREQUEST[,SUBREQUEST]...:����� (REQUEST) ����� ����\n" -" .[CHARSET][/[SURFACE]]... :����� (�����) ENCODING .ENCODING[..ENCODING]...\n" -" ����� .����� ������ ���� AFTER-� BEFORE ;BEFORE..AFTER-� ����� ����� �\"��\n" -" ������ [/SURFACE] ����� ����� ;����� ����� ����� ������ CHARSET ���� �����\n" -" �� ����� ������ ����� �� ��� / ���� .����� ����� ����� ���� ������� ������\n" -" .������ ������ ���� ,����� ���� .�����\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -".-i ��� ���� ,FILE ������� ������ -p ��� ��� ,-p �� ��� -i �� ������ �� ��\n" -" �� ������� ��� �� .����� ������� ������� ,����� ��� ������ FILE ���� ��\n" -" .���� ��� ����� ����� ������ ����� ���� ��� ���� ��� :������ ��� ,FILE\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -" . ������ (bugs) ���� ������ ����� ��\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "--sequence ������� ������� �� �����-�� ����� ���� `%s'" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "--sequence ������� ���� ������� ���� `%s'" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "����� ��� �� �����-�� ����� ���� `%s'" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "����� ����� ��� ���� `%s'" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "����� �� �����-�� ����� ���� `%s'" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "���� ����� ���� `%s'" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr ".Franc,ois Pinard �\"� ����� �� �����\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Free Software Foundation-� ������ ������� �� (C) 1990,92,93,94,96,97,99\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"����� ;������ �� ��� .���� ����� ���� ,����� ���� �� ����� ;����� ���� ����\n" -" .������ ����� ����� ����� �� ������ �� ������-������ ��\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "����� ����� ����� ���� `%s'" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "����� ����� ����� �� �����-�� ����� ���� `%s'" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "������ ����� ������� ���" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "`%s' ���� ��� ���� ,����� ������ ������" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "���� ���� `%s' ����� ����" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "`%s' �����" - -# FIXME: this is lame! The method of printing "Frobbing...done" -# does not lend itself to good translations into languages where -# such sentences have a different structure, and should be rethought. -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " ������ �������\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr "%s :���� `%s..%s' ����� ���\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s ���� ���� %s ��� ���� `%s..%s' ����� ���" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s :`%s..%s' ����� ����" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "����� ����� �� (alias) ����� ������ %s �� ����� ����� ���� %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "������ ���� ��� �� ������ ������ ��� ,`%s' �� ����� ���� ��" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Oct Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "������ ���� ��� `%s' ������ ������ ,�������" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "`%s' ���� ��� ���� ���� ����� ����� �����" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "`%s' ���� ��� ���� ���� ����� ����� �����" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "��� �������� �����" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "%3d-� ��� %3d ������ �� ����� %3d ��� ��� ��" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "%3d-� ����� ���� �� ���" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "������ ����� ���� ������� ����� ����" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "`%s'-� `%s'-� ����� ���� ���� ���� ����� �����" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "%d ������ <%3d, %3d> ���� �� ���� <%3d, %3d> ����" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "������� ������ ����� ���� ���� ������ ������ ���" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "����� ����� ��� ,(����) ����� �����" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "����� ������ ���� ����� ���� ������ �����" - -# FIXME: this goes into a comment; is it really worth translating? -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sFree `%s' ������ �� %s ����� �\"� ������ ����� ����" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%s .%s ������ ���� ����%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "������ ���� ���" - -#: src/request.c:34 -msgid "reversible" -msgstr "����" - -# FIXME: these assume left-to-right direction. What else can I do? -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s -> %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "variable" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "����� ����-����*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*����� �����*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "!��� �������� �����" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "���� ���� �����" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "(����� �� �������� ���) ���� ���� �����" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "%s :�����\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "%s -:� �������\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "���� ����� �� ���� `%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "`%s'-� `%s'-� ����� ������ ���" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "`..' ����� ��� ���� ������ ����" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "0x%0.2x ��� ��-����� ���� ���" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 ������ �����\n" -"\n" diff --git a/po/hr.gmo b/po/hr.gmo deleted file mode 100644 index 4fdc59d..0000000 Binary files a/po/hr.gmo and /dev/null differ diff --git a/po/hr.po b/po/hr.po deleted file mode 100644 index b1f7150..0000000 --- a/po/hr.po +++ /dev/null @@ -1,480 +0,0 @@ -# GNU recode .PO message translation file -# Copyright (C) 2002 Free Software Foundation, Inc. -# Mirsad Todorovac , 2002. -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2002-04-02 16:12+MET(DST)(UTC+2)\n" -"Last-Translator: Mirsad Todorovac \n" -"Language-Team: Croatian \n" -"Language: hr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-2\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Nema pogre�ke" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Unos nije kanoni�kog oblika" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Unos nije jednozna�an" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Neprevodiv unos" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Pogre�an unos" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Sistem je detektirao problem" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Pogre�na uporaba bibiloteke za rekodiranje" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Interni bug pri rekodiranju" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Poku�ajte `%s %s' za vi�e informacija.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Slobodni `recode' konvertira izme�u razli�itih znakovnih skupova (character " -"sets) i povr�ina (surfaces)\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Kori�tenje: %s [OPCIJA]... [ [CHARSET] | REQUEST [DATOTEKA]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Ako duga opcija prikazuje argument kao obavezan, tada je on obavezan\n" -"za ekvivalentnu kratku opciju tako�er. Sli�no vrijedi za opcionalne\n" -"argumente\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Ispisi:\n" -" -l, --list[=FORMAT] ispi�i jedan ili sve poznate charset-ove ili\n" -" aliase\n" -" -k, --known=PAIRS ograni�i charset-ove prema poznatoj PAIRS " -"listi\n" -" -h, --header[=[LN/]NAME] ispi�i tablicu NAME na stdout koriste�i LN,\n" -" potom zavr�i\n" -" -F, --freeze-tables ispi�i C modul koji dr�i sve tablice\n" -" -T, --find-subsets napravi izvje�taj o svim charset-ovima\n" -" koji su podskup drugih\n" -" -C, --copyright prika�i Copyright i uvjete kopiranja\n" -" --help prika�i ovu pomo� i zavr�i\n" -" --version ispi�i informaciju o verziji i zavr�i\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Modovi operacije:\n" -" -v, --verbose objasni sekvence koraka i izvije�tavaj o napretku\n" -" -q, --quiet, --silent zabrani poruke o ireverzibilnim rekodiranjima\n" -" -f, --force forsiraj rekodiranja �ak i kad nisu reverzibilna\n" -" -t, --touch izvr�i `touch' na rekodiranim ftotekama nakon\n" -" zamjene\n" -" -i, --sequence=files koristi privremene datoteke za sekvenciranje\n" -" koraka\n" -" --sequence=memory koristi memorijske me�uspremnike za sekvenciranje\n" -" koraka\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr "" -" -p, --sequence=pipe koristi cjevovodni (pipe) podsustav za\n" -" sekvenciranje koraka\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe isto kao -i (na ovom sistemu)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "" - -#: src/main.c:623 -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "" - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr "" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr "" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "" - -#: src/recode.c:536 -#, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "" - -#: src/request.c:34 -msgid "reversible" -msgstr "" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" diff --git a/po/hu.gmo b/po/hu.gmo deleted file mode 100644 index 105575b..0000000 Binary files a/po/hu.gmo and /dev/null differ diff --git a/po/hu.po b/po/hu.po deleted file mode 100644 index 87f2ca2..0000000 --- a/po/hu.po +++ /dev/null @@ -1,542 +0,0 @@ -# Recode Hungarian po file -# Copyright (C) 2002 Free Software Foundation, Inc. -# Andras Timar , 2002. -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2003-03-02 18:08+0100\n" -"Last-Translator: Andras Timar \n" -"Language-Team: Hungarian \n" -"Language: hu\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-2\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Hib�tlan" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Nem kanonikus bemenet" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Nem egy�rtelm� kimenet" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Leford�thatatlan bemenet" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "�rv�nytelen bemenet" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Rendszerhiba" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Az �tk�dol�k�nyvt�r t�ves haszn�lata" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Bels� �tk�dol�si hiba" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Ez a program szabad szoftver; terjeszthet� �s/vagy m�dos�that� a \n" -"Free Software Foundation �ltal k�zz�tett GNU General Public License \n" -"felt�teleinek megfelel�en. A licencszerz�d�s 2. vagy (szabadon\n" -"v�laszthat�an) b�rmelyik k�s�bbi v�ltozata haszn�lhat�.\n" -"\n" -"A programot abban a rem�nyben adjuk k�zre, hogy hasznosnak bizonyul,\n" -"de NINCS SEMMI GARANCIA; bele�rtve a K�ZREADHAT�S�GGAL vagy EGY\n" -"BIZONYOS C�LRA VAL� ALKALMASS�GGAL kapcsolatos garanci�t is. " -"Tov�bbi\n" -"r�szletek�rt olvasd el a GNU General Public License teljes " -"sz�veg�t.\n" -"\n" -"A programmal egy�tt meg kellett kapnod a GNU General Public License\n" -"egy p�ld�ny�t. Ha nem kaptad meg, �rj a Free Software Foundation-" -"nek\n" -"a k�vetkez� c�mre: \n" -"59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Tov�bbi inform�ci��rt �rd be: `%s %s'.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"A `recode' karakterk�szletek �s fel�letek k�z�tti konverzi�t " -"tesz lehet�v�.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Haszn�lat: %s [KAPCSOL�K]... [ [KARAKTERK�SZLET] | K�R�S " -"[F�JL]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Ha a hossz� kapcsol�hoz k�telez� argumentumot �rni, akkor az a " -"megfelel�\n" -"r�vid kapcsol�ra is vonatkozik. Hasonl� a helyzet a v�laszthat� \n" -"argumentumokkal.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"List�k:\n" -" -l, --list[=FORM�TUM] ki�rja az �sszes ismert " -"karakterk�szletet\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets ki�rja azokat a karakterk�szleteket, " -"amelyeket \n" -" m�sok magukba foglalnak\n" -" -C, --copyright ki�rja a copyrightot �s a m�sol�s " -"felt�teleit\n" -" --help ki�rja ezt a s�g�t �s kil�p\n" -" --version ki�rja a verzi�inform�ci�kat �s " -"kil�p\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"M�k�d�si m�dok:\n" -" -v, --verbose ki�rja a l�p�seket �s az " -"el�rehalad�st\n" -" -q, --quiet, --silent nem �r ki �zeneteket visszaford�thatatlan\n" -" �tk�dol�s eset�n\n" -" -f, --force �tk�dol�s k�nyszer�t�se " -"visszaford�thatatlan \n" -" esetben is\n" -" -t, --touch az �tk�dolt f�jlok d�tum�t " -"m�dos�tja\n" -" -i, --sequence=files k�zb�ls� f�jlokat haszn�l az egym�st " -"k�vet� \n" -" l�p�sekhez\n" -" --sequence=memory mem�ri�ban elhelyezked� t�rol�kat " -"haszn�l az \n" -" egym�st k�vet� l�p�sekhez\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr "" -" -p, --sequence=pipe cs�vezet�keket haszn�l az egym�st " -"k�vet� l�p�sekhez\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe ugyanaz, mint a -i (ezen a rendszeren)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Finomhangol�s:\n" -" -s, --strict szigor� lek�pez�s haszn�lata, ak�r " -"karakterveszt�s \n" -" �r�n is\n" -" -d, --diacritics csak a nemzeti karaktereket k�dolja �t HTML/" -"LaTeX \n" -" form�tumhoz\n" -" -S, --source[=NYELV] csak a NYELV �ltal meghat�rozott " -"karakterl�ncokat\n" -" �s megjegyz�seket k�dolja �t\n" -" -c, --colons `:' haszn�lata a `\"' helyett a k�tpontos " -"�kezet \n" -" jel�l�s�re az Easy French (egyfajta " -"rep�l� �kezet)\n" -" k�dol�sban\n" -" -g, --graphics az IBMPC vonalrajzol� karakterek " -"helyettes�t�se\n" -" ASCII grafik�val\n" -" -x, --ignore=KARK�SZL a KARK�SZL mell�z�se �tk�dol�si " -"�tvonal v�laszt�s�n�l\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"A NYELV valamilyen programnyelv, lehet `c', `perl' vagy `po'; a `c' az " -"alap-\n" -"�rtelmezett.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"A hib�kat jelentsd a c�men.\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "A sorozat nem egy�rtelm�: `%s'" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "A sorozat ismeretlen: `%s'" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "A nyelv nem egy�rtelm�: `%s'" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "A nyelv ismeretlen: `%s'" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "A form�tum nem egy�rtelm�: `%s'" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "A form�tum ismeretlen: `%s'" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "�rta Fran�ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Ez szabad szoftver; l�sd a forr�st a terjeszt�si felt�telek�rt. " -"Nincs \n" -"garancia, m�g az eladhat�s�gra vagy egy adott c�lra val� " -"megfelel�sre sem.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "A jel ismeretlen: `%s'" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "A karakterk�szlet ismeretlen vagy nem egy�rtelm�: `%s'" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Hi�nyzik egy k�telez� argumentum" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "A szintaxis elavult, haszn�ld ink�bb ezt: `%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "A k�r�s hib�s: `%s'" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "%s �tk�dol�sa..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " k�sz\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " sikertelen: %s a `%s..%s' l�p�sben\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s sikertelen: %s a `%s..%s' l�p�sben" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s a `%s..%s' l�p�sben" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "%s karakterk�szlet m�r l�tezik �s nem %s." - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Oct Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "A virtu�lis mem�ria betelt" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "A %3d �s %3d k�dok egyar�nt %3d k�dra v�ltoznak" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "" - -#: src/recode.c:536 -#, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Nincs nyomtathat� t�bl�zat" - -#: src/request.c:34 -msgid "reversible" -msgstr "visszaford�that�" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s -> %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "v�ltoz�" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*lehetetlen*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*egyszer� m�sol�s*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "A virtu�lis mem�ria betelt!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "K�r�s: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Sz�k�tve erre: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Ismeretlen fel�letn�v `%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Nem lehets�ges az �tk�dol�s `%s' �s `%s' k�z�tt." - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "`..'-t kell megadni a k�r�sben" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "A gyermekfolyamat v�rakoz�si �llapota 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne le�r�s\n" -"\n" diff --git a/po/id.gmo b/po/id.gmo deleted file mode 100644 index 570adaf..0000000 Binary files a/po/id.gmo and /dev/null differ diff --git a/po/id.po b/po/id.po deleted file mode 100644 index ffe1628..0000000 --- a/po/id.po +++ /dev/null @@ -1,540 +0,0 @@ -# recode 3.6 (Indonesian) -# Copyright (C) 2001 Free Software Foundation, Inc. -# Tedi Heriyanto , 2002 -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2002-10-08 14:29GMT+0700\n" -"Last-Translator: Tedi Heriyanto \n" -"Language-Team: Indonesian \n" -"Language: id\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 0.9.5\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Tidak ada kesalahan" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Input non kanonikal" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Output ambigu" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Input tak dapat diterjemahkan" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Input tidak valid" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Sistem mendeteksi masalah" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Kesalahan penggunaan library recoding" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Bug recoding internal" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Coba `%s %s' untuk informasi lengkap.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Free `recode' mengkonversi file antar berbagai set karakter dan permukaan.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Jika sebuah option long menunjukkan argumen sebagai mandatori, maka ia " -"mandatori\n" -"juga option short yang ekivalen. Demikian pula untuk argumen optional.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] tampilkan satu atau semua charset dan alias " -"yang dikenal\n" -" -k, --known=PAIRS batasi charset sesuai daftar PAIRS yang " -"dikenal\n" -" -h, --header[=[LN/]NAME] tulis tabel NAME ke stdout menggunakan LN, " -"kemudian keluar\n" -" -F, --freeze-tables tulis sebuah modul C yang menyimpan semua " -"tabel\n" -" -T, --find-subsets laporkan semua charset yang menjadi subset yang " -"lain\n" -" -C, --copyright tampilkan kondisi Copyright dan copying\n" -" --help tampilkan bantuan ini dan keluar\n" -" --version tampilkan informasi versi dan keluar\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Mode operasi:\n" -" -v, --verbose jelaskan urutan langkah dan laporkan kemajuan\n" -" -q, --quiet, --silent tiadakan pesan tentang recoding yang tidak dapat " -"dikembalikan\n" -" -f, --force paksa recoding bahkan bila tidak dapat " -"dikembalikan\n" -" -t, --touch touch file ter-recoded setelah penggantian\n" -" -i, --sequence=files gunakan file perantara untuk urutan pelewatan\n" -" --sequence=memory gunakan buffer memori untuk urutan pelewatan\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=pipe gunakan mesin pipa untuk urutan pelewatan\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe sama seperti -i (pada sistem ini)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Fine tuning:\n" -" -s, --strict gunakan mapping yang ketat, bahkan hilangkan " -"karakter\n" -" -d, --diacritics konversi hanya diacritics atau yang serupa untuk " -"HTML/LaTeX\n" -" -S, --source[=LN] batasi recoding untuk string dan komentar sama " -"seperti LN\n" -" -c, --colons gunakan titik koma alih-alih kuotasi ganda untuk " -"diaeresis\n" -" -g, --graphics dekati penggaris IBMPC dengan grafik ASCII\n" -" -x, --ignore=CHARSET abatikan CHARSET saat memilih jalur recoding\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT adalah `decimal', `octal', `hexadecimal' atau `full' (atau satu " -"`dohf').\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Kecuali DEFAULT_CHARSET diset dalam environment, CHARSET bakunya adalah " -"lokal\n" -"tergantung enkoding, yang ditentukan oleh LC_ALL, LC_CTYPE, LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Dengan -k, yang mungkin sebelum charset ditampilkan setelah CHARSET,\n" -"keduanya charset tabular, dengan PAIRS dalam bentuk `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"dan BEF dan AFT adalah kode yang diberikan dalam bilangan desimal.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN adalah bahasa, mungkin berupa `c', `perl' atau `po'; `c' adalah bakunya.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Jika tidak diberikan -i dan -p, asumsikan -p jika tidak ada FILE, sebaliknya " -"-i.\n" -"Setiap FILE direcode dengan dirinya, menghancurkan aslinya. Jika tidak " -"dispesifikasikan\n" -"FILE, maka berfungsi sebagai filter dan recode stdin ke stdout.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Report bugs to .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "Urutan `%s' ambigu" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "Urutan `%s' tidak dikenal" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "Bahasa `%s' ambigu" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Bahasa `%s' tidak dikenal" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Format `%s' ambigu" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Format `%s' tidak dikenal" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Ditulis oleh Franc,ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Simbol `%s' tidak dikenal" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Charset `%s' tidak dikenal atau ambigu" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Argumen yang dibutuhkan hilang" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Sintaks tidak digunakan lagi, silakan pilih `%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Permintaan `%s' salah" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Merecoding %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " selesai\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " gagal: %s di langkah `%s..%s'\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s gagal: %s di langkah `%s..%s'" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s di langkah `%s..%s'" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Charset %s sudah ada dan bukan %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "" -"Tidak dapat medaftarkan `%s', tidak ada nama yang tersedia untuk charset ini" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Oct Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Maaf, tidak ada tersedia untuk `%s'" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Resurfacer set lebih dari satu untuk `%s'" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Unsurfacer set lebih dari satu untuk `%s'" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Memori virtual habis" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Kode %3d dan %3d kedua direcode ke %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Tidak ada karakter recode ke %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Tidak dapat membalik saat diberikan tabel satu-ke-satu" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Berikut ini diagnostik untuk `%s' ke `%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Pasangan no %d: <%3d,%3d> konflik dengan <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Tidak dapat menyelesaikan tabel dari sejumlah pasangan dikenal" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Recoding identitas, tidak perlu tabel" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Recoding terlalu kompleks untuk tabel" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sTabel konversi dihasilkan secara mekanis dengan Free `%s' %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%suntuk urutan %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Tidak ada tabel untuk dicetak" - -#: src/request.c:34 -msgid "reversible" -msgstr "dapat dikembalikan" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s ke %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "variabel" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Tidak dapat dicapai*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*mere copy*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Memori virtual habis!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Gagal langkah inisialisasi" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Gagal langkah inisialisasi (option tidak diproses)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Permintaan: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Diperkecil jadi: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Nama surface tidak dikenal `%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Tidak ada cara merecode dari `%s' ke `%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "Mengharapkan `..' dalam permintaan" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Status tunggu proses anak adalah 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Description\n" -"\n" diff --git a/po/insert-header.sin b/po/insert-header.sin deleted file mode 100644 index b26de01..0000000 --- a/po/insert-header.sin +++ /dev/null @@ -1,23 +0,0 @@ -# Sed script that inserts the file called HEADER before the header entry. -# -# At each occurrence of a line starting with "msgid ", we execute the following -# commands. At the first occurrence, insert the file. At the following -# occurrences, do nothing. The distinction between the first and the following -# occurrences is achieved by looking at the hold space. -/^msgid /{ -x -# Test if the hold space is empty. -s/m/m/ -ta -# Yes it was empty. First occurrence. Read the file. -r HEADER -# Output the file's contents by reading the next line. But don't lose the -# current line while doing this. -g -N -bb -:a -# The hold space was nonempty. Following occurrences. Do nothing. -x -:b -} diff --git a/po/it.gmo b/po/it.gmo deleted file mode 100644 index e5ee39c..0000000 Binary files a/po/it.gmo and /dev/null differ diff --git a/po/it.po b/po/it.po deleted file mode 100644 index 26ae28f..0000000 --- a/po/it.po +++ /dev/null @@ -1,574 +0,0 @@ -# PO FILE FOR GNU'S RECODE. -# Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. -# Lorenzo Cappelletti , 1999, 2000, 2001. -# -# table -> tabella -# character set -> insieme di caratteri -# charset -> charset -# surface -> ? -# to recode -> ricodificare -# -msgid "" -msgstr "" -"Project-Id-Version: GNU recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2001-07-01 09:41+02:00\n" -"Last-Translator: Lorenzo Cappelletti \n" -"Language-Team: Italian \n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Nessun errore" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Nessun input canonico" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Output ambiguo" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Input non traslabile" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Input non valido" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Rilevato problema di sistema" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Uso scorretto della libreria di ricodifica" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Bug di ricodifica interno" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"Si dovrebbe aver ricevuto una copia della GNU General Public License\n" -"assieme a questo programma; in caso contrario, scrivere a Free Software\n" -"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Usare `%s %s' per ulteriori informazioni.\n" - -# I dislike "Libero `recode'" as tranlation -# What does surface mean in this context? -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"`recode' gratuito converte file fra vari insiemi di caratteri e surface.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Uso: %s [OPZIONI]... [ [CHARSET] | RICHIESTA [FILE]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Se un'opzione lunga richiede necessariamente un argomento, allora essa\n" -"� richiesta anche per l'opzione breve. Analogamente per gli argomenti\n" -"opzionali.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Elenchi:\n" -" -l, --list[=FORMATO] lista uno o tutti i charset e alias conosciuti\n" -" -k, --known=COPPIE restringe i charset secondo le COPPIE " -"conosciute\n" -" -h, --header[=[LN/]NOME] scrive la tabella NOME sullo stdout usando LN,\n" -" quindi esce\n" -" -F, --freeze-tables riporta un modulo C contenente tutte le " -"tabelle\n" -" -T, --find-subsets riporta tutti i charset sottoinsiemi di altri\n" -" charset\n" -" -C, --copyright mostra le condizioni di Copyright e " -"riproduzione\n" -" --help mostra questo aiuto ed esce\n" -" --version informazioni sulla versione ed uscita\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Modi operativi:\n" -" -v, --verbose spiega le sequenze dei passi e riporta i " -"progressi\n" -" -q, --quiet, --silent inibisce i messaggi di ricodifiche inreversibili\n" -" -f, --force forza le ricodifiche anche quando non reversibili\n" -" -t, --touch touch dei file ricodificati dopo la sostituzione\n" -" -i, --sequence=files usa file intermedi per i passi sequenziali\n" -" --sequence=memory usa buffer di memoria per i passi sequenziali\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr "" -" -p, --sequence=pipe usa il sistema dei pipe per i passi sequenziali\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe come -i (su questo sistema)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Regolazioni fini:\n" -" -s, --strict usa mappature strettamente conformi, anche con " -"caratteri slegati\n" -" -d, --diacritics converte solo segni diacritici o simili per HTML/" -"LaTeX\n" -" -S, --source[=LN] limita la ricodifica a stringhe e commenti come per " -"LN\n" -" -c, --colons usa i due punti al posto delle virgolette per le " -"dieresi\n" -" -g, --graphics approssima le regole IBMPC con grafica ASCII\n" -" -x, --ignore=CHARSET ignora CHARSET quando sceglie un percorso di " -"ricodifica\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"L'opzione -l senza FORMATO n� CHARSET elenca i charset e le surface\n" -"disponibili. FORMATO pu� essere `decimale'(d), `ottale'(o),\n" -"`esadecimale'(h) o `pieno'(f) (oppure uno tra `dohf').\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"A meno che DEFAULT_CHARSET non sia specificato nell'ambiente, il CHARSET " -"viene predefinito secondo la codifica locale, determinata da LC_ALL, " -"LC_TYPE, LANG.\n" - -# I am not able to understand the logical structure of this sentence. -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Con -k, possibile prima, charset vengono listati per quelli dati dopo " -"CHARSET,\n" -"entrambi essendo charset tabulari, con COPPIE nella foram `BEF1:AFT1,BEF2:" -"AFT2,...',\n" -"dove BEF e AFT sono codici forniti come numeri decimali.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN � qualche lingua, pu� essere `c', `perl' o `po'; quella predefinita � " -"`c'.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"RICHIESTA � SUBRICHIESTA[,SUBRICHIESTA]...; SUBRICHIESTA �\n" -"CODIFICA[..CODIFICA]...; CODIFICA � [CHARSET][/[SURFACE]...;\n" -"RICHIESTA spesso � simile a PRIMA..DOPO, essendo PRIMA e DOPO dei charset.\n" -"Un CHARSET omesso implica il charset usuale; una [/SURFACE]... omessa\n" -"implica le superfici del CHARSET; un / con un nome di surface vuoto\n" -"significa nessuna surface. Vedere il manuale.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Se non � dato -i n� -p, si presume -p se FILE non � presente, altrimenti -" -"i.\n" -"Ogni FILE � ricodificato su se stesso, ditruggendo l'originale. Se non " -"viene\n" -"specificato nessun FILE, allora si comporta come un filtro ricodificando lo\n" -"stdin sullo stdout.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Segnalare i bug a .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "La sequenza `%s' � ambigua" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "La sequenza `%s' � sconosciuta" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "Il linguaggio `%s' � ambiguo" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Il linguaggio `%s' � sconosciuto" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Il formato `%s' � ambiguo" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Il formato `%s' � sconosciuto" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Scritto da Franc,ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Questo � software libero; vedere il sorgente per le condizioni sulla\n" -"riproduzione. NON c'� garanzia; neppure di COMMERCIABILIT� o IDONEIT�\n" -"AD UN PARTICOLARE SCOPO.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Il simbolo `%s' � sconosciuto" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Il charset `%s' � sconosciuto o ambiguo" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Manca un argomento indispensabile" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "La sintassi � sconsigliata, si preferisca `%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "La richiesta `%s' � errata" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Sto ricodificando %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " fatto\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " fallito: %s al passo `%s..%s'\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s fallito: %s al passo `%s..%s'" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s al passo `%s..%s'" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Il charset %s esiste gi� e non � %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "Non posso listare `%s', nessun nome disponibile per questo charset" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Ott Esa UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Spiacente, nessun nome disponibile per `%s'" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Il resurfacer � impostato pi� di una volta per `%s'" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "L'unsurfacer � impostato pi� di una volta per `%s'" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Memoria virtuale esaurita" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Entrambi i codici %3d e %3d si ricodificano in %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Nessun carattere si ricodifica in %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Impossibile invertire la tabella uno-a-uno data" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Segue diagnostica da `%s' a `%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "La coppia numero %d: <%3d, %3d> � in conflitto con <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Impossibile completare la tabella dall'insieme delle coppie conosciute" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Sto ricodificando nell'identit�, tabella non significativa" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "La ricodifica � troppo complessa per una sola tabella" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sTabella di conversione generata automaticamente dalla Free `%s' %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%sper la sequenza %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Nessuna tabella da stampare" - -#: src/request.c:34 -msgid "reversible" -msgstr "reversibile" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s in %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -# Chech out the meaning of the acronym -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "variabile" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Inraggiungibile*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*per sola copia*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Memoria virtuale esaurita!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Passo di inizializzazione fallito" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Passo di inizializzazione fallito (opzioni non processate)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Richiesta: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Ridotto a: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Nome di surface non riconosciuta `%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Nessuno modo per ricodificare da `%s' a `%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "Atteso `..' nella richiesta" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Lo stato di attesa del processo figlio � 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "UCS2 Mne Descrizione\n" - -#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n" -#~ msgstr "" -#~ "Nessun CHARSET predefinito, definire DEFAULT_CHARSET nell'ambiente.\n" - -#~ msgid "Ambiguous sequence `%s'" -#~ msgstr "Sequenza ambigua `%s'" - -#~ msgid "Unknown sequence `%s'" -#~ msgstr "Sequenza sconosciuta `%s'" - -#~ msgid "Ambiguous language `%s'" -#~ msgstr "Lingua ambigua `%s'" - -#~ msgid "Unknown language `%s'" -#~ msgstr "Lingua sconosciuta `%s'" - -#~ msgid "Ambiguous format `%s'" -#~ msgstr "Formato ambiguo `%s'" - -#~ msgid "Unknown format `%s'" -#~ msgstr "Formato sconosciuto `%s'" - -#~ msgid "Erroneous request `%s'" -#~ msgstr "Richiesta errata `%s'" diff --git a/po/nl.gmo b/po/nl.gmo deleted file mode 100644 index 29df814..0000000 Binary files a/po/nl.gmo and /dev/null differ diff --git a/po/nl.po b/po/nl.po deleted file mode 100644 index 838c654..0000000 --- a/po/nl.po +++ /dev/null @@ -1,544 +0,0 @@ -# Translation of recode-3.6 to Dutch. -# Copyright (C) 1996, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. -# This file is distributed under the same license as the recode package. -# -# Erick Branderhorst , 1996. -# Taco Witte , 2004, 2005. -# Benno Schulenberg , 2006, 2007. -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2007-10-16 19:30+0200\n" -"Last-Translator: Benno Schulenberg \n" -"Language-Team: Dutch \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Geen fout" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Niet-canonieke invoer" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Niet-eenduidige uitvoer" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Onvertaalbare invoer" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Ongeldige invoer" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Systeem heeft fout gevonden" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Verkeerd gebruik van hercoderings-bibliotheek" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "**Interne fout** bij hercoderen" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Dit programma is vrije software; u mag het verder verspreiden en/of\n" -"wijzigen onder de voorwaarden van de GNU General Public License zoals\n" -"gepubliceerd door de Free Software Foundation, naar keuze ofwel onder\n" -"versie 2 ofwel onder een nieuwere versie van die licentie.\n" -"\n" -"Dit programma wordt uitgegeven in de hoop dat het nuttig is,\n" -"maar ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garantie\n" -"van VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL.\n" -"Zie de GNU General Public License voor meer details.\n" -"\n" -"Bij dit programma hoort u een kopie van de GNU General Public License\n" -"ontvangen te hebben; is dit niet het geval, schrijf dan naar\n" -"Free Software Foundation, Inc., 51 Franklin Street, fifth floor,\n" -"Boston, MA 02110-1301, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Typ '%s %s' voor meer informatie.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"'recode' converteert bestanden van en naar allerlei tekensets en " -"oppervlakken.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Gebruik: %s [OPTIE]... [ [TEKENSET] | VERZOEK [BESTAND]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Een argument dat verplicht of optioneel is voor een lange optie, is dat\n" -"ook voor de overeenkomstige korte optie.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Opsommingen:\n" -" -l, --list[=PRESENTATIE] alle bekende tekensets en aliassen opsommen,\n" -" of een tekenset in tabelvorm presenteren\n" -" -k, --known=PAREN opsomming beperken volgens deze bekende PAREN\n" -" -h, --header[=[TL/]NAAM] tabel NAAM naar standaarduitvoer schrijven\n" -" (in taal TL) en stoppen\n" -" -F, --freeze-tables een C-module schrijven die alle tabellen bevat\n" -" -T, --find-subsets alle tekensets opsommen die deelverzameling " -"van\n" -" anderen zijn\n" -" -C, --copyright auteursrecht en kopieervoorwaarden tonen\n" -" --help deze hulptekst tonen en stoppen\n" -" --version versie-informatie tonen en stoppen\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Werkingsmodus:\n" -" -v, --verbose tussenstappen uitleggen en voortgang tonen\n" -" -q, --quiet, --silent niets zeggen over onomkeerbare hercoderingen\n" -" -f, --force hercodering afdwingen, ook als deze onomkeerbaar " -"is\n" -" -t, --touch tijdsstempel van gehercodeerde bestanden " -"aanpassen\n" -" -i, --sequence=files tijdelijke bestanden gebruiken voor tussenstappen\n" -" --sequence=memory geheugenbuffers gebruiken voor tussenstappen\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=pipe 'pipes' gebruiken voor tussenstappen\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe hetzelfde als -i (op dit systeem)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Fijnafstelling:\n" -" -s, --strict strikt converteren, ook als dit tekens verliest\n" -" -d, --diacritics alleen diakritische tekens en dergelijke " -"converteren\n" -" voor HTML/LaTeX\n" -" -S, --source[=TL] hercoderen beperken tot commentaar en " -"tekenreeksen\n" -" als in taal TL ('c', 'perl', of 'po')\n" -" -c, --colons voor een trema een dubbele punt in plaats van een\n" -" dubbel aanhalingsteken gebruiken\n" -" -g, --graphics IBMPC-lijntjes benaderen met ASCII-tekens\n" -" -x, --ignore=TEKENSET TEKENSET negeren bij keuze van hercodeertraject\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"Optie -l zonder PRESENTATIE of TEKENSET somt de beschikbare tekensets en\n" -"oppervlakken op. PRESENTATIE is 'decimal', 'octal', 'hexadecimal' of\n" -"'full' (volledig), die afgekort mogen worden tot 'd', 'o', 'h' en 'f'.\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Tenzij omgevingsvariabele DEFAULT_CHARSET is ingesteld, gebruikt TEKENSET\n" -"standaard de taalafhankelijke codering, bepaald door LC_ALL, LC_CTYPE, " -"LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Met optie -k worden voor de gegeven NA-tekenset de mogelijke VOOR-tekensets\n" -"opgesomd, als tabel van PAREN in de vorm 'VOOR1:NA1,VOOR2:NA2,...', waarbij\n" -"de VOORs en NAs als decimale getallen gegeven worden.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "TL is een taal, en kan 'c', 'perl' of 'po' zijn; 'c' is standaard.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"VERZOEK is DEELVERZOEK[,DEELVERZOEK]...; DEELVERZOEK is CODERING[.." -"CODERING]...\n" -"CODERING is [TEKENSET][/[OPPERVLAK]]...; VERZOEK ziet er vaak uit als VOOR.." -"NA,\n" -"waarbij VOOR en NA tekensets zijn. Een weggelaten TEKENSET impliceert de\n" -"gebruikelijke tekenset; een weggelaten [/OPPERVLAK]... betekent de " -"impliciete\n" -"oppervlakken voor TEKENSET; een / met een lege oppervlaknaam betekent " -"helemaal\n" -"geen oppervlak. Zie ook de handleiding.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Als er geen -i of -p gegeven is, wordt -p aangenomen als er geen BESTAND\n" -"gegeven is, anders -i. Elk BESTAND wordt over zichzelf gehercodeerd; het\n" -"origineel wordt dus overschreven.\n" -"Als er geen BESTAND gegeven is, functioneert 'recode' als een filter en\n" -"wordt van standaardinvoer naar standaarduitvoer gehercodeerd.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Rapporteer gebreken in het programma aan ;\n" -"meld fouten in de vertaling aan .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "Reeks '%s' is niet eenduidig" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "Reeks '%s' is onbekend" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "Taal '%s' is niet eenduidig" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Taal '%s' is onbekend" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Presentatie '%s' is niet eenduidig" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Presentatie '%s' is onbekend" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Geschreven door François Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Dit is vrije software; zie de programmatekst voor de kopieervoorwaarden.\n" -"Er is GEEN garantie; zelfs niet voor VERKOOPBAARHEID of GESCHIKTHEID\n" -"VOOR EEN BEPAALD DOEL.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Symbool '%s' is onbekend" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Tekenset '%s' is onbekend of niet eenduidig" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Een vereist argument ontbreekt" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Deze syntax is verouderd; gebruik liever '%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Verzoek '%s' is onjuist" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Hercoderen van %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " voltooid\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " mislukt: %s in stap '%s..%s'\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s mislukt: %s in stap '%s..%s'" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s in stap '%s..%s'" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Tekenset '%s' bestaat al en is niet %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "Kan '%s' niet opsommen; geen namen beschikbaar voor deze tekenset" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Oct Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Sorry, geen namen beschikbaar voor '%s'" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Her-oppervlakker is meer dan eens gezet voor '%s'" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Ont-oppervlakker is meer dan eens gezet voor '%s'" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Onvoldoende geheugen beschikbaar" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Codes %3d en %3d hercoderen beide naar %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Geen teken hercodeert naar %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Kan de gegeven één-op-één tabel niet omkeren" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Foutmeldingen voor '%s' naar '%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Paarnummer %d: <%3d, %3d> conflicteert met <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Kan tabel niet afmaken met de verzameling bekende paren" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Identiteitshercodering; is geen tabel waard" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Hercoderen is te complex voor slechts een tabel" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sConversietabel gegenereerd door '%s' %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%svoor reeks %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Geen tabel om weer te geven" - -#: src/request.c:34 -msgid "reversible" -msgstr "omkeerbaar" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s naar %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "variabel" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Kan niet*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*simpele kopie*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Onvoldoende geheugen beschibaar!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Stap-initialisatie is mislukt" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Stap-initialisatie is mislukt (onverwerkte opties)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Verzoek: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Gekrompen tot: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Onbekende oppervlaknaam '%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Er is geen manier om te hercoderen van '%s' naar '%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "'..' werd verwacht in verzoek" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Wachtstatus van dochterproces is 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Omschrijving\n" -"\n" diff --git a/po/pl.gmo b/po/pl.gmo deleted file mode 100644 index 7e1f05f..0000000 Binary files a/po/pl.gmo and /dev/null differ diff --git a/po/pl.po b/po/pl.po deleted file mode 100644 index a9114e3..0000000 --- a/po/pl.po +++ /dev/null @@ -1,541 +0,0 @@ -# Polish translations for the GNU recode messages -# Copyright (C) 1996 Free Software Foundation, Inc. -# Pawe� Krawczyk , 1996, 1997, 1998, 1999. -# Jakub Bogusz , 2002. -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2002-10-27 12:22+0100\n" -"Last-Translator: Jakub Bogusz \n" -"Language-Team: Polish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-2\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Brak b��du" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Dane wej�ciowe nie s� kanoniczne" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Dane wyj�ciowe s� dwuznaczne" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Dane wej�ciowe nie mog� by� przet�umaczone" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "B��dne dane wej�ciowe" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "System wykry� problem" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "B��dne u�ycie biblioteki przekodowuj�cej" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Wyst�pi� wewn�trzny b��d przekodowania" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Ten program jest darmowy; mo�esz rozprowadza� go i/lub modyfikowa�\n" -"zachowuj�c warunki Powszechnej Licencji Publicznej GNU (General Public\n" -"Licence), opublikowanej przez Free Software Foundation, w wersji 2 lub\n" -"wy�szej.\n" -"\n" -"Program ten jest rozprowadzany w nadziei, �e b�dzie przydatny,\n" -"ale BEZ �ADNEJ GWARANCJI, nawet bez domy�lnej gwarancji SPRZEDAWALNO�CI\n" -"lub PRZYDATNO�CI DO KONKRETNYCH ZASTOSOWA�. Szczeg�y znajdziesz\n" -"w Powszechnej Licencji Publicznej GNU.\n" -"\n" -"Powiniene� otrzyma� kopi� Powszechnej Licencji Publicznej GNU wraz\n" -"z tym programem. Je�li nie, napisz do Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Polecenie `%s %s' wy�wietli wi�cej informacji.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Program `recode' konwertuje pliki pomi�dzy r�nymi zestawami znak�w\n" -"i sposobami kodowania.\n" - -# REQUEST t�umacz� wsz�dzie konsekwentnie jako POLECENIE, a nie '��danie' --pk -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Sk�adnia: %s [OPCJA]... [ [ZESTAW_ZNAK�W] | POLECENIE [PLIK]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Je�li argumenty s� obowi�zkowe dla d�ugich wersji opcji, to s� one r�wnie�\n" -"obowi�zkowe dla kr�tkich wersji. Analogicznie dla argument�w opcjonalnych.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Listy:\n" -" -l, --list[=FORMAT] wy�wietla jeden lub wszystkie znane zestawy\n" -" znak�w i aliasy\n" -" -k, --known=PARY ogranicza list� zestaw�w do znanych PAR\n" -" -h, --header[=[LN/]NAZWA] wy�wietla tablic� NAZWA na standardowe wyj�cie\n" -" u�ywaj�c LN i ko�czy prac�\n" -" -F, --freeze-table wy�wietla modu� w C zawieraj�cy wszystkie\n" -" tablice\n" -" -T, --find-subsets wy�wietla wszystkie zestawy b�d�ce podzbiorami\n" -" innych zestaw�w\n" -" -C, --copyright wy�wietla informacje o prawach autorskich\n" -" oraz warunkach kopiowania\n" -" --help wy�wietla ten tekst pomocy i ko�czy prac�\n" -" --version wy�wietla wersj� programu i ko�czy prac�\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Tryby pracy:\n" -"\n" -" -v, --verbose oznajmia wykonywane kroki oraz post�p pracy\n" -" -q, --quiet, --silent nie wy�wietla komunikat�w o nieistotnych\n" -" konwersjach\n" -" -f, --force wymusza przekodowanie nawet je�li jest ono\n" -" nieodwracalne\n" -" -t, --touch uaktualnia czas plik�w po przekodowaniu\n" -" -i, --sequence=pliki u�ywa plik�w tymczasowych mi�dzy etapami\n" -" --sequence=memory u�ywa bufor�w w pami�ci mi�dzy etapami\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=pipe u�ywa potok�w mi�dzy etapami\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe identyczne jak -i (w tym systemie)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Modyfikacja parametr�w pracy:\n" -"\n" -" -s, --strict u�ywa �cis�ego mapowania, nawet dla nie�cis�ych\n" -" znak�w\n" -" -d, --diacritics konwertuje tylko znaki diakrytyczne oraz symbole\n" -" znak�w (takie jak w HTML i LaTeX)\n" -" -c, --colons u�ywa dwukropk�w zamiast cudzys�ow�w dla " -"oznaczenia\n" -" umlautu\n" -" -g, --graphics pr�buje przybli�a� ramki IBMPC znakami ASCII\n" -" -x, --ignore=ZESTAW ignoruje ZESTAW znak�w podczas okre�lania drogi\n" -" przekodowania\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"Bez FORMATu lub ZESTAWu, opcja -l wy�wietla dost�pne zestawy i sposoby\n" -"kodowania znak�w. FORMAT to `decimal', `octal', `hexadecimal' lub `full',\n" -"(lub jedna z liter `dohf').\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Je�li zmienna �rodowiskowa DEFAULT_CHARSET nie jest ustawiona, domy�lnym\n" -"zestawem znak�w jest kodowanie zale�ne od lokalizacji, okre�lonej przez\n" -"zmienne LC_ALL, LC_CTYPE i LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Je�li podano opcj� -k, program wy�wietla zestawy znak�w z kt�rych mo�na\n" -"dokona� konwersji do podanego ZESTAWu docelowego. Oba s� stabelaryzowanymi\n" -"zestawami znak�w z PARAmi postaci `SK�D1:DOK�D1,SK�D2:DOK�D2...', gdzie\n" -"SK�D i DOK�D s� kodami podanymi jako liczby dziesi�tne.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN jest j�zykiem programowania, do wyboru `c', `perl' lub `po'.\n" -"Domy�ln� warto�ci� jest `c'.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"POLecenie to PODPOL[,PODPOL]...; PODPOLecenie to ENKOD[..ENKOD]...\n" -"ENKOD to [ZESTAW][/[KODOWANIE]]...; POLecenie cz�sto ma posta� SK�D..DOK�D,\n" -"gdzie SK�D i DOK�D s� zestawami znak�w. W miejsce pomini�tego zestawu\n" -"przyjmowany jest zestaw domy�lny; W miejsce pomini�tego [/KODOWANIA]\n" -"przyjmowany jest domy�lny spos�b kodowania dla danego ZESTawu; sam znak\n" -"/ bez podanego KODOWANIA oznacza brak jakiegokolwiek kodowania. Szczeg�y\n" -"w dokumentacji.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Je�li nie podano opcji -i ani -p, przyjmowana jest opcja -p je�li nie\n" -"podano PLIKu, w przeciwnym razie -i. Ka�dy PLIK jest nadpisywany z utrat�\n" -"oryginalnej zawarto�ci. Je�li nie podano PLIKu, program dzia�a jako filtr\n" -"przekodowuj�c stdin na stdout.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Prosimy o zg�aszanie b��d�w na adres .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "Sekwencja `%s' jest niejednoznaczna" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "Sekwencja `%s' jest nieznana" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "J�zyk `%s' jest niejednoznaczny" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "J�zyk `%s' jest nieznany" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Format `%s' jest niejednoznaczny" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Format `%s' jest nieznany" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Autorem jest Fran�ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Oprogramowanie darmowe; warunki jego kopiowania znajduj� si� w kodzie\n" -"�r�d�owym. Nie podlega �adnej gwarancji, nawet gwarancji przydatno�ci\n" -"do jakiegokolwiek zastosowania lub sprzeda�y.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Symbol `%s' jest nieznany" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Zestaw znak�w `%s' jest nieznany lub niejednoznaczny" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Brak wymaganego parametru" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Odradza si� stosowanie tej sk�adni, prosz� u�ywa� `%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Polecenie `%s' jest b��dne" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Przekodowywanie %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " sko�czone\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " nie powiod�o si�: %s w `%s..%s'\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s nie powiod�o si�: %s w `%s..%s'" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s w `%s..%s'" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Zestaw %s ju� istnieje i nie jest %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "Nie mog� wylistowa� `%s', brak nazw dla tego zestawu znak�w" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Okt Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Brak nazw dla `%s'" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Procedura rekoduj�ca zosta�a ustawiona wi�cej ni� raz dla `%s'" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Procedura dekoduj�ca zosta�a ustawiona wi�cej ni� raz dla `%s'" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Pami�� wirtualna wyczerpana" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Kody %3d i %3d oba t�umacz� si� na %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "�aden znak nie koduje si� na %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Nie mog� odwr�ci� danej tablicy " - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Diagnostyka dla `%s' do `%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Para nr %d: < %3d, %3d > konflikt z < %3d, %3d >" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Nie mog� utworzy� tablicy z zestawu znanych par" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Przekodowanie jest proste, tablica nie jest potrzebna" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Przekodowanie jest zbyt skomplikowane na zwyk�� tablic�" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sTablica przekodowa� wygenerowana automatycznie przez GNU `%s' %s." - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%sdla sekwencji %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Brak tablicy do wypisania" - -#: src/request.c:34 -msgid "reversible" -msgstr "odwracalna" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s na %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "bajt" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "zmienne" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Nieosi�galne*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*zwyk�a kopia*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Pami�� wirtualna wyczerpana!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Inicjalizacja kroku nie powiod�a si�" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Inicjalizacja kroku nie powiod�a si� (nieprzetworzone opcje)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Polecenie: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Zmniejszony do: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Nierozpoznana nazwa standardu kodowania `%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Przekodowanie `%s' na `%s' jest niemo�liwe" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "Oczekiwano `..' w poleceniu" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Stan oczekiwania procesu potomnego wynosi 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Description\n" -"\n" diff --git a/po/pt.gmo b/po/pt.gmo deleted file mode 100644 index 9f33879..0000000 Binary files a/po/pt.gmo and /dev/null differ diff --git a/po/pt.po b/po/pt.po deleted file mode 100644 index e838810..0000000 --- a/po/pt.po +++ /dev/null @@ -1,541 +0,0 @@ -# Portuguese translation of the "recode" messages -# Copyright (C) 1996 Free Software Foundation, Inc. -# Vitor Duarte , Maio de 1996. -# Thanks to Nuno Oliveira , 1996. -# Helder Correia , 2005. -# -msgid "" -msgstr "" -"Project-Id-Version: GNU recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2005-11-13 15:20+0000\n" -"Last-Translator: Helder Correia \n" -"Language-Team: Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Sem erros" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Entrada não canónica" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Saída ambígua" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Entrada não traduzível" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Entrada inválida" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "O sistema detectou um problema" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Uso incorrecto da biblioteca de recodificação" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Erro de recodificação interno" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Este programa é livre; pode redistribuí-lo e/ou modificá-lo\n" -"nos termos previstos na Licença Pública Geral GNU,\n" -"publicada pela Free Software Foundation; de acordo com a versão 2 ou,\n" -"se preferir, alguma versão mais recente.\n" -"\n" -"Este programa é distribuído na esperança que seja útil, mas\n" -"SEM QUALQUER GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE\n" -"ou UTILIDADE PARA UM PROPÓSITO PARTICULAR. Para mais informações consulte a\n" -"Licença Pública Geral GNU.\n" -"\n" -"Deve ter recebido uma cópia da Licença Pública Geral GNU junttamente\n" -"com este programa; se assim não for, escreva para Free Software\n" -"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, EUA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Para mais informação, tente '%s %s'.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Free 'recode' converte ficheiros entre vários conjuntos de caracteres e " -"superfícies.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Utilização: %s [OPÇÃO]... [ [CONJCAR] | PEDIDO [FICHEIRO]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Se uma opção longa mostrar um argumento como mandatório, então é igualmente\n" -"mandatório para a versão curta. Similarmente para argumentos opcionais.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Listagens:\n" -" -l, --list[=FORMATO] listar um ou todos os conj. caracteres " -"conhecidos e pseudónimos\n" -" -k, --known=PARES restringir conj. caracteres de acordo com lista " -"de PARES conhecidos\n" -" -h, --header[=[LN/]NOME] escrever NOME tabela usando LN e sair\n" -" -F, --freeze-tables escrever um módulo C com todas as tabelas\n" -" -T, --find-subsets reportar conj. de caracteres subconj. de " -"outros\n" -" -C, --copyright exibir direitos de autor e condições de cópia\n" -" --help exibir esta ajuda e sair\n" -" --version exibir versão e sair\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Modos de operação:\n" -" -v, --verbose explicar sequência de passos e relatar progresso\n" -" -q, --quiet, --silent inibir mensagens acerca de recodificações " -"irreversíveis\n" -" -f, --force forçar recodificações mesmo quando irreversíveis\n" -" -t, --touch actualizar data dos ficheiros após recodificação\n" -" -i, --sequence=files usar ficheiros intermédios para passos " -"sequenciais\n" -" --sequence=memory usar memória para passos sequenciais\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=pipe usar pipe para sequenciar os passos\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe o mesmo que -i (neste sistema)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Afinação:\n" -" -s, --strict usar mapeamentos severos, até perder caracteres\n" -" -d, --diacritics converter apenas diacríticos ou afins para HTML/" -"LaTeX\n" -" -S, --source[=LN] limitar recodificação de expressões e comentários " -"como para LN\n" -" -c, --colons usar dois pontos em vez de aspas para diérese\n" -" -g, --graphics aproximar réguas IBMPC por gráficos ASCII\n" -" -x, --ignore=CONJCAR ignorar CONJCAR ao escolher um caminho a " -"recodificar\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"A opção -l sem FORMATO nem CONJCAR lista os conjuntos de caracteres e " -"superfícies disponíveis.\n" -"FORMATO é 'decimal', 'octal', 'hexadecimal' ou 'full' (ou um de 'dohf').\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"A não ser que DEFAULT_CHARSET esteja definido no ambiente, CONJCAR toma o " -"valor\n" -"da codificação por omissão da localização, determinado por LC_ALL, LC_CTYPE, " -"LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Com -k, possível antes de conj. caracteres serem listados para dados após " -"CONJCAR,\n" -"sendo ambos tabulares, com PARES da forma `BEF1:AFT1,BEF2:AFT2,...'\n" -"e BEFs e AFTs sendo códigos são dados como números decimais.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN é uma linguagem, podendo ser 'c', 'perl' ou 'po'; 'c' é predefinido.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"PEDIDO é SUBPEDIDO[,SUBPEDIDO]...; SUBPEDIDO é CODIFICAÇÃO[.." -"CODIFICAÇÃO]...\n" -"CODIFICAÇÃO é [CONJCAR][/[SUPERFÍCIE]]...; PEDIDO pode parecer-se com ANTES.." -"DEPOIS,\n" -"com ANTES e DEPOIS sendo conjuntos de caracteres. Um CONJCAR omitido " -"implica o conjunto\n" -"habitual; um [/SURFACE]... omitido implica as superfćies para CONJCAR; um /\n" -"com um nome de superfície vazio significa ausência de superfícies. Veja o " -"manual manual.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Se nem -i nem -p forem dados, presume-se -p sem FICHEIRO, senão -i.\n" -"Cada FICHEIRO é recodificado sobre si próprio, destruindo-se o original. " -"Se\n" -"FICHEIRO não for especificado, actue-se como um filtro e recidifique-se a " -"entrada padrão para a saída padrão.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Reporte erros para .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "A sequência '%s' é ambígua" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "A sequência '%s' é desconhecida" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "A linguagem '%s' é ambígua" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "A linguagem '%s' é desconhecida" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "O formato '%s' é ambíguo" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "O formato '%s' é desconhecido" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Escrito por François Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Este programa é livre; veja o código fonte para saber as condições de " -"cópia.\n" -"NÃO HÁ GARANTIA; nem mesmo de COMERCIABILIDADE ou de UTILIDADE PARA UM " -"PROPÓSITO PARTICULAR.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "O símbolo '%s' é desconhecido" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "O conjunto de caracteres '%s' é desconhecido ou ambíguo" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Argumento requerido em falta" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "A sintaxe está desaprovada, por favor prefira '%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "O pedido '%s' é erróneo" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Convertendo %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " terminado\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " falhou: %s no passo '%s..%s'\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s falhou: %s no passo '%s..%s'" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s no passo '%s..%s'" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "O conjunto de caracteres %s j�existe e n� �%s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "Não é possível listar '%s', sem nomes para este conjunto de caracteres" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Oct Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Desculpe, sem nomes para '%s'" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Repolidor definido mais do que uma vez para '%s'" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Despolidor definido mais do que uma vez para '%s'" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Memória virtual esgotada" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Ambos os c�igos %3d e %3d s� convertidos em %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Nenhum car�ter �convertido em %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "N� se pode inverter a tabela de um-para-um dada" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Os diagnosticos seguintes aplicam-se de %s para %s" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Par nº %d: <%3d, %3d> em conflito com <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "" -"Não é possível completar a tabela a partir do conjunto de pares conhecidos" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Recodificação identidade, tabela desnecessária" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "A recodificação é demasiado complexa para uma mera tabela" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sTabela de conversão gerada mecanicamente por Free '%s' %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%spara a sequência %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Nenhuma tabela para exibir" - -#: src/request.c:34 -msgid "reversible" -msgstr "reversível" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s para %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "variável" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Impossível*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*mera cópia*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Memória virtual esgotada!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "A inicialização falhou" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "A inicialização falhou (opções não processadas)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Pedido: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Diminuição para: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Nome de superfície '%s' não reconhecido" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Não é possível recodificar de '%s' para '%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "À espera de '..' no pedido" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "O estado de espera do processo filho é 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Descrição\n" -"\n" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo deleted file mode 100644 index 99e948a..0000000 Binary files a/po/pt_BR.gmo and /dev/null differ diff --git a/po/pt_BR.po b/po/pt_BR.po deleted file mode 100644 index 8ba2f1b..0000000 --- a/po/pt_BR.po +++ /dev/null @@ -1,546 +0,0 @@ -# recode: translation to Brazilian Portuguese (pt_BR) -# Copyright (C) 2002 Free Software Foundation, Inc. -# Alexandre Folle de Menezes , 2002. -# based on the translation to Portuguese (pt) by -# Vitor Duarte , maio de 1996. -# also based on the translation to Galician (gl) by -# Jacobo Tarr�o Barreiro , 2000. -# -msgid "" -msgstr "" -"Project-Id-Version: GNU recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2002-12-14 02:00-0300\n" -"Last-Translator: Alexandre Folle de Menezes \n" -"Language-Team: Brazilian Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Sem erro" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Entrada n�o-can�nica" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Sa�da amb�gua" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Entrada intraduz�vel" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Entrada inv�lida" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "O sistema detectou um problema" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Uso incorreto da biblioteca de recodifica��o" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Erro interno de recodifica��o" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Este programa � software livre; a sua redistribui��o e/ou modifica��o\n" -"nos termos da Licen�a Geral P�blica GNU como publicada pela\n" -"Free Software Foundation, � permitida; de acordo com a vers�o 2 ou\n" -"(opcionalmente) qualquer outra vers�o posterior.\n" -"\n" -"Este programa � distribu�do na esperan�a de que possa ser �til, mas\n" -"SEM QUALQUER GARANTIA; sem mesmo a garantia impl�cita de COMERCIABILIDADE " -"ou\n" -"ADEQUA��O � QUALQUER FINALIDADE PARTICULAR. Veja a Licen�a Geral P�blica " -"GNU\n" -"para mais detalhes.\n" -"\n" -"Deve ter sido recebida uma c�pia da Licen�a Geral P�blica GNU\n" -"junto com este programa; sen�o, escreva para a Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Tente `%s %s' para obter mais informa��es.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"O `recode' converte arquivos entre v�rios conjuntos de caracteres e " -"superf�cies.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Uso: %s [OP��O]... [ [CHARSET] | REQUISI��O [ARQUIVO]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Os argumentos obrigat�rios para as op��es longas s�o tamb�m obrigat�rios\n" -"para as op��es curtas. O mesmo vale para argumentos opcionais\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Listagens:\n" -" -l, --list[=FORMATO] lista um ou todos os conjuntos de caracteres e\n" -" apelidos conhecidos\n" -" -k, --known=PARES restringe os conjuntos de caracteres com a " -"lista\n" -" de PARES conhecidos\n" -" -h, --header[=[LN/]NOME] escreve a tabela NOME na sa�da padr�o usando " -"LN,\n" -" depois sai\n" -" -F, --freeze-tables escreve um m�dulo C contendo todas as tabelas\n" -" -T, --find-subsets reporta todos os conjuntos de carcteres que " -"s�o\n" -" subconjuntos de outros\n" -" -C, --copyright exibe Copyright e condi��es de c�pia\n" -" --help exibe esta ajuda e sai\n" -" --version mostra informa��es de vers�o e sai\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Modos de opera��o:\n" -" -v, --verbose Explica a sequ�ncia de passos e relata o " -"progresso\n" -" -q, --quiet, --silent inibe mensagens sobre recodifica��es " -"irrevers�veis\n" -" -f, --force for�a recodifica��es mesmo quando irrevers�veis\n" -" -t, --touch atualiza hor�rio dos arquivos processados\n" -" -i, --sequence=files usa arquivos intermedi�rios na seq��ncia de " -"passos\n" -" --sequence=memory usa buffers na mem�ria na seq��ncia de passos\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr "" -" -p, --sequence=pipe usa redirecionamentos para seq�enciar os passos\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe o mesmo que -i (neste sistema)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Ajuste fino:\n" -" -s, --strict usa mapeamentos estritos, mesmo perdendo " -"caracteres\n" -" -d, --diacritics converte apenas os diacr�ticos ou semelhantes\n" -" para HTML/LaTeX\n" -" -S, --source[=LN] limita a recodifica��o � strings e coment�rios, " -"como\n" -" para o LN\n" -" -c, --colons usa dois pontos em vez de aspas para o trema\n" -" -g, --graphics aproxima os gr�ficos do IBMPC com gr�ficos ASCII\n" -" -x, --ignore=CHARSET ignora o CHARSET na escolha da rota de " -"recodifica��o\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"A op��o -l sem FORMATO ou CHARSET lista conjuntos de carcteres dispon�veis.\n" -"FORMATO � `decimal', `octal', `hexadecimal' ou `full' (ou uma letra de " -"`dohf').\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"A menos que DEFAULT_CHARSET esteja setado no ambiente, o CHARSET padr�o � o\n" -"local, determinado por LC_ALL, LC_CTYPE, LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Com -k, s�o listados os conjuntos de caracteres de entrada poss�veis para o\n" -"CHARSET charset fornecido, com PARES no formato `INI1:FIN1,INI2:BEF2,...'\n" -"sendo INIs e FINs os respectivos c�digos em nota��o decimal.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "LN � alguma linguagem, pode ser `c', `perl' ou `po'; `c' � o padr�o.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"REQUEST � SUBREQUEST[,SUBREQUEST]...; SUBREQUEST � ENCODING[..ENCODING]...\n" -"ENCODING � [CHARSET][/[SURFACE]]...; REQUEST geralmente � BEFORE..AFTER,\n" -"sendo BEFORE e AFTER conjuntos de caracters. Se CHARSET for omitido, �\n" -"assumido o conjunto de caracteres usual; se [/SURFACE]... for omitida, s�o\n" -"assumidas as superf�cies implicadas para o CHARSET; uma / com um nome vazio " -"de\n" -"superf�cie significa nenhuma superf�cie. Veja a documenta��o.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Na aus�ncia de -i e -p, assumir -p se n�o houver ARQUIVO, ou ent�o -i.\n" -"Cada ARQUIVO � recodificado para ele nesmo, destruindo o original. Se n�o " -"for\n" -"indicado ARQUIVO, atua como um filtro convertendo do stdin para stdout.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Informe os erros para .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "A seq�encia `%s' � amb�gua" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "A seq�encia `%s' � desconhecida" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "A linguagem `%s' � amb�gua" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "A linguagem `%s' � desconhecida" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "O formato `%s' � amb�guo" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "O formato `%s' � desconhecido" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Escrito por Fran�ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright � 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Este programa � software livre; veja o c�digo fonte para condi��es de " -"c�pia.\n" -"N�O H� GARANTIA; nem mesmo de COMERCIABILIDADE ou ADEQUA��O A QUALQUER\n" -"FIM PARTICULAR.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "O s�mbolo `%s' � desconhecido" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "O conjunto de caracteres `%s' � desconhecido ou amb�guo" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Falta argumento obrigat�rio" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Sintaxe obsoleta, por favor use `%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Requisi��o `%s' est� errada" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Recodificando %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " feito\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " falhou: %s no passo `%s..%s'\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s falhou: %s no passo `%s..%s'" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s no passo %s..%s" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "O conjunto de caracteres %s j� existe e n�o � %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "" -"Imposs�vel listar `%s', n�o existem nomes dispon�veis para este charset" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Oct Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Desculpe, n�o existem nomes dispon�veis para `%s'" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Resurfacer setado mais de uma vez para `%s'" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Unsurfacer setado mais de uma vez para `%s'" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Mem�ria virtual esgotada" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Ambos os c�digos %3d e %3d s�o recodificados para %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Nenhum caracter � recodificado para %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Imposs�vel inverter a tabela um-para-um fornecida" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Os seguintes diagn�sticos aplica-se de `%s' para `%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Par n� %d: <%3d, %3d> em conflito com <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Imposs�vel completar a tabela a partir do conjunto de pares conhecidos" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "A recodifica��o identidade n�o precisa de uma tabela" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Recodifica��o muito complexa para uma mera tabela" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sTabela de convers�o gerada automaticamente por Free `%s' %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%spara a sequ�ncia %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Nenhuma tabela para imprimir" - -#: src/request.c:34 -msgid "reversible" -msgstr "revers�vel" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s para %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "vari�vel" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Imposs�vel*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*simples c�pia*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Mem�ria virtual esgotada!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "A inicializa��o dos passos falhou" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "A inicializa��o dos passos falhou (op��es n�o foram processadas)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Requisi��o: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Encolhido para: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Nome de superf�cie `%s' n�o reconhecido" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Imposs�vel recodificar de `%s' para `%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "Esperado `..' na requisi��o" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "O estado de espera do processo filho � 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Descri��o\n" -"\n" diff --git a/po/quot.sed b/po/quot.sed deleted file mode 100644 index 0122c46..0000000 --- a/po/quot.sed +++ /dev/null @@ -1,6 +0,0 @@ -s/"\([^"]*\)"/“\1”/g -s/`\([^`']*\)'/‘\1’/g -s/ '\([^`']*\)' / ‘\1’ /g -s/ '\([^`']*\)'$/ ‘\1’/g -s/^'\([^`']*\)' /‘\1’ /g -s/“”/""/g diff --git a/po/recode.pot b/po/recode.pot deleted file mode 100644 index e2079bd..0000000 --- a/po/recode.pot +++ /dev/null @@ -1,445 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "" - -#: src/main.c:237 -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr "" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr "" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "" - -#: src/main.c:623 -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "" - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr "" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr "" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "" - -#: src/recode.c:536 -#, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "" - -#: src/request.c:34 -msgid "reversible" -msgstr "" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" diff --git a/po/remove-potcdate.sin b/po/remove-potcdate.sin deleted file mode 100644 index 2436c49..0000000 --- a/po/remove-potcdate.sin +++ /dev/null @@ -1,19 +0,0 @@ -# Sed script that remove the POT-Creation-Date line in the header entry -# from a POT file. -# -# The distinction between the first and the following occurrences of the -# pattern is achieved by looking at the hold space. -/^"POT-Creation-Date: .*"$/{ -x -# Test if the hold space is empty. -s/P/P/ -ta -# Yes it was empty. First occurrence. Remove the line. -g -d -bb -:a -# The hold space was nonempty. Following occurrences. Do nothing. -x -:b -} diff --git a/po/ro.gmo b/po/ro.gmo deleted file mode 100644 index 2371cba..0000000 Binary files a/po/ro.gmo and /dev/null differ diff --git a/po/ro.po b/po/ro.po deleted file mode 100644 index 1167119..0000000 --- a/po/ro.po +++ /dev/null @@ -1,550 +0,0 @@ -# Mesajele �n limba rom�n� pentru pachetul recode. -# Copyright (C) 2003 Free Software Foundation, Inc. -# Eugen Hoanca , 2003. -# -msgid "" -msgstr "" -"Project-Id-Version: recode-3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2003-05-04 08:45+0300\n" -"Last-Translator: Eugen Hoanca \n" -"Language-Team: Romanian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-2\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Nici o eroare" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Intrare(input) non canonic�" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Output ambiguu" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Intrare(input) intraductibil�" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Input invalid" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Sistemul a detectat o problem�" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Folosire necorespunz�toare a bibliotecii de recoding" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Bug intern de recoding" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Acest program este free software; pute�i s�-l redistribui�i �i/sau\n" -"modifica�i sub termenii Licen�ei Publice Generale GNU publicat� de\n" -"Free Software Foundation; ori versiunea 2, sau (op�iunea dumneavoastr�)\n" -"orice versiune ulterioar�.\n" -"\n" -"Acest program este distribuit �n speran�a c� va fi de folos,\n" -"dar F�R� NICI O GARAN�IE; chiar f�r� presupusa garan�ie a\n" -"VANDABILIT��II sau MODIFIC�RII PENTRU UN SCOP PRIVAT. Citi�i\n" -"Licen�a Public� General� GNU pentru mai multe detalii.\n" -"\n" -"Ar fi trebuit s� fi primit o copie a Licen�ei Publice Generale GNU\n" -"�mpreun� cu acest program; dac� nu, scrie�i la Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "�ncerca�i `%s %s' pentru mai multe informa�ii.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"`recode' este free �i converte�te fi�iere �ntre diferite seturi de caractere " -"�i �nf��i��ri(surfaces).\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Folosire: %s [OP�IUNE]... [ [SET_CARACTERE] | CERERE [FI�IER]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Dac� o op�iune lung� afi�eaz� un parametru obligatoriu, atunci este\n" -"obligatoriu �i pentru op�iunea scurt� echivalent�. Similar �i �n cazul\n" -"parametrilor op�ionali.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"List�ri:\n" -" -l, --list[=FORMAT] listeaz� unul sau toate seturile de caractere " -"�i aliasurile cunoscute\n" -" -k, --known=PERECHI restric�ioneaza seturile de caractere potrivit " -"listei de PERECHIcunoscute\n" -" -h, --header[=[LN/]NUME] scrie tabelul NUME la stdout folosind LN, apoi " -"termin�\n" -" -F, --freeze-tables scrie un modul C ce p�streaz� toate tabelele\n" -" -T, --find-subsets raporteaz� toate seturile de caractere care " -"sunt subseturi ale altora\n" -" -C, --copyright afi�eaz� Copyright �i condi�ii de copiere\n" -" --help afi�eaz� acest ajutor �i termin�\n" -" --version afi�eaz� informa�ii versiune �i termin�\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Moduri opera�ie:\n" -" -v, --verbose explic� secven�a de pa�i �i raporteaz� " -"desf�urarea\n" -" -q, --quiet, --silent suprim� mesajele despre recodinguri ireversibile\n" -" -f, --force for�eaz� recodingurile chiar �i c�nd nu sunt " -"reversibile\n" -" -t, --touch efectueaz� `touch' pe fi�ierele recodate dup� " -"�nlocuire\n" -" -i, --sequence=files folose�te fi�iere intermediare pentru treceri " -"secven�iale\n" -" --sequence=memory folose�te bufferele de memorie pentru trecerile " -"secven�iale\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr "" -" -p, --sequence=pipe folose�te mecanismul de `pipe' pentru treceri " -"secven�iale\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe la fel ca -i(pe acest system)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Set�ri de precizie(fine tuning):\n" -" -s, --strict folose�te map�ri stricte, chiar dac� se pierd " -"caractere\n" -" -d, --diacritics converte�te doar diacritice sau asem�n�tor pentru " -"HTML/LaTeX\n" -" -S, --source[=LN] limiteaz� recodinguri �n �iruri �i comentarii ca " -"pentru LN\n" -" -c, --colons folose�te coloane �n loc de ghilimele pentru " -"diaeresis\n" -" -g, --graphics aproximeaz� rigle(rulers) IBMPC prin grafic� ASCII\n" -" -x, --ignore=SET_CARACTERE ignor� SET_CARACTERE �n alegerea c�ilor de " -"recoding\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"Op�iunea -l f�r� FORMAT sau SET_CARACTERE listeaz� seturile de caractere �i\n" -"�nf��i��rile(surfaces) disponibile. FORMAT is `decimal', `octal',\n" -"`hexadecimal' sau `full' (sau unul din `dohf').\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Dac� DEFAULT_CHARSET nu este setat �n mediu (environment) CHARSET va fi " -"encodarea specific�\n" -"determinat� de LC_ALL, LC_CTYPE, LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Cu -k, seturile de caractere posibile dinainte sunt listate dup�\n" -"SET_CARACTERE specificat, ambele fiind seturi de caractere tabulare,\n" -"cu PERECHI de forma `BEF1:AFT1,BEF2: AFT2,...'\n" -"unde BEF �i AFT sunt coduri ce trebuie date ca numere zecimale.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN e un limbaj de programare, poate fi `c', `perl' sau `po'; `c' este " -"implicit.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"CERERE(REQUEST) este SUBCERERE[,SUBCERERE]...; SUBCERERE este ENCODING[.." -"ENCODING]...\n" -"ENCODING is [SET_CARACTERE][/[�NF��I�ARE]]...; CERERE se prezint� ca\n" -"PRECEDENT..ULTERIOR, cu PRECEDENT �i ULTERIOR fiind seturi de caractere.\n" -"Un SET_CARACTERE omis sugereaz� setul de caractere obi�nuit; o [/" -"�NF��I�ARE]\n" -"omis� reprezint� inf��i�area sugerat� pentru SET_CARACTERE; un /\n" -"f�r� nume de �nf��i�are �nseamn� f�r� �nf��i��ri. Vede�i manualul.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Dac� nu sunt da�i nici unul dintre-i �i -p, se presupune -p dac� nu FI�IER,\n" -"altfel -i. Fiecare FI�IER este recodat(recoded) peste sine, originalul\n" -"pierz�ndu-se. Dac� nu este specificat FI�IER, atunci se comport� ca un\n" -"filtru �i recodeaz� stdin �n stdout.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Raporta�i bug-urile la .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "Secven�a `%s' este ambigu�" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "Secven�a `%s' nu este cunoscut�" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "Limba `%s' este ambigu�" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Limba `%s' nu este cunoscut�" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Formatul `%s' este ambiguu" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Formatul `%s' nu este cunoscut" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Scris de Franc,ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Acesta este free software; vede�i sursele pentur condi�iile de copiere.\n" -"NU exist� NICI o garan�ie; nici m�car pentru VANDABILITATE sau MODIFICARE\n" -"PENTRU UN SCOP PRIVAT.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Simbolul `%s' nu este cunoscut" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Setul de caractere `%s' nu este cunoscut sau este ambiguu" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Lipse�te parametrul solicitat" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Sintax� �nvechit�(deprecated), utiliza�i `%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Cererea `%s' este gre�it�" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Recodare %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " finalizat�\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " e�uat�: %s �n pasul `%s..%s'\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s a e�uat: %s �n pasul `%s..%s'" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s �n pasul `%s..%s'" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Setul de caractere %s exist� deja �i nu este %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "" -"Nu se poate lista `%s', nici un nume disponibil pentru acest set de caractere" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Zec Oct Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Ne pare r�u, nici un nume disponibil pentru `%s'" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "" -"Schimb�torul de �nf��i��ri(resurfacer) setat mai multe dec�t o dat� pentru `%" -"s'" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "" -"Schimb�torul de �nf��i��ri(unsurfacer) setat mai mult dec�t o dat� pentru `%" -"s'" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Memorie virtual� plin�" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Codurile %3d �i %3d ambele recodate �n %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Nici un caracter recodat �n %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Nu se poate inversa tabela unu la unu dat�" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Se urm�resc diagnosticele pentru `%s' �n `%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Perechea num�rul %d <%3d, %3d> �n conflict cu <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Nu s-a putut completa tabelul din setul de perechi cunoscute" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Recodare de identitate, nu necesit� tabel" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Recodarea este prea complex� pentru un tabel simplu" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sTabelul de conversie generat mecanic de `%s' Free %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%s pentru secven�a %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Nu exist� tabel de tip�rit" - -#: src/request.c:34 -msgid "reversible" -msgstr "reversibil" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s �n %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "octet" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "variabil(�)" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Ne�ndeplinibil*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*copiere-simpl�*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Memorie virtual� plin�!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Pas de ini�ializare e�uat" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Pas de ini�ializare e�uat (op�iuni neprocesate)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Cerere: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Mic�orat la: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Nume �nf��i�are necunoscut: `%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Nici o �ans� de recodare din `%s' �n `%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "Se a�teapt� `..' �n cerere" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Starea de a�teptare a procesului derivat(child) este 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Descriere\n" -"\n" diff --git a/po/ru.gmo b/po/ru.gmo deleted file mode 100644 index d079d44..0000000 Binary files a/po/ru.gmo and /dev/null differ diff --git a/po/ru.po b/po/ru.po deleted file mode 100644 index 911d58a..0000000 --- a/po/ru.po +++ /dev/null @@ -1,608 +0,0 @@ -# ����������� recode. -# Copyright (C) 1999 Free Software Foundation, Inc. -# Dmitry S. Sivachenko , 2000. -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2001-06-11 23:05+04:00\n" -"Last-Translator: Dmitry S. Sivachenko \n" -"Language-Team: Russian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=koi8-r\n" -"Content-Transfer-Encoding: 8bit\n" - -# src/main.c:157 -#: src/main.c:142 -msgid "No error" -msgstr "������ ���" - -# src/main.c:160 -#: src/main.c:145 -msgid "Non canonical input" -msgstr "�������������� ����" - -# src/main.c:163 -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "������������� �����" - -# src/main.c:166 -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "��������������� ����" - -# src/main.c:169 -#: src/main.c:154 -msgid "Invalid input" -msgstr "�������� ����" - -# src/main.c:172 -#: src/main.c:157 -msgid "System detected problem" -msgstr "�������� ������������ ������" - -# src/main.c:175 -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "������������ ������������� ���������� �������������" - -# src/main.c:178 -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "���������� ������ �������������" - -# src/main.c:454 -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"��� ��������� ���������; �� ������ �������������� �/��� �������� �� ���\n" -"���������� ������� ������������� ������������ �������� GNU, ��������������\n" -"������ ���������� ������������ �����������, ������ 2 ��� ����� ����� " -"�������\n" -"(�� ������ ����������).\n" -"\n" -"��� ��������� ���������������� � �������, ��� ��� ����� ��������, �� ���\n" -"�����-���� ��������; ���� ��� ��������������� �������� ������������ " -"��������\n" -"��� ����������� ��� ���������� ����. ��� ��������� ����� ��������� " -"����������,\n" -"�������� ������������� ������������ �������� GNU.\n" -"\n" -"�� ������ ���� �������� ����� ������������� ������������ �������� GNU ������ " -"�\n" -"���� ����������, ���� ���, �������� Free Software Foundation, Inc., 59 " -"Temple\n" -"Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -# src/main.c:479 -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "���������� `%s %s' ��� ����� ��������� ����������.\n" - -# src/main.c:483 -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Free `recode' ����������� ����� ����� ���������� �������� ��������\n" -"� ���������������.\n" - -# src/main.c:486 -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"�������������: %s [����]... [ [�����-��������] | ������ [����]... ]\n" - -# src/main.c:489 -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"���� ������� ������� ����� ������� ������� ���������, �� ���� ��������\n" -"���������� ����� ��� ���������������� ��������� �����. ���������� ���\n" -"�������������� ������.\n" - -# src/main.c:494 -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"�����:\n" -" -l, --list[=������] ������� ���� ��� ��� ��������� ������ ��������\n" -" � ��������\n" -" -k, --known=���� ���������� ������ �������� � ������������ �\n" -" ���������� ������\n" -" -h, --header[=[����/]���] �������� ������� ��� � ����������� �����,\n" -" ��������� ����, ����� �����\n" -" -F, --freeze-tables �������� ������ �� ��, ���������� ��� �������\n" -" -T, --find-subsets ������� ��� ������ ��������, ����������\n" -" �������������� ���������\n" -" -C, --copyright ������� ���������� �� ��������� ������ �\n" -" �������� ���������������\n" -" --help ������� ��� ������� � �����\n" -" --version ������� ���������� � ������ � �����\n" - -# src/main.c:506 -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"������ ������:\n" -" -v, --verbose ��������� ������������������ ����� � ��������\n" -" ����� � ������� ����������\n" -" -q, --quiet, --silent �� �������� ��������� � ����������� " -"��������������\n" -" -f, --force ���������� ������������� �������� �� " -"�������������\n" -" -t, --touch �������� ����� �������� ����� ����� ���������\n" -" -i, --sequence=files ������������ ��������� ����� ���\n" -" ���������������� ��������\n" -" --sequence=memory ������������ ����������� ������ ���\n" -" ���������������� ��������\n" - -# src/main.c:517 -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr "" -" -p, --sequence=pipe ������������ �������� ������� ���\n" -" ���������������� ��������\n" - -# src/main.c:521 -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe �� ��, ��� -i (�� ���� �������)\n" - -# src/main.c:525 -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"������ ���������:\n" -" -s, --strict ������������ ������ �����������,\n" -" ���� ����� ������ ��������\n" -" -d, --diacritics ���������� ������ �������������� �����\n" -" ��� HTML/LaTeX\n" -" -S, --source[=����] ���������� ������������� ��� �����\n" -" �������� � ������������\n" -" -c, --colons ������������ ��������� ������ ������� �������\n" -" ��� ����������� �����\n" -" -g, --graphics �������� ����� IBMPC �������������� ASCII\n" -" -x, --ignore=���-���� ������������ ���-���� ��� ������\n" -" ������� �������������\n" - -# src/main.c:535 -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"���� -l ��� ������� � ������-�������� ������� ������ ��������� ������� �\n" -"�������������. ������ ����� ���� `decimal', `octal', `hexadecimal' ���\n" -"`full' (��� ���� �� `dohf').\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"���� � ����� ����������� ���������� DEFAULT_CHARSET, �����-��������\n" -"��������������� � ������������ � �������, ��� ������������ ����������� " -"LC_ALL,\n" -"LC_CTYPE, LANG.\n" - -# src/main.c:540 -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"� ������ -k ��������� ��������� �������� ��������� ������-�������� ���\n" -"��������� ���������, ���� ��� ��� �������� ����������. ���� ������ ����� " -"�����\n" -"`��1:�����1,��2:�����2,...'\n" -"������ ��n � �����n �������� ������, ��������� � ���� ���������� �����.\n" - -# src/main.c:545 -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"���� ������������ ���� ����������������; ��� ����� ���� `c', `perl' ��� " -"`po'.\n" -"�� ��������� ������������ `c'.\n" - -# src/main.c:548 -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"������ ������� �� ���������[,���������]...\n" -"��������� ������� �� ���������[..���������]...\n" -"��������� ���� [�����-��������][/[�������������]]...\n" -"������ ����� �������� ��� ��..�����, ��� �� � ����� ���� ������ ��������.\n" -"���� �����-�������� ������, ������������ ����� �� ���������;\n" -"���� ���������� [/�������������]..., ������������ ��������������� " -"�������������\n" -"��� ������� ������-��������; / ��� ����� ������������� �������� ��� " -"����������.\n" -"�������� �����������.\n" - -# src/main.c:556 -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"���� �� ������ �� -i, �� -p, ��������������� -p, ���� ��� �����, ����� -i.\n" -"������ ���� �������������� � ���� � ��� �� ������, ��������� ��������. " -"����\n" -"���� �� �����, �� ��������� �������� ��� ������, ����������� ����������� " -"����\n" -"�� ����������� �����.\n" - -# src/main.c:562 -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"� ���������� ������� ��������� �� ������ .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "������������� ������������������ `%s'" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "����������� ������������������ `%s'" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "������������� ���� `%s'" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "����������� ���� `%s'" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "������������� ������ `%s'" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "����������� ������ `%s'" - -# src/main.c:854 -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "��������� �������� ������� �������� .\n" - -# src/main.c:846 -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -# src/main.c:850 -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"��� ��������� ����������� �����������; ������� ��������������� ��������� �\n" -"�������� ������. �� ��������������� ������� ��������, ���� �������� " -"����������\n" -"��� ����������� ��� ���������� ����.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "����������� ������ `%s'" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "����������� ��� ������������� ����� �������� `%s'" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "�������� ������������ ��������" - -# src/main.c:999 -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "����������������� ���������, �����������, ����������, `%s'" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "��������� ������ `%s'" - -# src/main.c:1098 -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "������������� %s..." - -# src/main.c:1108 -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " ������\n" - -# src/main.c:1142 -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " ������: %s � `%s..%s'\n" - -# src/main.c:1149 -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s ����������� ��������: %s � `%s..%s'" - -# src/main.c:1172 -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s � `%s..%s'" - -# src/names.c:259 -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "����� �������� %s ��� ���������� � �� �������� %s" - -# src/names.c:754 -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "���������� ������� `%s', ��� ���� ������ �������� ��� ��������� ����" - -# src/names.c:854 -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Oct Hex UCS2 Mne %s\n" - -# src/names.c:847 -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "��������, ��� `%s' ��� ���������� �����" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "��������� ������������� ��� `%s' ����������� ����� ������ ����" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "" - -# src/recode.c:117 src/recode.c:129 -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "����������� ������ ���������" - -# src/recode.c:157 -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "���� %3d � %3d ��� ��������� � %3d" - -# src/recode.c:171 -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "��� �������, �������������� � %3d" - -# src/recode.c:172 -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "���������� �������� ������ ������������������ �������" - -# src/recode.c:226 src/recode.c:238 -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "����� ������� ����������� ��� `%s' � `%s'" - -# src/recode.c:231 src/recode.c:243 -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "���� ����� %d: <%3d, %3d> ����������� � <%3d, %3d>" - -# src/recode.c:274 -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "�� ������� ��������� ������� �� ������ ��������� ���" - -# src/recode.c:504 -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "������������� �������������, ��� ������������� � �������" - -# src/recode.c:512 -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "������������� ������� ������ ��� ������� �������" - -# src/recode.c:544 -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%s������� ������������� ������� ������������� � ������� Free `%s' %s" - -# src/recode.c:546 -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%s��� ������������������ %s.%s" - -# src/recode.c:736 -#: src/recode.c:744 -msgid "No table to print" -msgstr "��� ������� ��� ������" - -#: src/request.c:34 -msgid "reversible" -msgstr "���������" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s � %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "����" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "����������" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*�����������*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*������ �����*" - -# src/recode.c:117 src/recode.c:129 -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "����������� ������ ���������!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "������ ���� �������������" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "������ ���� ������������� (�������������� ����)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "������: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "����� ��: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "�������������� ��� ������������� `%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "��� ����������� �������������� �� `%s' � `%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "� ������� ��������� `..'" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "������ �������� ��������� �������� ����� 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne ��������\n" -"\n" diff --git a/po/sk.gmo b/po/sk.gmo deleted file mode 100644 index a56561d..0000000 Binary files a/po/sk.gmo and /dev/null differ diff --git a/po/sk.po b/po/sk.po deleted file mode 100644 index 20aecf6..0000000 --- a/po/sk.po +++ /dev/null @@ -1,513 +0,0 @@ -# Slovak translation of recode -# Copyright (C) 2001 Free Software Foundation, Inc. -# This file is distributed under the same license as the recode package. -# Ivan Masár , 2008. -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"POT-Creation-Date: 2001-01-02 22:35+0100\n" -"PO-Revision-Date: 2008-04-18 10:24+0100\n" -"Last-Translator: Ivan Masár \n" -"Language-Team: Slovak \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Žiadna chyba" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Chýba kanonický vstup" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Nejednoznačný výstup" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Nepreložiteľný vstup" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Neplatný vstup" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Systém zistil problém" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Chybné použitie knižnice na zmenu kódovania" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Vnútorná chyba zmeny kódovania" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Tento program je slobodný softvér; môžete ho šíriť a modifikovať\n" -"podľa podmienok GNU General Public License, ktorú publikovala\n" -"Free Software Foundation; buď verzie 2 alebo (podľa vášho\n" -"rozhodnutia) ktorejkoľvek neskoršej verzie.\n" -"\n" -"Tento program je rozširovaný v nádeji, že bude užitočný, avšak BEZ AKEJKOĽVEK\n" -"ZÁRUKY; neposkytujú sa ani odvodené záruky PREDAJNOSTI alebo VHODNOSTI NA\n" -"KONKRÉTNY ÚČEL. Ďalšie podrobnosti nájdete v GNU General Public License.\n" -"\n" -"Kópia GNU General Public License mala byť dodaná spolu s týmto\n" -"programom; pokiaľ sa tak nestalo, napíšte do Free Software Foundation, Inc.,\n" -"59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Skúste viac informácií pomocou „%s %s“\n" - -#: src/main.c:237 -msgid "Free `recode' converts files between various character sets and surfaces.\n" -msgstr "„recode“ prevádza súbory medzi rôznymi znakovými sadami a povrchmi.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Použitie: %s [VOĽBA]... [ [ZNAKSAD] | CIEĽ [SÚBOR]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Ak je pri dlhej voľbe zobrazený argument ako povinný, je povinný aj\n" -"pri zodpovedajúcej krátkej voľbe. Obdobne pre voliteľné argumenty.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Výpisy:\n" -" -l, --list[=FORMÁT] vypísať jednu alebo všetky známe znakové sady a aliasy\n" -" -k, --known=PÁRY obmedziť znakové sady podľa známeho zoznamu PÁRov\n" -" -h, --header[=[JA/]MENO] zapísať na štand. výstup tabuľku MENO pomocou JA, potom skončiť\n" -" -F, --freeze-tables zapísať C modul obsahujúci všetky tabuľky\n" -" -T, --find-subsets oznamovať všetky znakové sady ako podmnožiny iných\n" -" -C, --copyright zobraziť autorské práva a podmienky šírenia\n" -" --help zobraziť tohto pomocníka a skončiť\n" -" --version zobraziť informácie o verzii a skončiť\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Režimy prevádzky:\n" -" -v, --verbose vysvetliť postupnosť krokov a oznamovať priebeh\n" -" -q, --quiet, --silent potlačiť správy o nevratnej zmene kódovania\n" -" -f, --force vynútiť zmenu kódovania aj ak je nevratná\n" -" -t, --touch po zmene aktualizovať dátum súboru\n" -" -i, --sequence=files pri následných prechodoch použiť dočasné súbory\n" -" --sequence=memory pri následných prechodoch použiť odkladanie v pamäti\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=pipe pri následných prechodoch použiť mechanizmus rúr\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe ekvivalent -i (na tomto systéme)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Dolaďovanie:\n" -" -s, --strict použiť prísne mapovanie, povoliť stratu znakov\n" -" -d, --diacritics previesť iba diakritiku alebo pod. pre HTML/LaTeX\n" -" -S, --source[=JA] obmedziť zmenu kódovania na reťazce a komentáre podľa JA\n" -" -c, --colons použiť na mieste úvodzoviek apostrofy namiesto dvojitých apostrofov\n" -" -g, --graphics aproximovať IBMPC okraje pomocou ASCII grafiky\n" -" -x, --ignore=ZNAKSAD ignorovať ZNAKSAD pri výbere cesty zmeny kódovania\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"Voľba -l bez FORMÁTu a ZNAKSAD zobrazí dostupné znakové sady a povrchy.\n" -"FORMÁT je „decimal“, „octal“, „hexadecimal“ alebo „full“ (alebo jedno z „dohf“).\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Ak nie je v prostredí nastavená premenná DEFAULT_CHARSET, ZNAKSAD bude\n" -"štandardne kódovanie závislé na lokálnom nastavení, ktoré určujú LC_ALL, LC_CTYPE, LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Voľba -k zobrazí pre danú ZNAKSAD možné znakové sady PRED kde obe sú,\n" -"tabuľkové znakové sady s PÁRMIO v tvare „PRED1:PO1,PRED2:PO2,...“\n" -"a PRED a PO sú kódy uvedené ako desiatkové čísla.\n" - -#: src/main.c:312 -msgid "LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "JA je nejaký jazyk. Môže to byť „c“, „perl“ alebo „po“; štandardne je to „c“.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[..ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE..AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"POŽIADAVKA je PODPOŽIADAVKA[,PODPOŽIADAVKA]...; PODPOŽIADAVKA je KÓDOVANIE[..KÓDOVANIE]...\n" -"KÓDOVANIE je [ZNAKSAD][/[POVRCH]]...; POŽIADAVKA často vyzerá nasledovne: PRED..PO,\n" -"kde PRED a PO sú znakové sady. Vynechaná ZNAKSAD znamená zvyčajnú\n" -"znakovú sadu; vynechaný [/POVRCH]... znamená zvyčajné povrchy ZNAKSAD;/\n" -"prázdny názov povrchu znamená žiadny povrch. Pozri príručku.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Ak nie je zadaná žiadna z volieb -i a -p, predpokladá sa -p ak nie je\n" -"SÚBOR, inak -i. Kódovanie každého SÚBORu sa mení na mieste, čím sa\n" -"prepíše originál. Ak nie je zadaný SÚBOR, funguje ako filter a mení\n" -"kódovanie štandardného vstupu na štandardný výstup.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Chyby oznamujte na adresu .\n" - -#: src/main.c:430 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "Postupnosť „%s“ je nejednoznačná" - -#: src/main.c:434 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "Postupnosť „%s“ je neznáma" - -#: src/main.c:464 src/main.c:522 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "Jazyk „%s“ je nejednoznačný" - -#. -1 -#: src/main.c:468 src/main.c:526 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Jazyk „%s“ je neznámy" - -#: src/main.c:560 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Formát „%s“ je nejednoznačný" - -#: src/main.c:564 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Formát „%s“ je neznámy" - -#: src/main.c:621 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Napísal Franc,ois Pinard .\n" - -#: src/main.c:624 -msgid "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:628 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Tento program je slobodný softvér; podmienky šírenia nájdete v zdrojovom\n" -"kóde. Neexistuje ŽIADNA ZÁRUKA; neposkytujú sa ani záruky PREDAJNOSTI\n" -"alebo VHODNOSTI NA KONKRÉTNY ÚČEL.\n" - -#: src/main.c:669 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Symbol „%s“ je neznámy" - -#: src/main.c:709 src/main.c:723 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Znaková sada „%s“ je neznáma alebo nejednoznačná" - -#: src/main.c:754 -msgid "Required argument is missing" -msgstr "Chýba povinný argument" - -#: src/main.c:797 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Neodporúča sa používať túto syntax, dajte prosím prednosť „%s“" - -#: src/main.c:803 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Požiadavka „%s“ je chybná" - -#: src/main.c:903 -#, c-format -msgid "Recoding %s..." -msgstr "Mení sa kódovanie %s..." - -#: src/main.c:913 -msgid " done\n" -msgstr " hotovo\n" - -#: src/main.c:954 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " zlyhalo: %s v kroku „%s..%s“\n" - -#: src/main.c:961 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s zlyhalo: %s v kroku „%s..%s“" - -#: src/main.c:984 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s v kroku „%s..%s“" - -#: src/names.c:335 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Znaková sada %s už existuje a nie je %s" - -#: src/names.c:831 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "Nemožno vypísať „%s“, táto znaková sada nemá dostupné žiadne názvy" - -#. code counter -#. expected value for code counter -#. insert a while line before printing -#. Print the long table according to explode data. -#: src/names.c:984 src/names.c:1030 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Dec Okt Hex UCS2 Mne %s\n" - -#: src/names.c:1049 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Prepáčte, pre „%s“ nie sú dostupné žiadne názvy" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Zmena povrchu nastavená viac než raz pre „%s“" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Odstránenie povrchu nastavené viac než raz pre „%s“" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Virtuálna pamäť je vyčerpaná" - -#: src/recode.c:155 -#, c-format, ycp-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Kódy %3d a %3d sa oba menia na kód %3d" - -#: src/recode.c:169 -#, c-format, ycp-format -msgid "No character recodes to %3d" -msgstr "Žiadny znak sa nemení na kód %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Nie je možné invertovať danú tabuľku jedna k jednej" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Nasleduje diagnostika „%s“ na „%s“" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Č. páru %d: <%3d, %3d> je v konflikte s <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Nie je možné dokončiť tabuľku z množiny známych párov" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Identická zmena kódovania, na to sa neoplatí používať tabuľku" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Zmena kódovanie je príliš zložitá než aby sa dala jednoducho použiť tabuľka" - -#. Print the header of the header file. -#: src/recode.c:536 -#, c-format -msgid "%sConversion table generated mechanically by Free `%s' %s" -msgstr "%sKonverznú tabuľku vytvoril automaticky program „%s“ %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%sza postupnosť %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Niet žiadnej tabuľky na výpis" - -#: src/request.c:34 -msgid "reversible" -msgstr "vratná" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s na %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "bajt" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "premenná" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Nedosiahnuteľné*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*prosté kopírovanie*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Virtuálna pamäť je vyčerpaná!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Inicializácia kroku zlyhala" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Inicializácia kroku zlyhala (nespracované voľby)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Požiadavka: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Zmrštené na: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Nerozpoznaný názov povrchu „%s“" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Neexistuje spôsob zmeny kódovania z „%s“ na „%s“" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "V požiadavke sa očakávalo „..“" - -#: src/task.c:826 src/task.c:1002 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Stav čakania detského procesu je 0x%0.2x" - -#: src/testdump.c:298 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Popis\n" -"\n" diff --git a/po/sl.gmo b/po/sl.gmo deleted file mode 100644 index 49676e3..0000000 Binary files a/po/sl.gmo and /dev/null differ diff --git a/po/sl.po b/po/sl.po deleted file mode 100644 index 120a330..0000000 --- a/po/sl.po +++ /dev/null @@ -1,790 +0,0 @@ -# -*- mode: po; coding: iso-latin-2; -*- Slovenian msg. catalog for GNU recode. -# Copyright (C) 1996 Free Software Foundation, Inc. -# Primoz Peterlin , 1996. -# -# $Id: recode-3.6.sl.po,v 1.2 2001/06/08 10:41:42 peterlin Exp $ -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2001-06-08 12:41+02:00\n" -"Last-Translator: Primoz Peterlin \n" -"Language-Team: Slovenian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-2\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Brez napak" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Nekanoni�en vhod" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Dvoumen izhod" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Neprevedljiv vhod" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Neveljaven vhod" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Te�ave v sistemu" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Zloraba pretvorne knji�nice" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Notranja napaki pri pretvorbi" - -# POZOR!!! -# Tole bi nujno moral dobiti v roke pravnik... -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Ta program je prosta programska oprema; lahko ga redistribuirate in/ali\n" -"spreminjate po pogojih, dolo�enih v ,,GNU General Public License``, izdani\n" -"pri Free Software Foundation; 2. izdaja (ali novej�a, �e razpolagate z " -"njo).\n" -"\n" -"Ta program se distribuira v upanju, da je uporaben, vendar BREZ " -"KAKR�NEGAKOLI\n" -"JAMSTVA; vklju�no z impliciranim jamstvom prodajnosti ali uporabnosti za\n" -"izbrani namen. Za podrobnosti si oglejte ,,GNU General Public License``.\n" -"\n" -"Izvod ,,GNU General Public License`` bi moral biti prilo�en temu programu;\n" -"�e ni, pi�ite Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n" -"Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Poskusite ,%s %s` za dodatne informacije.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Prosti ,recode` pretvarja datoteke med razli�nimi kodnimi nabori in " -"pre�rkovanji.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Uporaba: %s [IZBIRA]... [ [NABOR] | ZAHTEVA [DATOTEKA]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"�e je pri dolgi obliki izbire argument naveden kot obvezen, velja\n" -"obveza tudi za kratko obliko. Podobno tudi za neobvezne argumente.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Seznami:\n" -" -l, --list[=OBLIKA] izpi�i enega ali vse kodirane nabore znakov\n" -" -k, --known=PARI izpi�i nabore, ki ustrezajo podanim PAROM " -"pretvorb\n" -" -h, --header[=[JEZIK/]IME] izpi�i pretvorno tabelo z danim IMENOM v prog. " -"JEZIKU\n" -" -F, --freeze-tables izpi�i modul v C z vsemi pretvornimi tabelami\n" -" -T, --find-subsets poro�aj o vseh naborih, ki so podmno�ica " -"drugih\n" -" -C, --copyright izpi�i dovoljenje za uporabo in raz�irjanje\n" -" --help ta navodila\n" -" --version razli�ica programa\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Na�ini dela:\n" -" -v, --verbose med potekom razlagaj korake in komentiraj " -"napredek\n" -" -q, --quiet, --silent brez opozoril o neobrnljivih pretvorbah\n" -" -f, --force pretvorbo izvedi, �etudi ni obrnljiva\n" -" -t, --touch pretvorjena datoteka naj nosi datum pretvorbe,\n" -" ne nastanka\n" -" -i, --sequence=files uporabi vmesne datoteke za zaporedne prehode\n" -" --sequence=memory med prehodi hrani besedilo v pomnilniku\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=pipe uporabi cevovode za nizanje prehodov\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe isto kot -i (na tem sistemu)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Natan�nej�e nastavljanje:\n" -" -s, --strict uporabi strogo pretvorbo, celo na ra�un izgube " -"znakov\n" -" -d, --diacritics pretvori samo pregla�ene in podobne znake za HTML/" -"LaTeX\n" -" -S, --source[=JEZIK] omeji pretvorbe na nize in komentarje, kot v " -"JEZIKU\n" -" -c, --colons nadomesti dierezo z dvopi�jem, ne z dvojnim " -"narekovajem\n" -" -g, --graphics semigrafi�ne znake s PC pribl. nadomestimo z znaki " -"ASCII\n" -" -x, --ignore=NABOR pri pretvorbi se izogni navedenemu vmesnemu NABORU\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"Izbira -l brez podane OBLIKE ali NABORA izpi�e seznam vseh znanih kodnih " -"naborov\n" -"in pre�rkovalnih shem. OBLIKA je lahko ,decimal` (deseti�ka), ,octal` " -"(osmi�ka),\n" -",hexadecimal` (�estnajsti�ka) ali ,full` (polna), ali ena od �rk ,dohf`.\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"�e ni dolo�ena spremenljivka DEFAULT_CHARSET, se privzame NABOR,\n" -"dolo�en s spremenljivkami LC_ALL, LC_CTYPE ali LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Pri izbiri -k se izpi�ejo vsi mo�ni startni nabori za podani ciljni nabor.\n" -"Startni in ciljni nabor sta kodirana nabora znakov. PARI naj imajo obliko\n" -",,START1:CILJ1,START2:CILJ2...``, kjer so STARTn in CILJn deseti�ke kode \n" -"znakov v startnem in ciljnem kodnem naboru.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "JEZIK je lahko ,c`, ,perl` ali ,po`; privzeto je ,c`.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"ZAHTEVEK ima obliko PODZAHTEVEK[,PODZAHTEVEK]...; PODZAHTEVEK ima obliko\n" -"KODIRANJE[,KODIRANJE]...; KODIRANJE ima obliko [NABOR][/[SHEMA]]. ZAHTEVEK\n" -"ima pogosto obliko PREJ..POTEM, kjer sta PREJ in POTEM kodirana nabora " -"znakov.\n" -"Izpu��eni NABOR pomeni privzetega; izpu��ena [/SHEMA] pomeni privzeto\n" -"pre�rkovalno shemo za dani NABOR. Po�evnica / brez sheme pomeni brez " -"pre�rkovalne\n" -"sheme. Podrobnosti so v priro�niku.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"�e nista podana niti -i niti -p, se uporabi -p, kadar ni podana DATOTEKA, \n" -"sicer pa -i. Pretvorba vsake DATOTEKE se zapi�e prek izvorne razli�ice. �e\n" -"DATOTEKA ni podana, recode deluje kot filter med standardnim vhodom in " -"izhodom.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Sporo�ila o napakah javite na .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "Zaporedje ,%s` je dvoumno" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "Zaporedje ,%s` je neznano" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "Jezik ,%s` je dvoumen" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Jezik ,%s` je neznan" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Oblika ,%s` je dvoumna" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Oblika ,%s` je neznana" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Avtor Franc,ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"To je prost program; pogoji, pod katerimi ga lahko uporabljate, " -"razmno�ujete\n" -"in raz�irjate so navedeni v izvorni kodi. Za program ni NOBENEGA jamstva,\n" -"niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA UPORABO.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Znak ,%s` je neznan" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Nabor znakov ,%s` je neznan ali dvoumen" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Zahtevani argument manjka" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Neodobravana skladnja; prosimo, uporabljajte ,%s`" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Zahteva ,%s` je napa�na" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Pretvarjamo %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " opravljeno\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " neuspe�no: %s v koraku ,%s..%s`\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s neuspe�no: %s v koraku ,%s..%s`" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s v koraku ,%s..%s`" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Nabor %s �e obstaja in ni %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "Izpis ,%s' ni mogo�, imen za ta nabor ni na voljo" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "des osm Hex UCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Imena za ,%s` niso na voljo" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Ve� kot ena pre�rkovalna shema uvedena za ,%s`" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Ve� kot ena pre�rkovalna shema preklicana za ,%s`" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Virtualni pomnilnik porabljen" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Kodi %3d in %3d se obe preslikata v %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Noben znak se ne preslika v %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Dana tabela eden-v-enega ni obrnljiva" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Sledi diagnostika za pretvorbo iz ,%s' v ,%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Par �t. %d: <%3d, %3d> je v nesoglasju z <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Iz mno�ice znanih parov ni mogo�e dokon�ati tabele" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Pretvorba je trivialna, nevredna tabele" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Pretvorba je prezapletena za tabelo" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sPretvorna tabela mehani�no generirana s prostim ,%s` %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%sza zaporedje %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Tabele ni" - -#: src/request.c:34 -msgid "reversible" -msgstr "obrnljivo" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s v %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "bajt" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "UCS2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "spremenljivo" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Nedosegljivo*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*zgolj prepis*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Virtualni pomnilnik porabljen!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Inicializacija koraka neuspe�na" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Inicializacija koraka neuspe�na (nepredelane izbire)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Zahtevek: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Skr�eno v: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Neprepoznano ime pre�rkovalne sheme ,%s`" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Pretvorba iz ,%s` v ,%s` ni izvedljiva" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "V zahtevku pri�akujemo ,..`" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "�akalni status procesa potomca je 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Opis\n" -"\n" - -#~ msgid "CHARSET has no default, define DEFAULT_CHARSET in the environment.\n" -#~ msgstr "" -#~ "NABOR nima privzete vrednosti; dolo�ite spremenljivko okolja " -#~ "DEFAULT_CHARSET.\n" - -#~ msgid "Ambiguous sequence `%s'" -#~ msgstr "Dvoumno zaporedje ,%s`" - -#~ msgid "Unknown sequence `%s'" -#~ msgstr "Neznano zaporedje ,%s`" - -#~ msgid "Ambiguous language `%s'" -#~ msgstr "Dvoumen jezik ,%s`" - -#~ msgid "Unknown language `%s'" -#~ msgstr "Neznan jezik ,%s`" - -#~ msgid "Ambiguous format `%s'" -#~ msgstr "Dvoumen format ,%s`" - -#~ msgid "Unknown format `%s'" -#~ msgstr "Neznan format ,%s`" - -#~ msgid "Erroneous request `%s'" -#~ msgstr "Napa�en zahtevek ,%s`" - -#~ msgid " Each input char transforms into an output string,\n" -#~ msgstr " Vsak vhodni znak se preslika v niz znakov,\n" - -#~ msgid " Each input char transforms into an output string.\n" -#~ msgstr " Vsak vhodni znak se preslika v niz znakov.\n" - -#~ msgid " Programming is needed to handle multichar input.\n" -#~ msgstr " Nabori z ve� kot 8 biti zahtevajo programiranje.\n" - -#~ msgid " The recoding might not be reversible.\n" -#~ msgstr " Pretvorba morda ni obrnjiva.\n" - -#~ msgid " The recoding should be reversible.\n" -#~ msgstr " Pretvorba bi morala biti obrnljiva.\n" - -#~ msgid " programming is needed to handle multichar input.\n" -#~ msgstr " nabori z ve� kot 8 biti zahtevajo programiranje.\n" - -#~ msgid " UNACHIEVABLE\n" -#~ msgstr " NEIZVEDLJIVO\n" - -#~ msgid "%s: Recoding is not reversible" -#~ msgstr "%s: Pretvorba ni obrnljiva" - -#~ msgid ", %d saved by merging" -#~ msgstr ", %d znakov prihranjenih pri zdru�evanju" - -#~ msgid "/* Conversion table from `%s' charset to `%s' charset.\n" -#~ msgstr "/* Tabela za pretvorbo iz nabora ,%s' v nabor ,%s'.\n" - -#~ msgid "Cannot auto check on %s" -#~ msgstr "Nabora %s ni mogo�e avtomati�no preveriti" - -#~ msgid "Cannot auto check the ignored charset" -#~ msgstr "Izpu��enega nabora ni mogo�e avtomati�no preveriti" - -#~ msgid "Currently, -s is ignored when -g is selected" -#~ msgstr "Za zdaj je izbira -s ignorirana, kadar je izbrano -g" - -#~ msgid "Hash stats: %d names using %d buckets out of %d\n" -#~ msgstr "" -#~ "Statistika za razpr�itveno tabelo: %d imen porabilo %d od %d ko�ev\n" - -#~ msgid "Internal error - strategy undecided" -#~ msgstr "Interna napaka - neodlo�en o strategiji" - -#~ msgid "MAX_CHARSETS is too small" -#~ msgstr "MAX_CHARSETS premajhno" - -#~ msgid "MAX_SEQUENCE is too small" -#~ msgstr "MAX_SEQUENCE premajhno" - -#~ msgid "MAX_SINGLE_STEPS is too small" -#~ msgstr "MAX_SINGLE_STEPS premajhno" - -#~ msgid "Mere copy for the trivial recoding\n" -#~ msgstr "Zgolj kopija za trivialno pretvorbo\n" - -#~ msgid "ONE to SAME" -#~ msgstr "EDEN v ISTEGA" - -#~ msgid "Recoding is not reversible" -#~ msgstr "Pretvorba ni obrnljiva" - -#~ msgid "Simplified to: " -#~ msgstr "Poenostavljeno: " - -#~ msgid "UNACHIEVABLE recoding!\n" -#~ msgstr "NEIZVEDLJIVA pretvorba!\n" - -#~ msgid "You may not explicitly recode from RFC 1345" -#~ msgstr "Eksplicitna pretvorba iz RFC 1345 ni izvedljiva" - -#~ msgid " -o, --sequence=popen same as -i (on this system)\n" -#~ msgstr " -o, --sequence=popen isto kot -I (na tem sistemu)\n" - -#~ msgid "" -#~ " -o, --sequence=popen use popen machinery for sequencing passes\n" -#~ msgstr " -o, --sequence=popen uporabi mehanizem ,popen'\n" - -#~ msgid "" -#~ " -q, --quiet, --silent inhibit messages about irreversible recodings\n" -#~ " -s, --strict use strict mappings, even loose characters\n" -#~ " -t, --touch touch the recoded files after replacement\n" -#~ " -v, --verbose explain sequence of steps and report progress\n" -#~ " -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -#~ "\n" -#~ "If none of -i, -o and -p are given, presume -p if no FILE, else -i.\n" -#~ "Each FILE is recoded over itself, destroying the original. If no\n" -#~ "FILE is specified, then act as a filter and recode stdin to stdout.\n" -#~ msgstr "" -#~ " -q, --quiet, --silent brez sporo�il o neobrnljivih pretvorbah\n" -#~ " -s, --strict striktna pretvorba, tudi na �kodo izgubljenih " -#~ "znakov\n" -#~ " -t, --touch kon�na datoteka naj nosi datum pretvorbe, ne " -#~ "nastanka\n" -#~ " -v, --verbose z razlago poteka pretvorbe\n" -#~ " -x, --ignore=NABOR izpusti NABOR pri izbiri poti pretvorbe\n" -#~ "\n" -#~ "�e ni podan -i, -o, ali -p, se privzame -p, kadar ni podana DATOTEKA, " -#~ "sicer -i.\n" -#~ "Vsaka DATOTEKA se pretvori �ez samo sebe in uni�i izvirnik. �e DATOTEKA\n" -#~ "ni podana, deluje kot filter in pretvarja podatke z vhoda na izhod.\n" - -#~ msgid "BEFORE and AFTER both default to `%s' when needed.\n" -#~ msgstr "�e nabor PREJ ali POTEM ni podan, se nadomesti z ,%s'\n" - -# POZOR -#~ msgid "" -#~ "Mandatory or optional arguments to long options are mandatory or " -#~ "optional\n" -#~ "for short options too.\n" -#~ "\n" -#~ " -C, --copyright display Copyright and copying conditions\n" -#~ " -a, --auto-check report about some or all recoding paths, then " -#~ "exit\n" -#~ " -l, --list[=FORMAT] list one or all known charsets\n" -#~ " -k, --known=PAIRS restrict charsets according to known PAIRS list\n" -#~ " --help display this help and exit\n" -#~ " --version output version information and exit\n" -#~ "\n" -#~ "FORMAT is a word among decimal, octal, hexadecimal or full (which may be\n" -#~ "abbreviated to one of `dohf'), it defaults to just the canonical name.\n" -#~ "With -k, possible before charsets are listed for the given after " -#~ "CHARSET,\n" -#~ "both being RFC1345 charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -#~ "AFT2,...\n" -#~ "and BEFs and AFTs being codes. All codes are given as decimal numbers.\n" -#~ msgstr "" -#~ "Argumenti, ki so obvezni za dolge oblike izbir so obvezni tudi za kratke " -#~ "oblike,\n" -#~ "in enako velja za neobvezne argumente.\n" -#~ "\n" -#~ " -C, --copyright obvestilo avtorskih pravicah\n" -#~ " -a, --auto-check poro�ilo o mo�nih pretvorbah\n" -#~ " -l, --list[=FORMAT] seznam znanih naborov, ali izpis nabora znakov\n" -#~ " -k, --known=PARI omejitev naborov na seznam znanih PAROV\n" -#~ " --help ta navodila\n" -#~ " --version verzija programa\n" -#~ "\n" -#~ "FORMAT izpisa je eden od naslednjih: decimal, octal, hexadecimal ali full " -#~ "(mo�na\n" -#~ "je okraj�ava na prvo �rko: dohf), privzeta izbira je samo kanoni�no ime " -#~ "nabora.\n" -#~ "With -k, possible before charsets are listed for the given after " -#~ "CHARSET,\n" -#~ "both being RFC1345 charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -#~ "AFT2,...\n" -#~ "and BEFs and AFTs being codes. All codes are given as decimal numbers.\n" - -#~ msgid "" -#~ "Option -l with no FORMAT nor CHARSET list all charsets, also see the " -#~ "Texinfo\n" -#~ "documentation. My preferred charsets are (each user has preferences):\n" -#~ "\n" -#~ " ascii-bs ASCII (7-bit), using backspace to apply diacritics\n" -#~ " ibmpc IBM-PC 8-bit characters, with proper newlines\n" -#~ " latex LaTeX coding of foreign and diacriticized characters\n" -#~ " latin1 ISO Latin-1 8-bit extension of ASCII\n" -#~ " texte Easy French convention for transmitting email messages\n" -#~ msgstr "" -#~ "Izbira -l brez podanih FORMAT ali NABOR d� seznam vseh naborov, oglejte " -#~ "si �e\n" -#~ "dokumentacijo v Texinfo. Moji priljubljeni nabori (vsak uporabnik ima " -#~ "svoje):\n" -#~ "\n" -#~ " ascii-bs 7-bitni ASCII, z uporabo Backspace za tisk diakriti�nih " -#~ "znakov\n" -#~ " ibmpc 8-bitni nabor IBM-PC, zaklju�ek vrstice CR LF\n" -#~ " latex LaTeX-ov zapis diakriti�nih znakov\n" -#~ " latin1 ISO Latin-1 8-bitna raz�iritev ASCII\n" -#~ " texte enostavna francoska konvencija za prenos elektronske po�te\n" - -#~ msgid "" -#~ "\n" -#~ " -c, --colons use colons instead of double quotes for " -#~ "diaeresis\n" -#~ " -d, --diacritics limit conversion to diacritics or alike for " -#~ "LaTeX\n" -#~ " -f, --force force recodings even if they are not " -#~ "reversible\n" -#~ " (BEWARE: in this version, -f is always " -#~ "selected)\n" -#~ " -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -#~ " -h, --header[=NAME] write C code with table NAME on stdout, then " -#~ "exit\n" -#~ " -i, --sequence=files use intermediate files for sequencing passes\n" -#~ msgstr "" -#~ "\n" -#~ " -c, --colons dvopi�je namesto narekovajev za preglas\n" -#~ " -d, --diacritics limit conversion to diacritics or alike for " -#~ "LaTeX\n" -#~ " -f, --force force recodings even if they are not " -#~ "reversible\n" -#~ " (BEWARE: in this version, -f is always " -#~ "selected)\n" -#~ " -g, --graphics grafi�ne znake IBMPC aproksimiraj z ASCII\n" -#~ " -h, --header[=NAME] write C code with table NAME on stdout, then " -#~ "exit\n" -#~ " -i, --sequence=files use intermediate files for sequencing passes\n" - -#~ msgid "" -#~ "\n" -#~ "Usage: %s [OPTION]... [BEFORE]:[AFTER] [FILE]...\n" -#~ msgstr "" -#~ "\n" -#~ "Uporaba: %s [IZBIRA]... [PREJ]:[POTEM] [DATOTEKA]...\n" - -#~ msgid "many to many" -#~ msgstr "ve� v ve�" - -#~ msgid "many to one" -#~ msgstr "ve� v enega" - -#~ msgid "one to many" -#~ msgstr "eden v ve�" - -#~ msgid "one to one" -#~ msgstr "eden v enega" - -#~ msgid "steps: %d" -#~ msgstr "korakov: %d" diff --git a/po/sv.gmo b/po/sv.gmo deleted file mode 100644 index 26f4567..0000000 Binary files a/po/sv.gmo and /dev/null differ diff --git a/po/sv.po b/po/sv.po deleted file mode 100644 index 1e520f6..0000000 --- a/po/sv.po +++ /dev/null @@ -1,546 +0,0 @@ -# Swedish messages for recode -# Copyright � 1996, 1998, 2001 Free Software Foundation, Inc. -# Jan Dj�rv , 1996, 1998, 2001. -# Revision: 1.16 -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2001-06-12 12:54+0100\n" -"Last-Translator: Jan Dj�rv \n" -"Language-Team: Swedish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Inget fel" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Indata ej kanonisk" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Tvetydig utdata" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "O�vers�ttbar indata" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Felaktig indata" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Systemproblem uppt�cktes" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Felaktig anv�ndning av omkodningsbibliotek" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Internt omkodningsfel" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"F�ljande text �r en informell �vers�ttning som enbart tillhandah�lls i\n" -"informativt syfte. F�r alla juridiska tolkningar g�ller den engelska\n" -"originaltexten.\n" -"\n" -"Detta program �r fri programvara. Du kan distribuera den och/eller " -"modifiera\n" -"den under villkoren i GNU General Public License, publicerad av\n" -"Free Software Foundation, antingen version 2 eller (om du s� vill)\n" -"n�gon senare version.\n" -"\n" -"Detta program distribueras i hopp om att det ska vara anv�ndbart,\n" -"men UTAN N�GON SOM HELST GARANTI, �ven utan den underf�rst�dda garantin\n" -"om S�LJBARHET eller L�MPLIGHET F�R N�GOT SPECIELLT �NDAM�L. Se GNU General\n" -"Public License f�r ytterligare information.\n" -"\n" -"Du b�r ha f�tt en kopia av GNU General Public License\n" -"tillsammans med detta program. Om inte, skriv till Free Software " -"Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "F�rs�k med \"%s %s\" f�r mer information\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Fria \"recode\" konverterar filer mellan olika teckenupps�ttningar och " -"ytor.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Anv�ndning: %s [FLAGGA]... [ [TECKENUPPS�TTNING] | BEG�RAN [FIL]...]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Om en l�ng flagga har ett obligatoriskt argument s� �r argumentet �ven\n" -"obligatoriskt f�r motsvarade korta flagga. Motsvarande f�r valfria " -"argument.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Listningar:\n" -" -l, --list[=FORMAT] visa en eller alla k�nda teckenupps�ttningar\n" -" -k, --known=PAR begr�nsa teckenupps�ttningar till de i PAR-" -"listan\n" -" -h, --header[=[LN/]NAMN] skriv tabell NAMN f�r LN till standard ut\n" -" och avsluta.\n" -" -F, --freeze-tables skriv ut en C modul med alla tabeller\n" -" -T, --find-subsets skriv ut teckenupps�ttningar som �r delm�ngder\n" -" av andra\n" -" -C, --copyright visa copyrightinformation och " -"kopieringsvillkor\n" -" --help visa denna hj�lptext och avsluta\n" -" --version visa versionsinformation och avsluta\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Exekveringsalternativ:\n" -" -v, --verbose f�rklara delsteg och rapportera framsteg\n" -" -q, --quiet, --silent undertryck meddelanden om irreversibla " -"omkodningar\n" -" -f, --force g�r omkodning �ven n�r den �r irreversibel\n" -" -t, --touch g�r \"touch\" p� filer som omkodas �ver sig " -"sj�lva\n" -" -i, --sequence=files anv�nd tempor�rfiler mellan delsteg\n" -" --sequence=memory anv�nd minnesbuffertar mellan delsteg\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=pipe anv�nd r�r mellan delsteg\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe samma sak som -i (p� detta system)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Finjustering:\n" -" -s, --strict anv�nd strikt omkodning, till�t teckenf�rluster\n" -" -d, --diacritics omkoda endast diakritiska tecken eller motsvarande\n" -" till HTML/LaTeX\n" -" -S, --source[=LN] begr�nsa omkodning till str�ngar och kommentarer\n" -" som f�r LN\n" -" -c, --colons anv�nd kolon ist�llet f�r \" f�r trematecken\n" -" -g, --graphics approximera linjer i IBMPC med ASCII grafik\n" -" -x, --ignore=TECKENUPPS�TTNING\n" -" ignorera TECKENUPPS�TTNING n�r omkodningsv�g v�ljs\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"Flagga -l utan FORMAT och TECKENUPPS�TTNING visar alla tillg�ngliga\n" -"teckenupps�ttningar och ytor. FORMAT �r \"decimal\", \"octal\", " -"\"hexadecimal\"\n" -"eller \"full\" (eller en av \"dohf\").\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Om milj�variabeln DEFAULT_CHARSET inte �r satt blir standardv�rdet f�r\n" -"TECKENUPPS�TTNING den lokalspecifika kodningen, som best�ms av\n" -"milj�variablerna LC_ALL, LC_CTYPE och LANG.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Med -k, m�jliga startupps�ttningar visas f�r den givna slutupps�ttningen,\n" -"d�r b�da teckenupps�ttningar �r p� tabellform. PAR har formatet\n" -"\"START1:SLUT1,START2:SLUT2,...\" och START... och SLUT... �r koder\n" -"som anges med decimala tal.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN �r ett spr�k, det kan vara \"c\", \"perl\" eller \"po\"; \"c\" �r " -"standardv�rde.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"BEG�RAN �r DELBEG�RAN[,DELBEG�RAN]..., DELBEG�RAN �r KODNING[..KODNING]...\n" -"KODNING �r [TECKENUPPS�TTNING][/[YTA]].... BEG�RAN ser ofta ut som START.." -"SLUT,\n" -"d�r START och SLUT �r teckenupps�ttningar. Ett utel�mnat TECKENUPPS�TTNING\n" -"inneb�r den normala teckenupps�ttningen,\n" -"en utel�mnad [/YTA]... inneb�r den normala ytan f�r TECKENUPPS�TTNING.\n" -"Ett / utan ytnamn inneb�r ingen yta alls. Se manualen f�r detaljer.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Om ingen av -i eller -p �r given s� antas -p on ingen FIL �r given,\n" -"annars -i. Varje fil omkodas �ver sig sj�lv och f�rst�r originalet.\n" -"Om ingen FIL anges s� blir beteendet ett filter som omkodar standard in\n" -"till standard ut.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Rapportera fel till .\n" -"Rapportera fel p� �vers�ttningen till .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "Sekvens \"%s\" �r tvetydig" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "Sekvens \"%s\" �r ok�nd" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "Spr�k \"%s\" �r tvetydigt" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Spr�k \"%s\" �r ok�nt" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Format \"%s\" �r tvetydigt" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Format \"%s\" �r ok�nt" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Skriven av Fran�ois Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Copyright � 1990, 92, 93, 94, 96, 97, 1999 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Detta �r fri programvara; se k�llkoden f�r kopieringsvillkor. Det finns\n" -"INGEN garanti; inte ens f�r S�LJBARHET eller L�MPLIGHET F�R N�GOT SPECIELLT\n" -"�NDAM�L.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Symbol \"%s\" �r ok�nd" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Teckenupps�ttning \"%s\" �r ok�nd eller tvetydig" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Obligatoriskt argument saknas" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "F�r�ldrad syntax, anv�nd hellre \"%s\"" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Beg�ran \"%s\" �r felaktig" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Omkodar %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " klart\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " misslyckades: %s i steg \"%s..%s\"\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s misslyckades: %s i steg \"%s..%s\"" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s i steg \"%s..%s\"" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Teckenupps�ttning %s finns och �r inte %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "" -"Kan inte visa \"%s\", inga namn tillg�ngliga f�r denna teckenupps�ttning" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "dec okt hex UCS2 mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Ledsen, men det finns inga namn tillg�ngliga f�r \"%s\"" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Ytkodning satt mer �n en g�ng f�r \"%s\"" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Ytavkodning satt mer �n en g�ng f�r \"%s\"" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Virtuellt minne slut" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Teckenkoderna %3d och %3d omkodas b�da till %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Inget tecken omkodas till %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Kan inte invertera en given ett-till-ett tabell" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "F�ljande fel �r f�r \"%s\" till \"%s\"" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Par nr. %d: <%3d, %3d> �r i konflikt med <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Kan inte g�ra en tabell fr�n m�ngden av k�nda par" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Ingen omkodning beh�vs, den �r inte v�rd en tabell" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Omkodning �r f�r komplex f�r en enkel tabell" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sKonverteringstabell automatgenererad av Fri \"%s\" %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%sf�r sekvens %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Ingen tabell att skriva ut" - -#: src/request.c:34 -msgid "reversible" -msgstr "reversibel" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s till %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "usc2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "variabel" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Om�jligt*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*endast kopiering*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Virtuellt minne slut!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Steginitiering misslyckades" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Steginitiering misslyckades (obearbetade flaggor)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Beg�ran: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Krympte till: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Ok�nt ytnamn \"%s\"" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Om�jligt koda om fr�n \"%s\" till \"%s\"" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "F�rv�ntar \"..\" i beg�ran" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Barnprocessens slutstatus �r 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Beskrivning\n" -"\n" diff --git a/po/tr.gmo b/po/tr.gmo deleted file mode 100644 index edcfe15..0000000 Binary files a/po/tr.gmo and /dev/null differ diff --git a/po/tr.po b/po/tr.po deleted file mode 100644 index 47655a4..0000000 --- a/po/tr.po +++ /dev/null @@ -1,541 +0,0 @@ -# Recode Turkish Translation -# Copyright (C) 2002 Free Software Foundation, Inc. -# İrfan Macit , 2002. -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2002-06-20 11:00EET\n" -"Last-Translator: İrfan Macit \n" -"Language-Team: Turkish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Hata yok" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Ana biçem olmayan girdi" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Belirsiz çıktı" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Çevrilemeyen girdi" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Geçersiz girdi" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Sistem hata buldu" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Yeniden kodlama kitaplığı hatalı kullanılmış" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "İçsel yeniden kodlama hatası" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Bu bir serbest yazılımdır; Free Software Foundation tarafından yayınlanan\n" -"GNU Genel Kamu Lisansı'nın 2. veya (sizin tercihinize bağlı olarak) daha\n" -"sonraki bir sürümü altında yeniden dağıtabilir ve/veya değiştirebilirsiniz\n" -"\n" -"Bu yazılım faydalı olacağı umularak dağıtılmaktadır, fakat\n" -"HİÇ BİR GARANTİSİ YOKTUR; SATILABİLİRLİĞİ veya\n" -"HERHANGİ BİR AMACA UYGUNLUĞU için dahi zımni bir garanti\n" -"içermez. Daha fazla bilgi için GNU Genel Kamu Lisansı'na bakın.\n" -"\n" -"Bu yazılımla birlikte GNU Genel Kamu Lisansı'nın bir kopyası gelmiş\n" -"olmalıdır; eğer yok ise, lütfen Free Software Foundation, Inc., 59 Temple\n" -"Place - Suite 330, Boston, MA 02111-1307, USA/ABD adresine yazın.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Daha fazla bilgi için '%s %s'.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Serbest `recode', dosyaları değişik karakter kümeleri ve yüzeylere " -"dönüştürür.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Kullanım: %s [SEÇENEK]...[[KARKÜME] | İSTEK [DOSYA]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Uzun seçenekler için zorunlu olan argümanlar kısa seçenekler için de\n" -"zorunludur. Aynı şey bütün argümanlar için geçerlidir.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Seçenekler:\n" -" -l, --list[=BİÇEM] bilinen karakter kümeleri ve rumuzların birini " -"ya da hepsini listeler\n" -" -k, --known=ÇİFT karakter kümelerini bilinen ÇİFT listesine göre " -"sınırlar.\n" -" -h, --header[=[LN/]İSİM] standart çıktıya LN'i kullanarak tablonun " -"İSMİ'ni yazar ve çıkar\n" -" -F, --freeze-tables bütün tabloları içeren bir C modülü yazdırır\n" -" -T, --find-subsets bir başka kümenin alt kümesi olan bütün " -"karakter kümelerini raporlar\n" -" -C, --copyright telif hakkı ve kopyalama koşullarını gösterir\n" -" --help bu yardımı gösterir ve çıkar\n" -" --version sürüm bilgisini gösterir ve çıkar\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Çalışma Kipleri:\n" -" -v, --verbose adım sıralarını anlatır ve durum bilgisi gösterir\n" -" -q, --quiet, --silent geri dönüşsüz yeniden kodlamalar hakkında bilgi " -"vermez\n" -" -f, --force geri dönüşsüz bile olsa yeniden kodlamaları yapar\n" -" -t, --touch değişiklikten sonra yeniden kodlanmış dosyalara " -"`touch' uygular\n" -" -i, --sequence=files çevrimleri sıralamak için ara dosyalar kullanır\n" -" --sequence=memory çevrimleri sıralamak için bellek yastıkları " -"kullanır\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr "" -" -p, --sequence=pipe çevrimleri sıralamak için veriyolu (pipe) kullanır\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe (bu sistemde) -i ile aynı\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"İnce ayar:\n" -" -s, --strict kesin olmayan harflerde bile kesin eşlemeler " -"kullanır\n" -" -d, --diacritics HTML/LaTeX için yalnız aksan v.b.'yi yeniden " -"kodlar\n" -" -S, --source[=LN] yeniden kodlamayı dizgeler ve LN gibi açıklamalarla " -"sınırlar\n" -" -c, --colons ö,ü'nin iki noktası için çift tırnak yerine iki " -"nokta üstüste kullanır\n" -" -g, --graphics IBMPC cetvellerini ASCII grafikleriyle değiştirir\n" -" -x, --ignore=KARKÜME yeniden kodlama seçilirken KARKÜME dikkate alınmaz\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"-l seçeneği, BİÇEM veya KARKÜME verilmezse mevcut karakter kümelerini " -"listeler\n" -"BİÇEM, `decimal' (onluk), `octal' (sekizlik), `hexadecimal' (onaltılık), \n" -"`full' (tam) veya `dohf' seçeneklerinden birisi olabilir.\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Eğer DEFAULT_CHARSET çevre değişkeni atanmamışsa, KARKÜME yerel\n" -"ayarlarına bağlı kodlama olarak atanır ve LC_ALL, LC_CTYPE, LANG çevre\n" -"değişkenlerinden etkilenir.\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"-k seçeneği ile, dönüşecek karakter kümeleri, dönüştürülecek karakter " -"kümeleri\n" -"ile birlikte ÇİFT'ler halinde listelenir: `ÖNC1:SON1,ÖNC2:SON2,...'\n" -"ÖNC ve SON karakter kümesi isimleri, ondalık sayı halinde kodlardan oluşur.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN bir bilgisayar dilidir, `c', `perl' veya `po' olabilir; öntanımlı: `c'\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"İSTEK: ALTİSTEK,[ALTİSTEK]...; ALTİSTEK ise KODLAMA[..KODLAMA]...\n" -"KODLAMA: [KARKÜME][/YÜZEY]]...; İSTEK genelde ÖNCE..SONRA\n" -"biçeminde olur, ÖNCE ve SONRA karakter kümeleridir. Belirtilmemiş bir\n" -"karakter kümesi öntanımlı karakter kümesinin kullanılacağına işaret eder.\n" -"Belirtilmemiş [/YÜZEY]..., o KARKÜME için öntanımlı yüzeyin kullanılacağına\n" -"işaret eder. Yalnız / kullanılır ve yüzey belirtilmezse, hiç yüzey " -"kullanılmaz.\n" -"Lütfen el kitabını inceleyin.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Eğer -i ve -p'nin hiç birisi verilmemiş ve DOSYA yok ise, -p, aksi\n" -"halde -i varsayılır. Her DOSYA kendi üstüne yeniden kodlanır ve orjinali\n" -"yok edilir. Eğer DOSYA verilmemişse, bir filtre görevi yapar ve standart\n" -"girdiyi, standart çıktıya yeniden kodlar.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Yazılım hatalarını adresine,\n" -"Çeviri hatalarını adresine yollayın.\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "`%s' sırası belirsiz" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "`%s' sırası bilinmiyor" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "`%s' dili belirsiz" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "`%s' dili bilinmiyor" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "`%s' biçemi belirsiz" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "`%s' biçemi bilinmiyor" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Yazan: François Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Telif Hakkı (C) 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Bu bir serbest yazılımdır; kopyalama koşulları için kaynak koduna bakınız.\n" -"HİÇ BİR GARANTİSİ YOKTUR; SATILABİLİRLİĞİ veya\n" -"HERHANGİ BİR AMACA UYGUNLUĞU için dahi zımni bir garanti\n" -"içermez.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "`%s' sembolü bilinmiyor" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "`%s' karakter kümesi bilinmiyor veya belirsiz" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Zorunlu argüman eksik" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Biçem eski, lütfen `%s'i tercih edin" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "`%s' isteği hatalı" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "%s yeniden kodlanıyor..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " bitti\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr "başarısız: `%2$s..%3$s' adımında %1$s\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%1$s başarısız: `%3$s..%4$s' adımında %2$s" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "`%2$s..%3$s' adımında %1$s" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "%s karakter kümesi zaten mevcut ve %s değil" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "`%s' listelenemiyor, bu karakter kümesi için isim yok" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Ond Sek OnaltıUCS2 Mne %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "`%s' için hiç isim mevcut değil" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "`%s' için yüzeyleyici birden fazla defa atanmış" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "`%s' için yüzey yokedici birden fazla defa atanmış" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Sanal bellek tükendi" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "%3d ve %3d kodlarının ikisi de %3d'ye yeniden kodluyor" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "%3d'ye yeniden kodlanan harf yok" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Verilen birebir eşlemeli tablo tersine çevrilemez" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "`%s'den `%s'e durum bildirimleri inceleniyor" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "%d no'lu çift <%3d, %3d>, <%3d, %3d> ile çakışıyor" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Tablo bilinen çiftler kümesinden tamamlanamıyor" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Birebir yeniden kodlama, tabloya gerek yok" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Yeniden kodlama bir tablo için fazla karmaşık" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "" -"%sDönüşüm tablosu mekanik olarak Free `%s' %s tarafından oluşturulmuştur" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%2$s.%3$s sırası için %1$s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Yazdırılacak tablo yok" - -#: src/request.c:34 -msgid "reversible" -msgstr "geri dönüşümlü" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s'den %s'e" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "bayt" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "değişken" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Ulaşılamaz*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*yalnızca kopya*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Sanal bellek tükendi!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Adım başlangıcı başarısız" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Adım başlangıcı başarısız (işlenmemiş seçenekler)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "İstek: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "%s'e küçüldü\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Bilinmeyen yüzey adı `%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "`%s'den `%s'e yeniden kodlamanın yolu yok" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "İstekte `..' bekleniyordu" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Ast işlem bekleme durumu: 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Mne Açıklama\n" -"\n" diff --git a/po/vi.gmo b/po/vi.gmo deleted file mode 100644 index 23e28e2..0000000 Binary files a/po/vi.gmo and /dev/null differ diff --git a/po/vi.po b/po/vi.po deleted file mode 100644 index 7327f6f..0000000 --- a/po/vi.po +++ /dev/null @@ -1,538 +0,0 @@ -# Vietnamese translation for recode-3.6. -# Copyright (C) 2005 Free Software Foundation, Inc. -# Clytie Siddall , 2005. -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2005-02-20 18:44+0950\n" -"Last-Translator: Clytie Siddall \n" -"Language-Team: Vietnamese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/main.c:142 -msgid "No error" -msgstr "Không có lỗi" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "Dữ liệụ gõ không đúng tiêu chuẩn" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "Dữ liệu xuất là mơ hồ" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "Dữ liệu gõ không dịch được" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "Dữ liệu gõ không hợp lệ" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "Hệ thống mới gặp lỗi" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "Không sử dụng thư viện mã hóa lại cho đúng" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "Lỗi mã hóa lại nội bộ" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"Chương trình này là phần mềm tự do; bạn có thể phân phối và/hay sửa đổí\n" -"nó với điều kiện cua Quyền Công Chung Gnu (GPL) như được xuất do\n" -"Free Software Foundation; hoặc phiên bản 2, hoặc (tùy chọn)\n" -"bất cứ phiên bản sau nào.\n" -"\n" -"Chúng tôi phân phối chương trình này vì mong nó có ích, nhưng\n" -"không bảo đảm gì cả, không bảo đảm một cách ngụ ý\n" -"khả năng bán hay khả năng làm việc dứt khoát. Hãy xem\n" -"Quyền Công Chung Gnu để tim thấy chi tiết thêm.\n" -"\n" -"Bạn nên được nhận một bản Quyền Công Chung Gnu với\n" -"chương trình này; nếu không thì hãy viết thư cho Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA (Mỹ).\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "Thử lệnh `%s %s' để tìm thấy thông tin thêm.\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "" -"Chương trình `recode' (mã hóa lại) tự do thì chuyển đổi tập tin giữa nhiều " -"bộ ký tự và mặt khác nhau.\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"Cách sử dụng: %s [TÙY_CHỌN]... [ [BỘ_KÝ_TỰ] | LỜI_YÊU_CẦU [TẬP_TIN]... ]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"Nếu tùy chọn dài phải có đối số thì tùy chọn ngắn thích hợp cũng vậy.\n" -"Đối với đối số tùy chọn thì cách giống nhau.\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"Danh sách:\n" -" -l, --list[=DẠNG] _ghi danh sach_ một hay tất cả bộ ký tự và biệt " -"hiệu được biết\n" -" -k, --known=CẶP hạn chế bộ ký tự theo danh sách CẶP _được biết_\n" -" -h, --header[=[NGÔN_NGỮ/]TÊN] ghi TÊN bảng ra thiết bị xuất chuẩn bằng " -"sử dụng ngôn ngữ ấy rồi thoát (_đầu đề_)\n" -" -F, --freeze-tables ghi ra mô-đun C chứa tất cả _bảng_ (_làm đông " -"đặc_)\n" -" -T, --find-subsets thông báo tât cả bộ ký tự là _nhóm phụ_ của bộ " -"khác (_tìm_)\n" -" -C, --copyright hiển thị các điều kiện _bản quyền_ và sao chép\n" -" --help hiển thị _trợ giúp_ này rồi thoát\n" -" --version xuất thông tin _phiên bản_ rồi thoát\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"Chế độ thi hành:\n" -" -v, --verbose giải thích dãy bước và thông báo tiến trình (_chi " -"tiết_)\n" -" -q, --quiet, --silent thu hồi các thông điệp về việc mã hóa lại không " -"hoàn tác (_im_)\n" -" -f, --force _buộc_ tất cả việc mã hóa lại ngay cả khi không " -"thể hoàn tác\n" -" -t, --touch _sờ_ mọi tập tin được mã hóa lại sau khi thay thế\n" -" -i, --sequence=files sử dụng _tâp tin_ trung cấp cho việc _sắp xếp_ \n" -" --sequence=memory sử dụng bộ đệm _nhớ_ cho việc _sắp xếp_\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p, --sequence=pipe sử dụng thiết bị _ống_ cho việc _sắp xếp_\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p, --sequence=pipe bằng cờ -i (trên hệ điều hành này)\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"Điều hưởng tinh:\n" -" -s, --strict sử dụng ánh xạ _chặt chẽ_, ngay cả ký tự phóng\n" -" -d, --diacritics chuyển đổi chỉ _dấu phụ_ hay điều như nhau đối với " -"HTML/LaTeX\n" -" -S, --source[=NGÔN_NGỮ] hạn chế việc ma hóa lại nên chỉ xử lý chuỗi và " -"chú thích như ngôn ngữ ấy (_nguồn_)\n" -" -c, --colons sử dụng _dấu hai chấm_ thay thế dấu nháy kép cho " -"dấu tách đôi\n" -" -g, --graphics ước các thước đo IBMPC bằng _đồ họa_ ASCII\n" -" -x, --ignore=BÔ_KÝ_TỰ _bỏ qua_ bộ ký tự ấy khi chọn đường dẫn mã hóa " -"lại\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"Khi tùy chọn -l không có DẠNG hay BỘ KÝ TỰ thi ghi danh sách tất cả bộ ký tự " -"và mặt sẵn sàng.\n" -"DẠNG là `decimal' (thập phân), `octal' (bát phân), `hexadecimal' (thập lục " -"phân) hay `full' (toàn) (hay một của chữ đầu `dohf').\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"Nếu chưa lập BỘ_KÝ_TỰ_MẶC_ĐỊNH trong môi trường thì LC_ALL, LC_CTYPE, LANG\n" -"quyết định biên mã phụ thuộc vào miền địa phương, là BỘ_KÝ_TỰ mặc định\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"Có thể sử dụng tùy chọn -k trước khi ghi danh sách bộ ký tự sau BỘ_KÝ_TỰ,\n" -"cả hai bộ ký tự ấy có dạng bảng, có mọi đôi dạng `BEF1:AFT1,BEF2:AFT2,...'\n" -"và cả hai BEF và AFT là mã dạng số thập phân.\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "" -"LN hay NGÔN_NGỮ là một ngôn ngữ, có thể `c', `perl' hay `po'; còn `c' là mặc " -"định.\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"LỜI_YÊU_CẦU là PHỤ_LỜI_YÊU_CẦU[,PHỤ_LỜI_YÊU_CẦU]...;\n" -"PHỤ_LỜI_YÊU_CẦU là BIÊN_Mà [..BIÊN_MÃ]... BIÊN_Mà là [BỘ_KÝ_TỰ][/[MẶT]]...;\n" -"LỜI_YÊU_CẦU thường hình như TRƯỚC..SAU, mà cả hai TRƯỚC và SAU là bô ký tự.\n" -"Khi không nhập BỘ_KÝ_TỰ nên sử dụng bộ ký tự thường; khi không nhập [/" -"MẶT]...\n" -"nên sử dụng những mặt ngụ ý cho BỘ_KÝ_TỰ; ký tự / có tên mặt trống có nghĩa " -"là\n" -"không có mặt nào. Hãy xem sổ hướng dẫn.\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"Nếu chưa nhận -i và -p thì giả sử -p nếu không có TẬP_TIN, nếu có thì -i.\n" -"Sẽ mã hóa lại mỗi TẬP_TIN trên mình nên xóa bỏ điều trước. Nếu chưa ghi rõ " -"TẬP_TIN\n" -"thì thay quyền trình lọc và mã hóa lại dữ liệu gõ chuẩn ra thiết bị xuất " -"chuẩn.\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"Hãy thông báo lỗi cho .\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "Dãy `%s' mơ hồ" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "Chưa biết dãy `%s' " - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "Ngôn ngữ `%s' mơ hồ" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "Chưa biết ngôn ngữ `%s'" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "Dạng `%s' mơ hồ" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "Chưa biết dạng `%s' " - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "Tác giả: François Pinard .\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"Bản quyền (C) năm 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, " -"Inc.\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"Đây là phần mềm tự do; hãy xem mã nguồn để thấy điều kiện sao chép.\n" -"Không bảo đảm gì cả, dù khả năng bán hay khả năng làm việc dứt khoát.\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "Chưa biết ký hiệu `%s' " - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "Bộ ký tự `%s' là chưa được biệt hoặc mơ hồ" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "Thiếu đốí số bắt buộc" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "Phản đối cú pháp ấy, hãy sử dụng `%s' thay thế" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "Lời yêu cầu `%s' không đúng" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "Đang mã hóa lại %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " xong rồi\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " không xong được: %s trong bước `%s..%s'\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s không xong được: %s trong bước `%s..%s'" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s trong bước `%s..%s'" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "Bộ ký tự %s tồn tại rồi, không là %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "Không ghi `%s' được vì không có tên nào cho bộ ký tự này" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "Hệ2 Hệ8 Hệ16 UCS2 Nhớ %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "Tiếc là không có tên nào cho `%s'" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "Đã lập việc tạo mặt lại hơn một lần cho `%s'" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "Đã lập việc bỏ mặt hơn một lần cho `%s'" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "Hết bộ nhớ ảo rồì" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "Có mã hóa lại cả hai mã %3d và %3d thành %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "Không mã hóa lại ký tự nào thành %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "Không đảo được bảng một-đối-một đã cho" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "Đang theo phương pháp chẩn đoán cho `%s' đến `%s'" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "Số cặp %d: <%3d, %3d> xung đột với <%3d, %3d>" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "Không thể xong tạo bảng từ bộ cặp được biết" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "Việc mã hóa lại chỉ giống hệt, không cần bảng toàn" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "Việc mã hóa lại quá phức tạp đối với bảng" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sBảng chuyển đổi được tạo ra tự động do Free (Tự do) `%s' %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%sđối với dãy %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "Không có bảng nào để in" - -#: src/request.c:34 -msgid "reversible" -msgstr "có thể hoàn tác" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s thành %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "byte" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "biến đổi" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*Không xong đươc*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*chỉ bản sao*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "Hết bộ nhớ ảo rồi." - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "Không khởi động bước được" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "Không khởi động bước được (chưa xử lý tùy chọn)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "Lời yêu cầu: %s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "Đã co lại cho: %s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "Chưa chấp nhận tên mặt `%s'" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "Không có cách mã hóa lại tư `%s' sang `%s'" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "Đang ngờ `..' trong lời yêu cầu" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "Trạng thái đời của xử lý con là 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 Nhớ Mô tả\n" -"\n" diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo deleted file mode 100644 index dc73142..0000000 Binary files a/po/zh_CN.gmo and /dev/null differ diff --git a/po/zh_CN.po b/po/zh_CN.po deleted file mode 100644 index 8d16e2e..0000000 --- a/po/zh_CN.po +++ /dev/null @@ -1,517 +0,0 @@ -# Simplified Chinese translation for recode. -# Copyright (C) 2005 Free Software Foundation, Inc. -# Meng Jie , 2005. -# -msgid "" -msgstr "" -"Project-Id-Version: recode 3.6\n" -"Report-Msgid-Bugs-To: recode-bugs@iro.umontreal.ca\n" -"POT-Creation-Date: 2008-03-09 20:51-0400\n" -"PO-Revision-Date: 2005-12-03 21:43+0800\n" -"Last-Translator: Meng Jie \n" -"Language-Team: Chinese (simplified) \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Basepath: z:\\recode-3.6\n" - -#: src/main.c:142 -msgid "No error" -msgstr "没有错误" - -#: src/main.c:145 -msgid "Non canonical input" -msgstr "不正规的输入" - -#: src/main.c:148 -msgid "Ambiguous output" -msgstr "有歧义的输出" - -#: src/main.c:151 -msgid "Untranslatable input" -msgstr "无法翻译的输入" - -#: src/main.c:154 -msgid "Invalid input" -msgstr "无效的输入" - -#: src/main.c:157 -msgid "System detected problem" -msgstr "系统问题" - -#: src/main.c:160 -msgid "Misuse of recoding library" -msgstr "对重新编码库的使用不正确" - -#: src/main.c:163 -msgid "Internal recoding bug" -msgstr "内部重新编码缺陷" - -#: src/main.c:208 -msgid "" -"This program is free software; you can redistribute it and/or modify\n" -"it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2, or (at your option)\n" -"any later version.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n" -"\n" -"You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software Foundation,\n" -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -msgstr "" -"此程序是自由软件;您可以在自由软件基金会发布的 GNU 通用公共许\n" -"可证的条款下重新分发和(或)修改它;您可以选择使用 GPL 第二版,\n" -"或(按照您的意愿)任何更新的版本。\n" -"\n" -"该程序分发的目的是为了其他人可以使用它,但是没有任何担保;也没\n" -"有对其适销性和某一特定目的下的适用性的担保。请查阅 GNU 通用公\n" -"共许可证来获得更多的信息。\n" -"\n" -"你应该已经跟本程序一起收到一份 GNU 通用公共许可证;如果没有,\n" -"请写信至:Free Software Foundation, Inc., \n" -"59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" - -#: src/main.c:233 -#, c-format -msgid "Try `%s %s' for more information.\n" -msgstr "请尝试执行‘%s %s’以得到更多信息。\n" - -#: src/main.c:237 -#, fuzzy -msgid "Recode converts files between various character sets and surfaces.\n" -msgstr "自由的‘recode’将文件在不同的字符集和外在编码间转换。\n" - -#: src/main.c:241 -#, c-format -msgid "" -"\n" -"Usage: %s [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]\n" -msgstr "" -"\n" -"用法:%s [选项]... [ [字符集] | 请求 [文件]...]\n" - -#: src/main.c:244 -msgid "" -"\n" -"If a long option shows an argument as mandatory, then it is mandatory\n" -"for the equivalent short option also. Similarly for optional arguments.\n" -msgstr "" -"\n" -"长选项必须带的参数在使用与之等价的短选项时也是必须的。可选参数亦是如此。\n" - -#: src/main.c:250 -msgid "" -"\n" -"Listings:\n" -" -l, --list[=FORMAT] list one or all known charsets and aliases\n" -" -k, --known=PAIRS restrict charsets according to known PAIRS " -"list\n" -" -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n" -" -F, --freeze-tables write out a C module holding all tables\n" -" -T, --find-subsets report all charsets being subset of others\n" -" -C, --copyright display Copyright and copying conditions\n" -" --help display this help and exit\n" -" --version output version information and exit\n" -msgstr "" -"\n" -"列表:\n" -" -l,--list[=格式] 列出某个或所有已知的字符集和别名\n" -" -k,--known=映射 仅列出匹配已知“映射”列表的字符集\n" -" -h,--header[=[语言/]表名] 在标准输出上输出符合某语言语法的转换表,然后退" -"出\n" -" -F,--freeze-tables 输出一个包括所有转换表的 C 模块\n" -" -T,--find-subsets 报告所有是其他字符集子集的字符集\n" -" -C,--copyright 显示版权信息和复制条件\n" -" --help 显示本帮助信息后退出\n" -" --version 输出版本信息后退出\n" - -#: src/main.c:263 -msgid "" -"\n" -"Operation modes:\n" -" -v, --verbose explain sequence of steps and report progress\n" -" -q, --quiet, --silent inhibit messages about irreversible recodings\n" -" -f, --force force recodings even when not reversible\n" -" -t, --touch touch the recoded files after replacement\n" -" -i, --sequence=files use intermediate files for sequencing passes\n" -" --sequence=memory use memory buffers for sequencing passes\n" -msgstr "" -"\n" -"操作模式:\n" -" -v,--verbose 报告转换步骤序列和过程\n" -" -q,--quiet,--silent 不报告不可逆的重新编码\n" -" -f,--force 强制进行不可逆的重新编码\n" -" -t,--touch 在替换之后 touch 重新编码的文件\n" -" -i,--sequence=files 为系列转换使用中间文件\n" -" --sequence=memory 为系列转换使用内存缓冲区\n" - -#: src/main.c:275 -msgid " -p, --sequence=pipe use pipe machinery for sequencing passes\n" -msgstr " -p,--sequence=pipe 为系列转换使用管道机制\n" - -#: src/main.c:280 -msgid " -p, --sequence=pipe same as -i (on this system)\n" -msgstr " -p,--sequence=pipe 在此系统下与 -i 等效\n" - -#: src/main.c:285 -msgid "" -"\n" -"Fine tuning:\n" -" -s, --strict use strict mappings, even loose characters\n" -" -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n" -" -S, --source[=LN] limit recoding to strings and comments as for LN\n" -" -c, --colons use colons instead of double quotes for diaeresis\n" -" -g, --graphics approximate IBMPC rulers by ASCII graphics\n" -" -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n" -msgstr "" -"\n" -"细节调整:\n" -" -s,--strict 即使为可放松的字符也使用严格映射\n" -" -d,--diacritics 只为 HTML/LaTeX 转换变音记号等\n" -" -S,--source[=语言] 将重新编码的范围限制在某编程语言的字符串和注释中\n" -" -c,--colons 使用冒号而不是双引号来表示分音符\n" -" -g,--graphics 用 ASCII 符号模拟 IBMPC 标尺\n" -" -x,--ignore=字符集 在选择重新编码途径时忽略某字符集\n" - -#: src/main.c:296 -msgid "" -"\n" -"Option -l with no FORMAT nor CHARSET list available charsets and surfaces.\n" -"FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf').\n" -msgstr "" -"\n" -"选项 -l 后如果没有指定“格式”或“字符集”,则列出所有可用的字符集和外在编码。\n" -"“格式”可以为‘decimal’、‘octal’、‘hexadecimal’或‘full’(或者‘dohf’\n" -"中的任一个字母)。\n" - -#: src/main.c:302 -msgid "" -"Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the " -"locale\n" -"dependent encoding, determined by LC_ALL, LC_CTYPE, LANG.\n" -msgstr "" -"如果没有设置 DEFAULT_CHARSET 环境变量,字符集默认为区域选项的编码,由 " -"LC_ALL、\n" -"LC_CTYPE、LANG 决定。\n" - -#: src/main.c:307 -msgid "" -"With -k, possible before charsets are listed for the given after CHARSET,\n" -"both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:" -"AFT2,...'\n" -"and BEFs and AFTs being codes are given as decimal numbers.\n" -msgstr "" -"使用 -k 时,目标字符集可能对应的所有的源字符集都将列出,两者均为表格化的字" -"符\n" -"集,“映射”具有‘源1:目标1,源2:目标2,...’的形式,其中“源x”和“目标x”均\n" -"须以十进制数的形式给出。\n" - -#: src/main.c:312 -msgid "" -"LN is some language, it may be `c', `perl' or `po'; `c' is the default.\n" -msgstr "“语言”是某种编码语言,可以为‘c’、‘perl’或‘po’,‘c’为默认值。\n" - -#: src/main.c:315 -msgid "" -"\n" -"REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[.." -"ENCODING]...\n" -"ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE.." -"AFTER,\n" -"with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual\n" -"charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; " -"a /\n" -"with an empty surface name means no surfaces at all. See the manual.\n" -msgstr "" -"\n" -"“请求”格式为“子请求[,子请求]...”;“子请求”格式为“编码[..编码]...”\n" -"“编码”格式为“[字符集][/[外在编码]]...”;“请求”一般有“源..目的”的形式,\n" -"“源”和“目的”均为字符集名。如果省略“字符集”,则表示通常的字符集;如果省略\n" -"“[/外在编码]...”则表示“字符集”默认的外在编码;只给出“/”而在其后不给出任\n" -"何外在编码则表示没有任何外在编码。详情请参见手册。\n" - -#: src/main.c:323 -msgid "" -"\n" -"If none of -i and -p are given, presume -p if no FILE, else -i.\n" -"Each FILE is recoded over itself, destroying the original. If no\n" -"FILE is specified, then act as a filter and recode stdin to stdout.\n" -msgstr "" -"\n" -"如果没有给出 -i 或 -p,当命令行中有文件时使用 -p,否则使用 -i。\n" -"为每个文件就地重新编码,丢弃其原始内容。如果没有在命令行中指定文件,\n" -"则将标准输入的内容重新编码为标准输出。\n" - -#: src/main.c:329 -msgid "" -"\n" -"Report bugs to .\n" -msgstr "" -"\n" -"请向 报告程序缺陷。\n" - -#: src/main.c:429 -#, c-format -msgid "Sequence `%s' is ambiguous" -msgstr "序列‘%s’意义不明确" - -#: src/main.c:433 -#, c-format -msgid "Sequence `%s' is unknown" -msgstr "序列‘%s’未知" - -#: src/main.c:463 src/main.c:521 -#, c-format -msgid "Language `%s' is ambiguous" -msgstr "语言‘%s’意义不明确" - -#: src/main.c:467 src/main.c:525 -#, c-format -msgid "Language `%s' is unknown" -msgstr "语言‘%s’未知" - -#: src/main.c:559 -#, c-format -msgid "Format `%s' is ambiguous" -msgstr "格式‘%s’意义不明确" - -#: src/main.c:563 -#, c-format -msgid "Format `%s' is unknown" -msgstr "格式‘%s’未知" - -#: src/main.c:620 -msgid "Written by Franc,ois Pinard .\n" -msgstr "由 Francois Pinard 编写。\n" - -#: src/main.c:623 -#, fuzzy -msgid "" -"\n" -"Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n" -msgstr "" -"\n" -"版权所有 (C) 1990,92,93,94,96,97,99 自由软件基金会。\n" - -#: src/main.c:627 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -msgstr "" -"本程序是自由软件;请参看源代码的版权声明。本软件不提供任何担保;\n" -"包括没有适销性和某一专用目的下的适用性担保。\n" - -#: src/main.c:673 -#, c-format -msgid "Symbol `%s' is unknown" -msgstr "符号‘%s’未知" - -#: src/main.c:713 src/main.c:727 -#, c-format -msgid "Charset `%s' is unknown or ambiguous" -msgstr "字符集‘%s’未知或有歧义" - -#: src/main.c:758 -msgid "Required argument is missing" -msgstr "缺少需要的参数" - -#: src/main.c:801 -#, c-format -msgid "Syntax is deprecated, please prefer `%s'" -msgstr "语法已过时,请改用‘%s’" - -#: src/main.c:807 -#, c-format -msgid "Request `%s' is erroneous" -msgstr "请求‘%s’有错误" - -#: src/main.c:907 -#, c-format -msgid "Recoding %s..." -msgstr "重新编码 %s..." - -#: src/main.c:917 -#, c-format -msgid " done\n" -msgstr " 完成\n" - -#: src/main.c:958 -#, c-format -msgid " failed: %s in step `%s..%s'\n" -msgstr " 失败:%s 在步骤‘%s..%s’中\n" - -#: src/main.c:965 -#, c-format -msgid "%s failed: %s in step `%s..%s'" -msgstr "%s 失败:%s 在步骤‘%s..%s’中" - -#: src/main.c:988 -#, c-format -msgid "%s in step `%s..%s'" -msgstr "%s 在步骤‘%s..%s’中" - -#: src/names.c:342 -#, c-format -msgid "Charset %s already exists and is not %s" -msgstr "字符集 %s 已存在且并非 %s" - -#: src/names.c:837 -#, c-format -msgid "Cannot list `%s', no names available for this charset" -msgstr "无法列出‘%s’,此字符集没有可用的字符名" - -#: src/names.c:990 src/names.c:1036 -#, c-format -msgid "Dec Oct Hex UCS2 Mne %s\n" -msgstr "十 八 十六 UCS2 助记 %s\n" - -#: src/names.c:1055 -#, c-format -msgid "Sorry, no names available for `%s'" -msgstr "对不起,‘%s’没有可用的字符名" - -#: src/outer.c:125 -#, c-format -msgid "Resurfacer set more than once for `%s'" -msgstr "为‘%s’施加了多于一个的外在编码" - -#: src/outer.c:133 -#, c-format -msgid "Unsurfacer set more than once for `%s'" -msgstr "为‘%s’去除了多于一个的外在编码" - -#: src/recode.c:115 src/recode.c:127 -msgid "Virtual memory exhausted" -msgstr "虚拟内存耗尽" - -#: src/recode.c:155 -#, c-format -msgid "Codes %3d and %3d both recode to %3d" -msgstr "代码 %3d 和 %3d 都将被重新编码为 %3d" - -#: src/recode.c:169 -#, c-format -msgid "No character recodes to %3d" -msgstr "没有字符集可重新编码到 %3d" - -#: src/recode.c:170 -msgid "Cannot invert given one-to-one table" -msgstr "无法求出给定的一一对应转换表的逆" - -#: src/recode.c:224 src/recode.c:236 -#, c-format -msgid "Following diagnostics for `%s' to `%s'" -msgstr "‘%s’到‘%s’的诊断信息" - -#: src/recode.c:229 src/recode.c:241 -#, c-format -msgid "Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>" -msgstr "第 %d 号映射:<%3d,%3d> 与 <%3d,%3d> 冲突" - -#: src/recode.c:272 -msgid "Cannot complete table from set of known pairs" -msgstr "无法从已知映射集中形成完整的转换表" - -#: src/recode.c:497 -msgid "Identity recoding, not worth a table" -msgstr "恒等变换,不需要转换表" - -#: src/recode.c:504 -msgid "Recoding is too complex for a mere table" -msgstr "重新编码太过复杂,无法以一张转换表表示" - -#: src/recode.c:536 -#, fuzzy, c-format -msgid "%sConversion table generated mechanically by %s %s" -msgstr "%sConversion table generated mechanically by Free `%s' %s" - -#: src/recode.c:538 -#, c-format -msgid "%sfor sequence %s.%s" -msgstr "%s为转换系列 %s.%s" - -#: src/recode.c:744 -msgid "No table to print" -msgstr "没有可以打印的转换表" - -#: src/request.c:34 -msgid "reversible" -msgstr "可逆的" - -#: src/request.c:36 -#, c-format -msgid "%s to %s" -msgstr "%s 到 %s" - -#: src/request.c:37 src/request.c:39 -msgid "byte" -msgstr "字节" - -#: src/request.c:38 src/request.c:40 -msgid "ucs2" -msgstr "ucs2" - -#: src/request.c:38 src/request.c:40 -msgid "variable" -msgstr "变量" - -#: src/request.c:111 -msgid "*Unachievable*" -msgstr "*无法到达*" - -#: src/request.c:113 -msgid "*mere copy*" -msgstr "*仅复制*" - -#: src/request.c:246 -msgid "Virtual memory exhausted!" -msgstr "虚拟内存耗尽!" - -#: src/request.c:265 -msgid "Step initialisation failed" -msgstr "步骤初始化失败" - -#: src/request.c:272 -msgid "Step initialisation failed (unprocessed options)" -msgstr "步骤初始化失败(未处理的选项)" - -#: src/request.c:568 -#, c-format -msgid "Request: %s\n" -msgstr "请求:%s\n" - -#: src/request.c:720 -#, c-format -msgid "Shrunk to: %s\n" -msgstr "缩减到:%s\n" - -#: src/request.c:823 src/request.c:932 -#, c-format -msgid "Unrecognised surface name `%s'" -msgstr "无法识别的外在编码‘%s’" - -#: src/request.c:903 -#, c-format -msgid "No way to recode from `%s' to `%s'" -msgstr "没有从‘%s’重新编码至‘%s’的途径" - -#: src/request.c:1013 -msgid "Expecting `..' in request" -msgstr "请求中要有‘..’" - -#: src/task.c:833 src/task.c:1009 -#, c-format -msgid "Child process wait status is 0x%0.2x" -msgstr "子进程等待状态为 0x%0.2x" - -#: src/testdump.c:309 -msgid "" -"UCS2 Mne Description\n" -"\n" -msgstr "" -"UCS2 助记 描述\n" -"\n" diff --git a/src/ChangeLog b/src/ChangeLog deleted file mode 100644 index 037eff9..0000000 --- a/src/ChangeLog +++ /dev/null @@ -1,3550 +0,0 @@ -2008-03-17 Jim Meyering - - Avoid gcc warning about ambiguous `else'. - * iconv.c (wrapped_transform): Add braces. - - Avoid a warning from gcc -Wformat-security. - * names.c (list_concise_charset): Use fputs to print spaces, - not printf. - -2008-03-16 François Pinard - - * recodext.h.in: New name for recodext.h. - * Makefile.am (recodext.h): New goal. - -2008-03-14 François Pinard - - * main.c: Inhibit iconv whenever -h is used. - Reported by Richard Nault. - - * combine.c, hash.c, html.c, ibmpc.c, localcharset.c, names.c, - outer.c, quotearg.c, recode.c, request.c, rfc1345.c, task.c, - testdump.c, xmalloc.c: Changes in view of C++. - - * names.c (should_prefer_french): New. - (list_full_charset): Use it. - * testdump.c (produce_full_dump): Use it. - Reported by Lionel Elie Mamane. - -2008-03-13 François Pinard - - * java.c: New. - * Makefile.am: Adjusted. - -2008-03-12 François Pinard - - * recodext.h: Set bit field with, for ignore, from 2 to 1. - Reported by Martin Michlmayr and Marty Leisner. - -2008-03-12 Andreas Schwab - - * names.c (alias_free): New function. - (prepare_for_aliases): Pass it to hash_initialize. - * outer.c (recode_delete_outer): Free elements of - argmatch_charset_array and argmatch_surface_array. - Also reported by Gaël Le Mignot and Pawel Krawczyk. - -2008-03-11 François Pinard - - * recodext.h (struct recode_symbol): Add iconv_name. - * names.c (find_alias): Initialize iconv_name to NULL. - * outer.c (declare_iconv): Accept an iconv_name argument. - * iconv.c (transform_with_iconv): Use iconv_name instead of name. - (module_iconv): Pass the first iconv alias to declare_iconv. - -2008-03-09 François Pinard - - * outer.c (register_all_modules): Add back :libiconv: as an - alias for :iconv:. - - Solve an old bug about loosing a few characters every 2048. - * iconv.c (wrapped_transform): Rewritten. - (transform_with_iconv): Simplified, use only one iconv_t. - Reported by Alexander Kurz, Andreas Kunert, Andrew Green, Daniel - Pfeiffer, David Necas, Éric Bischoff, Frederik Fouvry, Guillaume - Rumeau, Jean-Christophe Guillain, John Gorman, Luc Maisonobe, - Marcin Owsiany, Martin Trautmann, Mikko Harjula, Pavel Forsite, - Peter Much, Petr Pajas, Régis Martin, Stephen Walkauskas, - Urban Mueller and Volker Wysk. - - * Makefile.am (EXTRA_DIST): Add stamp-strip. - -2008-03-08 François Pinard - - * recode.h (RECODE_AUTO_ABORT_FLAG, RECODE_NO_ICONV_FLAG): New. - * recodext.h (struct recode_outer): Add use_iconv field. - Also remove auto_reversibility, which was unused. - * outer.c (register_all_modules, unregister_all_modules): - Skip module_iconv or delmodule_iconv unless use_iconv is set. - (recode_new_outer): Change auto_abort argument to flags, and - initialize auto_abort and use_iconv from flags. - * main.c (main): Use them. - Add a few missing static specifiers. - - * recode.c (recode_format_table, usage, main): Do not say Free. - - * names.c (disambiguate_name): Do not use "char", but either a - predefined DEFAULT_CHARSET, or call locale_charset. - * recodext.h: Declare locale_charset. - * localcharset.c: Use (void) instead of (). - -2008-03-07 François Pinard - - * iconvdecl.h: Deleted. Should be generated at installation time - in the build directory. - * Makefile.am: Adjusted. - (CLEANFILES): New, for iconvdecl.h. - - * Makefile.am (C_STEPS): Include merged.c, simplify elsewhere. - (charname.h, fr-charname.h, iconvdecl.h, rfc1345.h): New goals, - adapted from those previously in doc/Makemore. - (strip-pool.c, strip-data.c): Idem, but go through stamp-strip. - -2008-03-06 François Pinard - - * iconv.c, iconvdecl.h: New names for libiconv.c and libiconv.h. - * Makefile.am: Adjusted. Do not rely anymore on libiconv/. - * recodext.h, outer.c, request.c: Adjusted. - Use iconv_pivot instead of libiconv_pivot. - Use :iconv: instead of :libiconv:. - -2008-03-05 François Pinard - - * combine.c, html.c, names.c, recode.c, testdump.c: Declare the - various hasher functions according to the prototype in hash.h. - Reported by Bruno Haible. - - * mergelex.py: Suppress yyunput. - * recodext.h (get_byte_helper): Declare also when !INLINE_HARDER. - Reported by Bruno Haible and Dagobert Michelsen. - -2008-02-27 François Pinard - - * hash.c: Revert last change (2008-02-21). The renaming of symbols - is now mainly driven from file cleaner.h.in at top level. - * recodext.h (ECHO): Use librecode_yy instead of yy. - -2008-02-23 François Pinard - - * testdump.c (produce_count, produce_full_dump): Output as directed - by the subtask, rather than directly on stdout. - -2008-02-22 François Pinard - - Repair all Flex steps, which were broken since version 3.6. - * mergelex.py: Provide a rather dumb YY_INPUT using get_byte, - and set yy_init to zero in all generated routines. - * recodext.h: Within Flex, use both get_byte_helper and - put_byte_helper, not only put_byte_helper. - * task.c (get_byte_helper) [!INLINE_HARDER]: Compile as well. - Properly declare the argument as a subtask, not as a task. - Reported by Dagobert Michelsen and Marc Shapiro. - -2008-02-21 François Pinard - - * Makefile.am (recode.1): Use --name calling help2man. - Reported by Dan Jacobson. - - * task.c (recode_perform_task): Subtask output pointers were - not copied into task output. - Reported by Alexander Kurz, Enrik Berkhan, Frederic Gobry, - Holger Benl and Roman Suzi. - - * hash.c: Rename some hash_* symbols to recode_hash_* for - avoiding collisions between php4-recode and a few others tools. - Reported by Jean-Michel Dault, Magnus Määttä, Noèl Köthe, - Peter Poeml, Stephen Boulet and Steve Langasek. - -2008-02-16 François Pinard - - * ansi2knr.c: Modified by Automake 1.10. - - * Makefile.am (merged.c): Split flex -t8 into flex -t -8. - * mergelex.py: Add coding cookie. - -2005-11-06 François Pinard - - * exit.h, exitfail.c, exitfail.h, xalloc-die.c: New, from coreutils. - * hash.c, hash.h, xalloc.h, xmalloc.c: Updated, from coreutils. - * Makefile.am: Adjusted. - -2005-11-05 François Pinard - - * main.c: Do not call bindtextdomain. - -2005-03-06 François Pinard - - * ansi2knr.c: Newer version, from elsewhere. - - Postpone libtool support, as it creates too many problems for now. - * Makefile.am: Replace lib_LTLIBRARIES by noinst_LIBRARIES. - Replace librecode.la by libcode.a and librecode_la by librecode_a. - -2001-10-08 François Pinard - - * request.c (guarantee_nul_terminator): Fix bound computation for - realloc. - Reported by Andreas Schwab and Enrik Berkhan. - -2001-07-01 Bruno Haible - - * task.c (perform_pass_sequence): Call recode_if_nogo before - returning false. Otherwise task->error_at_step is not set, and - main() dumps core. - Reported by David Necas, Konstantin Osipov and Stephen Grecni. - -2001-01-22 Bruno Haible - - * hash.c: Avoid use of undefined macros HAVE_DECL_MALLOC/FREE. - -2001-01-03 Bruno Haible - - * recodext.h (put_byte): Don't use "void" type expressions in - conditional expressions. Works around a compilation failure with - old Solaris cc. - -2000-12-19 Jim Meyering - - * localcharset.c: Improve WIN32 macrology. - (locale_charset): Increase size of buffer. - -2000-12-06 Bruno Haible - - * names.c (disambiguate_name): When DEFAULT_CHARSET is not set, use - "char". - * main.c (usage): Modified default charset. - -2000-12-05 Bruno Haible - - * Updated to libiconv 1.5. - - * iconv.c (_libiconv_version): New variable. - - * iconv.c: Include libcharset.h. - (loop_funcs): New structure. - Treat encodings_local.def like encodings.def. - Include loops.h. - (iconv): Move the bulk of the code to loop_unicode.h. - (iconvctl): Extend determination of TRIVIALP to wchar_t conversion - descriptors. - * localcharset.c: New file, from libiconv-1.5. - * Makefile.am (librecode_la_SOURCES): Add localcharset.c. - (DEFS): Override automake default. - - * iconv.c (iconv): Use ucs4_t instead of wchar_t. - - Make transliteration optional. - * iconv.c (iconv_open): Strip off //TRANSLIT suffix from names. - Set transliteration on if and only if tocode ends in //TRANSLIT. - -2000-11-04 Alexandre Duret-Lutz - - * hash.c (hash_get_next): Fix a thinko: when ENTRY is the last one - in a bucket, advance to the next bucket. - -2000-10-24 Bruno Haible - - * xmalloc.c, xalloc.h: Move here from lib/. - * Makefile.am (noinst_HEADERS): Add xalloc.h. - (librecode_la_SOURCES): Add xmalloc.c. - Reported by Tomasz Kłoczko. - -2000-10-24 Bruno Haible - - * main.c (main): Remove libtool's "lt-" prefix from program_name. - -2000-10-15 Bruno Haible - - * Makefile.am (inisteps.h): New target, depend on stamp-steps. - (tersteps.h): Likewise. - (noinst_HEADERS): Add tersteps.h. - -2000-08-30 Bruno Haible - - * outer.c: Include "hash.h". - -2000-08-18 François Pinard - - * html.c: Add XML-standalone, and h0 for an alias. - Reported by Frederic Gobry. - -2000-08-07 François Pinard - - * html.c (transform_ucs2_html): Correctly encode decimal values. - Reported by Ben Sittler and Daniel Taupin. - -2000-07-01 François Pinard - - * main.c (main): Free the rewritten request after decoding it. - - * task.c (recode_new_task): Return NULL, not false. - Reported by Jim Meyering. - -2000-06-30 Bruno Haible - - * libiconv.c (transform_with_libiconv): Allocate a second iconv_t, - converting to UTF-8. Pass it to wrapped_transform. - (wrapped_transform): Add a conversion_to_utf8 argument. Set - transliteration off at the beginning, and enable it when - necessary. Add assertions. Better EILSEQ treatment. Implement - E2BIG and EINVAL treatment. In case of unknown error, complain - with RECODE_SYSTEM_ERROR, not RECODE_INVALID_INPUT. At EOF, don't - forget to drain the buffers and return to the initial state. - -2000-06-29 François Pinard - - Prepare for further plugging of memory leaks. - * outer.c (unregister_all_modules): New function. - (recode_delete_outer): Call it. - * afrtran.c, african.c, cdcnos.c, bangbang.c, testdump.c, - rfc1345.c, libiconv.c, flat.c, base64.c, dump.c, ebcdic.c, ucs.c, - utf7.c, atarist.c, lat1ltex.c, texinfo.c, iconqnx.c, lat1txte.c, - mule.c, applemac.c, ibmpc.c, lat1asci.c, varia.c, html.c, - endline.c, utf8.c, vn.c, utf16.c, permut.c, quoted.c, txtelat1.l, - ltexlat1.l, ascilat1.l: Add delmodule_* functions, all empty for now. - * Makefile.am (stamp-steps): Prepare tersteps.h, adjust decsteps.h. - -2000-06-29 Andreas Schwab - - Plug some of the memory leaks in the library. - * combine.c (state_free): New function. - (init_combine): Use it to free hash table entries after use. - * names.c (prepare_for_names): Free hash table entries after use. - * outer.c (recode_delete_outer): Fix clean-up code. - * recode.c (init_ucs2_to_byte): Free hash table after use. - * testdump.c (produce_count): Free hash table entries and the table - itself after use. Fix clean-up code. - -2000-06-28 François Pinard - - * task.c: Insert union wait portability from GNU make. - Reported by Bruno Haible. - - * testdump.c: New name for debug.c. - (module_testdump): Renamed from test_debug. - * Makefile.am (C_STEPS): Adjusted. - -2000-06-27 François Pinard - - * main.c: Check for HAVE_STRUCT_UTIMBUF, for OpenSTEP to work. - Reported by Jim Meyering and Tom Hageman. - -2000-06-26 François Pinard - - * Makefile.am (stamp-steps): Remove p in s///p. - - Avoid (sometimes questionable) compiler warnings. - * recodext.h (put_byte): Cast argument to char. - (RETURN_IF_NOGO): Use the brace trick instead of the else trick. - (RECODE_NO_SYMBOL_TYPE): New constant. - * applemac.c (module_applemac): Always return a value. - * combine.c (find_shifted_state, prepare_shifted_state): Declare - second argument as unsigned instead of unsigned short. Strange... - * debug.c (produce_count): Make a block, to avoid shadowing character. - * dump.c (dump, umdump): Add superfluous parentheses. - (undump): Add superfluous braces. - * html.c (transform_ucs2_html): Add superfluous parentheses. - * ibmpc.c (module_ibmpc): Always return a value. - * mergelex.py (section1): Define YY_NO_UNPUT. - * mixed.c (start_accumulation, recode_accumulated): No inline. - * names.c (code_to_ucs2): Cast value to int within ? operator. - (find_alias): Preset type. - * recode.c (recode_format_table): Handle RECODE_NO_LANGUAGE in switch. - * request.c (edit_sequence): Rename step to step2, avoid shadowing. - (add_to_sequence): Simplify code by using result of REALLOC in test. - (scan_charset): Rename alias to alias2, avoid shadowing. - * task.c (recode_if_nogo): Rename error to new_error, avoid shadowing. - * ucs.c (get_ucs2): Add superfluous parentheses. - * utf16.c (transform_utf16_ucs4): Add superfluous braces. - Reported by Bruno Haible. - -2000-05-18 Jim Meyering - - * hash.c (hash_rehash): Fix a nasty bug: copy the free entry list - back, too, since it may have been modified by allocate_entry. - (hash_delete): Rewrite to use neither the assignment operator nor the - comma operator in an if-expression. - -2000-05-08 François Pinard - - * base64.c (transform_base64_data): Skip \r. - Reported by Eli Zaretskii. - -2000-04-26 François Pinard - - * debug.c (produce_full_dump): Do not produce header when no data. - -2000-04-23 Bruno Haible - - * libiconv.c: Include "iconv.h". - * iconv.c: Include "iconv.h" instead of "libiconv.h". - - * recode.c (recode_perror): Fetch errno before anything else. - - * task.c: Provide W* macro replacements whenever needed. - (perform_pipe_sequence): Use instead of hardwired bit - masks. - - * rfc1345.c (transform_rfc1345_ucs2): Avoid double dereference. - - * combine.c (combine_byte_byte, combine_ucs2_byte, combine_byte_ucs2, - combine_ucs2_ucs2): Silence gcc warning. - * debug.c (produce_count): Remove unused variable 'cursor'. - * html.c (init_ucs2_html): Remove unused variables 'outer', 'done'. - (init_html_ucs2): Likewise. - (init_ucs2_html_v11, init_ucs2_html_v20, init_ucs2_html_v27, - init_ucs2_html_v32, init_ucs2_html_v40, init_html_v11_ucs2, - init_html_v20_ucs2, init_html_v27_ucs2, init_html_v32_ucs2, - init_html_v40_ucs2): Return a value. - * main.c (main): Silence gcc warning. - * names.c (make_argmatch_arrays): Remove unused variable 'hash'. - (list_full_charset): Remove unused variable 'ucs2'. - (find_and_report_subsets): Remove unused variable 'counter'. - * request.c (scan_identifier): Remove unused variable 'outer'. - (add_unsurfacers_to_sequence): Return true. - (scan_charset): Silence gcc warning. - * task.c (perform_memory_sequence, perform_pass_sequence): Silence - gcc warning. Include , needed for pipe(), fork(), - dup2(), close() declarations. Include , needed for - wait() declaration and W* macros. - (recode_perform_task): Silence gcc warning. - * utf16.c (transform_ucs4_utf16): Remove unused variables 'character', - 'chunk'. - * utf7.c (transform_utf16_utf7): Remove unused variable 'character'. - * vn.c (module_vietnamese): Return true. - - * outer.c (module_libiconv): New declaration. - -2000-03-14 Bruno Haible - - * iconv.c: Updated to libiconv 0.3, 1.0, 1.1, then 1.2. - -2000-03-03 François Pinard - - * Makefile.am (C_FALLBACKS): Replace lat1texi.c by texinfo.c. - * texinfo.c: New module. - * lat1texi.c: Deleted. - -2000-03-01 Karl Eichwalder - - * lat1texi.c: Add @exclamdown{}, @questiondown{}, @AA{}, @O{}, - @ss{}, @aa{}, @`i, @'i, and @o{}. - -2000-02-06 François Pinard - - * recodext.h: Some structures progressively shifted their meaning - with recode evolving, time for some global nomenclature changes: - symbol is now alias, charset is now symbol, charset_type is data_type. - (struct recode_symbol): Rename charset_data to data, replace - charset_flag with type. - * All adjusted. - -2000-02-05 François Pinard - - * recodext.h, freeze.c, request.c, outer.c: Implement tree_charset. - -2000-01-28 François Pinard - - * quotearg.c, quotearg.h: New files, from elsewhere. - * Makefile.am: Adjusted. - * common.h, names.c, main.c: Adjusted for new argmatch call. - -2000-01-26 François Pinard - - * main.c (main): Write version in two blocks rather than three. - Reported by Jim Meyering. - -2000-01-12 Akim Demaille - - * lat1texi.c: Updated to newer Texinfo commands. That is, - change @ptexc to @, and @ptexi to @dotless{i}. - -1999-12-30 François Pinard - - * main.c (main): Rephrase some error messages so they are less - telegraphic, add a few messages to better explain some errors. - -1999-12-29 François Pinard - - * mixed.c (struct mixed): Delete original_task. - (start_accumulation): New name for plumb_input_to_buffer. - (recode_accumulated): Merges previous plumb_buffer_to_output, - a call to recode_perform_task, and previous plumb_input_to_output. - Usages adjusted accordingly. - -1999-12-28 François Pinard - - * iconv.c: New file, from Bruno Haible's libiconv 0.2. - * libiconv.c: Now unconditional. Do not include . - * outer.c, request.c: Presume WITH_LIBICONV, do not test it. - * Makefile.am: Adjusted. - (INCLUDES): Include $(top_srcdir)/libiconv. - -1999-12-24 François Pinard - - * recodext.h: Introduce RECODE_SUBTASK. - * All: Adapt everywhere to use subtask instead of step/task pairs. - - * task.c (recode_if_nogo): New function. - * recodext.h: Declare it. - (SET_TASK_ERROR, RETURN_IF_NOGO): Use it. - -1999-12-22 François Pinard - - * vn.c (viscii_viqr_data, viscii_vni_data): Final DONE was missing. - (viscii_vni_data): Latin-1 characters were sign extended. - Reported by Nguyên-Ðai Quý. - -1999-12-20 François Pinard - - * libiconv.c: New file. - * outer.c (internal_iconv, declare_libiconv) [WITH_LIBICONV]: - New functions. - (register_all_modules): Initialise libiconv_pivot. - [WITH_LIBICONV]: Call module_iniconv. - * recodext.h: Declare transform_with_libiconv. - (struct recode_outer): Declare declare_libiconv and libiconv_pivot. - * request.c: Recognise and handle a double libiconv step. - * Makefile.am (librecode_la_SOURCES): Add libiconv.c. - (noinst_HEADERS): Add libiconv.h. - -1999-12-18 François Pinard - - * vn.c: New file. - * Makefile.am: Adjusted. - Reported by Nguyên-Ðai Quý. - -1999-12-14 François Pinard - - * mergelex.py: Python version of mergelex.awk. - * mergelex.awk: Deleted. - * Makefile.am: Adjusted. - - * Makefile.am: Adapt to the gettext scheme used in wdiff. - -1999-12-13 François Pinard - - * recode.c (recode_error, recode_perror) [!__STDC__]: Use const. - Reported by Peter Turcan. - - * quoted.c (transform_quoted_printable_data): Renamed from - transform_quoted_printable_byte. Correct an error by which a - newline could be spuriously transported over. Revised to better - report canonicity errors and invalid input. - Reported by Hrvoje Niksic. - -1999-12-12 François Pinard - - * base64.c (transform_base64_data): Better handle end of lines. - Non canonical input was too often reported as invalid. - Reported by Hrvoje Niksic. - - * html.c (transform_html_ucs2): Revise echoing code. With -d, - the original HTML string could be copied after its recoded value. - Correct character interval tests for numeric conversions. - - * html.c: Merge main_translations and other_translations into - a single array named translations. Merely relate -d to non-ASCII. - Reported by Andreas Frick. - - * html.c: Explicit the 0 prefix in the translations table, instead - of implying through the ENTRY macro. It seems NextSTEP 3.3, - OpenSTEP 4.2 and MacOS X Server 1.02 do not accept empty slots for - third arguments to ENTRY. - Reported by Tom Hageman. - -1999-11-10 François Pinard - - * html.c (transform_ucs2_html): Pass HT undisturbed. - Reported by Andreas Frick. - -1999-09-21 Andreas Schwab - - * main.c (main): Always read the file attributes and restore the - permission bits when recoding in place. - -1999-08-17 François Pinard - - * recode.h, recodext.h: Make C++ safe. - Reported by Bruno Haible. - - * html.c (transform_html_ucs2): Expérimentation... FIXME! - -1999-07-26 François Pinard - - * main.c (main): Adjust diagnostics so to quote step names. - Reported by Per Starback. - -1999-06-22 François Pinard - - * Makefile.am (recode.1): New goal, rewritten more simply that the - previous one in doc/. Use --output with help2man. Do not force - LANGUAGE=C anymore since help2man does it internally. - (PERL): Define to perl. - (man_MANS): Added. - (EXTRA_DIST): Include $(MANS). This should force regeneration of - the man page with the correct version, in distributions. - Reported by Brendan O'Dea, Santiago Vila Doncel and Scott Schwartz. - -1999-04-18 François Pinard - - * request.c (scan_charset): Ignore implied surfaces when the only - goal is making headers. - Reported by Laurent Bourbeau. - -1999-04-07 François Pinard - - * main.c (main): Update copyright years. - Reported by Laurent Bourbeau. - -1999-04-02 François Pinard - - * combine.c: Document from a message. - -1999-03-29 Andreas Schwab - - * atarist.c: Fix encoding table based on Omega (extended TeX with - Unicode) translation tables. - -1999-03-17 François Pinard - - * ucs.c (module_ucs): Declare co as an alias for combined, so the - manual stays true. count-characters was making it ambiguous. - -1999-03-16 Andreas Schwab - - * combine.c (init_explode, init_combine): Return early if there is - no step table. - -1999-03-17 François Pinard - - * debug.c (produce_count): Use hash_insert as per last hash.[ch]. - * combine.c (init_explode, prepare_shifted_state): Idem. - * html.c (init_ucs2_html, init_html_ucs2): Idem. - * names.c (find_symbol, declare_alias): Idem. - * recode.c (init_ucs2_to_byte): Idem. - -1999-03-07 François Pinard - - * common.h: Work around EXIT_FAILURE being defined to zero on Sony - NEWS-OS Release 4.0C. - Reported by Akim Demaille. - -1999-01-17 François Pinard - - * names.c (list_all_charsets): Include implied surfaces in listing. - (compare_struct_symbol): Sort charsets before aliases. - -1999-01-16 François Pinard - - * recodext.h: Rename struct recode_entry to recode_symbol, and - recode_outer field entry_table to symbol_table. Also introduce - typedefs RECODE_SYMBOL and RECODE_CONST_SYMBOL. - * names.c: Adjusted. Rename name_hasher to symbol_hasher, - name_comparator to symbol_comparator, prepare_for_names to - prepare_for_symbols, compare_struct_name to compare_struct_symbol, - many variables from entry to symbol. - * outer.c: Adjusted. - - * recodext.h: Move field usual_surfaces from struct recode_charset - to struct recode_symbol, renaming it implied_surfaces. Rename - function find_charset to find_symbol, enum charset_find_type to - symbol_find_type, CHARSET_ constants to SYMBOL_ constants, then - SYMBOL_FIND_OR_CREATE to SYMBOL_CREATE_CHARSET. - * request.c, main.c, names.c, outer.c, request.c: Adjusted. - - * names.c (declare_implied_surface): Rename declare_usual_surface. - Directly accept a symbol and a surface instead of names. - * recodext.h: Adjusted. Add crlf_surface and cr_surface to struct - recode_outer. - * outer.c: Initialize them. - * applemac.c, freeze.c, ibmpc.c, request.c: Adjusted. Use them. - -1999-01-12 François Pinard - - * ucs.c (get_ucs2): Skip byte order marks, and never return them to - the application. Also skip swapped byte order marks once processed. - Only the initial byte order mark, swapped or not, was skipped. - * task.c (perform_memory_sequence, perform_pass_sequence): Reset the - swap_input field of subtask to RECODE_SWAP_UNDECIDED between passes. - - * utf8.c (transform_utf8_ucs4): Parenthesize masking expressions, - because the & operator has less priority than ==. - Reported by Dominique Schmit. - -1999-01-07 François Pinard - - * debug.c (module_debug): Rename count to count-characters, and - full-dump to dump-with-names. - * ucs.c (module_ucs): Rename combined to combined-UCS-2. - -1999-01-06 François Pinard - - * common.h (enum recode_step_type): Add RECODE_COMBINE_EXPLODE. - (struct recode_single): Add initial_step_table. - * outer.c (new_single_step): Initialise initial_step_table to NULL. - (declare_explode_data): Save the explode data in both created - single steps. Do not save it to the charset, unless data is for - UCS-2 conversions. Otherwise, two different exploding steps over - the same charset might compete while saving their data. - * request.c (add_to_sequence): Set step_table to initial_step_table. - If not NULL, set type to RECODE_COMBINE_EXPLODE. - * combine.c (init_combine, init_explode): Obtain the raw data from - the step structure, instead of from the before or after charset. - Reported by Laurent Bourbeau. - - * recode.h: Typedef RECODE_OUTER, RECODE_REQUEST, RECODE_TASK, - RECODE_CONST_CHARSET and RECODE_CONST_REQUEST. Rename _init_ - functions to _new_, which return freshly allocated structures - instead of modifying statically allocated ones. Rename _term_ - functions to _delete_, which free their argument. - * recodext.h: New installable include file for external programs - wanting to dynamically add new internal steps. Typedef - RECODE_CHARSET, RECODE_STEP, RECODE_OPTION_LIST, - RECODE_CONST_OUTER, RECODE_CONST_STEP, RECODE_CONST_TASK and - RECODE_CONST_OPTION_LIST. Move all recode specific internal - definitions over from recode.h and common.h. - * common.h: Declare bool or include stdbool.h, now that recode.h - does not do it anymore. Include redodext.h instead of recode.h. - * All: Adjusted to use the above changes, or comply with them. - * Makefile.am: Distribute and install recodext.h. - - * debug.c (compare_item): Use const at proper level. - - * varia.c: New name for cyrillic.c, as the contained tables - are not that Cyrillic, after all! :-) - (module_varia): New name for module_cyrillic. Add LUKAS and - MARTIN parametrisation. Use Kamenicky instead of KAMENICKY. - -1999-01-05 François Pinard - - * outer.c (declare_explode_data): New function. - * combine.c (init_explode, init_combine): Adjusted. - * ucs.c (init_combined_ucs2): Adjusted. - * common.h, african.c, cyrillic.c: Adjusted. - - * debug.c: New name for fulldump.c. Add test-7, test-8, test-15 - and test-16 pseudo-surfaces. Add count pseudo-charset. - * Makefile.am: Adjusted. - -1999-01-04 François Pinard - - * cyrillic.c: New file. - * combine.c (init_combine): Handle empty expansions. - * Makefile.am: Adjusted. - Reported by Lukas Petrlik and Martin Mares. - - * outer.c (register_explode_data): New routine. - * african.c (module_african): Use it. - * names.c (list_full_charset_line): New function. - (list_full_charset): Use it. Handle RECODE_EXPLODE_DATA case. - - * Makefile.am: Adjusted to handle strip-pool.c and strip-data.c - instead of pool.c and tables.c. - - * html.c: Some code was missing for HTML to UCS-2 recoding to work. - Reported by Ricard Torres. - - * recode.h: Add enum recode_step_type. Replace byte_to_byte and - byte_to_variable step fields with step_type and step_table. - * bangbang.c, cdcnos.c, ebcdic.c, ibmpc.c, lat1asci.c, lat1ltex.c, - lat1texi.c, lat1txte.c, recode.c, request.c, task.c: Adjusted. - * request.c (table_type): Rewritten to use the new enum - recode_step_type, instead of a local enum table_type. - * combine.c: Use step_table instead of local, in step fields. - - * recode.h: Rename struct known_pair to recode_known_pair and enum - swap_input to recode_swap_input. Rename struct ucs2_data_table to - strip_data, field table in recode_charset field to - charset_data, function declare_ucs2_data to declare_strip_data. - Delete the KNOWN_PAIR and UCS2_DATA_TABLE typedefs. - * applemac.c, atarist.c, common.h, freeze.c, ibmpc.c, names.c, - outer.c, recode.c, recode.h, request.c: Adjusted. - - * names.c (name_for_argmatch): New name for cleanup_charset_name. - (disambiguate_name): New name for clean_charset_name, make it static. - * recode.h: Do not declare clean_charset_name. - - * utf8.c (transform_ucs4_utf8) [!HANDLE_32_BITS]: If bit 2^31 is - set, output nothing, as invalid input is not a character. - [HANDLE_32_BITS]: Output a 7 byte UTF-8 like sequence. - (transform_utf8_ucs4): Do not infloop on invalid byte. - Reorganise code so output may be inhibited on invalid input. - Reported by Andreas Schwab. - -1999-01-03 François Pinard - - * recode.h (struct recode_outer): Parallel the argmatch arrays - with realname arrays. - * names.c (make_argmatch_walker_2): Build realname arrays as well. - (make_argmatch_arrays): Free argmatch items, allocate realname arrays. - (find_charset): When creating, save the real name, not the argmatch. - (declare_alias): Save the real name, not the argmatch. - (clean_charset_name): Return the real name instead of the argmatch. - - * names.c (compare_strings): New function. - (compare_struct_name): Use it. - (list_all_charsets): Do not print charset names in list of aliases. - Reported by Laurent Bourbeau. - - * html.c: Remove included space within RFC1866 and RFC2070 aliases. - -1999-01-01 François Pinard - - * african.c, fulldump.c, html.c, outer.c, rfc1345.c, ucs.c, utf16.c, - utf7.c, utf8.c: Use ISO-10646-UCS-2 and ISO-10646-UCS-4, previous - UCS-2 and UCS-4 become aliases. - * utf7.c: Use UNICODE-1-1-UTF-7, previous UTF-7 becomes an alias. - * ucs.c: Add UNICODE-1-1 as an alias for UCS-2. - -1998-12-31 François Pinard - - * Makefile.am (outer.o): Depend on stamp-steps, so parallel makes - rebuild decsteps.h and inisteps.h in time for compiling outer.c. - - * names.c (clean_charset_name): Use DEFAULT_CHARSET in environment. - * main.c (usage): Tells about DEFAULT_CHARSET. - -1998-12-30 François Pinard - - * afrsort.c: Deleted, the experiment is driven elsewhere. - * Makefile.am (C_STEPS): Adjusted. - -1998-12-27 François Pinard - - * main.c (task_perror): Correct typo in message. - Reported by Martin Mares. - -1998-12-25 Andreas Schwab - - * combine.c (combine_byte_byte): Read bytes, not UCS2 codes. - -1998-12-15 François Pinard - - * fulldump.c: New module. - * Makefile.am: Adjusted. - Reported by Roman Czyborra. - - * names.c (list_full_charset): Select language for charname output. - * fr-charname.c: New module, adapated from charname.c. - * Makefile.am, common.h: Adjusted. - -1998-12-14 François Pinard - - * names.c (make_argmatch_arrays): Free previous arrays if any. - -1998-12-13 François Pinard - - * html.c: Delete HTF and Entities as aliases. - - * recode.c (recode_error): Deleted; then new name for recode_warn. - (recode_perror): New function. - * common.h: Adjusted. Delete RECODE_IO_DEBUG related code. - (PERROR, PERROR1, PERROR2): Deleted, as recode_perror now exists. - * mixed.c, recode.c, request.c, task.c: Adjusted. - * main.c (main): Directly call error, rather than PERROR macros. - (error_print_prefix): Deleted, and so for error_{file,line}_reference. - - * argmatch.c, argmatch.h, hash.c, hash.h: Moved in from lib, so - the recode library has these. - * Makefile.am: Adjusted. - -1998-12-12 François Pinard - - * african.c: Rewritten to take better advantage of combining UCS-2. - * afrtran.c: Also part of rewriting to handle transliterations. - * afrsort.c: New file, this is for some unrelated experiments. - * african.h, afrful.l, afrl1.l, afrlin.l: Deleted. - * Makefile.am: Adjusted. - - * main.c (main): Properly follow the chain of singles when - strict mode gets installed, so avoiding an infinite loop. - -1998-12-08 François Pinard - - * main.c (long_options): Recognise --find-subsets, it was missing. - - * combine.c: New file. - * Makefile.am, common.h: Adjusted. - * ucs.c: Declare combining_data. - (init_combined_ucs2, init_ucs2_combined): New functions. - (module_ucs): Introduce combined as a charset. - - * common.h: Rename GET_BYTE and PUT_BYTE to get_byte and put_byte. - * All callers adjusted. - -1998-12-07 François Pinard - - * outer.c (register_all_modules): Write ISO-8859-1 instead of - ISO_8859-1, so the -l sorted listing looks better. - * afrl1.l (module_l1): Idem. - * african.h (declare_jucas): Idem. - Reported by Laurent Bourbeau. - -1998-11-24 Eli Zaretskii - - * main.c (main) [DOSWIN_OR_OS2]: Use getpid to construct temporary - file name in the DJGPP version. - - * task.c (perform_memory_sequence): Copy error information from - the subtask to the parent task. - (perform_pass_sequence): Likewise. - (L_tmpnam): Define only if not defined, e.g., by . - (DOSWIN_OR_OS2): Letter-case change (was DOSWIN_or_OS2). - [DOSWIN]: Include headers that declare O_BINARY and friends. - (recode_perform_task) [DOSWIN_OR_OS2]: Don't switch console device - to binary mode. Move case RECODE_SEQUENCE_WITH_PIPE before - RECODE_SEQUENCE_WITH_FILES, so that system which do not HAVE_PIPE - fall back on files. - -1998-11-24 François Pinard - - * main.c: Implement --source=PO. - (transform_c_source): Moved into mixed.c. - (usage): Adjusted to mention PO as a possible language. - * mixed.c: New file. - (transform_po_source): New function. - * common.h: Add prototypes for mixed.c. - * Makefile.am (recode_SOURCES): Add mixed.c. - -1998-11-23 François Pinard - - * common.h: Define DOSWIN and DOSWIN_OR_OS2 appropriately. - * task.c: Change MSDOS to DOSWIN and MSDOS_OR_OS2 to DOSWIN_OR_OS2. - * main.c: Idem. Also remove old Borland compatibility code. - Reported by Eli Zaretskii. - -1998-11-22 François Pinard - - * common.h: Do not use pipes on Amiga. - Reported by Stefan Haubenthal. - - * common.h: Declare recode_freeze_tables. - Reported by Stefan Haubenthal. - -1998-11-03 François Pinard - - * common.h: Declare errno. Use error.h instead of prototypes. - * main.c, recode.c: Do not declare errno. - - * outer.c, request.c, task.c: New files from parts of recode.c. - * Makefile.am, common.h, recode.c: Adjusted. - -1998-11-02 François Pinard - - * names.c: New name for charset.c. - * Makefile.am: Adjusted. - * names.c (prepare_for_names): New name for - prepare_charset_initialisation. - * common.h, recode.c (register_all_modules): Adjusted. - - * recode.h: Declare recode_ucs2, use it. - * african.c, african.h, atarist.c, charname.h, charset.c, - common.h, freeze.c, html.c, recode.c, rfc1345.c: Use recode_ucs2. - Rename fields from ucs2 to code whenever possible. - - * html.c: Merge of ucs2html.c and htmlucs2.l. - - * htmlucs2.l, ucs2html.c: Deleted. - * Makefile.am: Adjusted. - Add L_SURFACES, H_FALLBACKS, C_FALLBACKS and L_FALLBACKS. Use them. - -1998-11-01 François Pinard - - * ucs2html.c: Define V11, V20, V27, V32, V40 and ENTRY macros. - Use them while defining HTML initialisation tables. - (init_ucs2_html): Add a mask argument, use it. - (init_ucs2_html_v11, init_ucs2_html_v20, init_ucs2_html_v27, - init_ucs2_html_v32, init_ucs2_html_v40): New functions. - (module_ucs2_html): Declare various HTML levels and related aliases. - - * applemac.c, bangbang.c, cdcnos.c, ebcdic.c, ibmpc.c, lat1asci.c, - lat1ltex.c, lat1texi.c, lat1txte.c, recode.c, ucs2html.c: Rename - before and after to before_options and after_options. - - * recode.c (edit_sequence): Allow printing data as charset. - - * recode.h (struct recode_step): Add term_routine. - - * recode.c (scan_charset, scan_unsurfacers): Diagnose unrecognised - surface names. - -1998-10-31 François Pinard - - * charset.c (decode_known_pairs): Revised to use strtoul, so - allowing octal and hexadecimal input, not only decimal. - -1998-10-27 François Pinard - - * recode.h (struct recode_outer): Add quality_byte_to_ucs2, - quality_ucs2_to_byte, quality_ucs2_to_variable and - quality_variable_to_ucs2. - * recode.c (recode_init_outer): Adjusted. - - * recode.c (ucs2_to_byte_hash, ucs2_to_byte_compare): New routines. - (init_ucs2_to_byte): New routine, preparing an hash table. - (transform_ucs2_to_byte): Hash lookups instead of linear searches. - (declare_ucs2_data): Manage so init_ucs2_to_byte will be called. - - * All modules: Prefer unsigned, bool or size_t, try to avoid int. - - * recode.h: Rename all variables names having one_to_one in them - to corresponding names with byte_to_byte, one_to_many to - byte_to_variable, many_to_one to variable_to_byte, many_to_many to - variable_to_variable, reversible to byte_reversible. Similarily for - enum constants by such names, but capitalised. - * All modules: Adjusted. - - * ucs2html.c: Use local in step, instead of a static variable. - - * Makefile.am (main.o): Explicitly depend on common.h and - recode.h, as using an explicit rule defeats Automake dependencies. - - * recode.h: Split struct recode_step into struct recode_single and - struct recode_step. In recode_request, have the sequence array to - contain actual steps, instead of pointers to steps. - * main.c, recode.c: Adjusted. - -1998-10-26 François Pinard - - * recode.c (scan_charset): Return options in the before charset. - (scan_request): Save returned options and reinject them. - Add some more error detection and reporting. - - * recode.c (reversibility): New function, a dummy. - (new_single_step): Initialise fallback_routine. - * common.h: Declare reversibility. - * recode.h: Use typedefs for methods. - (recode_step): Declare fallback_routine. - (recode_outer): Add auto_reversibility, with the reverse meaning - of strict_mapping, which gets deleted. - * atarist.c, applemac.c, dynamic.c, endline.c, ibmpc.c, main.c: - Adjusted. - - * recode.h (struct recode_outer): Rename hash_table to entry_table. - * recode.c (recode_term_outer): Adjusted. - * recode.h (struct recode_entry): New name for struct recode_hash. - Remove next field since new hash routines handle overflow entries. - * charset.c: Use new hash routines. Old hashing code deleted. - (find_and_report_subsets): - - * htmlucs2.l (module_html_ucs2), ucs2html.c (module_ucs2_html): - Remove www and w3 as aliases for html. - * dump.c (module_dump): Remove /h and /h1 as aliases for /x. - Remove /h2 as an alias for /x2. Remove /h4 as an alias for /x4. - -1998-10-24 François Pinard - - * main.c: Implement option -F, for experimenting. - * dynamic.c: New file. - * Makefile.am: Adjusted. - -1998-10-23 François Pinard - - * mule.c: Implement Latin-2 correspondence, not only Latin-1. - -1998-10-20 François Pinard - - * Makefile.am (main.o): Depend on config.status, for version. - -1998-10-14 François Pinard - - * ucs2html.c: Corrected a comment from hybar to hibar. - Reported by Wiel Seuskens. - - * htmlucs2.l: Accept &#XNNNN as well as &#xNNNN. - Reported by Martin J. Dürst. - -1998-10-13 François Pinard - - * ucs2html.c: New file, adapted from lat1html.c. - Also generate decimal &NNNN; notation whenever needed. - * htmlucs2.l: New file, adapted from htmllat1.l. - Also accept the hexadecimal &#xNNNN; notation. - * lat1html.c, htmllat1.l: Deleted. - * Makefile.am: Adjusted. - Reported by Christian Rolland, Florian Oelmaier, Markus Kuhn and - Martin J. Dürst and Wiel Seuskens. - -1998-09-01 François Pinard - - * african.c (transform_juca_to_translit): Use get_ucs2, for - handling possible byte order marks in input stream. - - * main.c: Do not let --strict imply --force anymore. - Unless --strict, ignore lack of canonicity. - - * common.h: Include xalloc.h. - * main.c: Do not include xmalloc.h. - - * recode.c (recode_init_task): Save task for later diagnostic. - * main.c (main): Change format for reporting task being in error. - (task_perror): Capitalize task error messages. - -1998-03-04 François Pinard - - * endline.c (transform_cr_data): Copy character after CR. - -1998-02-18 François Pinard - - * main.c (usage): Do not refer to -o, which does not exist anymore. - Reported by Laurent Bourbeau. - -1998-01-19 François Pinard - - * mule.c (transform_mule_latin): Remove strings of prefixes which - occur in a row. Emacs sometimes does such things, sadly enough. - -1998-01-12 François Pinard - - * main.c (task_perror): New function. - (main): Use it to explain the error more precisely. - * recode.h (struct recode_task): Add error_at_step field. - * ucs.c (get_ucs2, get_ucs4): Use a step argument. - * common.h: Prototypes adjusted. - (RETURN_IF_NOGO, SET_TASK_ERROR): Use a step argument. - * All callers changed. - Reported by Santiago Vila Doncel. - -1998-01-08 François Pinard - - * common.h, main.c: Check for the MSDOS define, not __DJGPP__. - - * charset.c (find_charset): Initialise the usual_surfaces field. - - * utf16.c (transform_utf16_ucs2): Write the replacement character - in two bytes, not four. - -1998-01-07 François Pinard - - * african.h, african.c, afrful.l, afrl1.l, afrlin.l: New files. - * Makefile.am: Adjusted. - -1997-12-25 François Pinard - - * recode.c (BUFFER_SIZE): Make it 16K. On the stack even for MSDOS. - * main.c (_stklen): Make it 64K. - * (main): Delete ftime related code for Borland C, as the - supported MSDOS port is now for DJGPP. - * common.h [!__DJGPP__]: Define HAVE_PIPE. This was once - autoconfigured, but DJGPP astonishingly offers a dummy pipe! - Reported by Eli Zaretskii. - -1997-12-16 François Pinard - - * recode.c (edit_sequence): Do not check if last printed charset - is a surface, when there is no such last printed charset. - -1997-12-15 François Pinard - - * rfc1345.c: Use initialiser functions, and a local structure - containing the intro character. - - * recode.c (scan_identifier): New name for scan_name. - (scan_options): New function, returning an option list. - (scan_unsurfacers, scan_charset): Use it. - (declare_step): Change prototype of initialisation function, so - they accept two option lists, one for before and another for after. - * recode.h (struct recode_option_list): New structure. - (struct recode_step): Add a local field. - * common.h (declare_step): Prototype adjusted. - * applemac.c, bangbang.c, cdcnos.c, ebcdic.c, ibmpc.c, lat1asci.c, - lat1html.c, lat1ltex.c, lat1texi.c, lat1txte.c: Adjusted. - - * ibmpc.c (module_ibmpc): Properly set transform routines while - declaring steps. They wrongly became NULL somewhere before 3.4f. - -1997-12-14 François Pinard - - * charset.c (compare_struct_hash): Use if-tests for checking - packed bools, as doing arithmetic on them is not portable. - Reported by Eric Backus. - - * charset.c (find_and_report_subsets): Ensure end of lines. - Reported by Andreas Schwab. - -1997-12-12 François Pinard - - * common.h: Declare get_byte_helper and put_byte_helper, not - get_byte and put_byte, and get_byte_helper only when USE_HELPERS. - Reported by Eric Backus. - -1997-12-09 François Pinard - - * main.c (usage): Revise. - - * main.c (main): Implement -f. If not selected while recoding a - file over itself, abort recoding on first error, then discard the - temporary output file. - -1997-12-08 François Pinard - - * dump.c (module_dump): Return true if nothing fails! - Reported by Eric Backus. - -1997-12-07 François Pinard - - * recode.c (get_byte_helper): New function. - * common.h: Introduce the USE_HELPERS switch, which may be used to - trade some speed to gain a bit of code space. Currently unused. - - * dump.c: Remove semicolons after TRANSFORM calls. - - * recode.h: Get rid of all int's in favour of unsigned or size_t. - Reorganise structures a bit. - -1997-12-06 François Pinard - - * mule.c: New file, implementing Latin-1 correspondence only. - * Makefile.am: Adjusted. - - * recode.h: Replace enum recode_quality by a struct containing - two enum recode_size fields and a few flags. Add preset qualities - in struct recode_outer to replace previous quality constants. - * All: Quality constants replaced to use the recode_outer fields. - * recode.c (estimate_step_cost): New function. - (recode_init_outer): Initialise preset qualities. - -1997-12-05 François Pinard - - * recode.h (struct recode_task, struct recode_step): For enum type - bitfields other than bool, allow one more bit for the sign, as the - HP/UX 10.20 compiler generates spurious sign extension. Such - created negative values do not compare well with enum constants. - Reported by Eric Backus. - - * ucs.c (get_ucs2): Read middle stream byte order marks as - perfectly valid, transmitted zero-width non-breaking spaces. - Reported by Martin J. Dürst. - - * charset.c (find_and_report_subsets): New function. - * common.h: Add prototype. - * main.c: Implement --find-subsets option, also -T. - -1997-12-04 François Pinard - - * main.c: Replace show_restricted_charsets, a flag, by the string - charset_restrictions, because decoding -k value should be delayed - to after the library has been initialised. Remainder adjusted. - - * main.c (transform_c_source): New function. - (main, long_options, usage): Implement --source option. - * recode.h (struct recode_task): Add byte_order_mark field. - * ucs.c (get_ucs2): Do not require an initial byte order mark - unless byte_order_mark is true. - * utf7.c (transform_utf7_utf16): Do not generate an initial byte - order mark unless byte_order_mark is true. - * utf16.c (transform_ucs4_utf16, transform_utf16_ucs2): Idem. - * recode.c (transform_one_to_ucs2): Idem. - (perform_memory_sequence, perform_pass_sequence): Let subtask - inherit byte_order_mark flag from task. - (recode_init_task): Initialise byte_order_mark to true. - Reported by Mikko Silvonen. - -1997-12-03 François Pinard - - * recode.h (struct recode_request): Delete force_flag. - * main.c (main): Raise error threshold if -f is specified. - Reported by David E. A. Wilson and Hilmar Schlegel. - - * main.c (usage): Clarify the mandatory/optional clause. - Reported by Daniel Quinlan. - - * recode.c (register_all_modules): Declare ISO-8859-1 instead as - ISO-8859-1:1987, the later now being an alias of the former. - - * common.h: Include previous contents of ucs.h. - * recode.c, ucs.c, utf16.c, utf7.c, utf8.c: Do not include ucs.h. - * ucs.h: File deleted. - * Makefile.am: Adjusted. - - * rfc1345.c (ucs2_to_rfc1345): Clean up. - (rfc1345_to_ucs2, transform_ucs2_to_rfc1345, - transform_rfc1345_to_ucs2, module_rfc1345): New routines. - * Makefile.am (C_STEPS): Include rfc1345.c. - Reported by Keld Jørn Simonsen and Roman Czyborra. - -1997-12-02 François Pinard - - * recode.h: Declare struct recode_surface_list, then add a - usual_surfaces field to struct recode_charset. - * recode.c (scan_request): Handle the usual_surfaces field. Also, - if only a charset is given in a subrequest, without any .., then - imply a recoding to the default charset. - (scan_check_if_last_charset): Rewritten simpler. Merely search - for a textual , or .. instead of really scanning the structure. - (edit_sequence): Append a slash after charsets which have usual - surfaces, when no surface is used for them. - * charset.c (declare_usual_surface): New function. - * common.h: Declare its prototype. - * applemac.c: Revise to depend on auto_cr, which is const to false. - * ibmpc.c: Revise to depend on auto_crlf, which is const to false. - Reported by Hennus Bergman. - - * recode.c (simplify_sequence): Echo sequence before - simplification as well, not only after simplification. - (recode_scan_request): Do not echo the sequence, call - simplify_sequence instead. - (decode_request): Do not call simplify_sequence. - - * main.c: Delete -a option and auto_check_flag. - * recode.c (print_truncated_charset_name, recode_auto_check_one, - recode_auto_check): Deleted. - * recode.h (recode_auto_check): Prototype deleted. - - * charset.c (list_all_charsets): Exclude ignored charsets. - -1997-12-01 François Pinard - - * charset.c (list_full_charset): Better align columns after - mnemonics. Also give UCS-2 values in hexadecimal. - (list_concise_charset): Better align columns, and attempt some - elimination of trailing whitespace. Handle missing values. - - * common.h: Define __P to PARAMS if not defined. - Reported by Erick Branderhorst. - -1997-11-25 François Pinard - - * endline.c: New file. - * Makefile.am (C_SURFACES): Adjusted. - Reported by Hennus Bergman, Liisa R{ih{ and Ulrich Windl. - - * dump.c (undump): Rename is_short to last_is_short, and rename - and inverse no_comma into comma_on_last. Initialise it so empty - files will not be rejected as not canonical. - - * ucs.h, ucs.c: New files. - * recode.c, utf7.c, utf8.c, utf16.c: Use them. - * recode.h (struct recode_task): Add swap_input enum and field. - * recode.c (recode_init_task): Initialise swap_input. - * common.h (SET_TASK_ERROR): New, to replace IS_NOGO. - * recode.c (transform_one_ucs2): Output BYTE_ORDER_MARK. - * utf7.c (transform_utf7_utf16): Output BYTE_ORDER_MARK. - * utf16.c (transform_ucs2_utf16, transform_ucs4_utf16, - transform_utf16_ucs2): Output BYTE_ORDER_MARK. - (module_utf16): Do not declare UCS-2 and UCS-4, now done in ucs.c. - * Makefile.am, common.h: Adjusted. - Reported by Duane Ellis. - - * utf16.c (module_utf16): Make Unicode an alias for UTF-16 instead - of an alias for UCS-2. - Reported by Ulrich Drepper. - -1997-11-24 François Pinard - - * utf16.c (transform_ucs4_utf16): Report ambiguous output - rather than invalid input, when within reserved UTF-16 range. - (transform_utf16_ucs4): Report invalid chunks as such. - Reported by Keld Jørn Simonsen and Martin J. Dürst. - - * utf16.c (transform_ucs2_utf16, transform_ucs2_utf16): New. - (module_utf16): Adjusted. Declares aliases of UCS-2 and UCS-4. - * utf8.c (transform_utf8_ucs2): Deleted, to force through UTF-16. - (module_utf8): Adjusted. Do not declare aliases of UCS-2 and UCS-4. - * utf7.c (transform_utf16_utf7, transform_utf7_utf16): New - names for transform_ucs2_ucs7 and transform_utf7_usc2. - (module_utf7): Manage though UTF-16, instead of through UCS-2, for - getting in or out of UTF-7. However, allow UCS-2 in directly. - - * All (main.c excepted): Use the LGPL instead of the GPL. - Reported by Ulrich Drepper. - - * quoted.c (transform_data_quoted_printable): An incomplete last - line is not an error, just use `=' at end of last generated line. - Reported by Nathaniel Borenstein. - -1997-11-22 François Pinard - - * main.c (main): Detect old syntax, then warn and rewrite the - request. Move variables to local blocks, rename them for clarity. - * recode.c: Be stricter about syntax, do not check for the old one. - - * permut.c: New file. - * Makefile.am: Adjusted. Introduce H_SURFACES and C_SURFACES. - -1997-11-21 François Pinard - - * dump.c: New file. - * Makefile.am (C_STEPS): Adjusted. - Reported by Markus Kuhn. - -1997-11-20 François Pinard - - * recode.h (enum recode_error): New. - (struct recode_task): Add fail_level, abort_level and error_level. - * common.h (IS_NOGO, TASK_RETURN, RETURN_IF_NOGO): New macros. - * All: Use them. - -1997-11-17 François Pinard - - * base64.c: Rename char_to_value to base64_char_to_value, and make - it global, not static. Declare and preset base64_char_to_value. - (transform_base64_data): Delete char_to_value and initialisation. - * base64.h, utf7.c: New files. - * Makefile.am: Adjusted. - - * common.h: Define IS_ASCII. - * base64.c, flat.c: Use it. Also use IS_BASE64. - - * common.h: Define NUL. - * All: Use it instead of `\0'. - -1997-11-16 François Pinard - - * recode.c (edit_sequence): Rewritten. - (recode_scan_request): Echo the full sequence. - (find_sequence): Don't, as the sequence is only partial. - - * recode.h: Include or use a replacement. - * All, Makefile.am, mergelex.awk: Use bool, false and true. - -1997-11-15 François Pinard - - * recode.h (struct recode_outer): Replace charset_array by - charset_list and single_step_array by step_list. Delete - single_step_allocated. Rename number_of_single_steps to - number_of_steps. - (struct recode_charset): Add next and ordinal fields. - (struct recode_step): Add a next field. - * charset.c: Delete MAX_CHARSETS and so, any preset maximum. - * charset.c, recode.c: Adjusted consequently. - -1997-11-11 François Pinard - - * recode.h: Introduce data_charset. - * recode.c (recode_declare_surface): Deleted. - * common.h: Adjusted. (IS_CHARSET, IS_SURFACE): New macros. - * charset.c (make_argmatch_arrays, list_all_charsets): Use them. - * recode.c (recode_declare_step): Set charset_flag for both - charsets only if neither was data_charset. Else, save the step as - the surfacer or unsurfacer of either charset, as appropriate. - - * recode.c (scan_request): Diagnose if .. is missing in a request. - * main.c (main): Diagnose an undeciphered request. - - * recode.c (perform_pipe_sequence): Use the MASK macro, instead of - its expansion. - * flat.c (transform_ascii_flat): Idem. - -1997-10-28 François Pinard - - * recode.c (register_all_modules): Preset l1 to ISO_8859-1:1987, - in view of a few incoming African charsets. - - * recode.c (table_type): New name for simplify_type, return an - enum instead of an int. Callers ajusted. - (simplify_sequence): Initialise the permutation accumulator with - the first one-to-one table, not with zero. Idem for step quality. - -1997-10-14 François Pinard - - * htmllat1.l (module_html_latin1), lat1html.c (module_latin1_html): - Delete 8879, ISO 8879 and SGML as aliases for HTML, as this is wrong. - Reported by Ulrich Drepper. - - * recode.h: Implement a recode_outer structure. - * recode.c: Implement recode_warn and recode_error. - * common.h: Adjusted. Also declare ALLOC and ALLOC_SIZE. - * All: Modified to use the above -- that's a lot of changes. Get - most functions to return a failure indication, instead of aborting. - Reported by Ulrich Drepper. - -1997-10-06 François Pinard - - * recode.c (complete_double_ucs2_step): qsort wants size_t for the - number of items to sort, so just declare the count that way. - -1997-10-05 François Pinard - - * All: Replace `and usages' by `and surfaces', then encoding and - decoding, the recode_charset fields, by resurfacer and unsurfacer. - Replace all other encoding and ENCODING by surface and SURFACE. - -1997-10-04 François Pinard - - * main.c (usage): Explain what the program does. - -1997-09-29 François Pinard - - * main.c: Include errno.h to declare errno. - Reported by Andreas Mueller, Larry W. Virden, Santiago Vila Doncel - and Ulrich Drepper. - -1997-09-28 François Pinard - - * recode.h (struct recode_charset): Use const for the table field. - * recode.c: Ajudsted. - * common.h: Adjusted. - - * recode.h: Rename charset_clean to charset_find_type, then - CLEAN_ALREADY, CLEAN_AS_CHARSET, CLEAN_AS_ENCODING and - CLEAN_AS_EITHER respectively to CHARSET_FIND_OR_CREATE, - CHARSET_FIND_AS_CHARSET, CHARSET_FIND_AS_ENCODING and - CHARSET_FIND_AS_EITHER. All usages adjusted. - * recode.c (scan_charset): find_charset may return NULL. - -1997-09-26 François Pinard - - * main.c, recode.c, recode.h: Remove popen support. - -1997-09-25 François Pinard - - * recode.h: Add Task as a last argument to GET_BYTE, PUT_BYTE and - PUT_NON_DIACRITIC_BYTE, do not just imply task. Callers changed! - - * main.c (main): Report progress when in verbose mode. - * recode.c (recode_perform_task): Don't. - - * recode.h: Move strategy from recode_request to recode_task. - * recode.c (recode_init_task, recode_term_task): New routines. - * main.c, recode.c: Adjusted. - -1997-09-24 François Pinard - - * common.h [INLINE_HARDER]: Replacement for !USE_FPUTC. - - * recode.h: Better pack a few structures. - -1997-09-23 François Pinard - - * charname.pl, rfc1345.pl: Moved over to doc/. - * Makefile.am: Simplified accordinly. Perl now done in doc/. - - * Makefile.am (decsteps.h, inisteps.h): Use $(srcdir) in goals, so - dependencies are triggered. - -1997-09-22 François Pinard - - * recode.h: Implement STRIP_SIZE and a local pool for each table. - * common.h: Declare ucs2_data_pool. - * charset.c (list_concise_charset): Use it. - * recode.c (complete_double_ucs2_step): Use it. - * atarist.c, next.c: Use the new scheme. - - * Makefile.am (pool.c, tables.c): Copy from $(srcdir)/doc, and use - them instead of older charset1.c and charset2.c, now obsolete. - Adjust remainder accordingly. - (rfc1345.h): Prefix goal by $(srcdir). - - * charname.pl, rfc1345.pl: Read codes as hexadecimals, print them - that way. Sort numerically instead of lexicographically. - Rename some of $code to $ucs2. - -1997-07-30 François Pinard - - * main.c (main): Declare stamp_utime as struct utimbuf, instead - of an array of two time_t's. Either include utime.h or declare - struct utimbuf. - - * main.c (usage): Make it static. Accept a list argument, instead - of relying on global decode_charset_flag, which disappears. - * charset.c (decode_known_pairs): Return an error status if any - decoding error, do not call usage directly. - (find_charset): Accept a clean argument. All callers adjusted, - they do not anymore always call clean_charset_name explicitely. - (clean_charset_name): Accept a clean argument instead of an int. - Return NULL is clean does not succeeed, do not call usage directly. - All callers adjusted. - * main.c (main): Check the return status of decode_known_pairs and - issue an usage message if there were errors. - * common.h: Declarations adjusted. - - * Makefile.am (stamp-steps): Replace stamp-init. Now generate - decsteps.h for prototypes, then inisteps.h for calls, instead of - stepinit.h. Distribute those new files. - -1997-07-29 François Pinard - - * recode.c (recode_auto_check, recode_auto_check_one): Renamed - from perform_auto_check and perform_auto_check_one. - (recode_format_table): Renamed from output_header_file. - (recode_perform_task): Renamed from execute_sequence. - (perform_memory_sequence): New routine. - * Everywhere, renaming of file_ functions into transform_, renaming - of all fields bearing functions so they have a _routine suffix. - - * recode.h: Add RECODE_SEQUENCE_IN_MEMORY. - -1997-07-28 François Pinard - - * mergelex.awk: Do not define the output macro, it is unused. - * recode.h [FLEX_SCANNER]: Define a special PUT_BYTE version. - - * main.c: Split out of recode.c, the later to go in librecode.a. - * common.h: Split out of recode.h, the later to be installed. - * Makefile.am: Ajust accordingly. - * Includers of recode.h now includes common.h instead, except - recode.c which includes only recode.h only, being a mere - application of the library. - - * A lot of massaging everywhere for implementing new struct - recode_request, recode_input_text, recode_output_text and - recode_task. Prefix many constants and tags by recode_ or - RECODE_ so they export more cleanly. - - * recode.c (init_recode, term_recode, recode_init_request, - recode_term_request, recode_scan_request, - recode_buffer_to_buffer, recode_buffer_to_file, - recode_file_to_buffer, recode_file_to_file, - recode_string_to_buffer, recode_string_to_file, - recode_string_to_string): New functions. - * recode.h: Adjusted. - - * recode.c, recode.h, bangbang.c, cdcnos.c, flat.c, iconqnx.c, - quoted.c, base64.c, utf16.c, utf8.c, ibmpc.c: Replace many - input_file and output_file collectively by task. - * mergelex.awk: Modified accordingly. - - * recode.c: Change syntax from : to .. for separating charsets. - (add_work_string_quoted): Deleted. - - * charname.pl: Add backslashes into comments, because this is - how the name references look in tables. - -1997-06-26 François Pinard - - * utf8.c (module_utf8): Make rune an alias for UCS-2. - -1997-06-18 François Pinard - - * htmllat1.l, lat1html.c: Prefer ¯ to &hybar, per RFC 1866. - Reported by Jacques Madelaine. - -1997-04-29 François Pinard - - * recode.c (usage): Change bug reporting address. - -1997-04-05 François Pinard - - * recode.c (usage): Add a missing quote in the help string. - Reported by Niels Kr. Bech Jensen. - -1997-02-26 François Pinard - - * charset.c (list_full_charset): Correctly check the return value - of code_to_ucs2. - * rfc1345.pl: Normalise all hex codes to upper case, so they get - properly sorted in the generated table. - Reported by Andreas Schwab. - - * Makefile.am (EXTRA_DIST): Also include what was BUILT_SOURCES. - - * charname.pl: Introduce MAX_MNEMONIC_LENGTH and use it. Renamed - UNICODE to MNEMONICS and unicode to ucs2. Correct bugs about the - merging continuation lines from rfc1345.txt. Protect double - quotes in generated strings. - * rfc1345.pl: Introduce MAX_MNEMONIC_LENGTH and use it. Renamed - UNICODE to MNEMONICS. - -1997-02-25 François Pinard - - * Makefile.am (EXTRA_DIST): Leave README-alpha to Automake 1.1l. - Add init-stamp, taken out of BUILT_SOURCES. - (LDADD): Use .o suffixes instead of $o. - -1996-10-16 François Pinard - - * recode.h: Update the localisation declaration block. - * recode.c (main): Update the localisation initialisation. - Reported by Erick Branderhorst, Niels Kr. Bech Jensen and Santiago - Vila Doncel. - -1996-09-30 François Pinard - - * recode.c (find_sequence): Reset length_of_sequence to zero. - Reported by Andreas Schwab. - - * atarist.c, next.c: Adjusted into using UCS-2 tables. - Reported by Andreas Schwab. - - * charname.pl: Integrate charname.sed, accept rfc1345.txt as - argument, do not define f2 as florin, which f2 is not UCS-2. - * charname.sed: Deleted. - * Makefile.am: Adjusted. - Reported by Andreas Schwab. - -1996-09-20 François Pinard - - * recode.c (usage): Add bug report address in --help output. - (decode_options): Add copyright and authors in --version output. - - * recode.c (file_one_to_one): Use the table! - -1996-09-17 François Pinard - - * lat1html.c (module_latin1_html): Declare RFC 1866 and 1866 as - aliases for HTML. - * htmllat1.l (module_html_latin1): Idem. - Reported by Arnaldo Mandel. - -1996-09-04 François Pinard - - * Makefile.am (recode.o): Special rule for defining LOCALEDIR - flag, instead of having it defined on all compiles. - -1996-09-03 François Pinard - - * Makefile.am: Remove check related lines, moved over to tests/. - -1996-08-27 François Pinard - - * Makefile.am (CHECKING): COPYING is in top_srcdir, not srcdir. - * checkit: Find config.h in some directory above. - -1996-08-26 François Pinard - - * recode.h: Declare enum programming_language. - * recode.c: Accept and decode a programming language with -h. - Only C and Perl are accepted so far. - (output_header_file): Adjusted accordingly. - Reported by Erwan Mas. - - * recode.c: Rename a few variables from *_mode into *_flag. - -1996-08-25 François Pinard - - * recode.c (register_all_modules): Initialise ucs2_charset instead - of rfc1345. Do not halve the cost anymore, since ucs2 is now a - genuine, full-fledged charset (yet the optimisations are retained). - (simplify_sequence): Require a table with ucs2 before simplifying. - -1996-08-24 François Pinard - - * charset.c (code_to_ucs2): Function replacing code_to_symbol. - * charname.pl: Adjusted to read mnemonic.ds and mnemonic.ds2 and - insert the UCS-2 value rather than the RFC1345 symbol, as key. - Also rename HDR to HEADER. - * rfc1345.c (ucs2_to_rfc1345): New file and function. - * rfc1345.pl: New file, for generating rfc1345.h. - * recode.h: Rename DOUBLE_TABLE to UCS2_DATA_TABLE. Rename - declare_double_step to declare_ucs2_data and remove the third - argument giving mnemonic size. - * recode.c (init_recode_rfc1345): Revise to use UCS-2 values - instead of symbol strings. - * atarist.c: Rename USE_DOUBLE_STEP to USE_RFC1345_STEP. - * atarist.c, next.c: Rename DOUBLE_TABLE to RFC1345_DATA_TABLE. - * all files: Better document RFC 1345 out of ISO 10646. Adjust to - all previous changes. - - * charset.c (make_argmatch_arrays): Use the proper counters in - the second pass, to get consistent arrays and avoid memory mangling. - - * charset.c (list_all_charsets): Reset list_flag prior to the - whole loop, rather than within the loop near its beginning. - - * Makefile.am: New file, replacing Makefile.in. - -1996-08-20 François Pinard - - * base64.c, quoted.c: New files. - * Makefile.in: Adjusted. - Reported by Alain Magloire, Marc Shapiro and Markus Kuhn. - - * recode.h: Declare MASK. - * utf8.c, utf16.c: New files. - * Makefile.in: Adjusted. - Reported by Markus Kuhn. - -1996-08-06 François Pinard - - * charset.c (decode_known_pairs): Better detect bad usages. - Reported by Thomas M. Ott. - - * charset.c (list_all_charsets): Initialize list_flag properly. - Reported by Thomas M. Ott. - -1996-01-07 François Pinard - - * recode.h: Define GET_BYTE, PUT_BYTE and PUT_YYTEXT. - * bangbang.c, recode.c, cdcnos.c, flat.c, ibmpc.c, iconqnx.c: - Replace getc (input_file) by GET_BYTE, and putc (expr, - output_file) by PUT_BYTE (expr). - * mergelex.awk: Declare output_file as static variable, and - initialize it, as well as yyout, from the recoding routines. - * ascilat1.l, htmllat1.l, ltexlat1.l, txtelat1.l: Replace output - (expr) by PUT_BYTE (expr) and ECHO by PUT_YYTEXT. - -1995-12-30 François Pinard - - * recode.h, txtelat1.l, recode.c: Replace __P by - PARAMS, to respect ANSI C. - -1995-11-29 François Pinard - - * charset.c, recode.c: Uniformly write nonzero instead of - non-zero. - Reported by Karl Berry. - -1995-07-10 François Pinard - - Distribution unflattened, for using GNU gettext. - * Makefile.in: New file. - -1995-06-22 François Pinard - - * recode.c (usage): Relate -d to HTML in --help output. - Reported by Bert Schweitzer. - - * pt.po: New, for Portuguese. - * configure.in (LINGUAS): Adjusted. - Reported by Vitor Duarte. - -1995-05-02 François Pinard - - * charset.c (HASH): Capitalize macro arguments. - * cdcnos.c (file_cdcnos_ascii): Use comma operator when assignment - in test. - -1995-04-11 François Pinard - - * The trend of redefining many tables in recode around Unicode - will solve problems reported by a few users, listed here. - Reported by Juliusz Chroboczek (l2), Lukas Petrlik (l2). - -1995-03-31 François Pinard - - * configure.in: Quote AC_MSG_WARN argument. - -1995-03-19 François Pinard - - * configure.in: Remove GLOCALE, add LINGUAS, use fp_WITH_CATALOGS. - * Makefile.in: Modify accordingly. - * acconfig.h: Add description for WITH_CATALOGS. - * recode.h: Use WITH_CATALOGS to define _() differently. - -1995-03-18 François Pinard - - * recode.c (decode_request, scan_request, scan_charset, - scan_decodings, scan_check_last_charset, scan_name, - edit_sequence): Rewritten to replace previous decode_before_after, - initialize_scan, terminate_scan and scan_charset, echo_sequence, - and the code in main establishing the sequence of recoding steps. - - * recode.c (output_header_file): Clean up extra underscores, do - not use _to_ anymore. - -1995-02-28 François Pinard - - * recode.h (struct charset): Add charset_flag, encoding and decoding. - * recode.h, recode.c (declare_encoding): New function. - * recode.c (perform_auto_check): Skip over encodings. - * recode.h, charset.c: Use plural for make_argmatch_array. - (clean_charset_name): Implement a second argument to flag that only - encodings are allowed. All callers changed. - * charset.c: Replace argmatch_array by argmatch_charset_array, then - add argmatch_encoding_array, parallel to it. - (compare_struct_hash): Group all encodings together in sort. - (list_all_charsets): Prefix encodings with `/' or `[/]' in output. - (declare_alias): Copy the encoding flag to the created alias. - - * recode.c: Rename sequence to sequence_array. - - * recode.c (echo_sequence): Output syntax more similar to - acceptable input. Escape spaces, colons and others. - (echo_charset_name): New function. - - * recode.c (file_copy): Use fread and fwrite instead of getchar - and putchar, in hope of accelerating the routine a little. Also - declare BUFFER_SIZE. - - * recode.c: Get rid of MAX_SEQUENCE and MAX_SINGLE_STEPS. - (find_sequence): Reallocate sequence_array as needed. - (new_single_step): Reallocate single_step_array as needed. - -1995-02-27 François Pinard - - * recode.c (declare_step): Let ansi2knr clean out functionnal - arguments, since it now can do it. - -1995-02-21 François Pinard - - * configure.in, Makefile.in: Replace `date' by `echo timestamp'. - Reported by Greg McGary and Jim Meyering. - -1995-02-19 François Pinard - - * Makefile.in: Support an ID file. Do not distribute TAGS. - Reported by Greg McGary. - -1995-02-05 François Pinard - - * Makefile.in (maintainer-clean): New name for realclean. - -1995-01-11 François Pinard - - * recode.c (long_options): Add "known", which was forgotten. - Reported by Hennus Bergman and Thomas M. Ott. - -1995-01-05 François Pinard - - * mergelex.awk: Use new Flex 2.5 start condition scopes; simplify - the script accordingly. Generate %option noyywrap instead of an - yywrap routine. Replace #ifdef by #if to test USE_FPUTC. - * mergelex.old: Saved version, for those having Flex prior to 2.5. - * Makefile.in: Distribute it. - - * mergelex.awk: Escape the period in the regexp which has the - purpose of removing the last period from step_name, so it will not - be any character. - -1994-12-26 François Pinard - - * ibmpc.c (module_ibmpc): Accept dos, MSDOS and pc as new aliases - for the IBM-PC charset. - -1994-12-22 François Pinard - - * nl.tt: New, for Dutch. - Reported by Hennus Bergman. - -1994-12-05 François Pinard - - * de.tt: New, for German. - Reported by Ulrich Drepper. - -1994-12-03 François Pinard - - * Makefile.in: Do not unprotoize libintl.c, now done in sources. - - * Makefile.in (realclean): Delete stamp-cod. - - * recode.c (print_copyright): New routine from old code. Print - copyright to stdout, not stderr. Use fputs instead of printf. - (main): Use it for -C. - -1994-12-01 François Pinard - - * Prerelease 3.4.1. - - * configure.in, Makefile.in, acconfig.h, recode.c: Rename PRODUCT - to PACKAGE. - - * configure.in, Makefile.in, recode.c, recode.h: Adjust for GNU - locale as per sharutils'. - * LOCALE, libintl.c, libintl.h: New files, from elsewhere. - * fr.tt: New file, for French. - * Makefile.in: Define SOURCEX and use it to prepare the .cod file, - because extract-msgs cannot grok Flex sources yet. - -1994-11-23 François Pinard - - * recode.h, recode.c, txtelat1.l: Rename _ to __P. - * recode.h: For now, declare _ as a macro returning its argument. - * recode.c, charset.c: Use _ macro over all localizable strings. - -1994-11-16 François Pinard - - * lat1ltex.c, ltexlat1.l: Add \copyright{} and \pound{}. - Use !` and ?` instead of erroneous !' and ?'. - Reported by Christian Rolland and Ricard Torres. - -1994-11-15 François Pinard - - * lat1html.c: Added "other" code 34, and "normal" codes 160-191. - Changed &([AEIOUaeiou])circu; to &\1circ;, &([AEIOUaeiouy])diaer; - to &\1uml;, &AE; to Æ, &ae; to æ, &MULT; to ×, - &DIVIS; to ÷, &([Oo])stroke; to &\1slash; and &ssharp; to - ß. - * htmllat1.l: Changed accordingly. But accept previous codings as - well as new ones. Accept &#NNN; where NNN is a Latin-1 code. - Accounting for HTF conventions: accept &brkbar; for ¦, and - Đ for Ð. Accounting for Emacs-w3 conventions: accept - ¨ for ¨, ‐ for ­, ¯ for &hibar;, and - ½ for ½. So, w3:l1 | l1:w3 could be used for - normalizing. - - Reported by Arnaldo Mandel, Bernt Guldbrandtsen, Bert Schweitzer, - Christian Limpach, Christian Recktenwald, Christian Rolland, David - Mentre, Detlev Droege, Dominique Quatravaux, Françoise Audebrand, - Frederic Albrecht, Frère Roy, Gabriel P. Silva, Georg Haefele, Guy - Lapalme, Jacques Madelaine, Jens Quade, Jörg Höhle, Jose Joao - Almeida, Juergen Zeller, Kester Habermann, Kevin Stuckless, Farzad - Farid, Hennus Bergman, Martin J. Dürst, Mikko Silvonen, Nicolas - Thiery, Olivier Tharan, Per Steinar Iversen, Povl H. Pedersen, - Richard Plasun, Saverio Pangoli, Sebastian Huebner, Slaven Rezic, - Sumit Bose, Thomas Gebhardt, Thomas Seeling, Walter Müller, Wiel - Seuskens, Wolfgang Boerner and Wolfgang Wander. - - * htmllat1.l (module_html_latin1): Declare ISO_8879:1886 as the - official charset name, and HTML as an alias. Add other aliases: - entity and SGML. - * lat1html.c (module_latin1_html): Idem. - Reported by Christian Rolland. - -1994-11-14 François Pinard - - * Makefile.os2, config_h.dos: Updated. - Reported by Kai Uwe Rommel. - - * configure.in: Check for and . - * recode.h: Include or declare gettext. - * recode.c: Possibly include and call setlocale. - - * recode.c: Clean most #ifdef's into #if's. - - * recode.h: Declare error_print_progname. - * recode.c: Initialize it. - (error_print_prefix): New routine. - PERROR, PERROR1: New macros, use them. - - * recode.c (main): Abolish the distinction between program_name - and program_path. Let program_name convey more information. - -1994-11-11 François Pinard - - * recode.c (perform_auto_check): Avoid a NULL dereference. - Reported by Andreas Schwab, Colin Plumb, Harald Koenig, Julio - Sanchez, Hennus Bergman, Michael Schmidt, Nathanael Makarevitch, - Stefan Albertz, Wilhelm Zadrapa and Yves Arrouye. - -1994-11-08 François Pinard - - * Makefile.in: Define PERL as perl, and use it. - Reported by Michael Shields. - - Remaking the MSDOS port: - * configdos: All revised. - * config_h.dos: Renamed from config.h.dos, and revised. - * Makefile.in (distdos): All revised. - (Makefile.tcc, libobjs.tcc, objects.tcc): New goals. - * dosfname: New Perl script. - * recode.c (setup_signals): Forget SIGPIPE if not defined. - -1994-11-07 François Pinard - - * Makefile.in (stamp-vti): Use new -r option to date. - - * charname.pl: Escape @ into \@, for Perl 5. - Reported by Eric Backus and Michael Shields. - - * Makefile.in (merged.c): Little typo (a missing backslash). - Reported by Arnaldo Mandel, Bert Schweitzer, Christian Limpach, - Eric Backus, Farzad Farid, Gabriel P. Silva, Jacques Madelaine, - John van Krieken, Kester Habermann, Kevin Stuckless, Marc Gingold, - Phyllis Frankl, Povl H. Pedersen, Thomas Gebhardt and Wolfgang - Wander. - - * recode.h: Move the typedef enum QUALITY declaration forward, - because of the HP-UX 9.01 compiler which needs it. - Reported by Daniel Taupin and Eric Backus. - -1994-11-05 François Pinard - - * Version 3.4. - - * Makefile.in (realclean): Also remove stamp-vti. - - * recode.c (main): For now, inhibit -s with a warning, when -g. - This is only a temporary non-solution for a coredump problem. - Reported by David E. A. Wilson. - - * recode.c (main): When diagnosing an irreversible recoding, do - not falsely say that the -f option was not specified. - (usage): Insist on the fact that -f is currently always selected. - Reported by David E. A. Wilson. - -1994-11-02 François Pinard - - * configure.in: Check for const only after having found possible - ANSIfying compiler flags, this is of no use to check it before. - -1994-10-31 François Pinard - - * unhexify.l: Deleted. Not up to GNU standards for distribution. - * Makefile.in (BACKLOG): Goal deleted. It was depending on files - which are not part of the distribution. - Reported by Jim Meyering. - - * checkit: Force -f on most recode calls, to avoid diagnostics. - - * Makefile.in: Clean up, following the one in GNU sharutils. I - will not detail all the changes here. - * configure.in: Likewise. - * recode.c: Use PRODUCT and VERSION instead of version_string. - * acconfig.h: Document PRODUCT and VERSION. - * recode.h: Interface with dmalloc if WITH_DMALLOC. - -1994-10-30 François Pinard - - * recode.h, recode.c: Use #if rather than #ifdef to test __STDC__. - -1994-10-11 François Pinard - - * mergelex.awk: Declare yywrap only if not already a preprocessor - symbol, because some versions of Flex define it. - Reported by David van Leeuwen. - -1994-10-10 François Pinard - - * lat1asci.c: Implement O and o with stroke, y with diaeresis, and - german sharp s (as s overstroken with double quote). - * ascilat1.l: Corresponding changes. - Reported by Michael Gschwind. - - * lat1txte.c (init_latin1_texte): Ensure diaeresis_char will be - used in the computed translation table. It was ignored. - * txtelat1.l: Ensure diaresis_char is recognized where it should. - - * ascilat1.l: Remove all references to diaeresis_char, because - backspaced ASCII was never meant to be sensible to option -c. - -1994-10-09 François Pinard - - * recode.h: Get rid of CONFIG_BROKETS. - -1994-09-13 François Pinard - - * recode.c (usage): Use fputs instead of printf when possible. - - * recode.c: Implement -k option for searching through recodings. - * charset.c (decode_known_pairs): New function. - (list_all_charsets): Accept a parameter and obey restrictions. - * recode.h: Declarations adjusted. - Reported by Ghislain Plamondon. - - * acconfig.h: Document PROTOTYPES. Strange enough: how did it - ever work without this? - - * configure.in: Adjust for Autoconf 2.0. - * install-sh: New name for install.sh. - * Makefile.in: Put date in stamp files. - (DISTFILES): Adjust. - -1994-09-06 François Pinard - - * Makefile.in (TAGS): Remove -t from etags call. - -1994-07-08 François Pinard - - * ansi2knr.1: New file, from elsewhere. - * Makefile.in (DISTFILES): Distribute it. - -1994-06-03 François Pinard - - * recode.c (usage): Spell `Texinfo' with a capital. - -1994-04-13 François Pinard - - * Makefile.in (Makefile, etc.): Adapt for Autoconf 1.8. - -1994-03-19 François Pinard - - * lat1asci.c (init_latin1_ascii): Do not allocate pool separately - from table, so they can be freed at once. - * lat1html.c (init_latin1_html): Idem. - * lat1ltex.c (init_latin1_latex): Idem. - * lat1txte.c (init_latin1_texte): Idem. - - * recode.c (simplify_sequence): Despite not reversible, accept - producing RFC 1345 short mnemonics, outside any double step, - constructing a one-to-many table on the fly. When exploring foreign - files, there might be no other easy choice. - * charset.c (init_table_for_rfc1345): New. - * recode.h: Declare it. - Reported by Roman Czyborra. - -1994-03-11 François Pinard - - * lat1ltex.c: Recode 160 as `~', not as `\ '. - * ltexlat1.l: Recode `~' (instead of `\ ') to 160. - Reported by Nicolas Anquetil. - - * ltexlat1.l: Ensure that recode does not match only part of the - identifier following `\'. This was easily solved by adding a few - Flex rules at end and relying on the Flex longest match law. - For example, because Latin-1 misses the latin `oe' diphtong (!), - `\oe' was seen as the recodable `\o' followed by an isolated `e'. - Reported by Mac Pigman and Nicolas Anquetil. - - * ltexlat1.l: Reformatted for a more uniform Flex quoting. - - * recode.c (execute_popen_sequence): Ensure -d option is properly - transmitted to subprocesses. - Reported by David Kastrup. - - * lat1html.c, htmllat1.l: New, for supporting HTML conversions. - * lat1ltex.c: Add a few static specifiers to tables. - * Makefile.in: Adjusted. - Reported by David Lebel. - -1994-02-07 François Pinard - - * Makefile.in: Avoid $(CFLAGS) while linking. - - * configdos: Link to locally installed configdos. - * dosfn: Replaced by a link to locally installed dosfn. - * dosfn.pl: Deleted, included in installed configdos and dosfn. - * configdos.pl: Deleted. - * Makefile.in: Call dosfn and configdos as programs, provide -tcc - to configdos. Do not distribute prepared DOS files anymore in the - tar file. Prepare the DOS makefile directly in distdos goal, also - put in distdos the preparation of libobjs.lst and objects.lst. - -1994-02-04 François Pinard - - * recode.c (file_one_to_many): When an irreversibility is found, - run recoding to completion instead of interrupting it, then return - whether it is reversible or not, disregarding force_option. - * bangbang.c (file_banbang_latin1): Idem. - * cdcnos.c (file_cdcnos_ascii): Idem. - * flat.c (file_ascii_flat): Idem. - * ibmpc.c (file_latin1_ibmpc, file_ibmpc_latin1): Idem. - * iconqnx.c (file_ibmpc_iconqnx, file_iconqnx_ibmpc): Idem. - * recode.h: Do not declare force_option anymore. - -1994-01-18 François Pinard - - * recode.c (declare_step): Rewrite the prototype differently if - not __STDC__, because ansi2knr does not clean prototypes in - functionnal arguments. - * txtelat1.l: Declaring texte_latin1_diaeresis, use _((void)). - Reported by Rejean Payette. - -1994-01-15 François Pinard - - * recode.c (main): With absolutely no arguments, imply --help. - Reported by Kai Uwe Rommel. - -1994-01-14 François Pinard - - * recode.c (usage): Print the version string in --help. - Reported by Kai Uwe Rommel. - - * recode.c: Ajust for easing OS/2 EMX port. - * Makefile.os2, config_h.os2: New files. - * Makefile.in: Distribute them. - Reported by Kai Uwe Rommel. - - * recode.c (usage): Print a blank line after the first prototype. - -1994-01-13 François Pinard - - * configdos.pl: Renaming GNUmakefile to makefile.gnu. - - * recode.c (output_header_file): Use tabs instead of spaces before - generated comments. - -1994-01-08 François Pinard - - * recode.c: Condense "file = action(); if (file == NULL) ..." into - "if (file = action(), file == NULL) ..." consistently. - -1994-01-07 François Pinard - - * configure.in: Check AC_RETSIGTYPE. - * recode.c: Include , , define RETSIGTYPE. - (signal_handler, setup_signals): New. - (main): Call setup_signals. - (execute_pipe_sequence): Do not diagnose SIGPIPE as an unknown error. - - * recode.c (main): Replace program_name by program_path. - Introduce program_name, receiving the basename of program_path. - (execute_popen_sequence): Use program_path instead of program_name. - - * recode.c (dup2): New, for when HAVE_PIPE && !HAVE_DUP2. - - * ebcdic.c: Connect to ASCII instead of to ASCII-BS. - * recode.c (register_all_modules): Alias to ASCII right away. - - * recode.c (register_all_modules): Alias ASCII-BS to BS. - * cdcnos.c (module_cdcnos): Alias CDC-NOS to NOS. - * iconqnx.c (module_iconqnx): Alias Icon-QNX to QNX. - * lat1ltex.c (module_latin1_latex): Alias LaTeX to TeX. - * ltexlat1.l (module_latex_latin1): Alias LaTeX to TeX. - -1994-01-06 François Pinard - - * Version 3.3.1, in the MSDOS world only. - - * all: Everywhere, change charset names from latin1 to Latin-1, - latex to LaTeX and texte to Texte. Change applemac to Apple-Mac, - ascii-bs to ASCII-BS, atarist to AtariST, bangbang to Bang-Bang, - cdcnos to CDC-NOS, ebcdic to EBCDIC, ebcdic-ccc to EBCDIC-CCC, - ebcdic-ibm to EBCDIC-IBM, ibmpc to IBM-PC and iconqnx to Icon-QNX. - - * recode.c: For MSDOS, increase the stack length through _stklen. - - * recode.c: Diagnose more precisely all errors involving errno, - while calling error. In particular, include __FILE__:__LINE__. - - * recode.c (main): Unless under MSDOS, use rec.tmp for the - file name of the temporary recoded file instead of recodeXX.TMP. - - * recode.c: Rename optimize_sequence to simplify_sequence, and - optimizable_type to symplify_type. - - * recode.c (execute_popen_sequence): Return 0 if the subprocess - fails, instead of exiting with a diagnostic. Pass -f option to - subprocesses if selected. Always pass -q to shut them down. - Construct the popen_command piecemeal instead of a big sprintf. - (main, usage): Implement option --quiet (-q, --silent). - - * recode.c (execute_pass_sequence): Interrupt the current recoding - and return 0 if any step fails, if this happens, unlink a possibly - existing temporary file. - - * recode.c (execute_pipe_sequence): Unconditionnaly close the - output file from the parent before waiting, instead of closing - it only if there was an output name. Let the parent accumulate - the exit status of all children before returning its own. - * configure.in: Let HAVE_PIPE be defined. This old bug ig gone! - - * recode.c (perform_auto_check, perform_auto_check_one): Renamed - and split from function report_about_all_sequences. Now accepts a - CHARSET argument for limiting the search. - (main): Allows an optional command line argument to --auto. - (usage): Adjusted accordingly. - - * recode.c (main): Diagnose extraneous arguments to --list. - - * recode.c (compare_struct_item): New. - (init_recode_rfc1345): Partial rewrite for replacing the quadratic - pairing algorithm with a logarithmic-linear one, cleaning up a bit. - -1994-01-04 François Pinard - - * txtelat1.l: Undo the 1990-03-15 change. If there is still a bug - in this area, I will let it show its nose again... - - * mergelex.awk: Remove the X_ prefix for start condition names. - - * configure.in: Remove all about LEXLIB, flexlib and LIBOBJS, - since flex (version 2.4.6) generated scanners are self contained. - * flexlib.c: Deleted. - * Makefile.in: Adjusted. - - * recode.c (optimizable_type): New, from optimize_sequence. - (optimize_sequence): Use it. - - * charset.c (clean_charset_name): Set decoding_charset_flag just - before calling usage instead of early, do not care resetting it. - - * next.c: Renamed from nextstep.c. NeXTSTEP changed to NeXT. Add - f2 as florin (166) and '" as hungarian umlaut (205). Remove - USE_DOUBLE_STEP by making the code permanent, remove older code. - * charname.pl: Especially define f2 as florin. - * Makefile.in: Adjusted. - Reported by Keld Jørn Simonsen. - - * alloca.c: Deleted, not used anymore. - * configure.in: Remove AC_ALLOCA test. - * Makefile.in: Remove alloca.* references. - - * configure.in: Read DEFAULT_CHARSET from environment if set. - Reported by Andreas Schwab. - -1994-01-03 François Pinard - - * Makefile.in (.stamp-collect): Say when initstep.h altered. - - * charset.pl: Now produce split charset1.c and charset2.c instead - of a single big charset.h. This seems mandatory for MSDOS, even - with huge model. Some Unix C compilers will crawl faster, too. - * Makefile.in: Adjusted. - - * README.DOS: New file. - * configdos.pl: Much revised. The script no longer have a - config.tcc input, now taking its information from Makefile.in. - * dosfn: New file, from elsewhere. - * dosfn.pl: New file, common between configdos.pl and dosfn. - * Makefile.in: Distribute configdos.pl again, together with - dosfn.pl and makefile.dos. Adapt for MSDOS and configdos.pl. - - * recode.c: Delete inactive code for selecting DEFAULT_CHARSET, - this being now done from configure or by already preset config.h. - - * atarist.c: Rewritten for using a double step, instead of two - steps in and out latin1; the new code is triggered by defining - USE_DOUBLE_STEP, the old code will be kept for a little while. - Reported by Andreas Schwab. - - * Makefile.in: Do not define LDFLAGS, use CFLAGS on link calls. - * configure.in: Remove LDEFS substitution, seemingly unused. - Reported by Richard Stallman. - -1994-01-01 François Pinard - - * flat.c: Transmit '\t' as is, it was erroneously changed to '\n'. - -1993-12-31 François Pinard - - Begin work for implementing --force. To be completed later. - * recode.c (file_one_to_one): Return 1 instead of void. - (file_one_to_many): Return a value saying if the recoding was - successful or not, instead of void. - (execute_pass_sequence): Return 1 (unfinished). - (execute_popen_sequence): Return 1 (unfinished). - (execute_pipe_sequence): Return 1 (unfinished). - (execute_sequence): Return the status got from execute_*_sequence, - use it to alter "done" into "DENIED" when using -v. - (declare_step): Adjust file_recode parameter declaration. - (main): Have --graphics imply --force. - * recode.h: Adjust declarations. Declare error, force_option. - * bangbang.c (file_bangbang_latin1): Similarily. Also, do not - recode "!!J" or "!!j" into '\n' unless -f. - * cdcnos.c (file_cdcnos_ascii): Similarily. Also, do not recode - "^)" into '\n' unless -f. - * flat.c (file_ascii_flat): Similarily. - * ibmpc.c (file_latin1_ibmpc, file_ibmpc_latin): Similarily. - Also, do not recode isolated '\n' or '^Z' unless -f. - * iconqnx.c (file_ibmpc_iconqnx, file_iconqnx_ibmpc): Similarily. - Also, check for preventing the production of a few sequences which - would might be recoded back differently, unless -f. - * mergelex.awk: Similarily for generated file_ - routines. Return the yylex result. At <>, return 1. - - * charset.c (make_argmatch_array): Print a line of hash statistics - if HASH_STATS is defined. - - I used to have 408 names in 343/997 buckets, the following patch - gave 408 names in 332/997 buckets. Being worse, I commented it. - * charset.c (hash_string): Replace hash algorithm by GNU diff's. - * recode.h: Include and ensure CHAR_BIT is defined. - * configure.in: Test for . - - * recode.c (optimize_sequence): Delete a remaining single step if - it happens to be the identity recoding. - (echo_sequence): Better diagnose the trivial recoding. - (file_one_to_one): Remove detection of special one_to_same case. - (report_about_all_sequences): Simplify detection of one_to_same. - - * Makefile.in: Distribute .stamp-collect and initstep.h. This - should alleviate problems caused by some sh/sed combinations, - still unstudied, which are unable to make initstep.h properly. - Reported by Michael L. Dowling. - -1993-12-30 François Pinard - - * flat.c: Consider `~' as a diacritic character. - * File-Latin1: New file, intended to help testing/playing. - * Makefile.in: Distribute File-Latin1. - Reported by Martin Maechler. - -1993-12-29 François Pinard - - * Makefile.in (merged.c): Split the pipe in parts, because - otherwise all status except the last of the pipe are lost for - make. This is seemingly a feature of sh. - Reported by Vern Paxson. - -1993-12-25 François Pinard - - * configure.in: Check for vprintf and strerror, for error.c. - - * recode.c (usage): Indicate that --help and --version exit. - -1993-12-24 François Pinard - - * Makefile.in: Remove all as dependency for uninstall. - - * Makefile.in: Split HEADERS, giving also LIBHDRS. Use it. - -1993-12-23 François Pinard - - * Version 3.3. - -1993-12-21 François Pinard - - * *.c: Delete unused variables, add a few missing const's. - - * nextstep.c: Rewritten for using a double step, instead of two - steps in and out latin1; the new code is triggered by defining - USE_DOUBLE_STEP, the old code will be kept for a little while. - This has two advantages: recode can obey various -l options for - NeXTSTEP, and I can remove the full style table from the - documentation. - Reported by Martin Maechler. - - * Makefile.in (clean): Also delete unhexify. - - * Makefile.in (tags): Include $(HEADERS). - (TAGS): Idem. Also use -t on etags. - -1993-12-20 François Pinard - - * charset.c (hash_string): Cast unsigned to int before modulo. - * recode.c (print_truncated_charset_name): Cast strlen result to - int before using it in an arithmetic comparison. - - * recode.c (complete_pairs): When a conflict is found, diagnose - which charsets are involved. - Reported by Bastian Schlueter. - - * nextstep.c: Add pair {182, 182} for paragraph sign. - Reported by Bastian Schlueter. - - * recode.c (main): Replace long names --files, --popen and --pipe - by common --sequence=METHOD. - (usage): Document this. - - * recode.c (decode_before_after): Use backslash as escape. - (execute_popen_sequence): Clean up charset names before popen. - Reported by Keld Jørn Simonsen. - -1993-12-19 François Pinard - - * charset.pl: Send diagnostics to stderr instead of charset.LOG. - - * charset.pl: Discard &duplicate lines without discarding the - associated charset. - - * charset.pl: Canonalize names the same way charset.c does, detect - duplicate names or aliases based on canonical names. Do not - discard a charset merely for an alias name clash. - - *charset.pl: Delay the generation of charset.texi, sort the - @item's by charset name and, within each, sort aliases. - - * recode.h: Add a size field to the charset structure, declare a - size parameter to declare_double_step. - * charset.pl: Handle charsets having more than 2 characters per - symbol, transmit measured size into declare_double_step calls. - * recode.c (declare_double_step): Accept and save a size parameter. - * charset.c (code_to_symbol): New routine for handling size field. - (list_full_charset, list_concise_charset): Adapt to using it. - -1993-12-16 François Pinard - - * charset.c: Add cleanup_charset_name, use it in find_charset, - declare_alias and decode_charset_name. Rename compare_hash_name - to compare_struct_hash. - (list_all_charsets): Repeat the name even if it is not alias, - because it has been cleaned up. - Reported by Keld Jørn Simonsen. - -1993-12-14 François Pinard - - * charset.pl: Generating charset.h instead of charset.c. - * charset.c: New. - * recode.c (prepare_charset_initialization): New. - (hash_string, find_charset, declare_alias, make_argmatch_array, - decode_charset_name, compare_hash_name, list_all_charsets, - list_full_charset, list_concise_charset): Moved into charset.c, - together with a few defines, struct hash and related declarations. - * Makefile.in: Adjusted. - -1993-12-13 François Pinard - - * Renaming rfc1345.c into charset.c, rfc1345.pl into charset.pl, - rfc1345.sed into charset.sed and rfc1345.LOG into charset.LOG. - * Makefile.in, charset.pl: Adjusted. - - * charname.c: New. - * charname.pl, charname.sed: New, for generating charname.h. - * Makefile.in: Adjusted. - * recode.h: Add declaration for charname_to_comment. - * recode.c: list_charsets renamed to list_all_charsets. - New functions list_full_charset and list_concise_charset, enum and - variable list_format. Decode the list format, check for a charset - argument and switch to the proper listing function. - - * acconfig.h: New, for holding DEFAULT_CHARSET. - * Makefile.in: Distribute it, have .stamp-h.in depend on it. - * configure.in: Substitute DEFAULT_CHARSET instead of DEFCHARSET. - - * configure.in: Include $LEXLIB in $LIBS when $LEX is flex, so the - yy_flex_alloc test will not always fail, waiting for a version of - Autoconf which will do this itself. - * Makefile.in: Do not add @LEXLIB@ to LIBS anymore. - Reported by Andreas Schwab. - - * checkit: Replace `+' by `*' in grep calls. - Reported by Andreas Schwab. - - * recode.c (usage): Replace --include by --header in text. - -1993-12-11 François Pinard - - * recode.c (list_charsets): Move all aliases of a charset after - the true charset name on its line, keeping lines sorted on the - true charset name and all alias in lexicographical order. All - charset and aliases used to be sorted together, one per line. - (compare_hash_names): Sort accordingly. - Reported by Martin Maechler. - - * recode.c: Add make_argmatch_array and decode_charset_name. Use - them, simplifying decode_before_after. Process ignored_charset - even for the -a option. Add print_truncated_charset_name and use - it to simplify report_about_all_sequences, not reporting an - unachievable recoding when ignored_charset is specified. - - * recode.c (find_sequence): Ensure verbose is executed even if no - path has been found, instead of returning early. - - * recode.c (optimize_sequence): Remove the compute_arrays - parameter, because report_about_all_sequences now studies the - produced arrays. Callers changed. - - * recode.c (optimize_sequence): While merging rfc1345 steps, also - merge qualities instead of assuming REVERSIBLE. - Reported by Rejean Payette. - - * recode.h: Declare strict_mapping. - * recode.c (complete_pairs): Do not set quality, this is done - elsewhere in all cases. But do preset the file recoding routine. - * applemac.c, atarist.c, nextstep.c: In declare_step calls, lower - the recoding quality to some *_TO_MANY whenever strict mapping is - in use, also specify NULL as the file recoding routine because - complete_pairs now initializes it. - * ibmpc.c: Idem. But override file_recode after complete_pairs. - - * ibmpc.c (file_latin1_ibmpc, file_ibmpc_latin1): Repeat the - algorithm, but using the one_to_many table when strict mapping. - - * recode.c (declare_double_step): Create both single steps without - the help of declare_step, this spares four probes in the charset - table per call. - -1993-12-10 François Pinard - - * recode.h: Add CHARSET and struct charset, use CHARSET *before - and after instead of int start_charset and goal_charset in STEP, - declare rfc1345 as CHARSET * instead of int, delete struct - double_link and rfc1345_link declaration and rather include the - DOUBLE_TABLE right in CHARSET, add a DOUBLE_TABLE parameter to - declare_double_step, - * recode.c: Make all necessary related changes. Renaming of many - variables and cleanup, too numerous to report here. Delete - name_from_value and ignored_array in favor of new CHARSET fields. - - * recode.c: Change :rfc1345 to rfc1345. Add `.' as an alias. - (report_about_all_sequences): Avoid rfc1345 instead of avoiding - names beginning with colon. - - * applemac.c: Renamed (once again) from macintosh.c. The codes - will be kept different until further study. Comment out the - aliasing of applemac to macintosh. - * ibmpc.c: Comment out the aliasing of ibmpc to ibm437, because - making the codes equivalent requires further study. - * Makefile.in: Adjusted. - - * recode.c: Implement --ignore (-x) option and ignored_array. - (find_charset): Progressively initialize ignored_array to zero. - (find_sequence): Ignore steps with an ignored start charset. - (decode_before_after): Process the ignored charset. - - * recode.c (usage): Make the output little more legilable through - spacing. Insist on -l, mention the Info documentation, propose a - few selected charsets. - Reported by Martin Maechler. - - * recode.c: Rename make_include_mode into make_header_mode, - include_name into header_name, output_include_file into - output_header_file, turn --include option name into --header. - - * recode.c: Add before_name and after_name, use them in - decode_before_after and in output_header_file. This prevents - the spurious canonalization of alias charset names. - - * recode.c: Implement --strict (-s) option. - (complete_pairs): Accept a step parameter and slip the generated - table in it instead of returning the table. Adjust for --strict. - (init_recode_rfc1345): Adjust for complete_pairs. - * atarist.c, macintosh.c, nextstep.c: Idem. - * ibmpc.c: Idem. Also rewrite code for --graphics (-g). - - * recode.h: Declare ascii_graphics, diacritics_only and - diaeresis_char. - * ibmpc.c: Delete the ascii_graphics declaration. - * lat1ltex.c, ltexlat1.l: Delete the diacritics_only declaration. - * ascilat1.l, txtelat1.l: Delete the diaeresis_char declaration. - * mergelex.awk: Have it work when there is no %{ ... %} part. - - * recode.c (report_about_all_sequences): Report charsets which are - dynamically discoverd to recode identically by "ONE to SAME". - - * recode.c: Declare HASH_TABLE_SIZE, hash_string. Rewrite - find_charset and declare_alias to use hashing. Also adjust - list_charsets and decode_before_after. - -1993-12-09 François Pinard - - * recode.c: Delete name_from_value function, replace with an - array of same name. Delete field refer from struct charset, - initialize and use name_from_value instead. - - * Makefile.in (clean): Remove *.a, for librec.a. - Reported by Pierre Gaumond. - - * Makefile.in (clean): Move in *.o from mostlyclean. - - * rfc1345.pl: Print progress on stderr, for entertaining me. - Document aliases in rfc1345.texi through English sentences. - -1993-12-08 François Pinard - - * flexlib.c: New, for -lfl does not work everywhere. - * mergelex.awk: Produce a yywrap function in section 3. - * configure.in: Configure flexlib.o in LIBOBJS if necessary. - * Makefile.in: Adjusted accordingly. - - * recode.c (name_from_value): Renamed from true_charset_name. - (find_charset): Add a "create" parameter, merge in new_charset. - (new_charset): Deleted. All callers changed. - - * recode.h: If not __STDC__, have _() return (), not empty. - Reported by Pierre Gaumond. - - * Makefile.in (distclean): Remove config.h. - - * bangbang.c, cdcnos.c: Use "while (x = y, x != z)" instead of - "while ((x = y) != z)". - - * install.sh: Attach execute permission to this file. - Reported by Pierre Girard. - - * lat1ltex.c: Produce {\i} instead of \i{}. It's nicer. - Reported by Pierre Girard. - - * recode.c: Declare argmatch. Default charsets were not obeyed. - (decode_before_after): When DEFAULT_CHARSET is defined, use it - instead of the empty string when calling argmatch. - (find_charset): Do not check for empty strings anymore. - -1993-12-07 François Pinard - - * Makefile.in (install): Add recode.info in dependencies. - - * recode.c: Use USE_TMPNAM to bracket out old tmpnam code out and - USE_TMPFILE to allow in new tmpfile code. - (execute_pass_sequence): Use tmpfile instead of tmpnam. - Reported by Bastian Schlueter (suggests that -i => -o on NeXT). - Reported by Ronald C.F. Antony. - Reported by Andreas Schwab. - - * recode.c (output_include_file): Ensure a valid C identifier for - the table name. RFC 1345 uses bizarre names in that respect. - - * recode.c (main): While moving the new file over the original, - properly diagnose any failure. - Reported by David Lebel. - - * recode.c: Add decoding_charset_flag. - (usage): Print `Try recode --list' instead of `Try recode --help' - whenever decoding_charset_flag is true. - (decode_before_after): First set, then reset decoding_charset_flag. - - * recode.c (echo_sequence): Use a shorter print format, now that - we have real long charset names... - - * recode.c: Revert to using a `struct charset' to handle names and - alias. Turn charset_name into true_charset_name and charset_value - into find_charset. - - * Makefile.in (LIBOBJS): Put more on the second line, because if - @LIBOBJS@ is substituted empty, some make's barf at last `\'. - (recode.dvi): TEXI2DVI was mispelled. - Reported by Martin Maechler. - - * recode.c: Implement --list (-l) to alleviate Usage message. - (compare_charset_names, list_charsets): New. - -1993-12-06 François Pinard - - * rfc1345.txt: New, from elsewhere. - * rfc1345.sed, rfc1345.pl: New. - * Makefile.in: Handle rfc1345.c, distribute all of these. - * recode.c (declare_double_step): New. - (optimize_sequence): Replace all double steps through :rfc1345 by - a single step which will properly initialize itself. Diagnose any - remaining single step which uses :rfc1345 explicitely. - (register_all_modules): Make latin1 an alias for iso-8859-1-1987. - (report_about_all_sequences): Truncate the charset - names as needed, avoid considering charsets named `:*' alone. - (usage): Avoid printing `:*' steps as available. - * ascilat1.l, cdcnos.c, ebcdic.c, flat.c, lat1asci.c: Change name - of ascii charset to ascii-bs, keeping it separate from RFC 1345. - * ibmpc.c: Make ibmpc an alias for ibm437. - * Makefile.in (check): Adjusted for ascii-bs. - - As a side result of all this, more charsets are supported. - Reported by Per ?: who wanted IBM codepages in recode. - Reported by Hermann Hueni: who wanted Roman8 in recode. - - * Makefile: Merge C_STEPOBJS and L_STEPOBJS into STEPOBJS. - - * recode.c: Make -h argument optionnal, it was mandatory. - * recode.c: Include the quality in -a and -v output, repeat -v - output after step optimization if this changed something. - - * recode.h: Declare enum quality, QUALITY, quality_to_string and - merge_qualities. From STEP, delete the multichar_input, - multichar_output, loosing and reversible fields. Add one QUALITY - argument and two functionnal arguments to declare_step. - * all: Implement the preceeding changes. - - * recode.h: Use the _((...)) device more systematically. - Declare xmalloc. - -1993-12-05 François Pinard - - * ascilat1.l, bangbang.c, cdcnos.c, ibmpc.c, iconqnx.c, - lat1asci.c, lat1ltex.c, lat1txte.c, ltexlat1.l, macintosh.c, - txtelat1.l: Avoid using octal and hexadecimal, stick to using - decimal. Define constants when this helps source readability. - * flat.c: Replace octal masks with "<<" expressions. - * unhexify.l: New file. - * Makefile.in: Distribute it. - (detecthex, unhexify): New goals. - - * atarist.c: New charset. - * Makefile.in: Adjusted. - * recode.c: Use "atarist" as DEFAULT_CODE if atarist is defined. - Reported by Andreas Schwab. - - * nextstep.c: New charset. - * Makefile.in: Adjusted. - Reported by Bastian Schlueter. - Reported by Ronald C.F. Antony. - - * flat.c: Do not declare cccascii nor cdcascii. Delete - file_drop_8th_bit. - - * recode.c (complete_pairs): Produce better diagnostics. - Allow for NULs in known pairs, even if currently unused. - -1993-12-04 François Pinard - - * Makefile.in: Use .stamp-h.in to solve Autoconf problems. - Distribute mkinstalldirs and install.sh. Use mkinstalldirs. - * mkinstalldirs: New, from elsewhere. - * install.sh: New, from elsewhere. - - * Makefile.in (recode.info): On $(MAKEINFO) call, use - "-I$(srcdir)" instead of "-o recode.info". - - * ebcdic.c: Inclusion of GNU dd's "ibm" recoding, with two - modifications so the recoding becomes reversible. Removal of - static inverse tables, dynamically recreate them instead. - Replacement of cccascii and cdcascii by ascii, use ebcdic-ccc - instead of ebcdic in the context of disappearing cccascii. - * recode.c (invert_table): New. - * recode.h: Declare it. - - * recode.c: Replace CHARSET struct and charset_array by - charset_name_array and charset_value_array, then make all - necessary changes. Use argmatch for charsets. - * argmatch.c: New, from elsewhere. - * $(C_STEPS), $(L_STEPS): Remove all four letter aliases, except - "ltex" for "latex" and "txte" for "texte". - * recode.c (register_all_modules): Declare "lat1" as an alias for - "latin1". - * macintosh.c: Renamed from old applemac.c. Declare "macintosh" - as the charset name and "applemac" as an alias. - * Makefile.in: Adjusted. - (check): Write charsets in full. - -1993-12-03 François Pinard - - * Makefile.in: Add .stamp-collect for preventing initstep.h to be - uselessly touched, this was causing recode.c recompilations. - - * recode.c: Implement output_include_file. - - * recode.c: Extract file_mere_copy from execute_sequence, then - implement file_one_to_one, file_one_to_many, merge_steps and - optimize_sequence. - * recode.h: Declare these when not static. - * flat.c: Use file_mere_copy instead of NULL as file_recode. - * applemac.c, ebcdic.c: Use file_one_to_one. - * bangbang.c, cdcnos.c, lat1asci.c, lat1ltex.c, lat1txte.c: Use - file_one_to_many. - - * recode.h: Rename STEP field recode_file to file_recode and make - it return void instead of int, add init_recode and one_to_one - fields, declare KNOWN_PAIR structure and complete_pairs function. - * recode.c, $(C_STEPS), $(L_STEPS), mergelex.awk: Adjust. - * recode.c (declare_step): Initialize new fields. - (find_sequence): Initialize planned steps when possible. - (complete_pairs): New, adapted from maketabl.c. - * applemac.c: Use initialization and include macilat1.mtb table. - * ibmpc.c: Use initialization and include ibmplat1.mtb table. - * macilat1.mtb, ibmplat1.mtb, maketabl.c: Deleted. - * Makefile.in: Adjusted. - - * ltexlat1.l: Use {After} at more places, "accro\^\i tre" was not - recoded at all. - -1993-12-02 François Pinard - - * recode.c, all $(C_STEPS), all $(L_STEPS): Include "recode.h" - instead of "config.h". - * recode.h: New. - - * all $(C_STEPS): Delete "#define STEP ", because STEP will - be a describing structure from now on. Add module_ function - for initializing STEPs. Rename void STEP() to static int - recode_file(), add a first parameter for transmitting STEP. - * all $(L_STEPS): Delete "#define STEP " and instead, use - "/* Step name: . */". - * mergelax.awk: Do the proper thing with /* Step name: . */ - * steps.h: Deleted. Information which was contained there has - been spread out in modules instead, for adding flexibility. - * recode.c: Initialize all modules by including "initstep.h". - * Makefile.in: Dependencies for recode.h and initstep.h. - (initstep.h): Make it by extracting module_* lines from sources. - - * recode.c: Rename MAX_CONVERSION into MAX_SEQUENCE. Introduce - MAX_CHARSETS, MAX_SINGLE_STEPS, charset structure and array, - single_step array and related counters, functions declare_step - and declare_alias. Many other renaming of variables, too - numerous for here. Adapt all of the code so this works. - * xmalloc.c, xstrdup.c: New, from elsewhere. - - * bangbang.c: Merged from lat1bang.c and banglat1.c. - * cdcnos.c: Merged from ascicdcn.c and cdcnasci.c. - * ebcdic.c: Merged from cccaebcd.c, cdcaebcd.c, ebcdccca.c and - ebcdcdca.c. - * flat.c: Merged from asc8asc7.c and asciflat.c. - * ibmpc.c: Merged from lat1ibmp.c and ibmplat1.c. - * iconqnx.c: Merged from ibmpicon.c and iconibmp.c. - * Makefile.in: Adjusted. - - The net effect of all these changes is that charsets or their - single step methods are now easily configurable out of recode by - merely deleting them from C_STEPOBJS or L_STEPS in Makefile. - Reported by Claude Goutier. - -1993-12-01 François Pinard - - * ltexlat1.l: Ensure \'{e} is recognized as \'e. - Reported by Pierre Girard. - - * txteasci.l: Deleted for easing maintainance, there was too much - common code with txtelat1.l, and also, the "texte" charset is - prone to loosing characters, when used as an intermediate. - Reported by Claude Goutier. - - * ascitxte.l: Deleted likewise, almost same functionnality is - available through lat1txte.c. - * ltexasci.l: Deleted for easing maintainance, there was too much - common code with ltexlat1.l. - * asciltex.l: Deleted likewise, almost same functionnality is - available through lat1ltex.c. - * lat1asci.c: New, so "ascii" charset is connected to others. - * ascilat1.l: New, for same reason. - * Makefile.in: Adjusted. - - * Makefile.in (check): Diagnose unachievable recodings. - * recode: Implement --auto-check (-a) option. - (report_about_all_sequences): New. - (find_sequence): When recoding is not possible, return with a - negative value in length_of_sequence, do not call error. - (main): Call error if recoding is not possible. - - * configure.in: Replace DEFAULTCODE by DEFCHARSET. - * Makefile.in: Same, plus replace DEFAULT_CODE by DEFAULT_CHARSET. - * recode.c: Same, plus replace [*_]code[_*] by [*_]charset[_*], - NUMBER_OF_KEYWORDS by NUMBER_OF_CHARSETS and keyword_index by - charset_index. - * steps.h: Same things. - - * recode.c (usage): Tell which is the default code value. - - * recode.c: Implement --graphics (-g) option, and ascii_graphics. - * ibmplat1.c: Rename graphics_mode to ascii_graphics, making it - external. Use, document and revise CONVERT_GRAPHICS constant, - introducing "round" corners and more systematic principles. - -1993-11-30 François Pinard - - * recode.c: Process long options, then --help and --version. - Rename usage_and_exit() into usage(), accepting a parameter, - print a reminder about --help on stderr when in error, else - the longer usage message on stdout. Adjust all calls. - (print_copyright): Deleted, use copyright_string instead. - (print_version): Deleted, use version_string instead. - * getopt1.c: New. - * Makefile.in: Take care of getopt1.c. - - * HINTS: New file, to let README be smaller. - - * steps.h: Remove ENUM_INT_BUG code. The README did announce that - this code will disappear if nobody report it as necessary. - - * banglat1.c: Add "!;" to \346 for "ae" and "!<" to \367 for "oe". - * lat1bang.c: Do the converse translatation. "oe" is a kludge! - Reported by Pierre Gaumond. - - * checkit: Always output "Checking" messages, regardless of -v. - Have those messages resembling more to the actual recode calls. - Remove now useless error identification messages. - Use "cmp -s" instead of "diff" for comparing files. - * Makefile.in: Use $(SHELL) instead of sh in CHECKTEST. Remove -v. - -1993-11-29 François Pinard - - * recode.c (main): Declare argv as "char *const *argv" instead of - "const char *argv[]", for avoiding conflicts with some getopt(). - Reported by Andreas Schwab and Stéphane Berubé. - - * Makefile.in (Makefile): Use $(SHELL). - (config.status): Use "$(SHELL) config.status --recheck" instead of - "configure --no-create". - - * Makefile.in (LIBS): Include @LEXLIB@, Flex 2.4.1 needs this. - * configure.in: Test AC_ISC_POSIX earlier, AC_PROG_LEX needs it. - - * txteasci.l: Move texte_ascii_diaeresis in section 3, because - Flex 2.4.1 does not get YY_CHAR defined for section 1. - * txtelat1.l: Move texte_latin1_diaeresis in section 3. - * mergelex.awk: Deeply revised. Now able to merge Flex sources - having a non-empty section 3. No more forward declarations for - yytext, yyleng, etc. The output begins with a warning comment - saying this is a derived file, followed by the first block comment - found in any input file. Produce an output cleaner for the eye. - * Makefile.in (merged.c): Remove synchronization directives, they - are useless for now. Delete new temporary files merged[123].tmp. - -1993-06-09 François Pinard - - * Makefile.in (dist): Replace "echo `pwd`" by a mere "pwd". - Adapt to the .gz change. - -1993-05-06 François Pinard - - * asciflat.c: Transmit TAB and BKS, instead of using ^I or ^H. - However, BKS for applying a diacritic will still disappear. - Reported by Marc Verreault. - - * Makefile.in: Use $U prefix for defining the .o dependencies over - include files obtained through maketabl. - Reported by Claude Goutier. - - * c-boxes.el, cccaebcd.c, ebcdccca.c, getopt.[ch], iconibmp.c, - maketabl.c, mergelex.awk, recode.c, recode.texi, steps.h, - txteasci.l: Remove spurious suffix whitespace. - Reported by Claude Goutier. - -1993-05-04 François Pinard - - * Makefile.in (dist): Use a gzipping tar, not a compressing one. - - * checkit: Make checkit.tmp writeable, so it can be removed. It - is commonly obtained by cp'ing COPYING. - -1993-05-03 François Pinard - - * recode.c (execute_pass_sequence): Reverse the test on - input_name, controlling the fclose (input_file). - Reported by Andreas Schwab and David Lebel. - - * maketabl.c: New. - * Makefile.in: Distribute maketabl.c, use it for processing - ibmplat1.mtb and macilat1.mtb, take care of all dependencies. - - * ibmplat1.mtb: New. - * ibmplat1.c: Use ibmplat1.h, while implementing graphics_mode. - This have the side effect of correcting the 1/2 symbol, which was - translated to 1/4, and the 1/4 symbol, which was translated to <<. - * lat1ibmp.c: Use lat1ibmp.h. - * steps.h: Replace LOOSE by EXACT for ibmp from/to lat1 entries. - Reported by Robert Joop. - - * macilat1.mtb, macilat1.c, lat1maci.c: New. - * ibmpmaci.c, maciibmp.c: Deleted. - * steps.h: Remove old maci from/to ibmp, add new maci from/to lat1. - Reported by Joelle Stemp: copy of Macintosh character tables. - Reported by Jacques Richer: end of lines represented by 0x0d. - -1993-02-06 François Pinard - - * Makefile.in: In dist goal, ensure 777 mode for directories, so - older tar's will restore file modes properly. - - * asciflat.c: Remove old commented lex code. Remove a useless - `case EOF:' from inner switch, the logic will work anyway. - -1993-01-17 François Pinard - - * Makefile.in: Put $(CFLAGS) after $(CPPFLAGS), so the installer - can override automatically configured choices. - Reported by Karl Berry. - -1993-01-16 François Pinard - - * checkit: Do not call recode in verbose mode on /dev/null prior - to the first "Checking" message. Rather call recode in verbose - mode only once, combined within the first test in a series. - -1993-01-14 François Pinard - - * configure.in: Use AC_CONST. - - * Makefile.in: Distribute getopt.h. Add as getopt.o dependency. - Reported by Pierre Gaumond. - -1993-01-13 François Pinard - - * recode.c: Merge in version.c. - * version.c: Deleted. - - * All .c, mergelex.awk: Conditionnally include config.h, and do - not include common.h anymore. Update Copyright year lists. - * common.h: Deleted. - * Makefile.in: Do not distribute common.h, but do distribute - config.h.in. Have all objects depend upon config.h. Force -I. in - CPPFLAGS so config.h will be found whenever --srcdir is used. - Newer version of autoconf related goals. - * configure.in: Use AC_CONFIG_HEADER. - * checkit: Study config.h instead of config.status. - - * Makefile.in: Use texi2dvi instead of tex. - Reported by Martin Maechler. - - * Makefile.in: Cleanup and reorganization. New info and dvi - goals. Remove recode.info from all. Define and use MAKEINFO and - TEXI2DVI. Use ALLOCA, because of getopt. Distribute THANKS file. - Rename HDRS, SRCS and OBJS into HEADERS, SOURCES and OBJECTS. - Merge LIBSRCS and MSDOS_OBJS, remove them. - - * alloca.c: New, from elsewhere. - * configure.in: Use AC_ALLOCA. - - * getopt.c: Use more recent version. - * getopt.h: New, from elsewhere. - - * recode.c: Replace tempnam by tmpnam. Always allocate the - temporary file names statically, because some tmpnam's require - this. Also delay tmpnam until open time, for NeXT's. - * pathmax.h: New, from elsewhere. - * Makefile.in: Distribute pathmax.h. - Reported by Andreas Mueller. - - * configure.in: Replace AC_USG by AC_HAVE_HEADERS(string.h). - * recode.c: Replace USG test by HAVE_STRING_H test. - - * recode.c: Everywhere, use error instead of assert or perror. - Include errno.h and conditionnaly declare errno. Reformulate - `if ((var = value) == test)' by `if (var = value, var == test)'. - Use error in place of `fprintf(stderr, ...); exit(EXIT_FAILURE)'. - * error.c: New, from elsewhere. - * Makefile.in: Use and distribute error.c. - - * recode.c: Remove unnecessary system prototypes. - -1993-01-01 François Pinard - - * Makefile.in: Reinstate $(CPPFLAGS), use it. Richard wants it - there. - -1992-11-28 François Pinard - - * Makefile.in (clean, distclean): Remove ansi2knr rubbish. - Reported by Pierre Gaumond. - - * Makefile.in: Remove all .PHONY's. - -1992-11-18 François Pinard - - * Makefile.in: Add definition for INSTALL. - Reported by Bastian Schlueter, Larry W. Virden and Ronald - C.F. Antony. - -1992-11-18 Jim Meyering - - * recode.c (most functions): Declare static. - - * ascicdcn.c, cccaebcd.c, cdcaebcd.c, ebcdccca.c, - ebcdcdca.c, ibmplat1.c, ibmpmaci.c, lat1bang.c, - lat1ibmp.c, lat1ltex.c, lat1txte.c, maciibmp.c, recode.c, - steps.h: Declare with const attribute all static tables - and pointer variables that traverse them. - - * recode.c: Declare `sequence' to be an array of const pointers. - (find_sequence): Declare the `step' field of critical_tree - with const attribute. - - * steps.h [struct keyword_struct]: Separate type definition - and variable declaration. - -1992-11-13 François Pinard - - * Makefile.in (dist): chmod a+r before making the tar file. - -1992-11-12 François Pinard - - * aclocal.m4: Update FP_STDC_CHECK, replacing by FP_PROTOTYPES. - * configure.in: Adjust accordingly. - -1992-10-07 François Pinard - - * Version 3.2.4 to alt.sources, and later on prep. - -1992-10-06 François Pinard - - * Makefile.in: Use exec_prefix. Add `uninstall'. - -1992-09-29 François Pinard - - * recode.c: Define EXIT_SUCCESS and EXIT_FAILURE if not defined, - even after inclusion of , for SunOS 4. - - * Makefile.in: Add a completion message to `make check'. - - * configure.in: Make the `WARNING:' bigger if no Flex. - -1992-09-25 François Pinard - - * Version 3.2.3. - - * HINTS: New file, used to simplify README. - * Makefile.in: Distribute HINTS. - - * configure.in: Remove tests for Apollo's and 286 systems. - * steps.h: Replace XENIX by ENUM_INT_BUG. - * HINTS: Tell about Apollo's and 286 systems installation hints. - -1992-09-24 François Pinard - - * recode.c: Write `Recoding...' instead of `recoding...'. - - * asciflat.c: Insure looking one character ahead at all times. - This also solves a bug by which the second diacritic of a pair of - two diacritics in a row was not properly flattened out. - -1992-08-26 François Pinard - - * ltexlat1.l: Given `*' is a diacritic operation, insure - swallowing '{}' in `\*\i{}'. Recognize also `\*{\i}'. - - * asciltex.l: Prefer `\c{c}' to `\c c'. - * lat1ltex.c: Idem. - - * lat1ltex.c: Insure NULs will go through. - - * recode.c: Implement the -d `diacritics_only' option for LaTeX. - * asciltex.l: Idem. - * lat1ltex.c: Idem. - * ltexasci.l: Idem. - * ltexlat1.l: Idem. - -1992-08-23 François Pinard - - * recode.texi: Merging in some other separate documents. - * table.texi, DisplayCode: Deleted. - * Makefile.in: Adjusted. - - * configure.in: Split FP_STDC_CHECK out into aclocal.m4. - * aclocal.m4: New. - * Makefile.in: Distribute aclocal.m4. - - * version.c: Insure next version will be 3.2.3, skipping 3.2.1 and - 3.2.2, jumping over parallel numbering at U. de Montre'al. - -1992-08-19 François Pinard - - * ansi2knr: New, from Ghostscript distribution. - * configure.in: Check for __STDC__ and define U. - * Makefile.in: Use U and ansi2knr. - * All .c's: Remove many __STDC__ checks. - * mergelex.awk: Remove generation of __STDC__ checks. - -1992-07-20 François Pinard - - * Makefile.in: Use various clean goals according to latest GNU - standards. Moreover, add a recode.dvi goal and a texclean goal. - -1992-07-16 François Pinard - - * configure.in: Changes for Autoconf 0.120. Also test for popen, - even if almost any UNIX has it; so the user can later undefine it from - DEFS; avoid testing for pipe because of an old bug in this area. - * Makefile.in, recode.c, checkit, common.h: Replace all *_MISSING - by HAVE_*. - -1992-06-18 François Pinard - - * Makefile.in: Changes for Autoconf 0.118. Use AWK and LEX - instead of GAWK and FLEX. - -1992-06-04 François Pinard - - * Makefile.in: Changes for Autoconf 0.115. Use config.status to - recreate Makefile from Makefile.in. - * checkit: Retrieve DEFS value from config.status instead of - Makefile. - -1992-06-01 François Pinard - - * Makefile.in, configure.in: Changes for Autoconf 0.112. Avoid - FP_PROG_MAKEINFO and use `makeinfo' directly. - * checkit: Get DEFS from Makefile instead of from config.status. - -1992-02-02 François Pinard - - * recode.c (main): Returns int. - -1992-01-30 François Pinard - - * Makefile.in: Use new names for clean goals. - -1991-12-02 François Pinard - - * steps.h, recode.c: Removed comma at end of enum's. - - * version.c: Added a few const's. - -1991-11-30 François Pinard - - * recode.c: Use EXIT_FAILURE and EXIT_SUCCESS; define them if not - STDC_HEADERS. - - * recode.c: Prototypes added for fstat, getopt, link, perror, - unlink and utime, if __STDC__. - -1991-11-07 François Pinard - - * recode.texi: Should now be TeXable. - * Makefile.in: Insure distributing texinfo.tex. - - * ibmpicon.c, iconibmp.c: Use 0x1E for QNX end of lines, 0x0E was - wrong. - - * configure.in: Take care of POSIXish ISC. - -1991-11-05 François Pinard - - * configure.in, Makefile.in: Do not absolutize $(srcdir), because - this could create problems with automounters. - - * configure.in, Makefile.in: Remove IF_* devices, they were - solving a problem caused only by non timestamping shars, and - recode is now distributed in tar or zoo format. - -1991-11-04 François Pinard - - * configure.in: Get rid of the head program, using sed. I would - also like, eventually, to get rid of file and grep programs too. - -1991-11-01 François Pinard - - * recode.c (main): Use rename library routine if available. - * configure.in: Check for rename availability. - - * Makefile.in: Insure gawk is executed in the source directory - while preparing merged.c. - - * recode.c (execute_pipe_sequence): Close descriptor after dup2. - Still bugged. - - * recode.c (code_index): Reject partial matches for keywords. - Reported by Laurent Bourbeau. - -1991-10-28 François Pinard - - * configure.in: New. - * configure: Automatically regenerated from file configure.in - and David MacKenzie's autoconf. - -1991-10-28 François Pinard - - * Version 3.2. - - * all: Replace GPL version 1 by GPL version 2. - - * Makefile.in: Use `sh checkit' instead of `./checkit'. For an - unknown reason, the Sparc requires this. - - * recode.c: Define str[r]chr to be [r]index if not USG. - - * recode.c: Force binary mode on files for MSDOS. - -1991-10-27 François Pinard - - * recode.c: MSDOS port. tempnam(), utime(), link() and getopt() - were missing; replacements inspired from by Rahul Dhesi's flip. - * configdos.pl, config.tcc: New. - * getopt.c: New, AT&T freed code. - * Makefile.in: Adjustements for MSDOS port, dist.dos goal. - -1991-10-25 François Pinard - - * recode.c (execute_popen_sequence, execute_pipe_sequence): - Accept non filter mode. - (execute_pipe_sequence): Wait for children. Still bugged. - - * configure: Test dup2. - * recode.c: Have DUP2_MISSING imply PIPE_MISSING, for now. - - * checkit: New. - * Makefile.in: Use checkit in check goal. - -1991-10-23 François Pinard - - * recode.c: Revert back to -v instead of -q. Give the user some - more control on the sequencing strategy through -i, -o and -p. - Get rid of any USE_FILE, USE_POPEN and USE_PIPE. However, keep - POPEN_MISSING and PIPE_MISSING around, for MSDOS. Segregating - between `popen' and `pipe' is only experimental, while trying to - have `pipe' working correctly. - - * configure, Makefile.in: New. Many new configuration features. - Among others, through IF_FLEX, be careful to never loose merged.c - on those systems which do not have the machinery to remake it. - * GNUmakefile, Makefile, Depends: deleted. - -1991-03-31 François Pinard - - * mergelex.awk: remove exit() and read() definitions. - -1991-01-22 François Pinard - - * ibmpicon.c, ibmplat1.c, ibmpmaci.c: Recognize old DOS end of - file (0x1A). - -1991-01-21 François Pinard - - * lat1bang.c, lat1txte.c: Have the no-break space converted to a - single space. - -1991-01-15 François Pinard - - * all: While/if ((var=exp) [test]) -> while/if (var=exp, var [test]), - switch (var=exp) -> var=exp; switch (var). - - * recode.c (code_index): Use usage_and_exit (). Moved. - * recode.c (echo_sequence): Print format changed. - * recode.c: Issue `recoding FILE ...done' messages, unless -q. - - * ibmplat1.c, lat1ibmp.c, ibmpmaci, maciibmp.c, txteibmp.c: - While reading MS-DOS files, 0x0D followed by 0x0A is converted - to an end of line; while writing MS-DOS files, end of lines - are converted to 0x0D 0x0A. - * ibmpicon.c, iconibmp.c: While reading QNX files, 0x0E is - converted to 0x0D 0x0A; while writing QNX files, 0x0D followed - by 0x0A is converted to 0x0E. - - * txteibmp.l: Deleted. - * steps.h: Remove references to texte_ibmpc. - - * steps.h: Remove DONT_LEX conditionals; merged.c is always - available for installation. - -1990-07-04 François Pinard - - * all: Copyright directly assigned to the FSF. - -1990-03-26 François Pinard - - * txteasci.l, txteibmp.l, txtelat1.l: Change occurrences of a NUL - terminated cursor by a counter from 0 to yyleng-1. This will - insure proper transmission of NULs through Flex, which can now - handle them. - - * mergelex.awk: Make use of -8 option of Flex 2.2 alpha, adjust - documentation, insure proper pre-declarations of Flex variables - yytext, yyleng, yyint and yyout. - -1990-03-23 François Pinard - - * recode.c (execute_popen_sequence): Get rid of unused variables. - - * recode.c (code_index): Change index to counter, because on BSD - index is a library function. - -1990-03-16 François Pinard - - * Version 3.1. - -1990-03-15 François Pinard - - * version.c, recode.c (usage_and_exit): Change -V to -C to give - the Copyright conditions, print version identification. - - * txtelat1.l: Real strange bug aroud Flex. I ought to blindly - remove the specific case of a capital A with a diaeresis to get - rid of a `NULL in input' Flex diagnostic. Doing so, I introduce a - new bug to get rid of another :-(. - - * all: Added missing prototypes declarations, missing void - specifications for functions, missing const; removed unused - variables. - * common.h: New. - -1990-02-09 François Pinard - - * recode.c, Makefile: If no files are specified, recode stdin on - stdout as before. But if files are specified, each of them is now - recoded over itself, preserving its time stamps unless -t option - is used. To make it work on BSD, split execute_sequence in three, - get rid of USE_FILES and hide USE_PIPE in the Makefile. Also, see - the comment before execute_sequence routines, in recode.c. - - * recode.c (main): Some code for -f, to be written later. - - * recode.c (usage_and_exit): Rewritten. - -1990-02-05 François Pinard - - * recode.c (usage): Added commas to improve readability. - - * lat1bang.c: Have lower case output instead of upper case, this - is more readable. - -1990-02-03 François Pinard - - * Version 3.0.1. - - * recode.c: Corrected bugs related to USE_POPEN; recode step path - is now echoed once, and diaeresis selection is now propagated. - -1990-02-02 François Pinard - - * mergelex.awk: Option USE_FPUTC, so to compile merged.c using - fputc instead of putc. It will hopefully ease Apollo C compiler, - which litterally trashes on merged.c. - -1990-01-27 François Pinard - - * all: Adaptation for Flex. A few yyleng problems short-circuited - here and there in some .l's. - * lexcom.c: Eliminated. - * mergelex.awk: New, for merging all .l's into a single merged.l. - This results in a shorter a.out, by a factor of 2 in fact. - * asciltex.l, ascitxte.l: Slight adjustments needed to escape <'s - with backslashes. - - * cdcnasci.c, banglat1.c: Too many putc's, simplified to shorten - the object modules. - - * recode.c: Temporary files were improperly unlinked. Addition of - a -q option (quiet), removal of -d (debug): by default, choosen - step path is printed on stderr. - - * lat1bang.c: Replacement for disappearing ascibang.l. - * ascibang.l: Removed. - -1989-11-19 François Pinard - - * banglat1.c, lat1bang.c, iconibmp.c, cdcnasci.c, ascicdcn.c, - asciflat.c: Replacements for banglat1.l, ascibang.l, iconibmp.l, - cdcnasci.l, ascicdcn.l, asciflat.l. I will get rid of some - simpler lex routines, to get speed and save space. - * steps.h, version.c: Various adjustments for the preceeding - changes. - - * Most files: Removal of the dash to restrict each file name - into eight character, for MS-DOS. - -1989-11-10 François Pinard - - * version.c: Added. - - * recode.c: Provision for -V option. - -1989-10-29 François Pinard - - * Version 3.0. - - * txte-lat1.l, lat1-txte.c: Added. - - * txte-ibmp.l: Capital E with acute accent now stays capital in - all cases. - - * recode.c: Addition of USE_FILES feature for smaller machines. - PIPE_OUTSIDE renamed to USE_POPEN, PIPE_INSIDE to USE_PIPE. - Recognition of short keywords. - - * ltex-asci.l, ltex-lat1.l: \$ now correctly translated into $. diff --git a/src/Makefile.am b/src/Makefile.am index 49ff7c9..e4d2db2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,10 +1,10 @@ # Makefile for Recode sources. -# Copyright © 1991,92,93,94,95,96,97,98,99, 00 Free Software Foundation, Inc. +# Copyright © 1991-2025 Free Software Foundation, Inc. # François Pinard , 1988. # 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 2, or (at your option) +# the Free Software Foundation; either version 3, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, @@ -13,49 +13,61 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# along with this program; if not, see . AUTOMAKE_OPTIONS = gnits bin_PROGRAMS = recode lib_LTLIBRARIES = librecode.la -man_MANS = recode.1 +noinst_LTLIBRARIES = libmerged.la +dist_man_MANS = recode.1 include_HEADERS = recode.h recodext.h -noinst_HEADERS = argmatch.h charname.h common.h decsteps.h exit.h exitfail.h \ -fr-charname.h hash.h inisteps.h iconvdecl.h quotearg.h rfc1345.h tersteps.h \ -xalloc.h $(H_FALLBACKS) $(H_SURFACES) +H_STEPS = common.h decsteps.h inisteps.h tersteps.h \ +$(H_SURFACES) -EXTRA_DIST = recodext.h.in stamp-steps stamp-strip \ -$(L_STEPS) mergelex.py $(MANS) +noinst_HEADERS = $(H_STEPS) cleaner.h charname.h fr-charname.h \ +rfc1345.h lat1iso5426.h lat1ansel.h +nodist_noinst_HEADERS = iconvdecl.h + +EXTRA_DIST = stamp-steps stamp-strip $(L_STEPS) mergelex.py $(MANS) lat1ansel.h lat1iso5426.h CLEANFILES = iconvdecl.h -C_STEPS = african.c afrtran.c applemac.c atarist.c bangbang.c cdcnos.c \ -ebcdic.c ibmpc.c iconqnx.c lat1asci.c java.c mule.c strip-data.c \ -testdump.c ucs.c utf16.c utf7.c utf8.c varia.c vn.c \ -$(C_FALLBACKS) $(C_SURFACES) merged.c +C_STEPS = african.c afrtran.c atarist.c bangbang.c cdcnos.c \ +ebcdic.c ibmpc.c iconqnx.c lat1asci.c lat1iso5426.c lat1ansel.c \ +java.c mule.c strip-data.c testdump.c ucs.c utf16.c utf7.c utf8.c varia.c vn.c -OLD_C_STEPS = next.c +ALL_STEPS = $(C_STEPS) $(C_FALLBACKS) $(C_SURFACES) -L_STEPS = ascilat1.l $(L_FALLBACKS) $(L_SURFACES) +L_STEPS = ascilat1.l iso5426lat1.l ansellat1.l $(L_FALLBACKS) -H_FALLBACKS = -C_FALLBACKS = flat.c html.c lat1ltex.c lat1txte.c rfc1345.c texinfo.c -L_FALLBACKS = ltexlat1.l txtelat1.l +C_FALLBACKS = flat.c html.c lat1ltex.c lat1btex.c lat1txte.c rfc1345.c texinfo.c +L_FALLBACKS = ltexlat1.l btexlat1.l txtelat1.l H_SURFACES = base64.h C_SURFACES = base64.c dump.c endline.c permut.c quoted.c -L_SURFACES = -recode_SOURCES = main.c freeze.c mixed.c -recode_LDADD = librecode.la ../lib/libreco.a +recode_SOURCES = main.c mixed.c common.h +recode_LDADD = librecode.la + +librecode_la_SOURCES = charname.c combine.c fr-charname.c iconv.c \ +names.c outer.c recode.c request.c strip-pool.c task.c $(ALL_STEPS) \ +$(include_HEADERS) $(noinst_HEADERS) $(H_STEPS) +librecode_la_LDFLAGS = -no-undefined -version-info $(VERSION_INFO) $(LTLIBICONV) $(LTLIBINTL) \ + $(LIB_CLOCK_GETTIME) $(LIB_GETRANDOM) $(LIB_HARD_LOCALE) $(LIB_MBRTOWC) $(LIB_SETLOCALE_NULL) +librecode_la_LIBADD = ../lib/libgnu.la libmerged.la + +libmerged_la_SOURCES = merged.c +libmerged_la_CFLAGS = $(NON_WARN_CFLAGS) -librecode_la_SOURCES = argmatch.c charname.c combine.c exitfail.c \ -fr-charname.c hash.c iconv.c localcharset.c names.c outer.c quotearg.c \ -recode.c request.c strip-pool.c task.c xalloc-die.c xmalloc.c $(C_STEPS) -librecode_la_LDFLAGS = -version-info 0:0:0 +loc: + cloc \ + charname.c combine.c fr-charname.c iconv.c \ + names.c outer.c recode.c request.c task.c \ + $(ALL_STEPS) $(L_STEPS) common.h $(H_SURFACES) \ + $(top_srcdir)/tables.py mergelex.py $(top_srcdir)/tests/Recode.pyx \ + Makefile.am $(top_srcdir)/configure.ac $(top_srcdir)/Makefile.am \ + $(top_srcdir)/doc/Makefile.am $(top_srcdir)/tests/Makefile.am $(top_srcdir)/bootstrap.conf # Relative to $(srcdir). ALAIN = $(KELD) @@ -65,47 +77,37 @@ MNEMONICS_DS = $(KELD)/iso10646.def $(KELD)/other.def $(KELD)/control.def RFC1345_TXT = $(KELD)/rfc1345.txt NOMS_CARACS = $(ALAIN)/NomsSeulsfinal.lst -AM_CPPFLAGS = -I.. -I$(srcdir) -I$(top_srcdir)/lib +NON_WARN_CFLAGS = -I.. -I$(srcdir) $(ISYSTEM)$(top_builddir)/lib $(ISYSTEM)$(top_srcdir)/lib +AM_CFLAGS = $(NON_WARN_CFLAGS) $(WARN_CFLAGS) DEFS = -DLIBDIR=\"$(libdir)\" @DEFS@ ETAGS_ARGS = $(L_STEPS) TAGS_DEPENDENCIES = $(L_STEPS) -# These CFLAGS values are not auto-configured: -# -DDIFF_HASH For using GNU diff's hash algorithm instead. -# -DHASH_STATS For printing a one-liner hash statistics. - LEX = @LEX@ -PERL = perl -PYTHON = python +PYTHON = @PYTHON@ TABLES_PY = $(PYTHON) $(top_srcdir)/tables.py -$(srcdir)/merged.c: mergelex.py $(L_STEPS) +merged.c: mergelex.py $(L_STEPS) + echo '#include "config.h"' > merged.c (cd $(srcdir) && cat $(L_STEPS)) \ | $(PYTHON) $(srcdir)/mergelex.py > merged.tm1 $(LEX) -t -8 -Plibrecode_yy merged.tm1 > merged.tm2 - grep -v '^# *line [0-9]' merged.tm2 > $(srcdir)/merged.c + grep -av '^# *line [0-9]' merged.tm2 >> merged.c rm merged.tm1 merged.tm2 -$(srcdir)/recode.1: recode - @if test -r $@ && test ! -w $@; then \ - echo "WARNING: Page \`$@' read only, not updated"; \ - elif $(PERL) $(top_srcdir)/doc/help2man \ - --name="converts files between character sets" \ - --output=$@ ./recode; then \ - echo "Page \`$@' has been updated"; \ - else \ - echo "WARNING: Page \`$@' has *not* been updated."; \ - echo " It might be that \`Perl' is missing on your system,"; \ - echo " but you may safely and merely ignore this error."; \ +recode.1: main.c $(top_srcdir)/configure.ac recode$(EXEEXT) +## Exit gracefully if recode.1 is not writeable, such as during distcheck! + $(AM_V_GEN)if ( touch $@.w && rm -f $@.w; ) >/dev/null 2>&1; then \ + $(top_builddir)/build-aux/x-to-1 \ + $(PERL) $(HELP2MAN) \ + --locale=en_US.UTF-8 \ + ./recode$(EXEEXT) recode.x $@; \ fi -$(srcdir)/recodext.h: $(top_srcdir)/cleaner.h.in $(srcdir)/recodext.h.in - cat $(top_srcdir)/cleaner.h.in $(srcdir)/recodext.h.in > $@ - main.o: main.c ../config.status -charname.lo: rfc1345.h +charname.lo: charname.h charname.h: ../tables.py $(MNEMONICS_DS) $(RFC1345_TXT) $(TABLES_PY) -C $(srcdir) -n $(MNEMONICS_DS) $(RFC1345_TXT) @@ -117,14 +119,29 @@ iconv.lo: iconvdecl.h iconvdecl.h: ../tables.py $(TABLES_PY) -i -outer.lo: stamp-steps -stamp-steps: $(C_STEPS) +lat1ansel.lo: lat1ansel.h +lat1ansel.h: ansellat1.l + $(top_srcdir)/build-aux/invert-l-to-h ansellat1.l > $@ + +lat1iso5426.lo: lat1iso5426.h +lat1iso5426.h: iso5426lat1.l + $(top_srcdir)/build-aux/invert-l-to-h iso5426lat1.l > $@ + +african.lo afrtran.lo atarist.lo bangbang.lo cdcnos.lo \ +ebcdic.lo ibmpc.lo iconqnx.lo lat1asci.lo lat1iso5426.lo lat1ansel.lo \ +java.lo mule.lo strip-data.lo testdump.lo ucs.lo utf16.lo utf7.lo utf8.lo \ +varia.lo vn.lo flat.lo html.lo lat1ltex.lo lat1btex.lo lat1txte.lo rfc1345.lo \ +texinfo.lo base64.lo dump.lo endline.lo permut.lo quoted.lo \ +iconv.lo outer.lo: decsteps.h inisteps.h tersteps.h + +decsteps.h inisteps.h tersteps.h: stamp-steps +stamp-steps: $(ALL_STEPS) merged.c @echo "Updating {dec,ini,ter}steps.h" - @(cd $(srcdir) && grep -h '^module_' $(C_STEPS)) \ + @(cd $(srcdir) && grep -h '^module_' $(ALL_STEPS) merged.c) \ | sed 's/ .*//' > liste.tmp - @sed 's/\(.*\)/bool \1 PARAMS ((struct recode_outer *));/' \ + @sed 's/\(.*\)/bool \1 (struct recode_outer *);/' \ liste.tmp > decsteps.tmp - @sed 's/\(.*\)/void del\1 PARAMS ((struct recode_outer *));/' \ + @sed 's/\(.*\)/void del\1 (struct recode_outer *);/' \ liste.tmp >> decsteps.tmp @sed 's/\(.*\)/ if (!\1 (outer)) return false;/' \ liste.tmp > inisteps.tmp @@ -148,4 +165,4 @@ rfc1345.h: ../tables.py $(MNEMONICS_DS) strip-pool.c strip-data.c: stamp-strip stamp-strip: ../tables.py $(MNEMONICS_DS) $(CHARSETS_DEF) $(TABLES_PY) -C $(srcdir) -p $(MNEMONICS_DS) $(CHARSETS_DEF) - echo timestamp > $(srcdir)/$@ + @echo timestamp > $(srcdir)/$@ diff --git a/src/Makefile.in b/src/Makefile.in deleted file mode 100644 index a71e000..0000000 --- a/src/Makefile.in +++ /dev/null @@ -1,1012 +0,0 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Makefile for Recode sources. -# Copyright © 1991,92,93,94,95,96,97,98,99, 00 Free Software Foundation, Inc. -# François Pinard , 1988. - -# 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 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 General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - - - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -bin_PROGRAMS = recode$(EXEEXT) -subdir = src -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp \ - $(include_HEADERS) $(noinst_HEADERS) ChangeLog -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ - $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ - "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(includedir)" -LTLIBRARIES = $(lib_LTLIBRARIES) -librecode_la_LIBADD = -am__objects_1 = flat.lo html.lo lat1ltex.lo lat1txte.lo rfc1345.lo \ - texinfo.lo -am__objects_2 = base64.lo dump.lo endline.lo permut.lo quoted.lo -am__objects_3 = african.lo afrtran.lo applemac.lo atarist.lo \ - bangbang.lo cdcnos.lo ebcdic.lo ibmpc.lo iconqnx.lo \ - lat1asci.lo java.lo mule.lo strip-data.lo testdump.lo ucs.lo \ - utf16.lo utf7.lo utf8.lo varia.lo vn.lo $(am__objects_1) \ - $(am__objects_2) merged.lo -am_librecode_la_OBJECTS = argmatch.lo charname.lo combine.lo \ - exitfail.lo fr-charname.lo hash.lo iconv.lo localcharset.lo \ - names.lo outer.lo quotearg.lo recode.lo request.lo \ - strip-pool.lo task.lo xalloc-die.lo xmalloc.lo \ - $(am__objects_3) -librecode_la_OBJECTS = $(am_librecode_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = -librecode_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(librecode_la_LDFLAGS) $(LDFLAGS) -o $@ -PROGRAMS = $(bin_PROGRAMS) -am_recode_OBJECTS = main.$(OBJEXT) freeze.$(OBJEXT) mixed.$(OBJEXT) -recode_OBJECTS = $(am_recode_OBJECTS) -recode_DEPENDENCIES = librecode.la ../lib/libreco.a -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = -SOURCES = $(librecode_la_SOURCES) $(recode_SOURCES) -DIST_SOURCES = $(librecode_la_SOURCES) $(recode_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -man1dir = $(mandir)/man1 -NROFF = nroff -MANS = $(man_MANS) -HEADERS = $(include_HEADERS) $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = -DLIBDIR=\"$(libdir)\" @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GLIBC21 = @GLIBC21@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ - -# These CFLAGS values are not auto-configured: -# -DDIFF_HASH For using GNU diff's hash algorithm instead. -# -DHASH_STATS For printing a one-liner hash statistics. -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = gnits -lib_LTLIBRARIES = librecode.la -man_MANS = recode.1 -include_HEADERS = recode.h recodext.h -noinst_HEADERS = argmatch.h charname.h common.h decsteps.h exit.h exitfail.h \ -fr-charname.h hash.h inisteps.h iconvdecl.h quotearg.h rfc1345.h tersteps.h \ -xalloc.h $(H_FALLBACKS) $(H_SURFACES) - -EXTRA_DIST = recodext.h.in stamp-steps stamp-strip \ -$(L_STEPS) mergelex.py $(MANS) - -CLEANFILES = iconvdecl.h -C_STEPS = african.c afrtran.c applemac.c atarist.c bangbang.c cdcnos.c \ -ebcdic.c ibmpc.c iconqnx.c lat1asci.c java.c mule.c strip-data.c \ -testdump.c ucs.c utf16.c utf7.c utf8.c varia.c vn.c \ -$(C_FALLBACKS) $(C_SURFACES) merged.c - -OLD_C_STEPS = next.c -L_STEPS = ascilat1.l $(L_FALLBACKS) $(L_SURFACES) -H_FALLBACKS = -C_FALLBACKS = flat.c html.c lat1ltex.c lat1txte.c rfc1345.c texinfo.c -L_FALLBACKS = ltexlat1.l txtelat1.l -H_SURFACES = base64.h -C_SURFACES = base64.c dump.c endline.c permut.c quoted.c -L_SURFACES = -recode_SOURCES = main.c freeze.c mixed.c -recode_LDADD = librecode.la ../lib/libreco.a -librecode_la_SOURCES = argmatch.c charname.c combine.c exitfail.c \ -fr-charname.c hash.c iconv.c localcharset.c names.c outer.c quotearg.c \ -recode.c request.c strip-pool.c task.c xalloc-die.c xmalloc.c $(C_STEPS) - -librecode_la_LDFLAGS = -version-info 0:0:0 - -# Relative to $(srcdir). -ALAIN = $(KELD) -KELD = ../keld -CHARSETS_DEF = $(KELD)/charsets.def -MNEMONICS_DS = $(KELD)/iso10646.def $(KELD)/other.def $(KELD)/control.def -RFC1345_TXT = $(KELD)/rfc1345.txt -NOMS_CARACS = $(ALAIN)/NomsSeulsfinal.lst -AM_CPPFLAGS = -I.. -I$(srcdir) -I$(top_srcdir)/lib -ETAGS_ARGS = $(L_STEPS) -TAGS_DEPENDENCIES = $(L_STEPS) -PERL = perl -PYTHON = python -TABLES_PY = $(PYTHON) $(top_srcdir)/tables.py -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits src/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnits src/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ - } - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -librecode.la: $(librecode_la_OBJECTS) $(librecode_la_DEPENDENCIES) $(EXTRA_librecode_la_DEPENDENCIES) - $(AM_V_CCLD)$(librecode_la_LINK) -rpath $(libdir) $(librecode_la_OBJECTS) $(librecode_la_LIBADD) $(LIBS) -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ - fi; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p \ - || test -f $$p1 \ - ; then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' \ - -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' \ - `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - -installcheck-binPROGRAMS: $(bin_PROGRAMS) - bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \ - case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \ - *" $$p "* | *" $(srcdir)/$$p "*) continue;; \ - esac; \ - f=`echo "$$p" | \ - sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - for opt in --help --version; do \ - if "$(DESTDIR)$(bindir)/$$f" $$opt >c$${pid}_.out \ - 2>c$${pid}_.err &2; bad=1; fi; \ - done; \ - done; rm -f c$${pid}_.???; exit $$bad - -recode$(EXEEXT): $(recode_OBJECTS) $(recode_DEPENDENCIES) $(EXTRA_recode_DEPENDENCIES) - @rm -f recode$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(recode_OBJECTS) $(recode_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/african.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/afrtran.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/applemac.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argmatch.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atarist.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bangbang.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cdcnos.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charname.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/combine.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ebcdic.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/endline.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flat.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fr-charname.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freeze.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/html.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibmpc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconqnx.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lat1asci.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lat1ltex.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lat1txte.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/merged.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mixed.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mule.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/names.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/outer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/permut.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quotearg.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quoted.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recode.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/request.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rfc1345.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strip-data.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strip-pool.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdump.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texinfo.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ucs.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf16.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf7.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf8.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/varia.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vn.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-man1: $(man_MANS) - @$(NORMAL_INSTALL) - @list1=''; \ - list2='$(man_MANS)'; \ - test -n "$(man1dir)" \ - && test -n "`echo $$list1$$list2`" \ - || exit 0; \ - echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ - { for i in $$list1; do echo "$$i"; done; \ - if test -n "$$list2"; then \ - for i in $$list2; do echo "$$i"; done \ - | sed -n '/\.1[a-z]*$$/p'; \ - fi; \ - } | while read p; do \ - if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; echo "$$p"; \ - done | \ - sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ - sed 'N;N;s,\n, ,g' | { \ - list=; while read file base inst; do \ - if test "$$base" = "$$inst"; then list="$$list $$file"; else \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ - fi; \ - done; \ - for i in $$list; do echo "$$i"; done | $(am__base_list) | \ - while read files; do \ - test -z "$$files" || { \ - echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ - $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ - done; } - -uninstall-man1: - @$(NORMAL_UNINSTALL) - @list=''; test -n "$(man1dir)" || exit 0; \ - files=`{ for i in $$list; do echo "$$i"; done; \ - l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.1[a-z]*$$/p'; \ - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) -install-includeHEADERS: $(include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ - done - -uninstall-includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(MANS) $(HEADERS) -install-binPROGRAMS: install-libLTLIBRARIES - -installdirs: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ - clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-includeHEADERS install-man - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-binPROGRAMS install-libLTLIBRARIES - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: install-man1 - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: installcheck-binPROGRAMS - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \ - uninstall-libLTLIBRARIES uninstall-man - -uninstall-man: uninstall-man1 - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ - clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ - clean-libtool cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-binPROGRAMS install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am \ - install-includeHEADERS install-info install-info-am \ - install-libLTLIBRARIES install-man install-man1 install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installcheck-binPROGRAMS \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am uninstall-binPROGRAMS uninstall-includeHEADERS \ - uninstall-libLTLIBRARIES uninstall-man uninstall-man1 - - -$(srcdir)/merged.c: mergelex.py $(L_STEPS) - (cd $(srcdir) && cat $(L_STEPS)) \ - | $(PYTHON) $(srcdir)/mergelex.py > merged.tm1 - $(LEX) -t -8 -Plibrecode_yy merged.tm1 > merged.tm2 - grep -v '^# *line [0-9]' merged.tm2 > $(srcdir)/merged.c - rm merged.tm1 merged.tm2 - -$(srcdir)/recode.1: recode - @if test -r $@ && test ! -w $@; then \ - echo "WARNING: Page \`$@' read only, not updated"; \ - elif $(PERL) $(top_srcdir)/doc/help2man \ - --name="converts files between character sets" \ - --output=$@ ./recode; then \ - echo "Page \`$@' has been updated"; \ - else \ - echo "WARNING: Page \`$@' has *not* been updated."; \ - echo " It might be that \`Perl' is missing on your system,"; \ - echo " but you may safely and merely ignore this error."; \ - fi - -$(srcdir)/recodext.h: $(top_srcdir)/cleaner.h.in $(srcdir)/recodext.h.in - cat $(top_srcdir)/cleaner.h.in $(srcdir)/recodext.h.in > $@ - -main.o: main.c ../config.status - -charname.lo: rfc1345.h -charname.h: ../tables.py $(MNEMONICS_DS) $(RFC1345_TXT) - $(TABLES_PY) -C $(srcdir) -n $(MNEMONICS_DS) $(RFC1345_TXT) - -fr-charname.lo: fr-charname.h -fr-charname.h: ../tables.py $(NOMS_CARACS) - $(TABLES_PY) -C $(srcdir) -Fn $(NOMS_CARACS) - -iconv.lo: iconvdecl.h -iconvdecl.h: ../tables.py - $(TABLES_PY) -i - -outer.lo: stamp-steps -stamp-steps: $(C_STEPS) - @echo "Updating {dec,ini,ter}steps.h" - @(cd $(srcdir) && grep -h '^module_' $(C_STEPS)) \ - | sed 's/ .*//' > liste.tmp - @sed 's/\(.*\)/bool \1 PARAMS ((struct recode_outer *));/' \ - liste.tmp > decsteps.tmp - @sed 's/\(.*\)/void del\1 PARAMS ((struct recode_outer *));/' \ - liste.tmp >> decsteps.tmp - @sed 's/\(.*\)/ if (!\1 (outer)) return false;/' \ - liste.tmp > inisteps.tmp - @sed 's/\(.*\)/ del\1 (outer);/' \ - liste.tmp > tersteps.tmp - @rm liste.tmp - @if cmp -s $(srcdir)/decsteps.h decsteps.tmp; then rm decsteps.tmp; \ - else mv decsteps.tmp $(srcdir)/decsteps.h; fi - @if cmp -s $(srcdir)/inisteps.h inisteps.tmp; then rm inisteps.tmp; \ - else mv inisteps.tmp $(srcdir)/inisteps.h; fi - @if cmp -s $(srcdir)/tersteps.h tersteps.tmp; then rm tersteps.tmp; \ - else mv tersteps.tmp $(srcdir)/tersteps.h; fi - @echo timestamp > $(srcdir)/$@ - -rfc1345.lo: rfc1345.h -rfc1345.h: ../tables.py $(MNEMONICS_DS) - $(TABLES_PY) -C $(srcdir) -m $(MNEMONICS_DS) - -# There is duplication of work with making doc/rfc1345.texi. -# This used to be combined, but it seems clearer to keep both separate. -strip-pool.c strip-data.c: stamp-strip -stamp-strip: ../tables.py $(MNEMONICS_DS) $(CHARSETS_DEF) - $(TABLES_PY) -C $(srcdir) -p $(MNEMONICS_DS) $(CHARSETS_DEF) - echo timestamp > $(srcdir)/$@ - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/src/african.c b/src/african.c index ec33392..a7a3963 100644 --- a/src/african.c +++ b/src/african.c @@ -1,8 +1,10 @@ /* Traitement de certaines tables africaines. - Copyright © 1999, 2000 Progiciels Bourbeau-Pinard inc. + Copyright © 1999-2018 Progiciels Bourbeau-Pinard inc. François Pinard , 1997. */ +#include "config.h" #include "common.h" +#include "decsteps.h" /* Bambara, Ewondo and Fulfude. */ @@ -107,31 +109,19 @@ static const unsigned short lin_data[] = bool module_african (RECODE_OUTER outer) { - if (!declare_explode_data (outer, ful_data, "AFRFUL-102-BPI_OCIL", NULL)) - return false; - if (!declare_alias (outer, "bambara", "AFRFUL-102-BPI_OCIL")) - return false; - if (!declare_alias (outer, "bra", "AFRFUL-102-BPI_OCIL")) - return false; - if (!declare_alias (outer, "ewondo", "AFRFUL-102-BPI_OCIL")) - return false; - if (!declare_alias (outer, "fulfulde", "AFRFUL-102-BPI_OCIL")) - return false; - if (!declare_explode_data (outer, lin_data, "AFRLIN-104-BPI_OCIL", NULL)) - return false; - if (!declare_alias (outer, "lingala", "AFRLIN-104-BPI_OCIL")) - return false; - if (!declare_alias (outer, "lin", "AFRLIN-104-BPI_OCIL")) - return false; - if (!declare_alias (outer, "sango", "AFRLIN-104-BPI_OCIL")) - return false; - if (!declare_alias (outer, "wolof", "AFRLIN-104-BPI_OCIL")) - return false; - - return true; + return recode_declare_explode_data (outer, ful_data, "AFRFUL-102-BPI_OCIL", NULL) + && recode_declare_alias (outer, "bambara", "AFRFUL-102-BPI_OCIL") + && recode_declare_alias (outer, "bra", "AFRFUL-102-BPI_OCIL") + && recode_declare_alias (outer, "ewondo", "AFRFUL-102-BPI_OCIL") + && recode_declare_alias (outer, "fulfulde", "AFRFUL-102-BPI_OCIL") + && recode_declare_explode_data (outer, lin_data, "AFRLIN-104-BPI_OCIL", NULL) + && recode_declare_alias (outer, "lingala", "AFRLIN-104-BPI_OCIL") + && recode_declare_alias (outer, "lin", "AFRLIN-104-BPI_OCIL") + && recode_declare_alias (outer, "sango", "AFRLIN-104-BPI_OCIL") + && recode_declare_alias (outer, "wolof", "AFRLIN-104-BPI_OCIL"); } void -delmodule_african (RECODE_OUTER outer) +delmodule_african (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/afrtran.c b/src/afrtran.c index 979520b..bbfe7d5 100644 --- a/src/afrtran.c +++ b/src/afrtran.c @@ -1,8 +1,10 @@ /* Traitement de certaines tables africaines. - Copyright © 1999, 2000 Progiciels Bourbeau-Pinard inc. + Copyright © 1999-2018 Progiciels Bourbeau-Pinard inc. François Pinard , 1997. */ +#include "config.h" #include "common.h" +#include "decsteps.h" static const unsigned short ful_data[] = { @@ -313,40 +315,25 @@ static const unsigned short lin_data[] = bool module_afrtran (RECODE_OUTER outer) { - if (!declare_explode_data (outer, ful_data, - "AFRFUL-102-BPI_OCIL", "AFRFUL-103-BPI_OCIL")) - return false; - if (!declare_alias (outer, "t-bambara", "AFRFUL-103-BPI_OCIL")) - return false; - if (!declare_alias (outer, "t-bra", "AFRFUL-103-BPI_OCIL")) - return false; - if (!declare_alias (outer, "t-ewondo", "AFRFUL-103-BPI_OCIL")) - return false; - if (!declare_alias (outer, "t-fulfulde", "AFRFUL-103-BPI_OCIL")) - return false; - if (!declare_explode_data (outer, l1_data, - "ISO-8859-1", "AFRL1-101-BPI_OCIL")) - return false; - if (!declare_alias (outer, "t-francais", "AFRL1-101-BPI_OCIL")) - return false; - if (!declare_alias (outer, "t-fra", "AFRL1-101-BPI_OCIL")) - return false; - if (!declare_explode_data (outer, lin_data, - "AFRLIN-104-BPI_OCIL", "AFRLIN-105-BPI_OCIL")) - return false; - if (!declare_alias (outer, "t-lingala", "AFRLIN-105-BPI_OCIL")) - return false; - if (!declare_alias (outer, "t-lin", "AFRLIN-105-BPI_OCIL")) - return false; - if (!declare_alias (outer, "t-sango", "AFRLIN-105-BPI_OCIL")) - return false; - if (!declare_alias (outer, "t-wolof", "AFRLIN-105-BPI_OCIL")) - return false; - - return true; + return recode_declare_explode_data (outer, ful_data, + "AFRFUL-102-BPI_OCIL", "AFRFUL-103-BPI_OCIL") + && recode_declare_alias (outer, "t-bambara", "AFRFUL-103-BPI_OCIL") + && recode_declare_alias (outer, "t-bra", "AFRFUL-103-BPI_OCIL") + && recode_declare_alias (outer, "t-ewondo", "AFRFUL-103-BPI_OCIL") + && recode_declare_alias (outer, "t-fulfulde", "AFRFUL-103-BPI_OCIL") + && recode_declare_explode_data (outer, l1_data, + "ISO-8859-1", "AFRL1-101-BPI_OCIL") + && recode_declare_alias (outer, "t-francais", "AFRL1-101-BPI_OCIL") + && recode_declare_alias (outer, "t-fra", "AFRL1-101-BPI_OCIL") + && recode_declare_explode_data (outer, lin_data, + "AFRLIN-104-BPI_OCIL", "AFRLIN-105-BPI_OCIL") + && recode_declare_alias (outer, "t-lingala", "AFRLIN-105-BPI_OCIL") + && recode_declare_alias (outer, "t-lin", "AFRLIN-105-BPI_OCIL") + && recode_declare_alias (outer, "t-sango", "AFRLIN-105-BPI_OCIL") + && recode_declare_alias (outer, "t-wolof", "AFRLIN-105-BPI_OCIL"); } void -delmodule_afrtran (RECODE_OUTER outer) +delmodule_afrtran (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/ansellat1.l b/src/ansellat1.l new file mode 100644 index 0000000..2cc43d3 --- /dev/null +++ b/src/ansellat1.l @@ -0,0 +1,203 @@ +/* + * Copyright (c) 1998, Wolfram Schneider + * Konrad Zuse Zentrum für Informationstechnik Berlin. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * + * 8-Bit ANSEL to ISO8859-1 conversion. This file support only a subset + * of Z39.47-1993 (ANSEL). It is incomplete due the lack of free + * available documentation ;-( + * + * http://www.niso.org/pccodes.htm + * Z39.47-1993 Extended Latin Alphabet Coded Character Set for + * Bibliographic Use (ANSEL) + * + * Character sets are a basic building block of automated information + * systems. Z39.47 provides a table of coded values for the + * representation of characters of the extended Latin alphabet in + * machine-readable form for thirty-five languages written in the Latin + * alphabet and for fifty-one romanized languages. + * + * 27 pp. ISBN: 1-880124-02-5 Price: $40.00 + * + * + * http://wwnet.com/~krugman1/gentext/gedstand.txt + * 8-Bit ANSEL + * + * The 8-Bit ANSEL (American National Standard for Extended Latin + * Alphabet Coded Character Set for Bibliographic Use, Z39.47, 1985 + * copyright) is the default character set for GEDCOM. [...] + * The ANSEL standard + * specifies an extended 8-bit configuration (above 128) to represent the + * spacing and non-spacing graphic characters that make up most of the + * Latin based languages. ANSEL is a super-set of ASCII. The standard + * ASCII characters including the control characters are preserved. + * + * ANSEL is known by two other names: (1) ANSI Z39.47-1985) and (2) the + * American Library Association character set, used in library systems + * worldwide, including the MARC (MAchine- Readable Catalog) format. + * + * A description of the codes for the ANSEL character set has been + * reproduced with permission and is included with the printed version of + * The GEDCOM Standard. The description of ANSEL codes is not included in + * the electronic version. This description may be purchased from the + * American National Standards Institute at 1430 Broadway, New York, + * N.Y. 10018. The description of the ANSEL character set standard + * includes the following: + * + * * An 8-Bit Code Table showing the ASCII and extended ANSEL codes + * * An explanation or legend of these codes + * * A chart that identifies the ANSEL Non-spacing Graphic Characters + * * A chart that identifies the ASCII Control Characters + * * A chart that identifies the ASCII Graphic Characters + * + * Character-set codes 0 through 127 are the same for 8-Bit ANSEL and + * 8-Bit ASCII (USA version-- ANSI 8-Bit). Character-set codes 128 + * through 255 are unique to the ANSEL character set. + * + * Changes + * ======== + * Fix ansel characters + * + * Capital C with cedilla + * Lower case C with cedilla + * Capital ETH + * Lower case eth + * Capital O with slash + * Capital Y with acute accent + * Lower case Icelandic thorn + * capital OE ligature + * + * Thanks to Larry E. Dixson + * + */ + + +/* Step name: ansel_latin1. */ + +%% + +\241 { recode_put_byte (76, subtask); } +\242 { recode_put_byte (216, subtask); } +\243 { recode_put_byte (208, subtask); } +\244 { recode_put_byte (222, subtask); } +\245 { recode_put_byte (198, subtask); } + +\253 { recode_put_byte (177, subtask); } + +\261 { recode_put_byte (108, subtask); } +\262 { recode_put_byte (248, subtask); } +\263 { recode_put_byte (240, subtask); } +\264 { recode_put_byte (254, subtask); } +\265 { recode_put_byte (230, subtask); } +\266 { recode_put_byte (111, subtask); } + +\271 { recode_put_byte (163, subtask); } + +\303 { recode_put_byte (169, subtask); } +\340 { recode_put_byte (191, subtask); } +\341A { recode_put_byte (192, subtask); } +\341E { recode_put_byte (200, subtask); } +\341I { recode_put_byte (204, subtask); } +\341O { recode_put_byte (210, subtask); } +\341U { recode_put_byte (217, subtask); } +\341a { recode_put_byte (224, subtask); } +\341e { recode_put_byte (232, subtask); } +\341i { recode_put_byte (236, subtask); } +\341o { recode_put_byte (242, subtask); } +\341u { recode_put_byte (249, subtask); } + +\342A { recode_put_byte (193, subtask); } +\342E { recode_put_byte (201, subtask); } +\342I { recode_put_byte (205, subtask); } +\342O { recode_put_byte (211, subtask); } +\342U { recode_put_byte (218, subtask); } +\342Y { recode_put_byte (221, subtask); } + +\342a { recode_put_byte (225, subtask); } +\342e { recode_put_byte (233, subtask); } +\342i { recode_put_byte (237, subtask); } +\342o { recode_put_byte (243, subtask); } +\342u { recode_put_byte (250, subtask); } +\342y { recode_put_byte (253, subtask); } + +\343A { recode_put_byte (194, subtask); } +\343E { recode_put_byte (202, subtask); } +\343I { recode_put_byte (206, subtask); } +\343O { recode_put_byte (212, subtask); } +\343U { recode_put_byte (219, subtask); } + +\343a { recode_put_byte (226, subtask); } +\343e { recode_put_byte (234, subtask); } +\343i { recode_put_byte (238, subtask); } +\343o { recode_put_byte (244, subtask); } +\343u { recode_put_byte (251, subtask); } + +\344A { recode_put_byte (195, subtask); } +\344O { recode_put_byte (213, subtask); } +\344N { recode_put_byte (209, subtask); } +\344a { recode_put_byte (227, subtask); } +\344o { recode_put_byte (245, subtask); } +\344n { recode_put_byte (241, subtask); } + +\345 { recode_put_byte (175, subtask); } + +\350A { recode_put_byte (196, subtask); } +\350E { recode_put_byte (203, subtask); } +\350I { recode_put_byte (207, subtask); } +\350O { recode_put_byte (214, subtask); } +\350U { recode_put_byte (220, subtask); } + +\350a { recode_put_byte (228, subtask); } +\350e { recode_put_byte (235, subtask); } +\350i { recode_put_byte (239, subtask); } +\350o { recode_put_byte (246, subtask); } +\350u { recode_put_byte (252, subtask); } +\350y { recode_put_byte (255, subtask); } + +\352A { recode_put_byte (197, subtask); } +\352a { recode_put_byte (229, subtask); } + +\360C { recode_put_byte (199, subtask); } +\360c { recode_put_byte (231, subtask); } +%% + +bool +module_ansel_latin1 (RECODE_OUTER outer) +{ + return recode_declare_single (outer, "Z39.47:1993", "Latin-1", + outer->quality_variable_to_byte, NULL, + transform_ansel_latin1) + && recode_declare_alias (outer, "8bitANSEL", "Z39.47:1993") + && recode_declare_alias (outer, "Z39.47", "Z39.47:1993") + && recode_declare_alias (outer, "ANSEL", "Z39.47:1993") + && recode_declare_alias (outer, "USMARC", "Z39.47:1993") + && recode_declare_alias (outer, "MARC", "Z39.47:1993") + && recode_declare_alias (outer, "LOC", "Z39.47:1993"); /* Library of Congress */ +} + +void +delmodule_ansel_latin1 (RECODE_OUTER outer) +{ +} diff --git a/src/ansi2knr.1 b/src/ansi2knr.1 deleted file mode 100644 index f9ee5a6..0000000 --- a/src/ansi2knr.1 +++ /dev/null @@ -1,36 +0,0 @@ -.TH ANSI2KNR 1 "19 Jan 1996" -.SH NAME -ansi2knr \- convert ANSI C to Kernighan & Ritchie C -.SH SYNOPSIS -.I ansi2knr -[--varargs] input_file [output_file] -.SH DESCRIPTION -If no output_file is supplied, output goes to stdout. -.br -There are no error messages. -.sp -.I ansi2knr -recognizes function definitions by seeing a non-keyword identifier at the left -margin, followed by a left parenthesis, with a right parenthesis as the last -character on the line, and with a left brace as the first token on the -following line (ignoring possible intervening comments). It will recognize a -multi-line header provided that no intervening line ends with a left or right -brace or a semicolon. These algorithms ignore whitespace and comments, except -that the function name must be the first thing on the line. -.sp -The following constructs will confuse it: -.br - - Any other construct that starts at the left margin and follows the -above syntax (such as a macro or function call). -.br - - Some macros that tinker with the syntax of the function header. -.sp -The --varargs switch is obsolete, and is recognized only for -backwards compatibility. The present version of -.I ansi2knr -will always attempt to convert a ... argument to va_alist and va_dcl. -.SH AUTHOR -L. Peter Deutsch wrote the original ansi2knr and -continues to maintain the current version; most of the code in the current -version is his work. ansi2knr also includes contributions by Francois -Pinard and Jim Avera . diff --git a/src/ansi2knr.c b/src/ansi2knr.c deleted file mode 100644 index a042674..0000000 --- a/src/ansi2knr.c +++ /dev/null @@ -1,739 +0,0 @@ -/* Copyright (C) 1989, 2000 Aladdin Enterprises. All rights reserved. */ - -/*$Id: ansi2knr.c,v 1.3 2000/04/13 03:41:48 lpd Exp $*/ -/* Convert ANSI C function definitions to K&R ("traditional C") syntax */ - -/* -ansi2knr is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY. No author or distributor accepts responsibility to anyone for the -consequences of using it or for whether it serves any particular purpose or -works at all, unless he says so in writing. Refer to the GNU General Public -License (the "GPL") for full details. - -Everyone is granted permission to copy, modify and redistribute ansi2knr, -but only under the conditions described in the GPL. A copy of this license -is supposed to have been given to you along with ansi2knr so you can know -your rights and responsibilities. It should be in a file named COPYLEFT, -or, if there is no file named COPYLEFT, a file named COPYING. Among other -things, the copyright notice and this notice must be preserved on all -copies. - -We explicitly state here what we believe is already implied by the GPL: if -the ansi2knr program is distributed as a separate set of sources and a -separate executable file which are aggregated on a storage medium together -with another program, this in itself does not bring the other program under -the GPL, nor does the mere fact that such a program or the procedures for -constructing it invoke the ansi2knr executable bring any other part of the -program under the GPL. -*/ - -/* - * Usage: - ansi2knr [--filename FILENAME] [INPUT_FILE [OUTPUT_FILE]] - * --filename provides the file name for the #line directive in the output, - * overriding input_file (if present). - * If no input_file is supplied, input is read from stdin. - * If no output_file is supplied, output goes to stdout. - * There are no error messages. - * - * ansi2knr recognizes function definitions by seeing a non-keyword - * identifier at the left margin, followed by a left parenthesis, with a - * right parenthesis as the last character on the line, and with a left - * brace as the first token on the following line (ignoring possible - * intervening comments and/or preprocessor directives), except that a line - * consisting of only - * identifier1(identifier2) - * will not be considered a function definition unless identifier2 is - * the word "void", and a line consisting of - * identifier1(identifier2, <>) - * will not be considered a function definition. - * ansi2knr will recognize a multi-line header provided that no intervening - * line ends with a left or right brace or a semicolon. These algorithms - * ignore whitespace, comments, and preprocessor directives, except that - * the function name must be the first thing on the line. The following - * constructs will confuse it: - * - Any other construct that starts at the left margin and - * follows the above syntax (such as a macro or function call). - * - Some macros that tinker with the syntax of function headers. - */ - -/* - * The original and principal author of ansi2knr is L. Peter Deutsch - * . Other authors are noted in the change history - * that follows (in reverse chronological order): - - lpd 2000-04-12 backs out Eggert's changes because of bugs: - - concatlits didn't declare the type of its bufend argument; - - concatlits didn't recognize when it was inside a comment; - - scanstring could scan backward past the beginning of the string; when - - the check for \ + newline in scanstring was unnecessary. - - 2000-03-05 Paul Eggert - - Add support for concatenated string literals. - * ansi2knr.c (concatlits): New decl. - (main): Invoke concatlits to concatenate string literals. - (scanstring): Handle backslash-newline correctly. Work with - character constants. Fix bug when scanning backwards through - backslash-quote. Check for unterminated strings. - (convert1): Parse character constants, too. - (appendline, concatlits): New functions. - * ansi2knr.1: Document this. - - lpd 1999-08-17 added code to allow preprocessor directives - wherever comments are allowed - lpd 1999-04-12 added minor fixes from Pavel Roskin - for clean compilation with - gcc -W -Wall - lpd 1999-03-22 added hack to recognize lines consisting of - identifier1(identifier2, xxx) as *not* being procedures - lpd 1999-02-03 made indentation of preprocessor commands consistent - lpd 1999-01-28 fixed two bugs: a '/' in an argument list caused an - endless loop; quoted strings within an argument list - confused the parser - lpd 1999-01-24 added a check for write errors on the output, - suggested by Jim Meyering - lpd 1998-11-09 added further hack to recognize identifier(void) - as being a procedure - lpd 1998-10-23 added hack to recognize lines consisting of - identifier1(identifier2) as *not* being procedures - lpd 1997-12-08 made input_file optional; only closes input and/or - output file if not stdin or stdout respectively; prints - usage message on stderr rather than stdout; adds - --filename switch (changes suggested by - ) - lpd 1996-01-21 added code to cope with not HAVE_CONFIG_H and with - compilers that don't understand void, as suggested by - Tom Lane - lpd 1996-01-15 changed to require that the first non-comment token - on the line following a function header be a left brace, - to reduce sensitivity to macros, as suggested by Tom Lane - - lpd 1995-06-22 removed #ifndefs whose sole purpose was to define - undefined preprocessor symbols as 0; changed all #ifdefs - for configuration symbols to #ifs - lpd 1995-04-05 changed copyright notice to make it clear that - including ansi2knr in a program does not bring the entire - program under the GPL - lpd 1994-12-18 added conditionals for systems where ctype macros - don't handle 8-bit characters properly, suggested by - Francois Pinard ; - removed --varargs switch (this is now the default) - lpd 1994-10-10 removed CONFIG_BROKETS conditional - lpd 1994-07-16 added some conditionals to help GNU `configure', - suggested by Francois Pinard ; - properly erase prototype args in function parameters, - contributed by Jim Avera ; - correct error in writeblanks (it shouldn't erase EOLs) - lpd 1989-xx-xx original version - */ - -/* Most of the conditionals here are to make ansi2knr work with */ -/* or without the GNU configure machinery. */ - -#if HAVE_CONFIG_H -# include -#endif - -#include -#include - -#if HAVE_CONFIG_H - -/* - For properly autoconfiguring ansi2knr, use AC_CONFIG_HEADER(config.h). - This will define HAVE_CONFIG_H and so, activate the following lines. - */ - -# if STDC_HEADERS || HAVE_STRING_H -# include -# else -# include -# endif - -#else /* not HAVE_CONFIG_H */ - -/* Otherwise do it the hard way */ - -# ifdef BSD -# include -# else -# ifdef VMS - extern int strlen(), strncmp(); -# else -# include -# endif -# endif - -#endif /* not HAVE_CONFIG_H */ - -#if STDC_HEADERS -# include -#else -/* - malloc and free should be declared in stdlib.h, - but if you've got a K&R compiler, they probably aren't. - */ -# ifdef MSDOS -# include -# else -# ifdef VMS - extern char *malloc(); - extern void free(); -# else - extern char *malloc(); - extern int free(); -# endif -# endif - -#endif - -/* Define NULL (for *very* old compilers). */ -#ifndef NULL -# define NULL (0) -#endif - -/* - * The ctype macros don't always handle 8-bit characters correctly. - * Compensate for this here. - */ -#ifdef isascii -# undef HAVE_ISASCII /* just in case */ -# define HAVE_ISASCII 1 -#else -#endif -#if STDC_HEADERS || !HAVE_ISASCII -# define is_ascii(c) 1 -#else -# define is_ascii(c) isascii(c) -#endif - -#define is_space(c) (is_ascii(c) && isspace(c)) -#define is_alpha(c) (is_ascii(c) && isalpha(c)) -#define is_alnum(c) (is_ascii(c) && isalnum(c)) - -/* Scanning macros */ -#define isidchar(ch) (is_alnum(ch) || (ch) == '_') -#define isidfirstchar(ch) (is_alpha(ch) || (ch) == '_') - -/* Forward references */ -char *ppdirforward(); -char *ppdirbackward(); -char *skipspace(); -char *scanstring(); -int writeblanks(); -int test1(); -int convert1(); - -/* The main program */ -int -main(argc, argv) - int argc; - char *argv[]; -{ FILE *in = stdin; - FILE *out = stdout; - char *filename = 0; - char *program_name = argv[0]; - char *output_name = 0; -#define bufsize 5000 /* arbitrary size */ - char *buf; - char *line; - char *more; - char *usage = - "Usage: ansi2knr [--filename FILENAME] [INPUT_FILE [OUTPUT_FILE]]\n"; - /* - * In previous versions, ansi2knr recognized a --varargs switch. - * If this switch was supplied, ansi2knr would attempt to convert - * a ... argument to va_alist and va_dcl; if this switch was not - * supplied, ansi2knr would simply drop any such arguments. - * Now, ansi2knr always does this conversion, and we only - * check for this switch for backward compatibility. - */ - int convert_varargs = 1; - int output_error; - - while ( argc > 1 && argv[1][0] == '-' ) { - if ( !strcmp(argv[1], "--varargs") ) { - convert_varargs = 1; - argc--; - argv++; - continue; - } - if ( !strcmp(argv[1], "--filename") && argc > 2 ) { - filename = argv[2]; - argc -= 2; - argv += 2; - continue; - } - fprintf(stderr, "%s: Unrecognized switch: %s\n", program_name, - argv[1]); - fprintf(stderr, usage); - exit(1); - } - switch ( argc ) - { - default: - fprintf(stderr, usage); - exit(0); - case 3: - output_name = argv[2]; - out = fopen(output_name, "w"); - if ( out == NULL ) { - fprintf(stderr, "%s: Cannot open output file %s\n", - program_name, output_name); - exit(1); - } - /* falls through */ - case 2: - in = fopen(argv[1], "r"); - if ( in == NULL ) { - fprintf(stderr, "%s: Cannot open input file %s\n", - program_name, argv[1]); - exit(1); - } - if ( filename == 0 ) - filename = argv[1]; - /* falls through */ - case 1: - break; - } - if ( filename ) - fprintf(out, "#line 1 \"%s\"\n", filename); - buf = malloc(bufsize); - if ( buf == NULL ) - { - fprintf(stderr, "Unable to allocate read buffer!\n"); - exit(1); - } - line = buf; - while ( fgets(line, (unsigned)(buf + bufsize - line), in) != NULL ) - { -test: line += strlen(line); - switch ( test1(buf) ) - { - case 2: /* a function header */ - convert1(buf, out, 1, convert_varargs); - break; - case 1: /* a function */ - /* Check for a { at the start of the next line. */ - more = ++line; -f: if ( line >= buf + (bufsize - 1) ) /* overflow check */ - goto wl; - if ( fgets(line, (unsigned)(buf + bufsize - line), in) == NULL ) - goto wl; - switch ( *skipspace(ppdirforward(more), 1) ) - { - case '{': - /* Definitely a function header. */ - convert1(buf, out, 0, convert_varargs); - fputs(more, out); - break; - case 0: - /* The next line was blank or a comment: */ - /* keep scanning for a non-comment. */ - line += strlen(line); - goto f; - default: - /* buf isn't a function header, but */ - /* more might be. */ - fputs(buf, out); - strcpy(buf, more); - line = buf; - goto test; - } - break; - case -1: /* maybe the start of a function */ - if ( line != buf + (bufsize - 1) ) /* overflow check */ - continue; - /* falls through */ - default: /* not a function */ -wl: fputs(buf, out); - break; - } - line = buf; - } - if ( line != buf ) - fputs(buf, out); - free(buf); - if ( output_name ) { - output_error = ferror(out); - output_error |= fclose(out); - } else { /* out == stdout */ - fflush(out); - output_error = ferror(out); - } - if ( output_error ) { - fprintf(stderr, "%s: error writing to %s\n", program_name, - (output_name ? output_name : "stdout")); - exit(1); - } - if ( in != stdin ) - fclose(in); - return 0; -} - -/* - * Skip forward or backward over one or more preprocessor directives. - */ -char * -ppdirforward(p) - char *p; -{ - for (; *p == '#'; ++p) { - for (; *p != '\r' && *p != '\n'; ++p) - if (*p == 0) - return p; - if (*p == '\r' && p[1] == '\n') - ++p; - } - return p; -} -char * -ppdirbackward(p, limit) - char *p; - char *limit; -{ - char *np = p; - - for (;; p = --np) { - if (*np == '\n' && np[-1] == '\r') - --np; - for (; np > limit && np[-1] != '\r' && np[-1] != '\n'; --np) - if (np[-1] == 0) - return np; - if (*np != '#') - return p; - } -} - -/* - * Skip over whitespace, comments, and preprocessor directives, - * in either direction. - */ -char * -skipspace(p, dir) - char *p; - int dir; /* 1 for forward, -1 for backward */ -{ - for ( ; ; ) { - while ( is_space(*p) ) - p += dir; - if ( !(*p == '/' && p[dir] == '*') ) - break; - p += dir; p += dir; - while ( !(*p == '*' && p[dir] == '/') ) { - if ( *p == 0 ) - return p; /* multi-line comment?? */ - p += dir; - } - p += dir; p += dir; - } - return p; -} - -/* Scan over a quoted string, in either direction. */ -char * -scanstring(p, dir) - char *p; - int dir; -{ - for (p += dir; ; p += dir) - if (*p == '"' && p[-dir] != '\\') - return p + dir; -} - -/* - * Write blanks over part of a string. - * Don't overwrite end-of-line characters. - */ -int -writeblanks(start, end) - char *start; - char *end; -{ char *p; - for ( p = start; p < end; p++ ) - if ( *p != '\r' && *p != '\n' ) - *p = ' '; - return 0; -} - -/* - * Test whether the string in buf is a function definition. - * The string may contain and/or end with a newline. - * Return as follows: - * 0 - definitely not a function definition; - * 1 - definitely a function definition; - * 2 - definitely a function prototype (NOT USED); - * -1 - may be the beginning of a function definition, - * append another line and look again. - * The reason we don't attempt to convert function prototypes is that - * Ghostscript's declaration-generating macros look too much like - * prototypes, and confuse the algorithms. - */ -int -test1(buf) - char *buf; -{ char *p = buf; - char *bend; - char *endfn; - int contin; - - if ( !isidfirstchar(*p) ) - return 0; /* no name at left margin */ - bend = skipspace(ppdirbackward(buf + strlen(buf) - 1, buf), -1); - switch ( *bend ) - { - case ';': contin = 0 /*2*/; break; - case ')': contin = 1; break; - case '{': return 0; /* not a function */ - case '}': return 0; /* not a function */ - default: contin = -1; - } - while ( isidchar(*p) ) - p++; - endfn = p; - p = skipspace(p, 1); - if ( *p++ != '(' ) - return 0; /* not a function */ - p = skipspace(p, 1); - if ( *p == ')' ) - return 0; /* no parameters */ - /* Check that the apparent function name isn't a keyword. */ - /* We only need to check for keywords that could be followed */ - /* by a left parenthesis (which, unfortunately, is most of them). */ - { static char *words[] = - { "asm", "auto", "case", "char", "const", "double", - "extern", "float", "for", "if", "int", "long", - "register", "return", "short", "signed", "sizeof", - "static", "switch", "typedef", "unsigned", - "void", "volatile", "while", 0 - }; - char **key = words; - char *kp; - unsigned len = endfn - buf; - - while ( (kp = *key) != 0 ) - { if ( strlen(kp) == len && !strncmp(kp, buf, len) ) - return 0; /* name is a keyword */ - key++; - } - } - { - char *id = p; - int len; - /* - * Check for identifier1(identifier2) and not - * identifier1(void), or identifier1(identifier2, xxxx). - */ - - while ( isidchar(*p) ) - p++; - len = p - id; - p = skipspace(p, 1); - if (*p == ',' || - (*p == ')' && (len != 4 || strncmp(id, "void", 4))) - ) - return 0; /* not a function */ - } - /* - * If the last significant character was a ), we need to count - * parentheses, because it might be part of a formal parameter - * that is a procedure. - */ - if (contin > 0) { - int level = 0; - - for (p = skipspace(buf, 1); *p; p = skipspace(p + 1, 1)) - level += (*p == '(' ? 1 : *p == ')' ? -1 : 0); - if (level > 0) - contin = -1; - } - return contin; -} - -/* Convert a recognized function definition or header to K&R syntax. */ -int -convert1(buf, out, header, convert_varargs) - char *buf; - FILE *out; - int header; /* Boolean */ - int convert_varargs; /* Boolean */ -{ char *endfn; - char *p; - /* - * The breaks table contains pointers to the beginning and end - * of each argument. - */ - char **breaks; - unsigned num_breaks = 2; /* for testing */ - char **btop; - char **bp; - char **ap; - char *vararg = 0; - - /* Pre-ANSI implementations don't agree on whether strchr */ - /* is called strchr or index, so we open-code it here. */ - for ( endfn = buf; *(endfn++) != '('; ) - ; -top: p = endfn; - breaks = (char **)malloc(sizeof(char *) * num_breaks * 2); - if ( breaks == NULL ) - { /* Couldn't allocate break table, give up */ - fprintf(stderr, "Unable to allocate break table!\n"); - fputs(buf, out); - return -1; - } - btop = breaks + num_breaks * 2 - 2; - bp = breaks; - /* Parse the argument list */ - do - { int level = 0; - char *lp = NULL; - char *rp = NULL; - char *end = NULL; - - if ( bp >= btop ) - { /* Filled up break table. */ - /* Allocate a bigger one and start over. */ - free((char *)breaks); - num_breaks <<= 1; - goto top; - } - *bp++ = p; - /* Find the end of the argument */ - for ( ; end == NULL; p++ ) - { switch(*p) - { - case ',': - if ( !level ) end = p; - break; - case '(': - if ( !level ) lp = p; - level++; - break; - case ')': - if ( --level < 0 ) end = p; - else rp = p; - break; - case '/': - if (p[1] == '*') - p = skipspace(p, 1) - 1; - break; - case '"': - p = scanstring(p, 1) - 1; - break; - default: - ; - } - } - /* Erase any embedded prototype parameters. */ - if ( lp && rp ) - writeblanks(lp + 1, rp); - p--; /* back up over terminator */ - /* Find the name being declared. */ - /* This is complicated because of procedure and */ - /* array modifiers. */ - for ( ; ; ) - { p = skipspace(p - 1, -1); - switch ( *p ) - { - case ']': /* skip array dimension(s) */ - case ')': /* skip procedure args OR name */ - { int level = 1; - while ( level ) - switch ( *--p ) - { - case ']': case ')': - level++; - break; - case '[': case '(': - level--; - break; - case '/': - if (p > buf && p[-1] == '*') - p = skipspace(p, -1) + 1; - break; - case '"': - p = scanstring(p, -1) + 1; - break; - default: ; - } - } - if ( *p == '(' && *skipspace(p + 1, 1) == '*' ) - { /* We found the name being declared */ - while ( !isidfirstchar(*p) ) - p = skipspace(p, 1) + 1; - goto found; - } - break; - default: - goto found; - } - } -found: if ( *p == '.' && p[-1] == '.' && p[-2] == '.' ) - { if ( convert_varargs ) - { *bp++ = "va_alist"; - vararg = p-2; - } - else - { p++; - if ( bp == breaks + 1 ) /* sole argument */ - writeblanks(breaks[0], p); - else - writeblanks(bp[-1] - 1, p); - bp--; - } - } - else - { while ( isidchar(*p) ) p--; - *bp++ = p+1; - } - p = end; - } - while ( *p++ == ',' ); - *bp = p; - /* Make a special check for 'void' arglist */ - if ( bp == breaks+2 ) - { p = skipspace(breaks[0], 1); - if ( !strncmp(p, "void", 4) ) - { p = skipspace(p+4, 1); - if ( p == breaks[2] - 1 ) - { bp = breaks; /* yup, pretend arglist is empty */ - writeblanks(breaks[0], p + 1); - } - } - } - /* Put out the function name and left parenthesis. */ - p = buf; - while ( p != endfn ) putc(*p, out), p++; - /* Put out the declaration. */ - if ( header ) - { fputs(");", out); - for ( p = breaks[0]; *p; p++ ) - if ( *p == '\r' || *p == '\n' ) - putc(*p, out); - } - else - { for ( ap = breaks+1; ap < bp; ap += 2 ) - { p = *ap; - while ( isidchar(*p) ) - putc(*p, out), p++; - if ( ap < bp - 1 ) - fputs(", ", out); - } - fputs(") ", out); - /* Put out the argument declarations */ - for ( ap = breaks+2; ap <= bp; ap += 2 ) - (*ap)[-1] = ';'; - if ( vararg != 0 ) - { *vararg = 0; - fputs(breaks[0], out); /* any prior args */ - fputs("va_dcl", out); /* the final arg */ - fputs(bp[0], out); - } - else - fputs(breaks[0], out); - } - free((char *)breaks); - return 0; -} diff --git a/src/applemac.c b/src/applemac.c deleted file mode 100644 index e96a42d..0000000 --- a/src/applemac.c +++ /dev/null @@ -1,186 +0,0 @@ -/* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 97, 98, 99, 00 Free Software Foundation, Inc. - Contributed by François Pinard , 1993. - - This 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. - - 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the Recode 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. */ - -#include "common.h" - -/* Previously, the LF surface was built-in. It is now handled through a - separate, optional step. An optimisation might use a flag to trigger old - built-in code. For now, depend on a variable preset to false. */ -static const bool auto_cr = false; - -/* Data for Apple Macintosh to ISO Latin-1 code conversions. */ - -static struct recode_known_pair known_pairs[] = - { - { 13, 10}, /* (recoding end of lines for Unix) */ - /* The previous pair should be first, for being skippable. */ - - {128, 196}, /* capital letter A diaeresis */ - {129, 197}, /* capital letter A with ring above */ - {130, 199}, /* capital letter C with cedilla */ - {131, 201}, /* capital letter E with acute accent */ - {132, 209}, /* capital letter N with tilde */ - {133, 214}, /* capital letter O with diaeresis */ - {134, 220}, /* capital letter U with diaeresis */ - {135, 225}, /* small letter a with acute accent */ - {136, 224}, /* small letter a with grave accent */ - {137, 226}, /* small letter a with circumflex accent */ - {138, 228}, /* small letter a with diaeresis */ - {139, 227}, /* small letter a with tilde */ - {140, 229}, /* small letter a with ring above */ - {141, 231}, /* small letter c with cedilla */ - {142, 233}, /* small letter e with acute accent */ - {143, 232}, /* small letter e with grave accent */ - {144, 234}, /* small letter e with circumflex accent */ - {145, 235}, /* small letter e with diaeresis */ - {146, 237}, /* small letter i with acute accent */ - {147, 236}, /* small letter i with grave accent */ - {148, 238}, /* small letter i with circumflex accent */ - {149, 239}, /* small letter i with diaeresis */ - {150, 241}, /* small letter n with tilde */ - {151, 243}, /* small letter o with acute accent */ - {152, 242}, /* small letter o with grave accent */ - {153, 244}, /* small letter o with circumflex accent */ - {154, 246}, /* small letter o with diaeresis */ - {155, 245}, /* small letter o with tilde */ - {156, 250}, /* small letter u with acute accent */ - {157, 249}, /* small letter u with grave accent */ - {158, 251}, /* small letter u with circumflex accent */ - {159, 252}, /* small letter u with diaeresis */ - - {161, 176}, /* degree sign */ - {162, 162}, /* cent sign */ - {163, 163}, /* pound sign */ - {164, 167}, /* paragraph sign, section sign */ - - {166, 182}, /* pilcrow sign */ - {167, 223}, /* small german letter sharp s */ - {168, 174}, /* registered trade mark sign */ - {169, 169}, /* copyright sign */ - - {174, 198}, /* capital diphthong A with E */ - {175, 216}, /* capital letter O with oblique stroke */ - - {177, 177}, /* plus-minus sign */ - - {180, 165}, /* yen sign */ - {181, 181}, /* small greek letter mu, micro sign */ - - {187, 170}, /* feminine ordinal indicator */ - {188, 186}, /* masculine ordinal indicator */ - - {190, 230}, /* small diphthong a with e */ - {191, 248}, /* small letter o with oblique stroke */ - {192, 191}, /* inverted question mark */ - {193, 161}, /* inverted exclamation mark */ - {194, 172}, /* not sign */ - - {199, 171}, /* left angle quotation mark */ - {200, 187}, /* right angle quotation mark */ - - {203, 192}, /* capital letter A with grave accent */ - {204, 195}, /* capital letter A with tilde */ - {205, 213}, /* capital letter O with tilde */ - - {214, 247}, /* division sign */ - - {216, 255}, /* small letter y with diaeresis */ - {217, 221}, /* capital letter Y with acute accent */ - - {229, 194}, /* capital letter A with circumflex accent */ - {230, 202}, /* capital letter E with circumflex accent */ - {231, 193}, /* capital letter A with acute accent */ - {232, 203}, /* capital letter E with diaeresis */ - {233, 200}, /* capital letter E with grave accent */ - {234, 205}, /* capital letter I with acute accent */ - {235, 206}, /* capital letter I with circumflex accent */ - {236, 207}, /* capital letter I with diaeresis */ - {237, 204}, /* capital letter I with grave accent */ - {238, 211}, /* capital letter O with acute accent */ - {239, 212}, /* capital letter O with circumflex accent */ - - {241, 210}, /* capital letter O with grave accent */ - {242, 218}, /* capital letter U with acute accent */ - {243, 219}, /* capital letter U with circumflex accent */ - {244, 217}, /* capital letter U with grave accent */ - }; -#define NUMBER_OF_PAIRS (sizeof (known_pairs) / sizeof (struct recode_known_pair)) - -static bool -init_latin1_applemac (RECODE_STEP step, - RECODE_CONST_REQUEST request, - RECODE_CONST_OPTION_LIST before_options, - RECODE_CONST_OPTION_LIST after_options) -{ - if (before_options || after_options) - return false; - - return auto_cr - ? complete_pairs (request->outer, step, - known_pairs, NUMBER_OF_PAIRS, true, true) - : complete_pairs (request->outer, step, - known_pairs + 1, NUMBER_OF_PAIRS - 1, true, true); -} - -static bool -init_applemac_latin1 (RECODE_STEP step, - RECODE_CONST_REQUEST request, - RECODE_CONST_OPTION_LIST before_options, - RECODE_CONST_OPTION_LIST after_options) -{ - if (before_options || after_options) - return false; - - return auto_cr - ? complete_pairs (request->outer, step, - known_pairs, NUMBER_OF_PAIRS, true, false) - : complete_pairs (request->outer, step, - known_pairs + 1, NUMBER_OF_PAIRS - 1, true, false); -} - -bool -module_applemac (RECODE_OUTER outer) -{ - RECODE_ALIAS alias; - - if (!declare_single (outer, "Latin-1", "Apple-Mac", - outer->quality_byte_to_variable, - init_latin1_applemac, NULL)) - return false; - if (!declare_single (outer, "Apple-Mac", "Latin-1", - outer->quality_byte_to_variable, - init_applemac_latin1, NULL)) - return false; - - if (alias = declare_alias (outer, "Apple-Mac", "Apple-Mac"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->cr_surface)) - return false; -#if 0 - /* FIXME! */ - if (!declare_alias (outer, "Apple-Mac", "macintosh")) - return false; -#endif - return true; -} - -void -delmodule_applemac (RECODE_OUTER outer) -{ -} diff --git a/src/argmatch.c b/src/argmatch.c deleted file mode 100644 index 9642706..0000000 --- a/src/argmatch.c +++ /dev/null @@ -1,306 +0,0 @@ -/* argmatch.c -- find a match for a string in an array - Copyright (C) 1990, 1998, 1999 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by David MacKenzie - Modified by Akim Demaille */ - -#include "argmatch.h" - -#include -#ifdef STDC_HEADERS -# include -#endif - -#if HAVE_LOCALE_H -# include -#endif - -#if ENABLE_NLS -# include -# define _(Text) gettext (Text) -#else -# define _(Text) Text -#endif - -#include "error.h" -#include "quotearg.h" - -/* When reporting an invalid argument, show nonprinting characters - by using the quoting style ARGMATCH_QUOTING_STYLE. Do not use - literal_quoting_style. */ -#ifndef ARGMATCH_QUOTING_STYLE -# define ARGMATCH_QUOTING_STYLE locale_quoting_style -#endif - -/* The following test is to work around the gross typo in - systems like Sony NEWS-OS Release 4.0C, whereby EXIT_FAILURE - is defined to 0, not 1. */ -#if !EXIT_FAILURE -# undef EXIT_FAILURE -# define EXIT_FAILURE 1 -#endif - -/* Non failing version of argmatch call this function after failing. */ -#ifndef ARGMATCH_DIE -# define ARGMATCH_DIE exit (EXIT_FAILURE) -#endif - -#ifdef ARGMATCH_DIE_DECL -ARGMATCH_DIE_DECL; -#endif - -static void -__argmatch_die (void) -{ - ARGMATCH_DIE; -} - -/* Used by XARGMATCH and XARGCASEMATCH. See description in argmatch.h. - Default to __argmatch_die, but allow caller to change this at run-time. */ -argmatch_exit_fn argmatch_die = __argmatch_die; - - -/* If ARG is an unambiguous match for an element of the - null-terminated array ARGLIST, return the index in ARGLIST - of the matched element, else -1 if it does not match any element - or -2 if it is ambiguous (is a prefix of more than one element). - If SENSITIVE, comparison is case sensitive. - - If VALLIST is none null, use it to resolve ambiguities limited to - synonyms, i.e., for - "yes", "yop" -> 0 - "no", "nope" -> 1 - "y" is a valid argument, for `0', and "n" for `1'. */ - -static int -__argmatch_internal (const char *arg, const char *const *arglist, - const char *vallist, size_t valsize, - int case_sensitive) -{ - int i; /* Temporary index in ARGLIST. */ - size_t arglen; /* Length of ARG. */ - int matchind = -1; /* Index of first nonexact match. */ - int ambiguous = 0; /* If nonzero, multiple nonexact match(es). */ - - arglen = strlen (arg); - - /* Test all elements for either exact match or abbreviated matches. */ - for (i = 0; arglist[i]; i++) - { - if (case_sensitive - ? !strncmp (arglist[i], arg, arglen) - : !strncasecmp (arglist[i], arg, arglen)) - { - if (strlen (arglist[i]) == arglen) - /* Exact match found. */ - return i; - else if (matchind == -1) - /* First nonexact match found. */ - matchind = i; - else - { - /* Second nonexact match found. */ - if (vallist == NULL - || memcmp (vallist + valsize * matchind, - vallist + valsize * i, valsize)) - { - /* There is a real ambiguity, or we could not - disambiguate. */ - ambiguous = 1; - } - } - } - } - if (ambiguous) - return -2; - else - return matchind; -} - -/* argmatch - case sensitive version */ -int -argmatch (const char *arg, const char *const *arglist, - const char *vallist, size_t valsize) -{ - return __argmatch_internal (arg, arglist, vallist, valsize, 1); -} - -/* argcasematch - case insensitive version */ -int -argcasematch (const char *arg, const char *const *arglist, - const char *vallist, size_t valsize) -{ - return __argmatch_internal (arg, arglist, vallist, valsize, 0); -} - -/* Error reporting for argmatch. - CONTEXT is a description of the type of entity that was being matched. - VALUE is the invalid value that was given. - PROBLEM is the return value from argmatch. */ - -void -argmatch_invalid (const char *context, const char *value, int problem) -{ - char const *format = (problem == -1 - ? _("invalid argument %s for `%s'") - : _("ambiguous argument %s for `%s'")); - - error (0, 0, format, quotearg_style (ARGMATCH_QUOTING_STYLE, value), context); -} - -/* List the valid arguments for argmatch. - ARGLIST is the same as in argmatch. - VALLIST is a pointer to an array of values. - VALSIZE is the size of the elements of VALLIST */ -void -argmatch_valid (const char *const *arglist, - const char *vallist, size_t valsize) -{ - int i; - const char *last_val = NULL; - - /* We try to put synonyms on the same line. The assumption is that - synonyms follow each other */ - fprintf (stderr, _("Valid arguments are:")); - for (i = 0; arglist[i]; i++) - if ((i == 0) - || memcmp (last_val, vallist + valsize * i, valsize)) - { - fprintf (stderr, "\n - `%s'", arglist[i]); - last_val = vallist + valsize * i; - } - else - { - fprintf (stderr, ", `%s'", arglist[i]); - } - putc ('\n', stderr); -} - -/* Never failing versions of the previous functions. - - CONTEXT is the context for which argmatch is called (e.g., - "--version-control", or "$VERSION_CONTROL" etc.). Upon failure, - calls the (supposed never to return) function EXIT_FN. */ - -int -__xargmatch_internal (const char *context, - const char *arg, const char *const *arglist, - const char *vallist, size_t valsize, - int case_sensitive, - argmatch_exit_fn exit_fn) -{ - int res = __argmatch_internal (arg, arglist, - vallist, valsize, - case_sensitive); - if (res >= 0) - /* Success. */ - return res; - - /* We failed. Explain why. */ - argmatch_invalid (context, arg, res); - argmatch_valid (arglist, vallist, valsize); - (*exit_fn) (); - - return -1; /* To please the compilers. */ -} - -/* Look for VALUE in VALLIST, an array of objects of size VALSIZE and - return the first corresponding argument in ARGLIST */ -const char * -argmatch_to_argument (const char *value, - const char *const *arglist, - const char *vallist, size_t valsize) -{ - int i; - - for (i = 0; arglist[i]; i++) - if (!memcmp (value, vallist + valsize * i, valsize)) - return arglist[i]; - return NULL; -} - -#ifdef TEST -/* - * Based on "getversion.c" by David MacKenzie - */ -char *program_name; -extern const char *getenv (); - -/* When to make backup files. */ -enum backup_type -{ - /* Never make backups. */ - none, - - /* Make simple backups of every file. */ - simple, - - /* Make numbered backups of files that already have numbered backups, - and simple backups of the others. */ - numbered_existing, - - /* Make numbered backups of every file. */ - numbered -}; - -/* Two tables describing arguments (keys) and their corresponding - values */ -static const char *const backup_args[] = -{ - "no", "none", "off", - "simple", "never", - "existing", "nil", - "numbered", "t", - 0 -}; - -static const enum backup_type backup_vals[] = -{ - none, none, none, - simple, simple, - numbered_existing, numbered_existing, - numbered, numbered -}; - -int -main (int argc, const char *const *argv) -{ - const char *cp; - enum backup_type backup_type = none; - - program_name = (char *) argv[0]; - - if (argc > 2) - { - fprintf (stderr, "Usage: %s [VERSION_CONTROL]\n", program_name); - exit (1); - } - - if ((cp = getenv ("VERSION_CONTROL"))) - backup_type = XARGCASEMATCH ("$VERSION_CONTROL", cp, - backup_args, backup_vals); - - if (argc == 2) - backup_type = XARGCASEMATCH (program_name, argv[1], - backup_args, backup_vals); - - printf ("The version control is `%s'\n", - ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals)); - - return 0; -} -#endif diff --git a/src/argmatch.h b/src/argmatch.h deleted file mode 100644 index d3f25cc..0000000 --- a/src/argmatch.h +++ /dev/null @@ -1,129 +0,0 @@ -/* argmatch.h -- definitions and prototypes for argmatch.c - Copyright (C) 1990, 1998, 1999 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by David MacKenzie - Modified by Akim Demaille */ - -#ifndef ARGMATCH_H_ -# define ARGMATCH_H_ 1 - -# if HAVE_CONFIG_H -# include -# endif - -# include - -# ifndef PARAMS -# if PROTOTYPES || (defined (__STDC__) && __STDC__) -# define PARAMS(args) args -# else -# define PARAMS(args) () -# endif /* GCC. */ -# endif /* Not PARAMS. */ - -/* Assert there are as many real arguments as there are values - (argument list ends with a NULL guard). There is no execution - cost, since it will be statically evalauted to `assert (0)' or - `assert (1)'. Unfortunately there is no -Wassert-0. */ - -# undef ARRAY_CARDINALITY -# define ARRAY_CARDINALITY(Array) (sizeof ((Array)) / sizeof (*(Array))) - -# define ARGMATCH_ASSERT(Arglist, Vallist) \ - assert (ARRAY_CARDINALITY ((Arglist)) == ARRAY_CARDINALITY ((Vallist)) + 1) - -/* Return the index of the element of ARGLIST (NULL terminated) that - matches with ARG. If VALLIST is not NULL, then use it to resolve - false ambiguities (i.e., different matches of ARG but corresponding - to the same values in VALLIST). */ - -int argmatch - PARAMS ((const char *arg, const char *const *arglist, - const char *vallist, size_t valsize)); -int argcasematch - PARAMS ((const char *arg, const char *const *arglist, - const char *vallist, size_t valsize)); - -# define ARGMATCH(Arg, Arglist, Vallist) \ - argmatch ((Arg), (Arglist), (const char *) (Vallist), sizeof (*(Vallist))) - -# define ARGCASEMATCH(Arg, Arglist, Vallist) \ - argcasematch ((Arg), (Arglist), (const char *) (Vallist), sizeof (*(Vallist))) - -/* xargmatch calls this function when it fails. This function should not - return. By default, this is a function that calls ARGMATCH_DIE which - in turn defaults to `exit (EXIT_FAILURE)'. */ -typedef void (*argmatch_exit_fn) PARAMS ((void)); -extern argmatch_exit_fn argmatch_die; - -/* Report on stderr why argmatch failed. Report correct values. */ - -void argmatch_invalid - PARAMS ((const char *context, const char *value, int problem)); - -/* Left for compatibility with the old name invalid_arg */ - -# define invalid_arg(Context, Value, Problem) \ - argmatch_invalid ((Context), (Value), (Problem)) - - - -/* Report on stderr the list of possible arguments. */ - -void argmatch_valid - PARAMS ((const char *const *arglist, - const char *vallist, size_t valsize)); - -# define ARGMATCH_VALID(Arglist, Vallist) \ - argmatch_valid (Arglist, (const char *) Vallist, sizeof (*(Vallist))) - - - -/* Same as argmatch, but upon failure, reports a explanation on the - failure, and exits using the function EXIT_FN. */ - -int __xargmatch_internal - PARAMS ((const char *context, - const char *arg, const char *const *arglist, - const char *vallist, size_t valsize, - int case_sensitive, argmatch_exit_fn exit_fn)); - -/* Programmer friendly interface to __xargmatch_internal. */ - -# define XARGMATCH(Context, Arg, Arglist, Vallist) \ - (Vallist [__xargmatch_internal ((Context), (Arg), (Arglist), \ - (const char *) (Vallist), \ - sizeof (*(Vallist)), \ - 1, argmatch_die)]) - -# define XARGCASEMATCH(Context, Arg, Arglist, Vallist) \ - (Vallist [__xargmatch_internal ((Context), (Arg), (Arglist), \ - (const char *) (Vallist), \ - sizeof (*(Vallist)), \ - 0, argmatch_die)]) - -/* Convert a value into a corresponding argument. */ - -const char *argmatch_to_argument - PARAMS ((char const *value, const char *const *arglist, - const char *vallist, size_t valsize)); - -# define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \ - argmatch_to_argument ((char const *) &(Value), (Arglist), \ - (const char *) (Vallist), sizeof (*(Vallist))) - -#endif /* ARGMATCH_H_ */ diff --git a/src/ascilat1.l b/src/ascilat1.l index b0d9b2a..f5fc1fe 100644 --- a/src/ascilat1.l +++ b/src/ascilat1.l @@ -1,11 +1,11 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2000 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -15,76 +15,76 @@ You should have received a copy of the GNU Library General Public License along with the Recode 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. */ + If not, see . +*/ /* Step name: ascii_latin1. */ %% -\<\b\"|\"\b\< { put_byte (171, subtask); } -\>\b\"|\"\b\> { put_byte (187, subtask); } -A\b`|`\bA { put_byte (192, subtask); } -A\b'|'\bA { put_byte (193, subtask); } -A\b^|^\bA { put_byte (194, subtask); } -A\b~|~\bA { put_byte (195, subtask); } -A\b\"|\"\bA { put_byte (196, subtask); } -C\b,|,\bC { put_byte (199, subtask); } -E\b`|`\bE { put_byte (200, subtask); } -E\b'|'\bE { put_byte (201, subtask); } -E\b^|^\bE { put_byte (202, subtask); } -E\b\"|\"\bE { put_byte (203, subtask); } -I\b`|`\bI { put_byte (204, subtask); } -I\b'|'\bI { put_byte (205, subtask); } -I\b^|^\bI { put_byte (206, subtask); } -I\b\"|\"\bI { put_byte (207, subtask); } -N\b~|~\bN { put_byte (209, subtask); } -O\b`|`\bO { put_byte (210, subtask); } -O\b'|'\bO { put_byte (211, subtask); } -O\b^|^\bO { put_byte (212, subtask); } -O\b~|~\bO { put_byte (213, subtask); } -O\b\"|\"\bO { put_byte (214, subtask); } -O\b\/|\/\bO { put_byte (216, subtask); } -U\b`|`\bU { put_byte (217, subtask); } -U\b'|'\bU { put_byte (218, subtask); } -U\b^|^\bU { put_byte (219, subtask); } -U\b\"|\"\bU { put_byte (220, subtask); } -Y\b'|'\bY { put_byte (221, subtask); } -s\b\"|\"\bs { put_byte (223, subtask); } -a\b`|`\ba { put_byte (224, subtask); } -a\b'|'\ba { put_byte (225, subtask); } -a\b^|^\ba { put_byte (226, subtask); } -a\b~|~\ba { put_byte (227, subtask); } -a\b\"|\"\ba { put_byte (228, subtask); } -c\b,|,\bc { put_byte (231, subtask); } -e\b`|`\be { put_byte (232, subtask); } -e\b'|'\be { put_byte (233, subtask); } -e\b^|^\be { put_byte (234, subtask); } -e\b\"|\"\be { put_byte (235, subtask); } -i\b`|`\bi { put_byte (236, subtask); } -i\b'|'\bi { put_byte (237, subtask); } -i\b^|^\bi { put_byte (238, subtask); } -i\b\"|\"\bi { put_byte (239, subtask); } -n\b~|~\bn { put_byte (241, subtask); } -o\b`|`\bo { put_byte (242, subtask); } -o\b'|'\bo { put_byte (243, subtask); } -o\b^|^\bo { put_byte (244, subtask); } -o\b~|~\bo { put_byte (245, subtask); } -o\b\"|\"\bo { put_byte (246, subtask); } -o\b\/|\/\bo { put_byte (248, subtask); } -u\b`|`\bu { put_byte (249, subtask); } -u\b'|'\bu { put_byte (250, subtask); } -u\b^|^\bu { put_byte (251, subtask); } -u\b\"|\"\bu { put_byte (252, subtask); } -y\b'|'\by { put_byte (253, subtask); } -y\b\"|\"\by { put_byte (255, subtask); } +\<\b\"|\"\b\< { recode_put_byte (171, subtask); } +\>\b\"|\"\b\> { recode_put_byte (187, subtask); } +A\b`|`\bA { recode_put_byte (192, subtask); } +A\b'|'\bA { recode_put_byte (193, subtask); } +A\b^|^\bA { recode_put_byte (194, subtask); } +A\b~|~\bA { recode_put_byte (195, subtask); } +A\b\"|\"\bA { recode_put_byte (196, subtask); } +C\b,|,\bC { recode_put_byte (199, subtask); } +E\b`|`\bE { recode_put_byte (200, subtask); } +E\b'|'\bE { recode_put_byte (201, subtask); } +E\b^|^\bE { recode_put_byte (202, subtask); } +E\b\"|\"\bE { recode_put_byte (203, subtask); } +I\b`|`\bI { recode_put_byte (204, subtask); } +I\b'|'\bI { recode_put_byte (205, subtask); } +I\b^|^\bI { recode_put_byte (206, subtask); } +I\b\"|\"\bI { recode_put_byte (207, subtask); } +N\b~|~\bN { recode_put_byte (209, subtask); } +O\b`|`\bO { recode_put_byte (210, subtask); } +O\b'|'\bO { recode_put_byte (211, subtask); } +O\b^|^\bO { recode_put_byte (212, subtask); } +O\b~|~\bO { recode_put_byte (213, subtask); } +O\b\"|\"\bO { recode_put_byte (214, subtask); } +O\b\/|\/\bO { recode_put_byte (216, subtask); } +U\b`|`\bU { recode_put_byte (217, subtask); } +U\b'|'\bU { recode_put_byte (218, subtask); } +U\b^|^\bU { recode_put_byte (219, subtask); } +U\b\"|\"\bU { recode_put_byte (220, subtask); } +Y\b'|'\bY { recode_put_byte (221, subtask); } +s\b\"|\"\bs { recode_put_byte (223, subtask); } +a\b`|`\ba { recode_put_byte (224, subtask); } +a\b'|'\ba { recode_put_byte (225, subtask); } +a\b^|^\ba { recode_put_byte (226, subtask); } +a\b~|~\ba { recode_put_byte (227, subtask); } +a\b\"|\"\ba { recode_put_byte (228, subtask); } +c\b,|,\bc { recode_put_byte (231, subtask); } +e\b`|`\be { recode_put_byte (232, subtask); } +e\b'|'\be { recode_put_byte (233, subtask); } +e\b^|^\be { recode_put_byte (234, subtask); } +e\b\"|\"\be { recode_put_byte (235, subtask); } +i\b`|`\bi { recode_put_byte (236, subtask); } +i\b'|'\bi { recode_put_byte (237, subtask); } +i\b^|^\bi { recode_put_byte (238, subtask); } +i\b\"|\"\bi { recode_put_byte (239, subtask); } +n\b~|~\bn { recode_put_byte (241, subtask); } +o\b`|`\bo { recode_put_byte (242, subtask); } +o\b'|'\bo { recode_put_byte (243, subtask); } +o\b^|^\bo { recode_put_byte (244, subtask); } +o\b~|~\bo { recode_put_byte (245, subtask); } +o\b\"|\"\bo { recode_put_byte (246, subtask); } +o\b\/|\/\bo { recode_put_byte (248, subtask); } +u\b`|`\bu { recode_put_byte (249, subtask); } +u\b'|'\bu { recode_put_byte (250, subtask); } +u\b^|^\bu { recode_put_byte (251, subtask); } +u\b\"|\"\bu { recode_put_byte (252, subtask); } +y\b'|'\by { recode_put_byte (253, subtask); } +y\b\"|\"\by { recode_put_byte (255, subtask); } %% bool module_ascii_latin1 (RECODE_OUTER outer) { - if (!declare_single (outer, "ASCII-BS", "Latin-1", + if (!recode_declare_single (outer, "ASCII-BS", "Latin-1", outer->quality_variable_to_byte, NULL, transform_ascii_latin1)) return false; diff --git a/src/atarist.c b/src/atarist.c index eae6c95..470a804 100644 --- a/src/atarist.c +++ b/src/atarist.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1993, 94, 96, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1993-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1993. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,13 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ - -/* Define for using a double step. */ -#define USE_RFC1345_STEP 1 + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" /* RFC 1345 style description for AtariST (non official). @@ -33,8 +32,6 @@ ijIJA+B+G+D+H+W+Z+X+TjJ+K+L+M+N+S+E+P+ZJQ+R+ShT+N%K%M%P%ZjSECa00 a*b*G*p*S*s*Myt*F*h*Omd*Iof*(-*P=3+->==outer, step, - known_pairs, NUMBER_OF_PAIRS, true, true); -} - -static void -init_atarist_latin1 (RECODE_STEP step, - RECODE_CONST_REQUEST request) -{ - return - complete_pairs (request->outer, step, - known_pairs, NUMBER_OF_PAIRS, true, false); -} - -#endif /* not USE_RFC1345_STEP */ - -/* Have this routine only once, for {dec,ini}steps.h to be proper. */ - bool module_atarist (RECODE_OUTER outer) { -#if USE_RFC1345_STEP - - return declare_strip_data (outer, &table, "AtariST"); - -#else - - return - declare_single (outer, "Latin-1", "AtariST", - outer->quality_byte_to_variable, - init_latin1_atarist, NULL) - && declare_single (outer, "AtariST", "Latin-1", - outer->quality_byte_to_variable, - init_atarist_latin1, NULL); - -#endif + return recode_declare_strip_data (outer, &table, "AtariST"); } void -delmodule_atarist (RECODE_OUTER outer) +delmodule_atarist (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/bangbang.c b/src/bangbang.c index a447580..62c05d5 100644 --- a/src/bangbang.c +++ b/src/bangbang.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" static const char *const translation_table[256] = { @@ -283,7 +285,7 @@ static const char *const translation_table[256] = static bool init_latin1_bangbang (RECODE_STEP step, - RECODE_CONST_REQUEST request, + RECODE_CONST_REQUEST request _GL_UNUSED, RECODE_CONST_OPTION_LIST before_options, RECODE_CONST_OPTION_LIST after_options) { @@ -301,13 +303,13 @@ transform_bangbang_latin1 (RECODE_SUBTASK subtask) { int input_char; /* current character */ - while (input_char = get_byte (subtask), input_char != EOF) + while (input_char = recode_get_byte (subtask), input_char != EOF) { if (input_char >= 'A' && input_char <= 'Z') input_char += 'a' - 'A'; else if (input_char == '!') { - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); if (input_char >= 'a' && input_char <= 'z') input_char += 'A' - 'a'; else if (input_char < 'A' || input_char > 'Z') @@ -338,7 +340,7 @@ transform_bangbang_latin1 (RECODE_SUBTASK subtask) case '_': input_char = 127; break; /* del */ case '!': - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); if (input_char == 'J' || input_char == 'j') RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); @@ -359,8 +361,8 @@ transform_bangbang_latin1 (RECODE_SUBTASK subtask) default: RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte ('!', subtask); - put_byte ('!', subtask); + recode_put_byte ('!', subtask); + recode_put_byte ('!', subtask); if (input_char == EOF) SUBTASK_RETURN (subtask); } @@ -368,12 +370,12 @@ transform_bangbang_latin1 (RECODE_SUBTASK subtask) default: RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte ('!', subtask); + recode_put_byte ('!', subtask); if (input_char == EOF) SUBTASK_RETURN (subtask); } } - put_byte (input_char, subtask); + recode_put_byte (input_char, subtask); } SUBTASK_RETURN (subtask); } @@ -382,15 +384,15 @@ bool module_bangbang (RECODE_OUTER outer) { return - declare_single (outer, "Latin-1", "Bang-Bang", + recode_declare_single (outer, "Latin-1", "Bang-Bang", outer->quality_byte_to_variable, - init_latin1_bangbang, transform_byte_to_variable) - && declare_single (outer, "Bang-Bang", "Latin-1", + init_latin1_bangbang, recode_transform_byte_to_variable) + && recode_declare_single (outer, "Bang-Bang", "Latin-1", outer->quality_variable_to_byte, NULL, transform_bangbang_latin1); } void -delmodule_bangbang (RECODE_OUTER outer) +delmodule_bangbang (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/base64.c b/src/base64.c index d44d84e..1c96cad 100644 --- a/src/base64.c +++ b/src/base64.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1996, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1996-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1996. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" #include "base64.h" /* Table of characters coding the 64 values. */ @@ -81,7 +83,7 @@ transform_data_base64 (RECODE_SUBTASK subtask) counter = 0; while (true) { - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == EOF) break; @@ -91,47 +93,47 @@ transform_data_base64 (RECODE_SUBTASK subtask) counter++; else { - put_byte ('\n', subtask); + recode_put_byte ('\n', subtask); counter = 1; } /* Process first byte of a triplet. */ - put_byte (base64_value_to_char[MASK (6) & character >> 2], subtask); - value = (MASK (2) & character) << 4; + recode_put_byte (base64_value_to_char[BIT_MASK (6) & character >> 2], subtask); + value = (BIT_MASK (2) & character) << 4; /* Process second byte of a triplet. */ - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == EOF) { - put_byte (base64_value_to_char[value], subtask); - put_byte ('=', subtask); - put_byte ('=', subtask); + recode_put_byte (base64_value_to_char[value], subtask); + recode_put_byte ('=', subtask); + recode_put_byte ('=', subtask); break; } - put_byte (base64_value_to_char[value | (MASK (4) & character >> 4)], + recode_put_byte (base64_value_to_char[value | (BIT_MASK (4) & character >> 4)], subtask); - value = (MASK (4) & character) << 2; + value = (BIT_MASK (4) & character) << 2; /* Process third byte of a triplet. */ - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == EOF) { - put_byte (base64_value_to_char[value], subtask); - put_byte ('=', subtask); + recode_put_byte (base64_value_to_char[value], subtask); + recode_put_byte ('=', subtask); break; } - put_byte (base64_value_to_char[value | (MASK (2) & character >> 6)], + recode_put_byte (base64_value_to_char[value | (BIT_MASK (2) & character >> 6)], subtask); - put_byte (base64_value_to_char[MASK (6) & character], subtask); + recode_put_byte (base64_value_to_char[BIT_MASK (6) & character], subtask); } /* Complete last partial line. */ if (counter > 0) - put_byte ('\n', subtask); + recode_put_byte ('\n', subtask); SUBTASK_RETURN (subtask); } @@ -147,20 +149,21 @@ transform_base64_data (RECODE_SUBTASK subtask) { /* Accept wrapping lines, reversibly if at each 76 characters. */ - character = get_byte (subtask); + character = recode_get_byte (subtask); + + top: if (character == EOF) - { - if (counter != 0) - RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); - SUBTASK_RETURN (subtask); - } + SUBTASK_RETURN (subtask); if (character == '\n') { + character = recode_get_byte (subtask); + if (character == EOF) + SUBTASK_RETURN (subtask); if (counter != MIME_LINE_LENGTH / 4) RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); counter = 0; - continue; + goto top; } if (character == '\r') @@ -184,7 +187,7 @@ transform_base64_data (RECODE_SUBTASK subtask) /* Process second byte of a quadruplet. */ - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == EOF) { RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); @@ -196,11 +199,11 @@ transform_base64_data (RECODE_SUBTASK subtask) else RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte (value >> 16, subtask); + recode_put_byte (value >> 16, subtask); /* Process third byte of a quadruplet. */ - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == EOF) { RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); @@ -209,7 +212,7 @@ transform_base64_data (RECODE_SUBTASK subtask) if (character == '=') { - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character != '=') RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); continue; @@ -220,11 +223,11 @@ transform_base64_data (RECODE_SUBTASK subtask) else RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte (MASK (8) & value >> 8, subtask); + recode_put_byte (BIT_MASK (8) & value >> 8, subtask); /* Process fourth byte of a quadruplet. */ - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == EOF) { RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); @@ -239,7 +242,7 @@ transform_base64_data (RECODE_SUBTASK subtask) else RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte (MASK (8) & value, subtask); + recode_put_byte (BIT_MASK (8) & value, subtask); } } @@ -247,17 +250,17 @@ bool module_base64 (RECODE_OUTER outer) { return - declare_single (outer, "data", "Base64", + recode_declare_single (outer, "data", "Base64", outer->quality_variable_to_variable, NULL, transform_data_base64) - && declare_single (outer, "Base64", "data", + && recode_declare_single (outer, "Base64", "data", outer->quality_variable_to_variable, NULL, transform_base64_data) - && declare_alias (outer, "b64", "Base64") - && declare_alias (outer, "64", "Base64"); + && recode_declare_alias (outer, "b64", "Base64") + && recode_declare_alias (outer, "64", "Base64"); } void -delmodule_base64 (RECODE_OUTER outer) +delmodule_base64 (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/base64.h b/src/base64.h index a05b818..0ecf320 100644 --- a/src/base64.h +++ b/src/base64.h @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1996, 97, 99, 00 Free Software Foundation, Inc. + Copyright © 1996-2000 Free Software Foundation, Inc. Contributed by François Pinard , 1996. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,8 +14,8 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ /* Maximum number of characters per MIME line. */ #define MIME_LINE_LENGTH 76 diff --git a/src/btexlat1.l b/src/btexlat1.l new file mode 100644 index 0000000..3c806c9 --- /dev/null +++ b/src/btexlat1.l @@ -0,0 +1,138 @@ +/* Conversion of files between different charsets and surfaces. + Copyright © 1990-2018 Free Software Foundation, Inc. + Contributed by François Pinard , 1988. + + This 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 3 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. + + You should have received a copy of the GNU Library General Public + License along with the `recode' Library; see the file `COPYING.LIB'. + If not, see . +*/ + +/* Step name: bibtex_latin1. */ + +Letter [a-zA-Z] +Braces [ \t]*(\{\})? + +%% + +\\"#" { PUT_NON_DIACRITIC_BYTE ('#', subtask); } +\\"$" { PUT_NON_DIACRITIC_BYTE ('$', subtask); } +\\"%" { PUT_NON_DIACRITIC_BYTE ('%', subtask); } +\\"&" { PUT_NON_DIACRITIC_BYTE ('&', subtask); } +\\"_" { PUT_NON_DIACRITIC_BYTE ('_', subtask); } +\\"{" { PUT_NON_DIACRITIC_BYTE ('{', subtask); } +\\"}" { PUT_NON_DIACRITIC_BYTE ('}', subtask); } + +\\backslash{Braces} { PUT_NON_DIACRITIC_BYTE ('\\', subtask); } + +"~" { PUT_NON_DIACRITIC_BYTE (160, subtask); } +"!`" { PUT_NON_DIACRITIC_BYTE (161, subtask); } +\\pound{Braces} { PUT_NON_DIACRITIC_BYTE (163, subtask); } +\\S{Braces} { PUT_NON_DIACRITIC_BYTE (167, subtask); } +\\\" { PUT_NON_DIACRITIC_BYTE (168, subtask); } +\\copyright{Braces} { PUT_NON_DIACRITIC_BYTE (169, subtask); } +"``" { PUT_NON_DIACRITIC_BYTE (171, subtask); } +\\neg{Braces} { PUT_NON_DIACRITIC_BYTE (172, subtask); } +\\"-" { PUT_NON_DIACRITIC_BYTE (173, subtask); } +\\mbox"{$^\\circ$}" { PUT_NON_DIACRITIC_BYTE (176, subtask); } +\\mbox"{$\\pm$}" { PUT_NON_DIACRITIC_BYTE (177, subtask); } +\\mbox"{$^2$}" { PUT_NON_DIACRITIC_BYTE (178, subtask); } +\\mbox"{$^3$}" { PUT_NON_DIACRITIC_BYTE (179, subtask); } +\\"'" { PUT_NON_DIACRITIC_BYTE (180, subtask); } +\\mbox"{$\\mu$}" { PUT_NON_DIACRITIC_BYTE (181, subtask); } +\\cdotp { PUT_NON_DIACRITIC_BYTE (183, subtask); } +\\"," { PUT_NON_DIACRITIC_BYTE (184, subtask); } +\\mbox"{$^1$}" { PUT_NON_DIACRITIC_BYTE (185, subtask); } +"''" { PUT_NON_DIACRITIC_BYTE (187, subtask); } +\\frac"1/4"{Braces} { PUT_NON_DIACRITIC_BYTE (188, subtask); } +\\frac"1/2"{Braces} { PUT_NON_DIACRITIC_BYTE (189, subtask); } +\\frac"3/4"{Braces} { PUT_NON_DIACRITIC_BYTE (190, subtask); } +"?`" { PUT_NON_DIACRITIC_BYTE (191, subtask); } + +"{"(\\"`"A|\\"`{A}")"}"|\\"`"A|\\"`{A}" { recode_put_byte (192, subtask); } +"{"(\\"'"A|\\"'{A}")"}"|\\"'"A|\\"'{A}" { recode_put_byte (193, subtask); } +"{"(\\"^"A|\\"^{A}")"}"|\\"^"A|\\"^{A}" { recode_put_byte (194, subtask); } +"{"(\\"~"A|\\"~{A}")"}"|\\"~"A|\\"~{A}" { recode_put_byte (195, subtask); } +"{"(\\\"A|\\\""{A}")"}"|\\\"A|\\\""{A}" { recode_put_byte (196, subtask); } +"{"(\\AA{Braces})"}"|\\AA{Braces} { recode_put_byte (197, subtask); } +"{"(\\AE{Braces})"}"|\\AE{Braces} { recode_put_byte (198, subtask); } +"{"(\\c[ \t]+C|\\c"{C}")"}"|\\c[ \t]+C|\\c"{C}" { recode_put_byte (199, subtask); } +"{"(\\"`"E|\\"`{E}")"}"|\\"`"E|\\"`{E}" { recode_put_byte (200, subtask); } +"{"(\\"'"E|\\"'{E}")"}"|\\"'"E|\\"'{E}" { recode_put_byte (201, subtask); } +"{"(\\"^"E|\\"^{E}")"}"|\\"^"E|\\"^{E}" { recode_put_byte (202, subtask); } +"{"(\\\"E|\\\""{E}")"}"|\\\"E|\\\""{E}" { recode_put_byte (203, subtask); } +"{"(\\"`"I|\\"`{I}")"}"|\\"`"I|\\"`{I}" { recode_put_byte (204, subtask); } +"{"(\\"'"I|\\"'{I}")"}"|\\"'"I|\\"'{I}" { recode_put_byte (205, subtask); } +"{"(\\"^"I|\\"^{I}")"}"|\\"^"I|\\"^{I}" { recode_put_byte (206, subtask); } +"{"(\\\"I|\\\""{I}")"}"|\\\"I|\\\""{I}" { recode_put_byte (207, subtask); } +"{"(\\"~"N|\\"~{N}")"}"|\\"~"N|\\"~{N}" { recode_put_byte (209, subtask); } +"{"(\\"`"O|\\"`{O}")"}"|\\"`"O|\\"`{O}" { recode_put_byte (210, subtask); } +"{"(\\"'"O|\\"'{O}")"}"|\\"'"O|\\"'{O}" { recode_put_byte (211, subtask); } +"{"(\\"^"O|\\"^{O}")"}"|\\"^"O|\\"^{O}" { recode_put_byte (212, subtask); } +"{"(\\"~"O|\\"~{O}")"}"|\\"~"O|\\"~{O}" { recode_put_byte (213, subtask); } +"{"(\\\"O|\\\""{O}")"}"|\\\"O|\\\""{O}" { recode_put_byte (214, subtask); } +"{"(\\O{Braces})"}"|\\O{Braces} { recode_put_byte (216, subtask); } +"{"(\\"`"U|\\"`{U}")"}"|\\"`"U|\\"`{U}" { recode_put_byte (217, subtask); } +"{"(\\"'"U|\\"'{U}")"}"|\\"'"U|\\"'{U}" { recode_put_byte (218, subtask); } +"{"(\\"^"U|\\"^{U}")"}"|\\"^"U|\\"^{U}" { recode_put_byte (219, subtask); } +"{"(\\\"U|\\\""{U}")"}"|\\\"U|\\\""{U}" { recode_put_byte (220, subtask); } +"{"(\\"'"Y|\\"'{Y}")"}"|\\"'"Y|\\"'{Y}" { recode_put_byte (221, subtask); } +"{"(\\ss{Braces})"}"|\\ss{Braces} { recode_put_byte (223, subtask); } +"{"(\\"`"a|\\"`{a}")"}"|\\"`"a|\\"`{a}" { recode_put_byte (224, subtask); } +"{"(\\"'"a|\\"'{a}")"}"|\\"'"a|\\"'{a}" { recode_put_byte (225, subtask); } +"{"(\\"^"a|\\"^{a}")"}"|\\"^"a|\\"^{a}" { recode_put_byte (226, subtask); } +"{"(\\"~"a|\\"~{a}")"}"|\\"~"a|\\"~{a}" { recode_put_byte (227, subtask); } +"{"(\\\"a|\\\""{a}")"}"|\\\"a|\\\""{a}" { recode_put_byte (228, subtask); } +"{"(\\aa{Braces})"}"|\\aa{Braces} { recode_put_byte (229, subtask); } +"{"(\\ae{Braces})"}"|\\ae{Braces} { recode_put_byte (230, subtask); } +"{"(\\c[ \t]+c|\\c"{c}")"}"|\\c[ \t]+c|\\c"{c}" { recode_put_byte (231, subtask); } +"{"(\\"`"e|\\"`{e}")"}"|\\"`"e|\\"`{e}" { recode_put_byte (232, subtask); } +"{"(\\"'"e|\\"'{e}")"}"|\\"'"e|\\"'{e}" { recode_put_byte (233, subtask); } +"{"(\\"^"e|\\"^{e}")"}"|\\"^"e|\\"^{e}" { recode_put_byte (234, subtask); } +"{"(\\\"e|\\\""{e}")"}"|\\\"e|\\\""{e}" { recode_put_byte (235, subtask); } +"{"(\\"`"\\i{Braces}|\\"`{\\i}")"}"|\\"`"\\i{Braces}|\\"`{\\i}" { recode_put_byte (236, subtask); } +"{"(\\"'"\\i{Braces}|\\"'{\\i}")"}"|\\"'"\\i{Braces}|\\"'{\\i}" { recode_put_byte (237, subtask); } +"{"(\\"^"\\i{Braces}|\\"^{\\i}")"}"|\\"^"\\i{Braces}|\\"^{\\i}" { recode_put_byte (238, subtask); } +"{"(\\\"\\i{Braces}|\\\""{\\i}")"}"|\\\"\\i{Braces}|\\\""{\\i}" { recode_put_byte (239, subtask); } +"{"(\\"~"n|\\"~{n}")"}"|\\"~"n|\\"~{n}" { recode_put_byte (241, subtask); } +"{"(\\"`"o|\\"`{o}")"}"|\\"`"o|\\"`{o}" { recode_put_byte (242, subtask); } +"{"(\\"'"o|\\"'{o}")"}"|\\"'"o|\\"'{o}" { recode_put_byte (243, subtask); } +"{"(\\"^"o|\\"^{o}")"}"|\\"^"o|\\"^{o}" { recode_put_byte (244, subtask); } +"{"(\\"~"o|\\"~{o}")"}"|\\"~"o|\\"~{o}" { recode_put_byte (245, subtask); } +"{"(\\\"o|\\\""{o}")"}"|\\\"o|\\\""{o}" { recode_put_byte (246, subtask); } +"{"(\\o{Braces})"}"|\\o{Braces} { recode_put_byte (248, subtask); } +"{"(\\"`"u|\\"`{u}")"}"|\\"`"u|\\"`{u}" { recode_put_byte (249, subtask); } +"{"(\\"'"u|\\"'{u}")"}"|\\"'"u|\\"'{u}" { recode_put_byte (250, subtask); } +"{"(\\"^"u|\\"^{u}")"}"|\\"^"u|\\"^{u}" { recode_put_byte (251, subtask); } +"{"(\\\"u|\\\""{u}")"}"|\\\"u|\\\""{u}" { recode_put_byte (252, subtask); } +"{"(\\"'"y|\\"'{y}")"}"|\\"'"y|\\"'{y}" { recode_put_byte (253, subtask); } +"{"(\\\"y|\\\""{y}")"}"|\\\"y|\\\""{y}" { recode_put_byte (255, subtask); } + +\\[`'^"]\\i{Letter}*{Braces} { ECHO; } +\\{Letter}+{Braces} { ECHO; } + +%% + +bool +module_bibtex_latin1 (RECODE_OUTER outer) +{ + return + recode_declare_single (outer, "BibTeX", "Latin-1", + outer->quality_variable_to_byte, + NULL, transform_bibtex_latin1) + && recode_declare_alias (outer, "btex", "BibTeX"); +} + +void +delmodule_bibtex_latin1 (RECODE_OUTER outer) +{ +} diff --git a/src/cdcnos.c b/src/cdcnos.c index 8b67cd7..fbb7fe5 100644 --- a/src/cdcnos.c +++ b/src/cdcnos.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" static const char *const translation_table[128] = { @@ -173,61 +175,62 @@ init_ascii_cdcnos (RECODE_STEP step, step->step_type = RECODE_BYTE_TO_STRING; step->step_table = table; + step->step_table_term_routine = free; return true; } /* Previous obsolete lex code: -@A { put_byte ('@', subtask); } -@B { put_byte ('^', subtask); } -@D { put_byte (':', subtask); } -@G { put_byte ('`', subtask); } +@A { recode_put_byte ('@', subtask); } +@B { recode_put_byte ('^', subtask); } +@D { recode_put_byte (':', subtask); } +@G { recode_put_byte ('`', subtask); } -\^" " { put_byte ( 13, subtask); } -\^! { put_byte ( 22, subtask); } -\^\" { put_byte ( 20, subtask); } -\^# { put_byte ( 16, subtask); } -\^$ { put_byte ( 11, subtask); } -\^\% { put_byte ( 19, subtask); } -\^& { put_byte ( 23, subtask); } -\^' { put_byte ( 24, subtask); } -\^\( { put_byte ( 9, subtask); } -\^\) { put_byte ( 10, subtask); } -\^\* { put_byte ( 7, subtask); } -\^\+ { put_byte ( 5, subtask); } -\^\, { put_byte ( 14, subtask); } -\^- { put_byte ( 6, subtask); } -\^\. { put_byte ( 15, subtask); } -\^\/ { put_byte ( 8, subtask); } +\^" " { recode_put_byte ( 13, subtask); } +\^! { recode_put_byte ( 22, subtask); } +\^\" { recode_put_byte ( 20, subtask); } +\^# { recode_put_byte ( 16, subtask); } +\^$ { recode_put_byte ( 11, subtask); } +\^\% { recode_put_byte ( 19, subtask); } +\^& { recode_put_byte ( 23, subtask); } +\^' { recode_put_byte ( 24, subtask); } +\^\( { recode_put_byte ( 9, subtask); } +\^\) { recode_put_byte ( 10, subtask); } +\^\* { recode_put_byte ( 7, subtask); } +\^\+ { recode_put_byte ( 5, subtask); } +\^\, { recode_put_byte ( 14, subtask); } +\^- { recode_put_byte ( 6, subtask); } +\^\. { recode_put_byte ( 15, subtask); } +\^\/ { recode_put_byte ( 8, subtask); } -\^0 { put_byte ('{', subtask); } -\^1 { put_byte ('|', subtask); } -\^2 { put_byte ('}', subtask); } -\^3 { put_byte ('~', subtask); } -\^4 { put_byte (127, subtask); } +\^0 { recode_put_byte ('{', subtask); } +\^1 { recode_put_byte ('|', subtask); } +\^2 { recode_put_byte ('}', subtask); } +\^3 { recode_put_byte ('~', subtask); } +\^4 { recode_put_byte (127, subtask); } -\^5 { put_byte ( 0, subtask); } -\^6 { put_byte ( 1, subtask); } -\^7 { put_byte ( 2, subtask); } -\^8 { put_byte ( 3, subtask); } -\^9 { put_byte ( 4, subtask); } +\^5 { recode_put_byte ( 0, subtask); } +\^6 { recode_put_byte ( 1, subtask); } +\^7 { recode_put_byte ( 2, subtask); } +\^8 { recode_put_byte ( 3, subtask); } +\^9 { recode_put_byte ( 4, subtask); } -\^; { put_byte ( 31, subtask); } -\^< { put_byte ( 26, subtask); } -\^= { put_byte ( 12, subtask); } -\^> { put_byte ( 27, subtask); } -\^? { put_byte ( 25, subtask); } -\^@ { put_byte ( 28, subtask); } +\^; { recode_put_byte ( 31, subtask); } +\^< { recode_put_byte ( 26, subtask); } +\^= { recode_put_byte ( 12, subtask); } +\^> { recode_put_byte ( 27, subtask); } +\^? { recode_put_byte ( 25, subtask); } +\^@ { recode_put_byte ( 28, subtask); } -\^[A-Z] { put_byte (yytext[1]-'A'+'a', subtask); } +\^[A-Z] { recode_put_byte (yytext[1]-'A'+'a', subtask); } -\^\[ { put_byte ( 17, subtask); } -\^\\ { put_byte ( 29, subtask); } -\^] { put_byte ( 18, subtask); } -\^\^ { put_byte ( 30, subtask); } -\^_ { put_byte ( 21, subtask); } +\^\[ { recode_put_byte ( 17, subtask); } +\^\\ { recode_put_byte ( 29, subtask); } +\^] { recode_put_byte ( 18, subtask); } +\^\^ { recode_put_byte ( 30, subtask); } +\^_ { recode_put_byte ( 21, subtask); } -\^[a-z] { put_byte (yytext[1], subtask); } +\^[a-z] { recode_put_byte (yytext[1], subtask); } */ @@ -236,12 +239,12 @@ transform_cdcnos_ascii (RECODE_SUBTASK subtask) { int input_char; /* current character */ - while (input_char = get_byte (subtask), input_char != EOF) + while (input_char = recode_get_byte (subtask), input_char != EOF) { switch (input_char) { case '@': - switch (input_char = get_byte (subtask), input_char) + switch (input_char = recode_get_byte (subtask), input_char) { case 'A': case 'a': input_char = '@'; break; case 'B': case 'b': input_char = '^'; break; @@ -250,14 +253,14 @@ transform_cdcnos_ascii (RECODE_SUBTASK subtask) default: RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte ('@', subtask); + recode_put_byte ('@', subtask); if (input_char == EOF) SUBTASK_RETURN (subtask); } break; case '^': - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); if (input_char >= 'A' && input_char <= 'Z') input_char += 'a' - 'A'; else if (input_char < 'a' || input_char > 'z') @@ -308,13 +311,16 @@ transform_cdcnos_ascii (RECODE_SUBTASK subtask) default: RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte ('^', subtask); + recode_put_byte ('^', subtask); if (input_char == EOF) SUBTASK_RETURN (subtask); } break; + + default: + break; } - put_byte (input_char, subtask); + recode_put_byte (input_char, subtask); } SUBTASK_RETURN (subtask); } @@ -323,16 +329,16 @@ bool module_cdcnos (RECODE_OUTER outer) { return - declare_single (outer, "ASCII-BS", "CDC-NOS", + recode_declare_single (outer, "ASCII-BS", "CDC-NOS", outer->quality_byte_to_variable, - init_ascii_cdcnos, transform_byte_to_variable) - && declare_single (outer, "CDC-NOS", "ASCII-BS", + init_ascii_cdcnos, recode_transform_byte_to_variable) + && recode_declare_single (outer, "CDC-NOS", "ASCII-BS", outer->quality_variable_to_byte, NULL, transform_cdcnos_ascii) - && declare_alias (outer, "NOS", "CDC-NOS"); + && recode_declare_alias (outer, "NOS", "CDC-NOS"); } void -delmodule_cdcnos (RECODE_OUTER outer) +delmodule_cdcnos (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/charname.c b/src/charname.c index fc86df6..c4e8920 100644 --- a/src/charname.c +++ b/src/charname.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1993, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1993-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1993. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,9 +14,10 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" #include "charname.h" @@ -26,7 +27,7 @@ `--------------------------------------------------------------------*/ const char * -ucs2_to_charname (int ucs2) +recode_ucs2_to_charname (int ucs2) { static char result[MAX_CHARNAME_LENGTH + 1]; int first; @@ -83,6 +84,7 @@ ucs2_to_charname (int ucs2) /* Return the result. */ - *out = NUL; + if (out) + *out = NUL; return result; } diff --git a/src/charname.h b/src/charname.h deleted file mode 100644 index 2848329..0000000 --- a/src/charname.h +++ /dev/null @@ -1,2659 +0,0 @@ -/* DO NOT MODIFY THIS FILE! It was generated by `recode/tables.py'. */ - -/* Conversion of files between different charsets and surfaces. - Copyright © 1999 Free Software Foundation, Inc. - Contributed by François Pinard , 1993, 1997. - - This 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. - - 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the Recode 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. */ - -#define NUMBER_OF_SINGLES 252 -#define MAX_CHARNAME_LENGTH 56 -#define NUMBER_OF_CHARNAMES 1827 - -static const char *const word[794] = - { - "letter", /* \001 */ - "latin", /* \002 */ - "with", /* \003 */ - "small", /* \004 */ - "capital", /* \005 */ - "arabic", /* \006 */ - "and", /* \007 */ - "form", /* \010 */ - "cyrillic", /* \011 */ - "greek", /* \012 */ - "acute", /* \013 */ - "katakana", /* \014 */ - "dot", /* \015 */ - "above", /* \016 */ - "hiragana", /* \017 */ - "below", /* \020 */ - "box", /* \021 */ - "drawings", /* \022 */ - "o", /* \023 */ - "u", /* \024 */ - "digit", /* \025 */ - "circled", /* \026 */ - "circumflex", /* \027 */ - "a", /* \030 */ - "light", /* \031 */ - "heavy", /* \032 */ - "e", /* \033 */ - "left", /* \034 */ - "right", /* \035 */ - "sign", /* \036 */ - "diaeresis", /* \037 */ - "parenthesized", /* \040 */ - "i", /* \041 */ - "tilde", /* \042 */ - "bopomofo", /* \043 */ - "final", /* \044 */ - "caron", /* \045 */ - "mark", /* \046 */ - "grave", /* \047 */ - "macron", /* \050 */ - "isolated", /* \051 */ - "line", /* \052 */ - "up", /* \053 */ - "down", /* \054 */ - "numeral", /* \055 */ - "hebrew", /* \056 */ - "breve", /* \057 */ - "cedilla", /* \060 */ - "n", /* \061 */ - "roman", /* \062 */ - "vertical", /* \063 */ - "double", /* \064 */ - "hook", /* \065 */ - "horizontal", /* \066 */ - "white", /* \067 */ - "s", /* \070 */ - "black", /* \071 */ - "medial", /* \072 */ - "alef", /* \073 */ - "full", /* \074 */ - "g", /* \075 */ - "initial", /* \076 */ - "l", /* \077 */ - "non-spacing", /* \100 */ - "stop", /* \101 */ - "y", /* \102 */ - "d", /* \103 */ - "h", /* \104 */ - "horn", /* \105 */ - "t", /* \106 */ - "z", /* \107 */ - "of", /* \110 */ - "to", /* \111 */ - "bracket", /* \112 */ - "c", /* \113 */ - "ligature", /* \114 */ - "one", /* \115 */ - "r", /* \116 */ - "(character", /* \117 */ - "superscript", /* \120 */ - "w", /* \121 */ - "fraction", /* \122 */ - "k", /* \123 */ - "stroke", /* \124 */ - "two", /* \125 */ - "square", /* \126 */ - "subscript", /* \127 */ - "three", /* \130 */ - "vulgar", /* \131 */ - "(iso-ir-103", /* \132 */ - "number", /* \133 */ - "ogonek", /* \134 */ - "arrow", /* \135 */ - "b", /* \136 */ - "lam", /* \137 */ - "quotation", /* \140 */ - "ring", /* \141 */ - "dash", /* \142 */ - "five", /* \143 */ - "four", /* \144 */ - "m", /* \145 */ - "space", /* \146 */ - "accent", /* \147 */ - "seven", /* \150 */ - "x", /* \151 */ - "angle", /* \152 */ - "arabic-indic", /* \153 */ - "eastern", /* \154 */ - "eight", /* \155 */ - "equal", /* \156 */ - "half", /* \157 */ - "hamza", /* \160 */ - "ideograph", /* \161 */ - "nine", /* \162 */ - "p", /* \163 */ - "part)", /* \164 */ - "six", /* \165 */ - "triangle", /* \166 */ - "v", /* \167 */ - "iota", /* \170 */ - "j", /* \171 */ - "f", /* \172 */ - "lower", /* \173 */ - "ocr", /* \174 */ - "single", /* \175 */ - "suit", /* \176 */ - "teh", /* \177 */ - "character", /* \200 */ - "ideographic", /* \201 */ - "kaf", /* \202 */ - "operator", /* \203 */ - "upsilon", /* \204 */ - "(macedonian)", /* \205 */ - "ae", /* \206 */ - "block", /* \207 */ - "circle", /* \210 */ - "control", /* \211 */ - "end", /* \212 */ - "fill", /* \213 */ - "or", /* \214 */ - "parenthesis", /* \215 */ - "pe", /* \216 */ - "prime", /* \217 */ - "q", /* \220 */ - "triple", /* \221 */ - "ya", /* \222 */ - "yeh", /* \223 */ - "yu", /* \224 */ - "zero", /* \225 */ - "ain", /* \226 */ - "beh", /* \227 */ - "dad", /* \230 */ - "dasia", /* \231 */ - "device", /* \232 */ - "en", /* \233 */ - "feh", /* \234 */ - "ghain", /* \235 */ - "hah", /* \236 */ - "heh", /* \237 */ - "integral", /* \240 */ - "iteration", /* \241 */ - "jeem", /* \242 */ - "ka", /* \243 */ - "khah", /* \244 */ - "left-pointing", /* \245 */ - "meem", /* \246 */ - "middle", /* \247 */ - "noon", /* \250 */ - "not", /* \251 */ - "psili", /* \252 */ - "qaf", /* \253 */ - "right-pointing", /* \254 */ - "sad", /* \255 */ - "seen", /* \256 */ - "sheen", /* \257 */ - "start", /* \260 */ - "tabulation", /* \261 */ - "tah", /* \262 */ - "theh", /* \263 */ - "upper", /* \264 */ - "zah", /* \265 */ - "(icelandic)", /* \266 */ - "(serbocroatian)", /* \267 */ - "alpha", /* \270 */ - "area", /* \271 */ - "be", /* \272 */ - "corner", /* \273 */ - "de", /* \274 */ - "diamond", /* \275 */ - "em", /* \276 */ - "epsilon", /* \277 */ - "eta", /* \300 */ - "ezh", /* \301 */ - "ghe", /* \302 */ - "greater-than", /* \303 */ - "ha", /* \304 */ - "ie", /* \305 */ - "inverted", /* \306 */ - "koppa", /* \307 */ - "lenticular", /* \310 */ - "less-than", /* \311 */ - "low", /* \312 */ - "madda", /* \313 */ - "mu", /* \314 */ - "nu", /* \315 */ - "omega", /* \316 */ - "omicron", /* \317 */ - "perispomeni", /* \320 */ - "pi", /* \321 */ - "pneumata", /* \322 */ - "quadruple", /* \323 */ - "reversed", /* \324 */ - "separator", /* \325 */ - "set", /* \326 */ - "short", /* \327 */ - "sound", /* \330 */ - "te", /* \331 */ - "ten", /* \332 */ - "tu", /* \333 */ - "varia", /* \334 */ - "wa", /* \335 */ - "waw", /* \336 */ - "yo", /* \337 */ - "ze", /* \340 */ - "(iso-10646-1dis", /* \341 */ - "(iso-ir-149", /* \342 */ - "(iso-ir-18", /* \343 */ - "(iso-ir-55", /* \344 */ - "beta", /* \345 */ - "comma", /* \346 */ - "dal", /* \347 */ - "degree", /* \350 */ - "diagonal", /* \351 */ - "eighth", /* \352 */ - "eighths", /* \353 */ - "eleven", /* \354 */ - "eng", /* \355 */ - "equals", /* \356 */ - "er", /* \357 */ - "exclamation", /* \360 */ - "feed", /* \361 */ - "fifths", /* \362 */ - "he", /* \363 */ - "index", /* \364 */ - "introducer", /* \365 */ - "katakana-hiragana", /* \366 */ - "ke", /* \367 */ - "maksura", /* \370 */ - "marbuta", /* \371 */ - "minus", /* \372 */ - "music", /* \373 */ - "no", /* \374 */ - "partial", /* \375\001 */ - "plus", /* \375\002 */ - "question", /* \375\003 */ - "reh", /* \375\004 */ - "rightwards", /* \375\005 */ - "shade", /* \375\006 */ - "sigma", /* \375\007 */ - "soft", /* \375\010 */ - "solidus", /* \375\011 */ - "string", /* \375\012 */ - "telephone", /* \375\013 */ - "thal", /* \375\014 */ - "twelve", /* \375\015 */ - "unit", /* \375\016 */ - "ve", /* \375\017 */ - "voiced", /* \375\020 */ - "zain", /* \375\021 */ - "(byelorussian)", /* \375\022 */ - "(iso-ir-38", /* \375\023 */ - "(iso-ir-8-1", /* \375\024 */ - "(lappish)", /* \375\025 */ - "(ukrainian)", /* \375\026 */ - "201)", /* \375\027 */ - "204)", /* \375\030 */ - "206)", /* \375\031 */ - "acknowledge", /* \375\032 */ - "all", /* \375\033 */ - "apostrophe", /* \375\034 */ - "approximately", /* \375\035 */ - "asterisk", /* \375\036 */ - "ba", /* \375\037 */ - "bar", /* \375\040 */ - "barred", /* \375\041 */ - "bi", /* \375\042 */ - "big", /* \375\043 */ - "bo", /* \375\044 */ - "break", /* \375\045 */ - "bu", /* \375\046 */ - "bullet", /* \375\047 */ - "byelorussian-ukrainian", /* \375\050 */ - "cancel", /* \375\051 */ - "ceiling", /* \375\052 */ - "che", /* \375\053 */ - "check", /* \375\054 */ - "chi", /* \375\055 */ - "club", /* \375\056 */ - "command", /* \375\057 */ - "compatibility", /* \375\060 */ - "copyright", /* \375\061 */ - "crosshatch", /* \375\062 */ - "curly", /* \375\063 */ - "da", /* \375\064 */ - "dagger", /* \375\065 */ - "delta", /* \375\066 */ - "di", /* \375\067 */ - "digamma", /* \375\070 */ - "ditto", /* \375\071 */ - "dje", /* \375\072 */ - "do", /* \375\073 */ - "down-pointing", /* \375\074 */ - "du", /* \375\075 */ - "dze", /* \375\076 */ - "dzhe", /* \375\077 */ - "east", /* \375\100 */ - "ef", /* \375\101 */ - "el", /* \375\102 */ - "ellipsis", /* \375\103 */ - "es", /* \375\104 */ - "escape", /* \375\105 */ - "eth", /* \375\106 */ - "face", /* \375\107 */ - "fifty", /* \375\110 */ - "fita", /* \375\111 */ - "floor", /* \375\112 */ - "fork", /* \375\113 */ - "ga", /* \375\114 */ - "gamma", /* \375\115 */ - "ge", /* \375\116 */ - "gi", /* \375\117 */ - "gje", /* \375\120 */ - "go", /* \375\121 */ - "gu", /* \375\122 */ - "guarded", /* \375\123 */ - "hard", /* \375\124 */ - "heart", /* \375\125 */ - "here", /* \375\126 */ - "hi", /* \375\127 */ - "high-reversed-9", /* \375\130 */ - "ho", /* \375\131 */ - "hu", /* \375\132 */ - "hyphen", /* \375\133 */ - "ij", /* \375\134 */ - "indicator", /* \375\135 */ - "inverse", /* \375\136 */ - "io", /* \375\137 */ - "izhitsa", /* \375\140 */ - "je", /* \375\141 */ - "kappa", /* \375\142 */ - "ki", /* \375\143 */ - "kje", /* \375\144 */ - "ko", /* \375\145 */ - "ku", /* \375\146 */ - "lamda", /* \375\147 */ - "leftwards", /* \375\150 */ - "lje", /* \375\151 */ - "logical", /* \375\152 */ - "low-9", /* \375\153 */ - "ma", /* \375\154 */ - "me", /* \375\155 */ - "medium", /* \375\156 */ - "mem", /* \375\157 */ - "meridiam", /* \375\160 */ - "message", /* \375\161 */ - "mi", /* \375\162 */ - "mo", /* \375\163 */ - "much", /* \375\164 */ - "n-ary", /* \375\165 */ - "na", /* \375\166 */ - "ne", /* \375\167 */ - "next", /* \375\170 */ - "ni", /* \375\171 */ - "nje", /* \375\172 */ - "north", /* \375\173 */ - "note", /* \375\174 */ - "notes", /* \375\175 */ - "nun", /* \375\176 */ - "oe", /* \375\177 */ - "oi", /* \375\200 */ - "ordinal", /* \375\201 */ - "pa", /* \375\202 */ - "phi", /* \375\203 */ - "po", /* \375\204 */ - "pointing", /* \375\205 */ - "private", /* \375\206 */ - "psi", /* \375\207 */ - "pu", /* \375\210 */ - "quarter", /* \375\211 */ - "ra", /* \375\212 */ - "re", /* \375\213 */ - "rectangle", /* \375\214 */ - "reverse", /* \375\215 */ - "rho", /* \375\216 */ - "ri", /* \375\217 */ - "ro", /* \375\220 */ - "ru", /* \375\221 */ - "sa", /* \375\222 */ - "sampi", /* \375\223 */ - "se", /* \375\224 */ - "selected", /* \375\225 */ - "semicolon", /* \375\226 */ - "sha", /* \375\227 */ - "shadda", /* \375\230 */ - "sharp", /* \375\231 */ - "shcha", /* \375\232 */ - "shell", /* \375\233 */ - "shift", /* \375\234 */ - "si", /* \375\235 */ - "single-shift", /* \375\236 */ - "smiling", /* \375\237 */ - "so", /* \375\240 */ - "south", /* \375\241 */ - "spade", /* \375\242 */ - "star", /* \375\243 */ - "stigma", /* \375\244 */ - "su", /* \375\245 */ - "subset", /* \375\246 */ - "superset", /* \375\247 */ - "ta", /* \375\250 */ - "tau", /* \375\251 */ - "text", /* \375\252 */ - "theta", /* \375\253 */ - "thorn", /* \375\254 */ - "ti", /* \375\255 */ - "tortoise", /* \375\256 */ - "transmission", /* \375\257 */ - "tsadi", /* \375\260 */ - "tse", /* \375\261 */ - "tshe", /* \375\262 */ - "ukrainian", /* \375\263 */ - "up-pointing", /* \375\264 */ - "upturn", /* \375\265 */ - "use", /* \375\266 */ - "vu", /* \375\267 */ - "we", /* \375\270 */ - "west", /* \375\271 */ - "wi", /* \375\272 */ - "wo", /* \375\273 */ - "xi", /* \375\274 */ - "yat", /* \375\275 */ - "yeru", /* \375\276 */ - "yi", /* \375\277 */ - "yus", /* \375\300 */ - "za", /* \375\301 */ - "zeta", /* \375\302 */ - "zhe", /* \375\303 */ - "zi", /* \375\304 */ - "zo", /* \375\305 */ - "zu", /* \375\306 */ - "(ack)", /* \375\307 */ - "(apc)", /* \375\310 */ - "(bel)", /* \375\311 */ - "(bph)", /* \375\312 */ - "(bs)", /* \375\313 */ - "(can)", /* \375\314 */ - "(cch)", /* \375\315 */ - "(cr)", /* \375\316 */ - "(csi)", /* \375\317 */ - "(dc1)", /* \375\320 */ - "(dc2)", /* \375\321 */ - "(dc3)", /* \375\322 */ - "(dc4)", /* \375\323 */ - "(dcs)", /* \375\324 */ - "(del)", /* \375\325 */ - "(dle)", /* \375\326 */ - "(em)", /* \375\327 */ - "(enq)", /* \375\330 */ - "(eot)", /* \375\331 */ - "(epa)", /* \375\332 */ - "(esa)", /* \375\333 */ - "(esc)", /* \375\334 */ - "(etb)", /* \375\335 */ - "(etx)", /* \375\336 */ - "(ff)", /* \375\337 */ - "(german)", /* \375\340 */ - "(greenlandic)", /* \375\341 */ - "(hop)", /* \375\342 */ - "(ht)", /* \375\343 */ - "(htj)", /* \375\344 */ - "(hts)", /* \375\345 */ - "(ibm437", /* \375\346 */ - "(ibm868", /* \375\347 */ - "(ind)", /* \375\350 */ - "(is1)", /* \375\351 */ - "(is2)", /* \375\352 */ - "(is3)", /* \375\353 */ - "(is4)", /* \375\354 */ - "(iso-ir-128", /* \375\355 */ - "(iso-ir-158", /* \375\356 */ - "(iso-ir-70", /* \375\357 */ - "(iso-ir-83", /* \375\360 */ - "(lf)", /* \375\361 */ - "(mnemonic)", /* \375\362 */ - "(mw)", /* \375\363 */ - "(nak)", /* \375\364 */ - "(nbh)", /* \375\365 */ - "(nel)", /* \375\366 */ - "(nul)", /* \375\367 */ - "(osc)", /* \375\370 */ - "(pad)", /* \375\371 */ - "(pld)", /* \375\372 */ - "(plu)", /* \375\373 */ - "(pm)", /* \375\374 */ - "(pu1)", /* \375\375 */ - "(pu2)", /* \375\376 */ - "(ri)", /* \375\377 */ - "(sci)", /* \376\001 */ - "(sgci)", /* \376\002 */ - "(si)", /* \376\003 */ - "(so)", /* \376\004 */ - "(soh)", /* \376\005 */ - "(sos)", /* \376\006 */ - "(spa)", /* \376\007 */ - "(ss2)", /* \376\010 */ - "(ss3)", /* \376\011 */ - "(ssa)", /* \376\012 */ - "(st)", /* \376\013 */ - "(sts)", /* \376\014 */ - "(stx)", /* \376\015 */ - "(sub)", /* \376\016 */ - "(syn)", /* \376\017 */ - "(tonos", /* \376\020 */ - "(vt)", /* \376\021 */ - "(vts)", /* \376\022 */ - "0267)", /* \376\023 */ - "0268)", /* \376\024 */ - "0269)", /* \376\025 */ - "0294)", /* \376\026 */ - "032/032/038/046)", /* \376\027 */ - "032/032/042/164)", /* \376\030 */ - "032/032/042/165)", /* \376\031 */ - "064)", /* \376\032 */ - "096)", /* \376\033 */ - "124)", /* \376\034 */ - "142)", /* \376\035 */ - "144)", /* \376\036 */ - "159)", /* \376\037 */ - "192)", /* \376\040 */ - "193)", /* \376\041 */ - "194)", /* \376\042 */ - "195)", /* \376\043 */ - "196)", /* \376\044 */ - "197)", /* \376\045 */ - "198)", /* \376\046 */ - "199)", /* \376\047 */ - "200)", /* \376\050 */ - "202)", /* \376\051 */ - "203)", /* \376\052 */ - "217)", /* \376\053 */ - "37)", /* \376\054 */ - "38)", /* \376\055 */ - "39)", /* \376\056 */ - "92)", /* \376\057 */ - "99)", /* \376\060 */ - "account", /* \376\061 */ - "accute", /* \376\062 */ - "ai", /* \376\063 */ - "almost", /* \376\064 */ - "amount", /* \376\065 */ - "ampersand", /* \376\066 */ - "an", /* \376\067 */ - "ang", /* \376\070 */ - "angstroem", /* \376\071 */ - "ante", /* \376\072 */ - "application", /* \376\073 */ - "arc", /* \376\074 */ - "as", /* \376\075 */ - "asymptotically", /* \376\076 */ - "at", /* \376\077 */ - "au", /* \376\100 */ - "ayin", /* \376\101 */ - "backspace", /* \376\102 */ - "backward", /* \376\103 */ - "ballot", /* \376\104 */ - "bank", /* \376\105 */ - "because", /* \376\106 */ - "bell", /* \376\107 */ - "bet", /* \376\110 */ - "bottom", /* \376\111 */ - "branch", /* \376\112 */ - "broken", /* \376\113 */ - "bullseye", /* \376\114 */ - "by", /* \376\115 */ - "care", /* \376\116 */ - "caret", /* \376\117 */ - "carriage", /* \376\120 */ - "cent", /* \376\121 */ - "centigrade", /* \376\122 */ - "ch", /* \376\123 */ - "chair", /* \376\124 */ - "closing", /* \376\125 */ - "colon", /* \376\126 */ - "commercial", /* \376\127 */ - "containing", /* \376\130 */ - "contains", /* \376\131 */ - "contour", /* \376\132 */ - "corners", /* \376\133 */ - "cross", /* \376\134 */ - "currency", /* \376\135 */ - "customer", /* \376\136 */ - "dalet", /* \376\137 */ - "damma", /* \376\140 */ - "dammatan", /* \376\141 */ - "dark", /* \376\142 */ - "datalink", /* \376\143 */ - "delete", /* \376\144 */ - "dialytika)", /* \376\145 */ - "differential", /* \376\146 */ - "division", /* \376\147 */ - "dollar", /* \376\150 */ - "dotless", /* \376\151 */ - "downwards", /* \376\152 */ - "dutch", /* \376\153 */ - "eh", /* \376\154 */ - "ei", /* \376\155 */ - "eighteen", /* \376\156 */ - "element", /* \376\157 */ - "empty", /* \376\160 */ - "enquiry", /* \376\161 */ - "exists", /* \376\162 */ - "fahrenheit", /* \376\163 */ - "fatha", /* \376\164 */ - "fathatan", /* \376\165 */ - "female", /* \376\166 */ - "feminine", /* \376\167 */ - "ff", /* \376\170 */ - "ffi", /* \376\171 */ - "ffl", /* \376\172 */ - "fi", /* \376\173 */ - "fifteen", /* \376\174 */ - "fifth", /* \376\175 */ - "file", /* \376\176 */ - "fl", /* \376\177 */ - "flat", /* \376\200 */ - "for", /* \376\201 */ - "forward", /* \376\202 */ - "four-per-em", /* \376\203 */ - "fourteen", /* \376\204 */ - "gaf", /* \376\205 */ - "geta", /* \376\206 */ - "gimel", /* \376\207 */ - "gn", /* \376\210 */ - "graphic", /* \376\211 */ - "group", /* \376\212 */ - "guilder", /* \376\213 */ - "hair", /* \376\214 */ - "heading", /* \376\215 */ - "het", /* \376\216 */ - "high", /* \376\217 */ - "house", /* \376\220 */ - "hyphen-minus", /* \376\221 */ - "identical", /* \376\222 */ - "identification", /* \376\223 */ - "idle", /* \376\224 */ - "image", /* \376\225 */ - "in", /* \376\226 */ - "increment", /* \376\227 */ - "infinity", /* \376\230 */ - "intersection", /* \376\231 */ - "iu", /* \376\232 */ - "join", /* \376\233 */ - "justification", /* \376\234 */ - "kasra", /* \376\235 */ - "kasratan", /* \376\236 */ - "korean", /* \376\237 */ - "kra", /* \376\240 */ - "lamed", /* \376\241 */ - "lazy", /* \376\242 */ - "leader", /* \376\243 */ - "lira", /* \376\244 */ - "long", /* \376\245 */ - "lozenge", /* \376\246 */ - "male", /* \376\247 */ - "maltese", /* \376\250 */ - "masculine", /* \376\251 */ - "member", /* \376\252 */ - "micro", /* \376\253 */ - "midline", /* \376\254 */ - "mille", /* \376\255 */ - "minus-or-plus", /* \376\256 */ - "modifier", /* \376\257 */ - "multiplication", /* \376\260 */ - "nabla", /* \376\261 */ - "natural", /* \376\262 */ - "negative", /* \376\263 */ - "ng", /* \376\264 */ - "nineteen", /* \376\265 */ - "no-break", /* \376\266 */ - "null", /* \376\267 */ - "numero", /* \376\270 */ - "octet", /* \376\271 */ - "ohm", /* \376\272 */ - "open", /* \376\273 */ - "operating", /* \376\274 */ - "orthogonal", /* \376\275 */ - "ou", /* \376\276 */ - "out", /* \376\277 */ - "overline", /* \376\300 */ - "padding", /* \376\301 */ - "parallel", /* \376\302 */ - "peh", /* \376\303 */ - "per", /* \376\304 */ - "percent", /* \376\305 */ - "period", /* \376\306 */ - "permitted", /* \376\307 */ - "peseta", /* \376\310 */ - "pilcrow", /* \376\311 */ - "plus-minus", /* \376\312 */ - "post", /* \376\313 */ - "postal", /* \376\314 */ - "pound", /* \376\315 */ - "preceded", /* \376\316 */ - "prescription", /* \376\317 */ - "preset", /* \376\320 */ - "privacy", /* \376\321 */ - "product", /* \376\322 */ - "program", /* \376\323 */ - "prolonged", /* \376\324 */ - "proportion", /* \376\325 */ - "proportional", /* \376\326 */ - "qof", /* \376\327 */ - "quarters", /* \376\330 */ - "ratio", /* \376\331 */ - "rays", /* \376\332 */ - "record", /* \376\333 */ - "recorder", /* \376\334 */ - "recording", /* \376\335 */ - "reference", /* \376\336 */ - "registered", /* \376\337 */ - "resh", /* \376\340 */ - "return", /* \376\341 */ - "root", /* \376\342 */ - "rounded", /* \376\343 */ - "samekh", /* \376\344 */ - "section", /* \376\345 */ - "semi-voiced", /* \376\346 */ - "sequence", /* \376\347 */ - "service", /* \376\350 */ - "seventeen", /* \376\351 */ - "sh", /* \376\352 */ - "shin", /* \376\353 */ - "six-per-em", /* \376\354 */ - "sixteen", /* \376\355 */ - "sixteenth", /* \376\356 */ - "sixth", /* \376\357 */ - "sixths", /* \376\360 */ - "slash", /* \376\361 */ - "st", /* \376\362 */ - "standard", /* \376\363 */ - "state", /* \376\364 */ - "substitute", /* \376\365 */ - "sukun", /* \376\366 */ - "summation", /* \376\367 */ - "sun", /* \376\370 */ - "symbol", /* \376\371 */ - "syncronous", /* \376\372 */ - "system", /* \376\373 */ - "tack", /* \376\374 */ - "take", /* \376\375 */ - "tatweel", /* \376\376 */ - "tav", /* \376\377 */ - "tel", /* \377\001 */ - "terminator", /* \377\002 */ - "tet", /* \377\003 */ - "there", /* \377\004 */ - "therefore", /* \377\005 */ - "thin", /* \377\006 */ - "third", /* \377\007 */ - "thirds", /* \377\010 */ - "thirteen", /* \377\011 */ - "this", /* \377\012 */ - "three-per-em", /* \377\013 */ - "top", /* \377\014 */ - "trade", /* \377\015 */ - "transmit", /* \377\016 */ - "twenty", /* \377\017 */ - "umlaut", /* \377\020 */ - "union", /* \377\021 */ - "upwards", /* \377\022 */ - "va", /* \377\023 */ - "vav", /* \377\024 */ - "vector", /* \377\025 */ - "veh", /* \377\026 */ - "vi", /* \377\027 */ - "vo", /* \377\030 */ - "waiting", /* \377\031 */ - "wave", /* \377\032 */ - "won", /* \377\033 */ - "yen", /* \377\034 */ - "yod", /* \377\035 */ - "yr", /* \377\036 */ - "zayin", /* \377\037 */ - "zh", /* \377\040 */ - }; - -struct charname - { - recode_ucs2 code; - const char *crypted; - }; - -static const struct charname charname[NUMBER_OF_CHARNAMES] = - { - {0x0000, "\376\267\375\367"}, - {0x0001, "\260\110\376\215\376\005"}, - {0x0002, "\260\110\375\252\376\015"}, - {0x0003, "\212\110\375\252\375\336"}, - {0x0004, "\212\110\375\257\375\331"}, - {0x0005, "\376\161\375\330"}, - {0x0006, "\375\032\375\307"}, - {0x0007, "\376\107\375\311"}, - {0x0008, "\376\102\375\313"}, - {0x0009, "\200\261\375\343"}, - {0x000A, "\052\361\375\361"}, - {0x000B, "\052\261\376\021"}, - {0x000C, "\010\361\375\337"}, - {0x000D, "\376\120\376\341\375\316"}, - {0x000E, "\375\234\376\277\376\004"}, - {0x000F, "\375\234\376\226\376\003"}, - {0x0010, "\376\143\375\105\375\326"}, - {0x0011, "\232\211\115\375\320"}, - {0x0012, "\232\211\125\375\321"}, - {0x0013, "\232\211\130\375\322"}, - {0x0014, "\232\211\144\375\323"}, - {0x0015, "\376\263\375\032\375\364"}, - {0x0016, "\376\372\376\224\376\017"}, - {0x0017, "\212\110\375\257\207\375\335"}, - {0x0018, "\375\051\375\314"}, - {0x0019, "\212\110\375\156\375\327"}, - {0x001A, "\376\365\376\016"}, - {0x001B, "\375\105\375\334"}, - {0x001C, "\376\176\325\375\354"}, - {0x001D, "\376\212\325\375\353"}, - {0x001E, "\376\333\325\375\352"}, - {0x001F, "\375\016\325\375\351"}, - {0x0020, "\146"}, - {0x0021, "\360\046"}, - {0x0022, "\140\046"}, - {0x0023, "\133\036"}, - {0x0024, "\376\150\036"}, - {0x0025, "\376\305\036"}, - {0x0026, "\376\066"}, - {0x0027, "\375\034"}, - {0x0028, "\034\215"}, - {0x0029, "\035\215"}, - {0x002A, "\375\036"}, - {0x002B, "\375\002\036"}, - {0x002C, "\346"}, - {0x002D, "\376\221"}, - {0x002E, "\074\101"}, - {0x002F, "\375\011"}, - {0x0030, "\025\225"}, - {0x0031, "\025\115"}, - {0x0032, "\025\125"}, - {0x0033, "\025\130"}, - {0x0034, "\025\144"}, - {0x0035, "\025\143"}, - {0x0036, "\025\165"}, - {0x0037, "\025\150"}, - {0x0038, "\025\155"}, - {0x0039, "\025\162"}, - {0x003A, "\376\126"}, - {0x003B, "\375\226"}, - {0x003C, "\311\036"}, - {0x003D, "\356\036"}, - {0x003E, "\303\036"}, - {0x003F, "\375\003\046"}, - {0x0040, "\376\127\376\077"}, - {0x0041, "\002\005\001\030"}, - {0x0042, "\002\005\001\136"}, - {0x0043, "\002\005\001\113"}, - {0x0044, "\002\005\001\103"}, - {0x0045, "\002\005\001\033"}, - {0x0046, "\002\005\001\172"}, - {0x0047, "\002\005\001\075"}, - {0x0048, "\002\005\001\104"}, - {0x0049, "\002\005\001\041"}, - {0x004A, "\002\005\001\171"}, - {0x004B, "\002\005\001\123"}, - {0x004C, "\002\005\001\077"}, - {0x004D, "\002\005\001\145"}, - {0x004E, "\002\005\001\061"}, - {0x004F, "\002\005\001\023"}, - {0x0050, "\002\005\001\163"}, - {0x0051, "\002\005\001\220"}, - {0x0052, "\002\005\001\116"}, - {0x0053, "\002\005\001\070"}, - {0x0054, "\002\005\001\106"}, - {0x0055, "\002\005\001\024"}, - {0x0056, "\002\005\001\167"}, - {0x0057, "\002\005\001\121"}, - {0x0058, "\002\005\001\151"}, - {0x0059, "\002\005\001\102"}, - {0x005A, "\002\005\001\107"}, - {0x005B, "\034\126\112"}, - {0x005C, "\375\215\375\011"}, - {0x005D, "\035\126\112"}, - {0x005E, "\027\147"}, - {0x005F, "\312\052"}, - {0x0060, "\047\147"}, - {0x0061, "\002\004\001\030"}, - {0x0062, "\002\004\001\136"}, - {0x0063, "\002\004\001\113"}, - {0x0064, "\002\004\001\103"}, - {0x0065, "\002\004\001\033"}, - {0x0066, "\002\004\001\172"}, - {0x0067, "\002\004\001\075"}, - {0x0068, "\002\004\001\104"}, - {0x0069, "\002\004\001\041"}, - {0x006A, "\002\004\001\171"}, - {0x006B, "\002\004\001\123"}, - {0x006C, "\002\004\001\077"}, - {0x006D, "\002\004\001\145"}, - {0x006E, "\002\004\001\061"}, - {0x006F, "\002\004\001\023"}, - {0x0070, "\002\004\001\163"}, - {0x0071, "\002\004\001\220"}, - {0x0072, "\002\004\001\116"}, - {0x0073, "\002\004\001\070"}, - {0x0074, "\002\004\001\106"}, - {0x0075, "\002\004\001\024"}, - {0x0076, "\002\004\001\167"}, - {0x0077, "\002\004\001\121"}, - {0x0078, "\002\004\001\151"}, - {0x0079, "\002\004\001\102"}, - {0x007A, "\002\004\001\107"}, - {0x007B, "\034\375\063\112"}, - {0x007C, "\063\052"}, - {0x007D, "\035\375\063\112"}, - {0x007E, "\042"}, - {0x007F, "\376\144\375\325"}, - {0x0080, "\376\301\200\375\371"}, - {0x0081, "\376\217\376\271\376\320\375\342"}, - {0x0082, "\375\045\376\307\375\126\375\312"}, - {0x0083, "\374\375\045\375\126\375\365"}, - {0x0084, "\364\375\350"}, - {0x0085, "\375\170\052\375\366"}, - {0x0086, "\260\110\375\225\271\376\012"}, - {0x0087, "\212\110\375\225\271\375\333"}, - {0x0088, "\200\261\326\375\345"}, - {0x0089, "\200\261\003\376\234\375\344"}, - {0x008A, "\052\261\326\376\022"}, - {0x008B, "\375\001\052\376\202\375\372"}, - {0x008C, "\375\001\052\376\103\375\373"}, - {0x008D, "\375\215\052\361\375\377"}, - {0x008E, "\375\236\125\376\010"}, - {0x008F, "\375\236\130\376\011"}, - {0x0090, "\232\211\375\012\375\324"}, - {0x0091, "\375\206\375\266\115\375\375"}, - {0x0092, "\375\206\375\266\125\375\376"}, - {0x0093, "\326\377\016\376\364\376\014"}, - {0x0094, "\375\051\200\375\315"}, - {0x0095, "\375\161\377\031\375\363"}, - {0x0096, "\260\110\375\123\271\376\007"}, - {0x0097, "\212\110\375\123\271\375\332"}, - {0x0098, "\260\110\375\012\376\006"}, - {0x0099, "\175\376\211\200\365\376\002"}, - {0x009A, "\175\200\365\376\001"}, - {0x009B, "\211\376\347\365\375\317"}, - {0x009C, "\375\012\377\002\376\013"}, - {0x009D, "\376\274\376\373\375\057\375\370"}, - {0x009E, "\376\321\375\161\375\374"}, - {0x009F, "\376\073\376\323\375\057\375\310"}, - {0x00A0, "\376\266\146"}, - {0x00A1, "\306\360\046"}, - {0x00A2, "\376\121\036"}, - {0x00A3, "\376\315\036"}, - {0x00A4, "\376\135\036"}, - {0x00A5, "\377\034\036"}, - {0x00A6, "\376\113\375\040"}, - {0x00A7, "\376\345\036"}, - {0x00A8, "\037"}, - {0x00A9, "\375\061\036"}, - {0x00AA, "\376\167\375\201\375\135"}, - {0x00AB, "\245\064\152\140\046"}, - {0x00AC, "\251\036"}, - {0x00AD, "\375\010\375\133"}, - {0x00AE, "\376\337\036"}, - {0x00AF, "\050"}, - {0x00B0, "\350\036"}, - {0x00B1, "\376\312\036"}, - {0x00B2, "\120\125"}, - {0x00B3, "\120\130"}, - {0x00B4, "\013\147"}, - {0x00B5, "\376\253\036"}, - {0x00B6, "\376\311\036"}, - {0x00B7, "\247\015"}, - {0x00B8, "\060"}, - {0x00B9, "\120\115"}, - {0x00BA, "\376\251\375\201\375\135"}, - {0x00BB, "\254\064\152\140\046"}, - {0x00BC, "\131\122\115\375\211"}, - {0x00BD, "\131\122\115\157"}, - {0x00BE, "\131\122\130\376\330"}, - {0x00BF, "\306\375\003\046"}, - {0x00C0, "\002\005\001\030\003\047"}, - {0x00C1, "\002\005\001\030\003\013"}, - {0x00C2, "\002\005\001\030\003\027"}, - {0x00C3, "\002\005\001\030\003\042"}, - {0x00C4, "\002\005\001\030\003\037"}, - {0x00C5, "\002\005\001\030\003\141\016"}, - {0x00C6, "\002\005\001\206"}, - {0x00C7, "\002\005\001\113\003\060"}, - {0x00C8, "\002\005\001\033\003\047"}, - {0x00C9, "\002\005\001\033\003\013"}, - {0x00CA, "\002\005\001\033\003\027"}, - {0x00CB, "\002\005\001\033\003\037"}, - {0x00CC, "\002\005\001\041\003\047"}, - {0x00CD, "\002\005\001\041\003\013"}, - {0x00CE, "\002\005\001\041\003\027"}, - {0x00CF, "\002\005\001\041\003\037"}, - {0x00D0, "\002\005\001\375\106\266"}, - {0x00D1, "\002\005\001\061\003\042"}, - {0x00D2, "\002\005\001\023\003\047"}, - {0x00D3, "\002\005\001\023\003\013"}, - {0x00D4, "\002\005\001\023\003\027"}, - {0x00D5, "\002\005\001\023\003\042"}, - {0x00D6, "\002\005\001\023\003\037"}, - {0x00D7, "\376\260\036"}, - {0x00D8, "\002\005\001\023\003\124"}, - {0x00D9, "\002\005\001\024\003\047"}, - {0x00DA, "\002\005\001\024\003\013"}, - {0x00DB, "\002\005\001\024\003\027"}, - {0x00DC, "\002\005\001\024\003\037"}, - {0x00DD, "\002\005\001\102\003\013"}, - {0x00DE, "\002\005\001\375\254\266"}, - {0x00DF, "\002\004\001\375\231\070\375\340"}, - {0x00E0, "\002\004\001\030\003\047"}, - {0x00E1, "\002\004\001\030\003\013"}, - {0x00E2, "\002\004\001\030\003\027"}, - {0x00E3, "\002\004\001\030\003\042"}, - {0x00E4, "\002\004\001\030\003\037"}, - {0x00E5, "\002\004\001\030\003\141\016"}, - {0x00E6, "\002\004\001\206"}, - {0x00E7, "\002\004\001\113\003\060"}, - {0x00E8, "\002\004\001\033\003\047"}, - {0x00E9, "\002\004\001\033\003\013"}, - {0x00EA, "\002\004\001\033\003\027"}, - {0x00EB, "\002\004\001\033\003\037"}, - {0x00EC, "\002\004\001\041\003\047"}, - {0x00ED, "\002\004\001\041\003\013"}, - {0x00EE, "\002\004\001\041\003\027"}, - {0x00EF, "\002\004\001\041\003\037"}, - {0x00F0, "\002\004\001\375\106\266"}, - {0x00F1, "\002\004\001\061\003\042"}, - {0x00F2, "\002\004\001\023\003\047"}, - {0x00F3, "\002\004\001\023\003\013"}, - {0x00F4, "\002\004\001\023\003\027"}, - {0x00F5, "\002\004\001\023\003\042"}, - {0x00F6, "\002\004\001\023\003\037"}, - {0x00F7, "\376\147\036"}, - {0x00F8, "\002\004\001\023\003\124"}, - {0x00F9, "\002\004\001\024\003\047"}, - {0x00FA, "\002\004\001\024\003\013"}, - {0x00FB, "\002\004\001\024\003\027"}, - {0x00FC, "\002\004\001\024\003\037"}, - {0x00FD, "\002\004\001\102\003\013"}, - {0x00FE, "\002\004\001\375\254\266"}, - {0x00FF, "\002\004\001\102\003\037"}, - {0x0100, "\002\005\001\030\003\050"}, - {0x0101, "\002\004\001\030\003\050"}, - {0x0102, "\002\005\001\030\003\057"}, - {0x0103, "\002\004\001\030\003\057"}, - {0x0104, "\002\005\001\030\003\134"}, - {0x0105, "\002\004\001\030\003\134"}, - {0x0106, "\002\005\001\113\003\013"}, - {0x0107, "\002\004\001\113\003\013"}, - {0x0108, "\002\005\001\113\003\027"}, - {0x0109, "\002\004\001\113\003\027"}, - {0x010A, "\002\005\001\113\003\015\016"}, - {0x010B, "\002\004\001\113\003\015\016"}, - {0x010C, "\002\005\001\113\003\045"}, - {0x010D, "\002\004\001\113\003\045"}, - {0x010E, "\002\005\001\103\003\045"}, - {0x010F, "\002\004\001\103\003\045"}, - {0x0110, "\002\005\001\103\003\124"}, - {0x0111, "\002\004\001\103\003\124"}, - {0x0112, "\002\005\001\033\003\050"}, - {0x0113, "\002\004\001\033\003\050"}, - {0x0114, "\002\005\001\033\003\057"}, - {0x0115, "\002\004\001\033\003\057"}, - {0x0116, "\002\005\001\033\003\015\016"}, - {0x0117, "\002\004\001\033\003\015\016"}, - {0x0118, "\002\005\001\033\003\134"}, - {0x0119, "\002\004\001\033\003\134"}, - {0x011A, "\002\005\001\033\003\045"}, - {0x011B, "\002\004\001\033\003\045"}, - {0x011C, "\002\005\001\075\003\027"}, - {0x011D, "\002\004\001\075\003\027"}, - {0x011E, "\002\005\001\075\003\057"}, - {0x011F, "\002\004\001\075\003\057"}, - {0x0120, "\002\005\001\075\003\015\016"}, - {0x0121, "\002\004\001\075\003\015\016"}, - {0x0122, "\002\005\001\075\003\060"}, - {0x0123, "\002\004\001\075\003\060"}, - {0x0124, "\002\005\001\104\003\027"}, - {0x0125, "\002\004\001\104\003\027"}, - {0x0126, "\002\005\001\104\003\124"}, - {0x0127, "\002\004\001\104\003\124"}, - {0x0128, "\002\005\001\041\003\042"}, - {0x0129, "\002\004\001\041\003\042"}, - {0x012A, "\002\005\001\041\003\050"}, - {0x012B, "\002\004\001\041\003\050"}, - {0x012C, "\002\005\001\041\003\057"}, - {0x012D, "\002\004\001\041\003\057"}, - {0x012E, "\002\005\001\041\003\134"}, - {0x012F, "\002\004\001\041\003\134"}, - {0x0130, "\002\005\001\041\003\015\016"}, - {0x0131, "\002\004\001\041\376\151"}, - {0x0132, "\002\005\114\375\134"}, - {0x0133, "\002\004\114\375\134"}, - {0x0134, "\002\005\001\171\003\027"}, - {0x0135, "\002\004\001\171\003\027"}, - {0x0136, "\002\005\001\123\003\060"}, - {0x0137, "\002\004\001\123\003\060"}, - {0x0138, "\002\004\001\376\240\375\341"}, - {0x0139, "\002\005\001\077\003\013"}, - {0x013A, "\002\004\001\077\003\013"}, - {0x013B, "\002\005\001\077\003\060"}, - {0x013C, "\002\004\001\077\003\060"}, - {0x013D, "\002\005\001\077\003\045"}, - {0x013E, "\002\004\001\077\003\045"}, - {0x013F, "\002\005\001\077\003\247\015"}, - {0x0140, "\002\004\001\077\003\247\015"}, - {0x0141, "\002\005\001\077\003\124"}, - {0x0142, "\002\004\001\077\003\124"}, - {0x0143, "\002\005\001\061\003\013"}, - {0x0144, "\002\004\001\061\003\013"}, - {0x0145, "\002\005\001\061\003\060"}, - {0x0146, "\002\004\001\061\003\060"}, - {0x0147, "\002\005\001\061\003\045"}, - {0x0148, "\002\004\001\061\003\045"}, - {0x0149, "\002\004\001\061\376\316\376\115\375\034"}, - {0x014A, "\002\005\001\355\375\025"}, - {0x014B, "\002\004\001\355\375\025"}, - {0x014C, "\002\005\001\023\003\050"}, - {0x014D, "\002\004\001\023\003\050"}, - {0x014E, "\002\005\001\023\003\057"}, - {0x014F, "\002\004\001\023\003\057"}, - {0x0150, "\002\005\001\023\003\064\013"}, - {0x0151, "\002\004\001\023\003\064\013"}, - {0x0152, "\002\005\114\375\177"}, - {0x0153, "\002\004\114\375\177"}, - {0x0154, "\002\005\001\116\003\013"}, - {0x0155, "\002\004\001\116\003\013"}, - {0x0156, "\002\005\001\116\003\060"}, - {0x0157, "\002\004\001\116\003\060"}, - {0x0158, "\002\005\001\116\003\045"}, - {0x0159, "\002\004\001\116\003\045"}, - {0x015A, "\002\005\001\070\003\013"}, - {0x015B, "\002\004\001\070\003\013"}, - {0x015C, "\002\005\001\070\003\027"}, - {0x015D, "\002\004\001\070\003\027"}, - {0x015E, "\002\005\001\070\003\060"}, - {0x015F, "\002\004\001\070\003\060"}, - {0x0160, "\002\005\001\070\003\045"}, - {0x0161, "\002\004\001\070\003\045"}, - {0x0162, "\002\005\001\106\003\060"}, - {0x0163, "\002\004\001\106\003\060"}, - {0x0164, "\002\005\001\106\003\045"}, - {0x0165, "\002\004\001\106\003\045"}, - {0x0166, "\002\005\001\106\003\124"}, - {0x0167, "\002\004\001\106\003\124"}, - {0x0168, "\002\005\001\024\003\042"}, - {0x0169, "\002\004\001\024\003\042"}, - {0x016A, "\002\005\001\024\003\050"}, - {0x016B, "\002\004\001\024\003\050"}, - {0x016C, "\002\005\001\024\003\057"}, - {0x016D, "\002\004\001\024\003\057"}, - {0x016E, "\002\005\001\024\003\141\016"}, - {0x016F, "\002\004\001\024\003\141\016"}, - {0x0170, "\002\005\001\024\003\064\013"}, - {0x0171, "\002\004\001\024\003\064\013"}, - {0x0172, "\002\005\001\024\003\134"}, - {0x0173, "\002\004\001\024\003\134"}, - {0x0174, "\002\005\001\121\003\027"}, - {0x0175, "\002\004\001\121\003\027"}, - {0x0176, "\002\005\001\102\003\027"}, - {0x0177, "\002\004\001\102\003\027"}, - {0x0178, "\002\005\001\102\003\037"}, - {0x0179, "\002\005\001\107\003\013"}, - {0x017A, "\002\004\001\107\003\013"}, - {0x017B, "\002\005\001\107\003\015\016"}, - {0x017C, "\002\004\001\107\003\015\016"}, - {0x017D, "\002\005\001\107\003\045"}, - {0x017E, "\002\004\001\107\003\045"}, - {0x01A0, "\002\005\001\023\003\105"}, - {0x01A1, "\002\004\001\023\003\105"}, - {0x01A2, "\002\005\001\375\200"}, - {0x01A3, "\002\004\001\375\200"}, - {0x01A6, "\002\001\377\036"}, - {0x01AF, "\002\005\001\024\003\105"}, - {0x01B0, "\002\004\001\024\003\105"}, - {0x01B5, "\002\005\001\107\003\124"}, - {0x01B6, "\002\004\001\107\003\124"}, - {0x01B7, "\002\005\001\301"}, - {0x01CD, "\002\005\001\030\003\045"}, - {0x01CE, "\002\004\001\030\003\045"}, - {0x01CF, "\002\005\001\041\003\045"}, - {0x01D0, "\002\004\001\041\003\045"}, - {0x01D1, "\002\005\001\023\003\045"}, - {0x01D2, "\002\004\001\023\003\045"}, - {0x01D3, "\002\005\001\024\003\045"}, - {0x01D4, "\002\004\001\024\003\045"}, - {0x01D5, "\002\005\001\024\003\037\007\050"}, - {0x01D6, "\002\004\001\024\003\037\007\050"}, - {0x01D7, "\002\005\001\024\003\037\007\013"}, - {0x01D8, "\002\004\001\024\003\037\007\013"}, - {0x01D9, "\002\005\001\024\003\037\007\045"}, - {0x01DA, "\002\004\001\024\003\037\007\045"}, - {0x01DB, "\002\005\001\024\003\037\007\047"}, - {0x01DC, "\002\004\001\024\003\037\007\047"}, - {0x01DE, "\002\005\001\030\003\037\007\050"}, - {0x01DF, "\002\004\001\030\003\037\007\050"}, - {0x01E0, "\002\005\001\030\003\015\016\007\050"}, - {0x01E1, "\002\004\001\030\003\015\016\007\050"}, - {0x01E2, "\002\005\001\206\003\050"}, - {0x01E3, "\002\004\001\206\003\050"}, - {0x01E4, "\002\005\001\075\003\124"}, - {0x01E5, "\002\004\001\075\003\124"}, - {0x01E6, "\002\005\001\075\003\045"}, - {0x01E7, "\002\004\001\075\003\045"}, - {0x01E8, "\002\005\001\123\003\045"}, - {0x01E9, "\002\004\001\123\003\045"}, - {0x01EA, "\002\005\001\023\003\134"}, - {0x01EB, "\002\004\001\023\003\134"}, - {0x01EC, "\002\005\001\023\003\134\007\050"}, - {0x01ED, "\002\004\001\023\003\134\007\050"}, - {0x01EE, "\002\005\001\301\003\045"}, - {0x01EF, "\002\004\001\301\003\045"}, - {0x01F0, "\002\004\001\171\003\045"}, - {0x01F4, "\002\005\001\075\003\013"}, - {0x01F5, "\002\004\001\075\003\013"}, - {0x01FA, "\002\005\001\030\003\141\016\007\013"}, - {0x01FB, "\002\004\001\030\003\141\016\007\013"}, - {0x01FC, "\002\005\001\206\003\013"}, - {0x01FD, "\002\004\001\206\003\013"}, - {0x01FE, "\002\005\001\023\003\124\007\013"}, - {0x01FF, "\002\004\001\023\003\124\007\013"}, - {0x0292, "\002\004\001\301\375\356\376\035"}, - {0x02BB, "\376\257\001\034\157\141"}, - {0x02C7, "\045"}, - {0x02D8, "\057"}, - {0x02D9, "\015\016"}, - {0x02DA, "\141\016"}, - {0x02DB, "\134"}, - {0x02DD, "\064\013\147"}, - {0x0374, "\012\055\036"}, - {0x0375, "\012\173\055\036"}, - {0x037A, "\012\170\020"}, - {0x0385, "\013\147\007\037\376\020\007\376\145"}, - {0x0386, "\012\005\001\270\003\013"}, - {0x0388, "\012\005\001\277\003\013"}, - {0x0389, "\012\005\001\300\003\013"}, - {0x038A, "\012\005\001\170\003\013"}, - {0x038C, "\012\005\001\317\003\013"}, - {0x038E, "\012\005\001\204\003\013"}, - {0x038F, "\012\005\001\316\003\013"}, - {0x0390, "\012\004\001\170\003\013\007\037"}, - {0x0391, "\012\005\001\270"}, - {0x0392, "\012\005\001\345"}, - {0x0393, "\012\005\001\375\115"}, - {0x0394, "\012\005\001\375\066"}, - {0x0395, "\012\005\001\277"}, - {0x0396, "\012\005\001\375\302"}, - {0x0397, "\012\005\001\300"}, - {0x0398, "\012\005\001\375\253"}, - {0x0399, "\012\005\001\170"}, - {0x039A, "\012\005\001\375\142"}, - {0x039B, "\012\005\001\375\147"}, - {0x039C, "\012\005\001\314"}, - {0x039D, "\012\005\001\315"}, - {0x039E, "\012\005\001\375\274"}, - {0x039F, "\012\005\001\317"}, - {0x03A0, "\012\005\001\321"}, - {0x03A1, "\012\005\001\375\216"}, - {0x03A3, "\012\005\001\375\007"}, - {0x03A4, "\012\005\001\375\251"}, - {0x03A5, "\012\005\001\204"}, - {0x03A6, "\012\005\001\375\203"}, - {0x03A7, "\012\005\001\375\055"}, - {0x03A8, "\012\005\001\375\207"}, - {0x03A9, "\012\005\001\316"}, - {0x03AA, "\012\005\001\170\003\037"}, - {0x03AB, "\012\005\001\204\003\037"}, - {0x03AC, "\012\004\001\270\003\013"}, - {0x03AD, "\012\004\001\277\003\013"}, - {0x03AE, "\012\004\001\300\003\013"}, - {0x03AF, "\012\004\001\170\003\013"}, - {0x03B0, "\012\004\001\204\003\013\007\037"}, - {0x03B1, "\012\004\001\270"}, - {0x03B2, "\012\004\001\345"}, - {0x03B3, "\012\004\001\375\115"}, - {0x03B4, "\012\004\001\375\066"}, - {0x03B5, "\012\004\001\277"}, - {0x03B6, "\012\004\001\375\302"}, - {0x03B7, "\012\004\001\300"}, - {0x03B8, "\012\004\001\375\253"}, - {0x03B9, "\012\004\001\170"}, - {0x03BA, "\012\004\001\375\142"}, - {0x03BB, "\012\004\001\375\147"}, - {0x03BC, "\012\004\001\314"}, - {0x03BD, "\012\004\001\315"}, - {0x03BE, "\012\004\001\375\274"}, - {0x03BF, "\012\004\001\317"}, - {0x03C0, "\012\004\001\321"}, - {0x03C1, "\012\004\001\375\216"}, - {0x03C2, "\012\004\001\044\375\007"}, - {0x03C3, "\012\004\001\375\007"}, - {0x03C4, "\012\004\001\375\251"}, - {0x03C5, "\012\004\001\204"}, - {0x03C6, "\012\004\001\375\203"}, - {0x03C7, "\012\004\001\375\055"}, - {0x03C8, "\012\004\001\375\207"}, - {0x03C9, "\012\004\001\316"}, - {0x03CA, "\012\004\001\170\003\037"}, - {0x03CB, "\012\004\001\204\003\037"}, - {0x03CC, "\012\004\001\317\003\013"}, - {0x03CD, "\012\004\001\204\003\013"}, - {0x03CE, "\012\004\001\316\003\013"}, - {0x03D0, "\012\004\001\247\345\343\376\060"}, - {0x03DA, "\012\005\001\375\244"}, - {0x03DC, "\012\005\001\375\070"}, - {0x03DE, "\012\005\001\307"}, - {0x03E0, "\012\005\001\375\223"}, - {0x0401, "\011\005\001\375\137"}, - {0x0402, "\011\005\001\375\072\267"}, - {0x0403, "\011\005\001\375\120\205"}, - {0x0404, "\011\005\001\375\263\305"}, - {0x0405, "\011\005\001\375\076\205"}, - {0x0406, "\011\005\001\375\050\041"}, - {0x0407, "\011\005\001\375\277\375\026"}, - {0x0408, "\011\005\001\375\141"}, - {0x0409, "\011\005\001\375\151"}, - {0x040A, "\011\005\001\375\172"}, - {0x040B, "\011\005\001\375\262\267"}, - {0x040C, "\011\005\001\375\144\205"}, - {0x040E, "\011\005\001\327\024\375\022"}, - {0x040F, "\011\005\001\375\077"}, - {0x0410, "\011\005\001\030"}, - {0x0411, "\011\005\001\272"}, - {0x0412, "\011\005\001\375\017"}, - {0x0413, "\011\005\001\302"}, - {0x0414, "\011\005\001\274"}, - {0x0415, "\011\005\001\305"}, - {0x0416, "\011\005\001\375\303"}, - {0x0417, "\011\005\001\340"}, - {0x0418, "\011\005\001\041"}, - {0x0419, "\011\005\001\327\041"}, - {0x041A, "\011\005\001\243"}, - {0x041B, "\011\005\001\375\102"}, - {0x041C, "\011\005\001\276"}, - {0x041D, "\011\005\001\233"}, - {0x041E, "\011\005\001\023"}, - {0x041F, "\011\005\001\216"}, - {0x0420, "\011\005\001\357"}, - {0x0421, "\011\005\001\375\104"}, - {0x0422, "\011\005\001\331"}, - {0x0423, "\011\005\001\024"}, - {0x0424, "\011\005\001\375\101"}, - {0x0425, "\011\005\001\304"}, - {0x0426, "\011\005\001\375\261"}, - {0x0427, "\011\005\001\375\053"}, - {0x0428, "\011\005\001\375\227"}, - {0x0429, "\011\005\001\375\232"}, - {0x042A, "\011\005\001\375\124\036"}, - {0x042B, "\011\005\001\375\276"}, - {0x042C, "\011\005\001\375\010\036"}, - {0x042D, "\011\005\001\033"}, - {0x042E, "\011\005\001\224"}, - {0x042F, "\011\005\001\222"}, - {0x0430, "\011\004\001\030"}, - {0x0431, "\011\004\001\272"}, - {0x0432, "\011\004\001\375\017"}, - {0x0433, "\011\004\001\302"}, - {0x0434, "\011\004\001\274"}, - {0x0435, "\011\004\001\305"}, - {0x0436, "\011\004\001\375\303"}, - {0x0437, "\011\004\001\340"}, - {0x0438, "\011\004\001\041"}, - {0x0439, "\011\004\001\327\041"}, - {0x043A, "\011\004\001\243"}, - {0x043B, "\011\004\001\375\102"}, - {0x043C, "\011\004\001\276"}, - {0x043D, "\011\004\001\233"}, - {0x043E, "\011\004\001\023"}, - {0x043F, "\011\004\001\216"}, - {0x0440, "\011\004\001\357"}, - {0x0441, "\011\004\001\375\104"}, - {0x0442, "\011\004\001\331"}, - {0x0443, "\011\004\001\024"}, - {0x0444, "\011\004\001\375\101"}, - {0x0445, "\011\004\001\304"}, - {0x0446, "\011\004\001\375\261"}, - {0x0447, "\011\004\001\375\053"}, - {0x0448, "\011\004\001\375\227"}, - {0x0449, "\011\004\001\375\232"}, - {0x044A, "\011\004\001\375\124\036"}, - {0x044B, "\011\004\001\375\276"}, - {0x044C, "\011\004\001\375\010\036"}, - {0x044D, "\011\004\001\033"}, - {0x044E, "\011\004\001\224"}, - {0x044F, "\011\004\001\222"}, - {0x0451, "\011\004\001\375\137"}, - {0x0452, "\011\004\001\375\072\267"}, - {0x0453, "\011\004\001\375\120\205"}, - {0x0454, "\011\004\001\375\263\305"}, - {0x0455, "\011\004\001\375\076\205"}, - {0x0456, "\011\004\001\375\050\041"}, - {0x0457, "\011\004\001\375\277\375\026"}, - {0x0458, "\011\004\001\375\141"}, - {0x0459, "\011\004\001\375\151"}, - {0x045A, "\011\004\001\375\172"}, - {0x045B, "\011\004\001\375\262\267"}, - {0x045C, "\011\004\001\375\144\205"}, - {0x045E, "\011\004\001\327\024\375\022"}, - {0x045F, "\011\004\001\375\077"}, - {0x0462, "\011\005\001\375\275"}, - {0x0463, "\011\004\001\375\275"}, - {0x046A, "\011\005\001\375\043\375\300"}, - {0x046B, "\011\004\001\375\043\375\300"}, - {0x0472, "\011\005\001\375\111"}, - {0x0473, "\011\004\001\375\111"}, - {0x0474, "\011\005\001\375\140"}, - {0x0475, "\011\004\001\375\140"}, - {0x0480, "\011\005\001\307"}, - {0x0481, "\011\004\001\307"}, - {0x0490, "\011\005\001\302\003\375\265"}, - {0x0491, "\011\004\001\302\003\375\265"}, - {0x05D0, "\056\001\073"}, - {0x05D1, "\056\001\376\110"}, - {0x05D2, "\056\001\376\207"}, - {0x05D3, "\056\001\376\137"}, - {0x05D4, "\056\001\363"}, - {0x05D5, "\056\001\377\024"}, - {0x05D6, "\056\001\377\037"}, - {0x05D7, "\056\001\376\216"}, - {0x05D8, "\056\001\377\003"}, - {0x05D9, "\056\001\377\035"}, - {0x05DA, "\056\001\044\202"}, - {0x05DB, "\056\001\202"}, - {0x05DC, "\056\001\376\241"}, - {0x05DD, "\056\001\044\375\157"}, - {0x05DE, "\056\001\375\157"}, - {0x05DF, "\056\001\044\375\176"}, - {0x05E0, "\056\001\375\176"}, - {0x05E1, "\056\001\376\344"}, - {0x05E2, "\056\001\376\101"}, - {0x05E3, "\056\001\044\216"}, - {0x05E4, "\056\001\216"}, - {0x05E5, "\056\001\044\375\260"}, - {0x05E6, "\056\001\375\260"}, - {0x05E7, "\056\001\376\327"}, - {0x05E8, "\056\001\376\340"}, - {0x05E9, "\056\001\376\353"}, - {0x05EA, "\056\001\376\377"}, - {0x060C, "\006\346"}, - {0x061B, "\006\375\226"}, - {0x061F, "\006\375\003\046"}, - {0x0621, "\006\001\160"}, - {0x0622, "\006\001\073\003\313\016"}, - {0x0623, "\006\001\073\003\160\016"}, - {0x0624, "\006\001\336\003\160\016"}, - {0x0625, "\006\001\073\003\160\020"}, - {0x0626, "\006\001\223\003\160\016"}, - {0x0627, "\006\001\073"}, - {0x0628, "\006\001\227"}, - {0x0629, "\006\001\177\371"}, - {0x062A, "\006\001\177"}, - {0x062B, "\006\001\263"}, - {0x062C, "\006\001\242"}, - {0x062D, "\006\001\236"}, - {0x062E, "\006\001\244"}, - {0x062F, "\006\001\347"}, - {0x0630, "\006\001\375\014"}, - {0x0631, "\006\001\375\004"}, - {0x0632, "\006\001\375\021"}, - {0x0633, "\006\001\256"}, - {0x0634, "\006\001\257"}, - {0x0635, "\006\001\255"}, - {0x0636, "\006\001\230"}, - {0x0637, "\006\001\262"}, - {0x0638, "\006\001\265"}, - {0x0639, "\006\001\226"}, - {0x063A, "\006\001\235"}, - {0x0640, "\006\376\376"}, - {0x0641, "\006\001\234"}, - {0x0642, "\006\001\253"}, - {0x0643, "\006\001\202"}, - {0x0644, "\006\001\137"}, - {0x0645, "\006\001\246"}, - {0x0646, "\006\001\250"}, - {0x0647, "\006\001\237"}, - {0x0648, "\006\001\336"}, - {0x0649, "\006\001\073\370"}, - {0x064A, "\006\001\223"}, - {0x064B, "\006\376\165"}, - {0x064C, "\006\376\141"}, - {0x064D, "\006\376\236"}, - {0x064E, "\006\376\164"}, - {0x064F, "\006\376\140"}, - {0x0650, "\006\376\235"}, - {0x0651, "\006\375\230"}, - {0x0652, "\006\376\366"}, - {0x0660, "\154\153\025\225"}, - {0x0661, "\154\153\025\115"}, - {0x0662, "\154\153\025\125"}, - {0x0663, "\154\153\025\130"}, - {0x0664, "\154\153\025\144"}, - {0x0665, "\154\153\025\143"}, - {0x0666, "\154\153\025\165"}, - {0x0667, "\154\153\025\150"}, - {0x0668, "\154\153\025\155"}, - {0x0669, "\154\153\025\162"}, - {0x0670, "\120\006\001\073"}, - {0x067E, "\006\001\376\303"}, - {0x06A4, "\006\001\377\026"}, - {0x06AF, "\006\001\376\205"}, - {0x1E00, "\002\005\001\030\003\141\020"}, - {0x1E01, "\002\004\001\030\003\141\020"}, - {0x1E02, "\002\005\001\136\003\015\016"}, - {0x1E03, "\002\004\001\136\003\015\016"}, - {0x1E04, "\002\005\001\136\003\015\020"}, - {0x1E05, "\002\004\001\136\003\015\020"}, - {0x1E06, "\002\005\001\136\003\052\020"}, - {0x1E07, "\002\004\001\136\003\052\020"}, - {0x1E08, "\002\005\001\113\003\060\007\013"}, - {0x1E09, "\002\004\001\113\003\060\007\013"}, - {0x1E0A, "\002\005\001\103\003\015\016"}, - {0x1E0B, "\002\004\001\103\003\015\016"}, - {0x1E0C, "\002\005\001\103\003\015\020"}, - {0x1E0D, "\002\004\001\103\003\015\020"}, - {0x1E0E, "\002\005\001\103\003\052\020"}, - {0x1E0F, "\002\004\001\103\003\052\020"}, - {0x1E10, "\002\005\001\103\003\060"}, - {0x1E11, "\002\004\001\103\003\060"}, - {0x1E12, "\002\005\001\103\003\027\020"}, - {0x1E13, "\002\004\001\103\003\027\020"}, - {0x1E14, "\002\005\001\033\003\050\007\047"}, - {0x1E15, "\002\004\001\033\003\050\007\047"}, - {0x1E16, "\002\005\001\033\003\050\007\013"}, - {0x1E17, "\002\004\001\033\003\050\007\013"}, - {0x1E18, "\002\005\001\033\003\027\020"}, - {0x1E19, "\002\004\001\033\003\027\020"}, - {0x1E1A, "\002\005\001\033\003\042\020"}, - {0x1E1B, "\002\004\001\033\003\042\020"}, - {0x1E1C, "\002\005\001\033\003\060\007\057"}, - {0x1E1D, "\002\004\001\033\003\060\007\057"}, - {0x1E1E, "\002\005\001\172\003\015\016"}, - {0x1E1F, "\002\004\001\172\003\015\016"}, - {0x1E20, "\002\005\001\075\003\050"}, - {0x1E21, "\002\004\001\075\003\050"}, - {0x1E22, "\002\005\001\104\003\015\016"}, - {0x1E23, "\002\004\001\104\003\015\016"}, - {0x1E24, "\002\005\001\104\003\015\020"}, - {0x1E25, "\002\004\001\104\003\015\020"}, - {0x1E26, "\002\005\001\104\003\037"}, - {0x1E27, "\002\004\001\104\003\037"}, - {0x1E28, "\002\005\001\104\003\060"}, - {0x1E29, "\002\004\001\104\003\060"}, - {0x1E2A, "\002\005\001\104\003\057\020"}, - {0x1E2B, "\002\004\001\104\003\057\020"}, - {0x1E2C, "\002\005\001\041\003\042\020"}, - {0x1E2D, "\002\004\001\041\003\042\020"}, - {0x1E2E, "\002\005\001\041\003\037\007\013"}, - {0x1E2F, "\002\004\001\041\003\037\007\013"}, - {0x1E30, "\002\005\001\123\003\013"}, - {0x1E31, "\002\004\001\123\003\013"}, - {0x1E32, "\002\005\001\123\003\015\020"}, - {0x1E33, "\002\004\001\123\003\015\020"}, - {0x1E34, "\002\005\001\123\003\052\020"}, - {0x1E35, "\002\004\001\123\003\052\020"}, - {0x1E36, "\002\005\001\077\003\015\020"}, - {0x1E37, "\002\004\001\077\003\015\020"}, - {0x1E3A, "\002\005\001\077\003\052\020"}, - {0x1E3B, "\002\004\001\077\003\052\020"}, - {0x1E3C, "\002\005\001\077\003\027\020"}, - {0x1E3D, "\002\004\001\077\003\027\020"}, - {0x1E3E, "\002\005\001\145\003\013"}, - {0x1E3F, "\002\004\001\145\003\013"}, - {0x1E40, "\002\005\001\145\003\015\016"}, - {0x1E41, "\002\004\001\145\003\015\016"}, - {0x1E42, "\002\005\001\145\003\015\020"}, - {0x1E43, "\002\004\001\145\003\015\020"}, - {0x1E44, "\002\005\001\061\003\015\016"}, - {0x1E45, "\002\004\001\061\003\015\016"}, - {0x1E46, "\002\005\001\061\003\015\020"}, - {0x1E47, "\002\004\001\061\003\015\020"}, - {0x1E48, "\002\005\001\061\003\052\020"}, - {0x1E49, "\002\004\001\061\003\052\020"}, - {0x1E4A, "\002\004\001\061\003\027\020"}, - {0x1E4C, "\002\005\001\023\003\042\007\013"}, - {0x1E4D, "\002\004\001\023\003\042\007\013"}, - {0x1E4E, "\002\005\001\023\003\042\007\037"}, - {0x1E4F, "\002\004\001\023\003\042\007\037"}, - {0x1E50, "\002\005\001\023\003\050\007\047"}, - {0x1E51, "\002\004\001\023\003\050\007\047"}, - {0x1E52, "\002\005\001\023\003\050\007\013"}, - {0x1E53, "\002\004\001\023\003\050\007\013"}, - {0x1E54, "\002\005\001\163\003\013"}, - {0x1E55, "\002\004\001\163\003\013"}, - {0x1E56, "\002\005\001\163\003\015\016"}, - {0x1E57, "\002\004\001\163\003\015\016"}, - {0x1E58, "\002\005\001\116\003\015\016"}, - {0x1E59, "\002\004\001\116\003\015\016"}, - {0x1E5A, "\002\005\001\116\003\015\020"}, - {0x1E5B, "\002\004\001\116\003\015\020"}, - {0x1E5E, "\002\005\001\116\003\052\020"}, - {0x1E5F, "\002\004\001\116\003\052\020"}, - {0x1E60, "\002\005\001\070\003\015\016"}, - {0x1E61, "\002\004\001\070\003\015\016"}, - {0x1E62, "\002\005\001\070\003\015\020"}, - {0x1E63, "\002\004\001\070\003\015\020"}, - {0x1E64, "\002\005\001\070\003\013\007\015\016"}, - {0x1E65, "\002\004\001\070\003\013\007\015\016"}, - {0x1E66, "\002\005\001\070\003\045\007\015\016"}, - {0x1E67, "\002\004\001\070\003\045\007\015\016"}, - {0x1E6A, "\002\005\001\106\003\015\016"}, - {0x1E6B, "\002\004\001\106\003\015\016"}, - {0x1E6C, "\002\005\001\106\003\015\020"}, - {0x1E6D, "\002\004\001\106\003\015\020"}, - {0x1E6E, "\002\005\001\106\003\052\020"}, - {0x1E6F, "\002\004\001\106\003\052\020"}, - {0x1E70, "\002\005\001\106\003\027\020"}, - {0x1E71, "\002\004\001\106\003\027\020"}, - {0x1E74, "\002\005\001\024\003\042\020"}, - {0x1E75, "\002\004\001\024\003\042\020"}, - {0x1E76, "\002\005\001\024\003\027\020"}, - {0x1E77, "\002\004\001\024\003\027\020"}, - {0x1E78, "\002\005\001\024\003\042\007\013"}, - {0x1E79, "\002\004\001\024\003\042\007\013"}, - {0x1E7A, "\002\005\001\024\003\050\007\037"}, - {0x1E7B, "\002\004\001\024\003\050\007\037"}, - {0x1E7C, "\002\005\001\167\003\042"}, - {0x1E7D, "\002\004\001\167\003\042"}, - {0x1E7E, "\002\005\001\167\003\015\020"}, - {0x1E7F, "\002\004\001\167\003\015\020"}, - {0x1E80, "\002\005\001\121\003\047"}, - {0x1E81, "\002\004\001\121\003\047"}, - {0x1E82, "\002\005\001\121\003\013"}, - {0x1E83, "\002\004\001\121\003\013"}, - {0x1E84, "\002\005\001\121\003\037"}, - {0x1E85, "\002\004\001\121\003\037"}, - {0x1E86, "\002\005\001\121\003\015\016"}, - {0x1E87, "\002\004\001\121\003\015\016"}, - {0x1E88, "\002\005\001\121\003\015\020"}, - {0x1E89, "\002\004\001\121\003\015\020"}, - {0x1E8A, "\002\005\001\151\003\015\016"}, - {0x1E8B, "\002\004\001\151\003\015\016"}, - {0x1E8C, "\002\005\001\151\003\037"}, - {0x1E8D, "\002\004\001\151\003\037"}, - {0x1E8E, "\002\005\001\102\003\015\016"}, - {0x1E8F, "\002\004\001\102\003\015\016"}, - {0x1E90, "\002\005\001\107\003\027"}, - {0x1E91, "\002\004\001\107\003\027"}, - {0x1E92, "\002\005\001\107\003\015\020"}, - {0x1E93, "\002\004\001\107\003\015\020"}, - {0x1E94, "\002\005\001\107\003\052\020"}, - {0x1E95, "\002\004\001\107\003\052\020"}, - {0x1EA0, "\002\005\001\030\003\015\020"}, - {0x1EA1, "\002\004\001\030\003\015\020"}, - {0x1EA2, "\002\005\001\030\003\065\016"}, - {0x1EA3, "\002\004\001\030\003\065\016"}, - {0x1EA4, "\002\005\001\030\003\027\007\013"}, - {0x1EA5, "\002\004\001\030\003\027\007\013"}, - {0x1EA6, "\002\005\001\030\003\027\007\047"}, - {0x1EA7, "\002\004\001\030\003\027\007\047"}, - {0x1EA8, "\002\005\001\030\003\027\007\065\016"}, - {0x1EA9, "\002\004\001\030\003\027\007\065\016"}, - {0x1EAA, "\002\005\001\030\003\027\007\042"}, - {0x1EAB, "\002\004\001\030\003\027\007\042"}, - {0x1EAE, "\002\005\001\030\003\057\007\013"}, - {0x1EAF, "\002\004\001\030\003\057\007\013"}, - {0x1EB0, "\002\005\001\030\003\057\007\047"}, - {0x1EB1, "\002\004\001\030\003\057\007\047"}, - {0x1EB2, "\002\005\001\030\003\057\007\065\016"}, - {0x1EB3, "\002\004\001\030\003\057\007\065\016"}, - {0x1EB4, "\002\005\001\030\003\057\007\042"}, - {0x1EB5, "\002\004\001\030\003\057\007\042"}, - {0x1EB8, "\002\005\001\033\003\015\020"}, - {0x1EB9, "\002\004\001\033\003\015\020"}, - {0x1EBA, "\002\005\001\033\003\065\016"}, - {0x1EBB, "\002\004\001\033\003\065\016"}, - {0x1EBC, "\002\005\001\033\003\042"}, - {0x1EBD, "\002\004\001\033\003\042"}, - {0x1EBE, "\002\005\001\033\003\027\007\013"}, - {0x1EBF, "\002\004\001\033\003\027\007\013"}, - {0x1EC0, "\002\005\001\033\003\027\007\047"}, - {0x1EC1, "\002\004\001\033\003\027\007\047"}, - {0x1EC2, "\002\005\001\033\003\027\007\065\016"}, - {0x1EC3, "\002\004\001\033\003\027\007\065\016"}, - {0x1EC4, "\002\005\001\033\003\027\007\042"}, - {0x1EC5, "\002\004\001\033\003\027\007\042"}, - {0x1EC8, "\002\005\001\041\003\065\016"}, - {0x1EC9, "\002\004\001\041\003\065\016"}, - {0x1ECA, "\002\005\001\041\003\015\020"}, - {0x1ECB, "\002\004\001\041\003\015\020"}, - {0x1ECC, "\002\005\001\023\003\015\020"}, - {0x1ECD, "\002\004\001\023\003\015\020"}, - {0x1ECE, "\002\005\001\023\003\065\016"}, - {0x1ECF, "\002\004\001\023\003\065\016"}, - {0x1ED0, "\002\005\001\023\003\027\007\013"}, - {0x1ED1, "\002\004\001\023\003\027\007\013"}, - {0x1ED2, "\002\005\001\023\003\027\007\047"}, - {0x1ED3, "\002\004\001\023\003\027\007\047"}, - {0x1ED4, "\002\005\001\023\003\027\007\065\016"}, - {0x1ED5, "\002\004\001\023\003\027\007\065\016"}, - {0x1ED6, "\002\005\001\023\003\027\007\042"}, - {0x1ED7, "\002\004\001\023\003\027\007\042"}, - {0x1EDA, "\002\005\001\023\003\105\007\013"}, - {0x1EDB, "\002\004\001\023\003\105\007\013"}, - {0x1EDC, "\002\005\001\023\003\105\007\047"}, - {0x1EDD, "\002\004\001\023\003\105\007\047"}, - {0x1EDE, "\002\005\001\023\003\105\007\065\016"}, - {0x1EDF, "\002\004\001\023\003\105\007\065\016"}, - {0x1EE0, "\002\005\001\023\003\105\007\042"}, - {0x1EE1, "\002\004\001\023\003\105\007\042"}, - {0x1EE4, "\002\005\001\024\003\015\020"}, - {0x1EE5, "\002\004\001\024\003\015\020"}, - {0x1EE6, "\002\005\001\024\003\065\016"}, - {0x1EE7, "\002\004\001\024\003\065\016"}, - {0x1EE8, "\002\005\001\024\003\105\007\013"}, - {0x1EE9, "\002\004\001\024\003\105\007\013"}, - {0x1EEA, "\002\005\001\024\003\105\007\047"}, - {0x1EEB, "\002\004\001\024\003\105\007\047"}, - {0x1EEC, "\002\005\001\024\003\105\007\065\016"}, - {0x1EED, "\002\004\001\024\003\105\007\065\016"}, - {0x1EEE, "\002\005\001\024\003\105\007\042"}, - {0x1EEF, "\002\004\001\024\003\105\007\042"}, - {0x1EF2, "\002\005\001\102\003\047"}, - {0x1EF3, "\002\004\001\102\003\047"}, - {0x1EF4, "\002\005\001\102\003\015\020"}, - {0x1EF5, "\002\004\001\102\003\015\020"}, - {0x1EF6, "\002\005\001\102\003\065\016"}, - {0x1EF7, "\002\004\001\102\003\065\016"}, - {0x1EF8, "\002\005\001\102\003\042"}, - {0x1EF9, "\002\004\001\102\003\042"}, - {0x1FBF, "\012\252\322\343\376\034"}, - {0x1FC0, "\012\320\341\376\031"}, - {0x1FC1, "\012\037\007\320"}, - {0x1FCD, "\012\252\007\334"}, - {0x1FCE, "\012\252\007\013\147"}, - {0x1FCF, "\012\252\007\320"}, - {0x1FDD, "\012\231\007\334"}, - {0x1FDE, "\012\231\007\013\147"}, - {0x1FDF, "\012\231\007\320"}, - {0x1FED, "\012\037\007\334"}, - {0x1FEF, "\012\334\341\376\030"}, - {0x1FFE, "\012\231\322\343\376\057"}, - {0x2002, "\233\146"}, - {0x2003, "\276\146"}, - {0x2004, "\377\013\146"}, - {0x2005, "\376\203\146"}, - {0x2006, "\376\354\146"}, - {0x2009, "\377\006\146"}, - {0x200A, "\376\214\146"}, - {0x2010, "\375\133"}, - {0x2013, "\233\142"}, - {0x2014, "\276\142"}, - {0x2015, "\066\375\040"}, - {0x2016, "\064\063\052"}, - {0x2017, "\064\312\052"}, - {0x2018, "\034\175\140\046"}, - {0x2019, "\035\175\140\046"}, - {0x201A, "\175\375\153\140\046"}, - {0x201B, "\175\375\130\140\046"}, - {0x201C, "\034\064\140\046"}, - {0x201D, "\035\064\140\046"}, - {0x201E, "\064\375\153\140\046"}, - {0x201F, "\064\375\130\140\046"}, - {0x2020, "\375\065"}, - {0x2021, "\064\375\065"}, - {0x2025, "\125\015\376\243"}, - {0x2026, "\376\254\066\375\103"}, - {0x2030, "\376\304\376\255\036"}, - {0x2032, "\217"}, - {0x2033, "\064\217"}, - {0x2034, "\221\217"}, - {0x2035, "\324\217"}, - {0x2036, "\324\064\217"}, - {0x2037, "\324\221\217"}, - {0x2038, "\376\117"}, - {0x2039, "\175\245\152\140\046"}, - {0x203A, "\175\254\152\140\046"}, - {0x203B, "\376\336\046"}, - {0x203C, "\064\360\046"}, - {0x203E, "\376\300"}, - {0x2044, "\122\376\361"}, - {0x2070, "\120\025\225"}, - {0x2074, "\120\025\144"}, - {0x2075, "\120\025\143"}, - {0x2076, "\120\025\165"}, - {0x2077, "\120\025\150"}, - {0x2078, "\120\025\155"}, - {0x2079, "\120\025\162"}, - {0x207A, "\120\375\002\036"}, - {0x207B, "\120\372"}, - {0x207C, "\120\356\036"}, - {0x207D, "\120\034\215"}, - {0x207E, "\120\035\215"}, - {0x207F, "\120\002\004\001\061"}, - {0x2080, "\127\025\225"}, - {0x2081, "\127\025\115"}, - {0x2082, "\127\025\125"}, - {0x2083, "\127\025\130"}, - {0x2084, "\127\025\144"}, - {0x2085, "\127\025\143"}, - {0x2086, "\127\025\165"}, - {0x2087, "\127\025\150"}, - {0x2088, "\127\025\155"}, - {0x2089, "\127\025\162"}, - {0x208A, "\127\375\002\036"}, - {0x208B, "\127\372"}, - {0x208C, "\127\356\036"}, - {0x208D, "\127\034\215"}, - {0x208E, "\127\035\215"}, - {0x20A4, "\376\244\036"}, - {0x20A7, "\376\310\036"}, - {0x20A9, "\377\033\036"}, - {0x2103, "\350\376\122"}, - {0x2105, "\376\116\110"}, - {0x2109, "\350\376\163"}, - {0x2116, "\376\270\036"}, - {0x2117, "\330\376\335\375\061"}, - {0x211E, "\376\317\376\375"}, - {0x2120, "\376\350\046"}, - {0x2122, "\377\015\046\036"}, - {0x2126, "\376\272\036"}, - {0x212B, "\376\071\036"}, - {0x2153, "\131\122\115\377\007"}, - {0x2154, "\131\122\125\377\010"}, - {0x2155, "\131\122\115\376\175"}, - {0x2156, "\131\122\125\362"}, - {0x2157, "\131\122\130\362"}, - {0x2158, "\131\122\144\362"}, - {0x2159, "\131\122\115\376\357"}, - {0x215A, "\131\122\143\376\360"}, - {0x215B, "\131\122\115\352"}, - {0x215C, "\131\122\130\353"}, - {0x215D, "\131\122\143\353"}, - {0x215E, "\131\122\150\353"}, - {0x2160, "\062\055\115"}, - {0x2161, "\062\055\125"}, - {0x2162, "\062\055\130"}, - {0x2163, "\062\055\144"}, - {0x2164, "\062\055\143"}, - {0x2165, "\062\055\165"}, - {0x2166, "\062\055\150"}, - {0x2167, "\062\055\155"}, - {0x2168, "\062\055\162"}, - {0x2169, "\062\055\332"}, - {0x216A, "\062\055\354"}, - {0x216B, "\062\055\375\015"}, - {0x216C, "\062\055\375\110"}, - {0x2170, "\004\062\055\115"}, - {0x2171, "\004\062\055\125"}, - {0x2172, "\004\062\055\130"}, - {0x2173, "\004\062\055\144"}, - {0x2174, "\004\062\055\143"}, - {0x2175, "\004\062\055\165"}, - {0x2176, "\004\062\055\150"}, - {0x2177, "\004\062\055\155"}, - {0x2178, "\004\062\055\162"}, - {0x2179, "\004\062\055\332"}, - {0x217A, "\004\062\055\354"}, - {0x217B, "\004\062\055\375\015"}, - {0x217C, "\004\062\055\375\110"}, - {0x2190, "\375\150\135"}, - {0x2191, "\377\022\135"}, - {0x2192, "\375\005\135"}, - {0x2193, "\376\152\135"}, - {0x2194, "\034\035\135"}, - {0x2195, "\053\054\135"}, - {0x2196, "\375\173\375\271\135"}, - {0x2197, "\375\173\375\100\135"}, - {0x2198, "\375\241\375\100\135"}, - {0x2199, "\375\241\375\271\135"}, - {0x21C0, "\375\005\377\025\016\341\376\027"}, - {0x21D0, "\375\150\064\135"}, - {0x21D2, "\375\005\064\135"}, - {0x21D4, "\034\035\064\135"}, - {0x2200, "\376\201\375\033"}, - {0x2202, "\375\001\376\146"}, - {0x2203, "\377\004\376\162"}, - {0x2205, "\376\160\326"}, - {0x2206, "\376\227"}, - {0x2207, "\376\261"}, - {0x2208, "\376\157\110"}, - {0x220B, "\376\131\376\075\376\252"}, - {0x220F, "\375\165\376\322"}, - {0x2211, "\375\165\376\367"}, - {0x2212, "\372\036"}, - {0x2213, "\376\256\036"}, - {0x2217, "\375\036\203"}, - {0x2218, "\141\203"}, - {0x2219, "\375\047\203"}, - {0x221A, "\126\376\342"}, - {0x221D, "\376\326\111"}, - {0x221E, "\376\230"}, - {0x221F, "\035\152"}, - {0x2220, "\152"}, - {0x2225, "\376\302\111"}, - {0x2227, "\375\152\007"}, - {0x2228, "\375\152\214"}, - {0x2229, "\376\231"}, - {0x222A, "\377\021"}, - {0x222B, "\240"}, - {0x222C, "\064\240"}, - {0x222E, "\376\132\240"}, - {0x2234, "\377\005"}, - {0x2235, "\376\106"}, - {0x2236, "\376\331"}, - {0x2237, "\376\325"}, - {0x223C, "\042\203"}, - {0x223E, "\306\376\242\070"}, - {0x2243, "\376\076\156\111"}, - {0x2245, "\375\035\156\111"}, - {0x2248, "\376\064\156\111"}, - {0x224C, "\375\033\156\111"}, - {0x2253, "\376\225\110\214\375\035\156\111"}, - {0x2260, "\251\156\111"}, - {0x2261, "\376\222\111"}, - {0x2264, "\311\214\156\111"}, - {0x2265, "\303\214\156\111"}, - {0x226A, "\375\164\311"}, - {0x226B, "\375\164\303"}, - {0x226E, "\251\311"}, - {0x226F, "\251\303"}, - {0x2282, "\375\246\110"}, - {0x2283, "\375\247\110"}, - {0x2286, "\375\246\110\214\156\111"}, - {0x2287, "\375\247\110\214\156\111"}, - {0x2299, "\026\015\203"}, - {0x229A, "\026\141\203"}, - {0x22A5, "\053\376\374"}, - {0x22C5, "\015\203"}, - {0x22EE, "\063\375\103"}, - {0x2302, "\376\220"}, - {0x2308, "\034\375\052"}, - {0x2309, "\035\375\052"}, - {0x230A, "\034\375\112"}, - {0x230B, "\035\375\112"}, - {0x2310, "\324\251\036"}, - {0x2312, "\376\074"}, - {0x2315, "\375\013\376\334"}, - {0x2320, "\377\014\157\240"}, - {0x2321, "\376\111\157\240"}, - {0x2329, "\245\152\112"}, - {0x232A, "\254\152\112"}, - {0x2423, "\376\273\021"}, - {0x2440, "\174\065"}, - {0x2441, "\174\376\124"}, - {0x2442, "\174\375\113"}, - {0x2443, "\174\306\375\113"}, - {0x2446, "\174\376\112\376\105\376\223"}, - {0x2447, "\174\376\065\110\375\054"}, - {0x2448, "\174\142"}, - {0x2449, "\174\376\136\376\061\133"}, - {0x2460, "\026\025\115"}, - {0x2461, "\026\025\125"}, - {0x2462, "\026\025\130"}, - {0x2463, "\026\025\144"}, - {0x2464, "\026\025\143"}, - {0x2465, "\026\025\165"}, - {0x2466, "\026\025\150"}, - {0x2467, "\026\025\155"}, - {0x2468, "\026\025\162"}, - {0x2474, "\040\025\115"}, - {0x2475, "\040\025\125"}, - {0x2476, "\040\025\130"}, - {0x2477, "\040\025\144"}, - {0x2478, "\040\025\143"}, - {0x2479, "\040\025\165"}, - {0x247A, "\040\025\150"}, - {0x247B, "\040\025\155"}, - {0x247C, "\040\025\162"}, - {0x2488, "\025\115\074\101"}, - {0x2489, "\025\125\074\101"}, - {0x248A, "\025\130\074\101"}, - {0x248B, "\025\144\074\101"}, - {0x248C, "\025\143\074\101"}, - {0x248D, "\025\165\074\101"}, - {0x248E, "\025\150\074\101"}, - {0x248F, "\025\155\074\101"}, - {0x2490, "\025\162\074\101"}, - {0x2491, "\133\332\074\101"}, - {0x2492, "\133\354\074\101"}, - {0x2493, "\133\375\015\074\101"}, - {0x2494, "\133\377\011\074\101"}, - {0x2495, "\133\376\204\074\101"}, - {0x2496, "\133\376\174\074\101"}, - {0x2497, "\133\376\355\074\101"}, - {0x2498, "\133\376\351\074\101"}, - {0x2499, "\133\376\156\074\101"}, - {0x249A, "\133\376\265\074\101"}, - {0x249B, "\133\377\017\074\101"}, - {0x249C, "\040\002\004\001\030"}, - {0x249D, "\040\002\004\001\136"}, - {0x249E, "\040\002\004\001\113"}, - {0x249F, "\040\002\004\001\103"}, - {0x24A0, "\040\002\004\001\033"}, - {0x24A1, "\040\002\004\001\172"}, - {0x24A2, "\040\002\004\001\075"}, - {0x24A3, "\040\002\004\001\104"}, - {0x24A4, "\040\002\004\001\041"}, - {0x24A5, "\040\002\004\001\171"}, - {0x24A6, "\040\002\004\001\123"}, - {0x24A7, "\040\002\004\001\077"}, - {0x24A8, "\040\002\004\001\145"}, - {0x24A9, "\040\002\004\001\061"}, - {0x24AA, "\040\002\004\001\023"}, - {0x24AB, "\040\002\004\001\163"}, - {0x24AC, "\040\002\004\001\220"}, - {0x24AD, "\040\002\004\001\116"}, - {0x24AE, "\040\002\004\001\070"}, - {0x24AF, "\040\002\004\001\106"}, - {0x24B0, "\040\002\004\001\024"}, - {0x24B1, "\040\002\004\001\167"}, - {0x24B2, "\040\002\004\001\121"}, - {0x24B3, "\040\002\004\001\151"}, - {0x24B4, "\040\002\004\001\102"}, - {0x24B5, "\040\002\004\001\107"}, - {0x24B6, "\026\002\005\001\030"}, - {0x24B7, "\026\002\005\001\136"}, - {0x24B8, "\026\002\005\001\113"}, - {0x24B9, "\026\002\005\001\103"}, - {0x24BA, "\026\002\005\001\033"}, - {0x24BB, "\026\002\005\001\172"}, - {0x24BC, "\026\002\005\001\075"}, - {0x24BD, "\026\002\005\001\104"}, - {0x24BE, "\026\002\005\001\041"}, - {0x24BF, "\026\002\005\001\171"}, - {0x24C0, "\026\002\005\001\123"}, - {0x24C1, "\026\002\005\001\077"}, - {0x24C2, "\026\002\005\001\145"}, - {0x24C3, "\026\002\005\001\061"}, - {0x24C4, "\026\002\005\001\023"}, - {0x24C5, "\026\002\005\001\163"}, - {0x24C6, "\026\002\005\001\220"}, - {0x24C7, "\026\002\005\001\116"}, - {0x24C8, "\026\002\005\001\070"}, - {0x24C9, "\026\002\005\001\106"}, - {0x24CA, "\026\002\005\001\024"}, - {0x24CB, "\026\002\005\001\167"}, - {0x24CC, "\026\002\005\001\121"}, - {0x24CD, "\026\002\005\001\151"}, - {0x24CE, "\026\002\005\001\102"}, - {0x24CF, "\026\002\005\001\107"}, - {0x24D0, "\026\002\004\001\030"}, - {0x24D1, "\026\002\004\001\136"}, - {0x24D2, "\026\002\004\001\113"}, - {0x24D3, "\026\002\004\001\103"}, - {0x24D4, "\026\002\004\001\033"}, - {0x24D5, "\026\002\004\001\172"}, - {0x24D6, "\026\002\004\001\075"}, - {0x24D7, "\026\002\004\001\104"}, - {0x24D8, "\026\002\004\001\041"}, - {0x24D9, "\026\002\004\001\171"}, - {0x24DA, "\026\002\004\001\123"}, - {0x24DB, "\026\002\004\001\077"}, - {0x24DC, "\026\002\004\001\145"}, - {0x24DD, "\026\002\004\001\061"}, - {0x24DE, "\026\002\004\001\023"}, - {0x24DF, "\026\002\004\001\163"}, - {0x24E0, "\026\002\004\001\220"}, - {0x24E1, "\026\002\004\001\116"}, - {0x24E2, "\026\002\004\001\070"}, - {0x24E3, "\026\002\004\001\106"}, - {0x24E4, "\026\002\004\001\024"}, - {0x24E5, "\026\002\004\001\167"}, - {0x24E6, "\026\002\004\001\121"}, - {0x24E7, "\026\002\004\001\151"}, - {0x24E8, "\026\002\004\001\102"}, - {0x24E9, "\026\002\004\001\107"}, - {0x24EA, "\026\025\225"}, - {0x2500, "\021\022\031\066"}, - {0x2502, "\021\022\031\063"}, - {0x2504, "\021\022\031\221\142\066"}, - {0x2505, "\021\022\032\221\142\066"}, - {0x2506, "\021\022\031\221\142\063"}, - {0x2507, "\021\022\032\221\142\063"}, - {0x2508, "\021\022\031\323\142\066"}, - {0x2509, "\021\022\032\323\142\066"}, - {0x250A, "\021\022\031\323\142\063"}, - {0x250B, "\021\022\032\323\142\063"}, - {0x250C, "\021\022\031\054\007\035"}, - {0x2510, "\021\022\031\054\007\034"}, - {0x2514, "\021\022\031\053\007\035"}, - {0x2518, "\021\022\031\053\007\034"}, - {0x251C, "\021\022\031\063\007\035"}, - {0x251E, "\021\022\053\032\007\035\054\031"}, - {0x251F, "\021\022\054\032\007\035\053\031"}, - {0x2521, "\021\022\054\031\007\035\053\032"}, - {0x2522, "\021\022\053\031\007\035\054\032"}, - {0x2524, "\021\022\031\063\007\034"}, - {0x2526, "\021\022\053\032\007\034\054\031"}, - {0x2527, "\021\022\054\032\007\034\053\031"}, - {0x2529, "\021\022\054\031\007\034\053\032"}, - {0x252A, "\021\022\053\031\007\034\054\032"}, - {0x252C, "\021\022\031\054\007\066"}, - {0x252D, "\021\022\034\032\007\035\054\031"}, - {0x252E, "\021\022\035\032\007\034\054\031"}, - {0x2531, "\021\022\035\031\007\034\054\032"}, - {0x2532, "\021\022\034\031\007\035\054\032"}, - {0x2534, "\021\022\031\053\007\066"}, - {0x2535, "\021\022\034\032\007\035\053\031"}, - {0x2536, "\021\022\035\032\007\034\053\031"}, - {0x2539, "\021\022\035\031\007\034\053\032"}, - {0x253A, "\021\022\034\031\007\035\053\032"}, - {0x253C, "\021\022\031\063\007\066"}, - {0x253D, "\021\022\034\032\007\035\063\031"}, - {0x253E, "\021\022\035\032\007\034\063\031"}, - {0x2540, "\021\022\053\032\007\054\066\031"}, - {0x2541, "\021\022\054\032\007\053\066\031"}, - {0x2547, "\021\022\054\031\007\053\066\032"}, - {0x2548, "\021\022\053\031\007\054\066\032"}, - {0x2549, "\021\022\035\031\007\034\063\032"}, - {0x254A, "\021\022\034\031\007\035\063\032"}, - {0x2550, "\021\022\032\066"}, - {0x2551, "\021\022\032\063"}, - {0x2552, "\021\022\054\031\007\035\032"}, - {0x2553, "\021\022\054\032\007\035\031"}, - {0x2554, "\021\022\032\054\007\035"}, - {0x2555, "\021\022\054\031\007\034\032"}, - {0x2556, "\021\022\054\032\007\034\031"}, - {0x2557, "\021\022\032\054\007\034"}, - {0x2558, "\021\022\053\031\007\035\032"}, - {0x2559, "\021\022\053\032\007\035\031"}, - {0x255A, "\021\022\032\053\007\035"}, - {0x255B, "\021\022\053\031\007\034\032"}, - {0x255C, "\021\022\053\032\007\034\031"}, - {0x255D, "\021\022\032\053\007\034"}, - {0x255E, "\021\022\063\031\007\035\032"}, - {0x255F, "\021\022\063\032\007\035\031"}, - {0x2560, "\021\022\032\063\007\035"}, - {0x2561, "\021\022\063\031\007\034\032"}, - {0x2562, "\021\022\063\032\007\034\031"}, - {0x2563, "\021\022\032\063\007\034"}, - {0x2564, "\021\022\054\031\007\066\032"}, - {0x2565, "\021\022\054\032\007\066\031"}, - {0x2566, "\021\022\032\054\007\066"}, - {0x2567, "\021\022\053\031\007\066\032"}, - {0x2568, "\021\022\053\032\007\066\031"}, - {0x2569, "\021\022\032\053\007\066"}, - {0x256A, "\021\022\063\031\007\066\032"}, - {0x256B, "\021\022\063\032\007\066\031"}, - {0x256C, "\021\022\032\063\007\066"}, - {0x2571, "\021\022\031\351\264\035\111\173\034"}, - {0x2572, "\021\022\031\351\264\034\111\173\035"}, - {0x2580, "\264\157\207"}, - {0x2584, "\173\157\207"}, - {0x2588, "\074\207"}, - {0x258C, "\034\157\207"}, - {0x2590, "\035\157\207"}, - {0x2591, "\031\375\006"}, - {0x2592, "\375\156\375\006"}, - {0x2593, "\376\142\375\006"}, - {0x25A0, "\071\126"}, - {0x25A1, "\067\126"}, - {0x25A2, "\067\126\003\376\343\376\133"}, - {0x25A3, "\067\126\376\130\071\004\126"}, - {0x25A4, "\126\003\066\213"}, - {0x25A5, "\126\003\063\213"}, - {0x25A6, "\126\003\376\275\375\062\213"}, - {0x25A7, "\126\003\264\034\111\173\035\213"}, - {0x25A8, "\126\003\264\035\111\173\034\213"}, - {0x25A9, "\126\003\351\375\062\213"}, - {0x25AA, "\071\004\126"}, - {0x25AC, "\071\375\214"}, - {0x25AD, "\067\375\214"}, - {0x25B2, "\071\375\264\166"}, - {0x25B3, "\067\375\264\166"}, - {0x25B7, "\067\254\166"}, - {0x25BA, "\071\254\166"}, - {0x25BC, "\071\375\074\166"}, - {0x25BD, "\067\375\074\166"}, - {0x25C1, "\067\245\166"}, - {0x25C4, "\071\245\166"}, - {0x25C6, "\071\275"}, - {0x25C7, "\067\275"}, - {0x25CA, "\376\246"}, - {0x25CB, "\067\210"}, - {0x25CE, "\376\114"}, - {0x25CF, "\071\210"}, - {0x25D0, "\210\003\034\157\071"}, - {0x25D1, "\210\003\035\157\071"}, - {0x25D8, "\375\136\375\047"}, - {0x25D9, "\375\136\067\210"}, - {0x25E2, "\071\173\035\166"}, - {0x25E3, "\071\173\034\166"}, - {0x25EF, "\210\375\360\376\026"}, - {0x2605, "\071\375\243"}, - {0x2606, "\067\375\243"}, - {0x260E, "\071\375\013"}, - {0x260F, "\067\375\013"}, - {0x261C, "\067\034\375\205\364"}, - {0x261E, "\067\035\375\205\364"}, - {0x263A, "\067\375\237\375\107"}, - {0x263B, "\071\375\237\375\107"}, - {0x263C, "\067\376\370\003\376\332"}, - {0x2640, "\376\166\036"}, - {0x2642, "\376\247\036"}, - {0x2660, "\071\375\242\176"}, - {0x2661, "\067\375\125\176"}, - {0x2662, "\067\275\176"}, - {0x2663, "\071\375\056\176"}, - {0x2664, "\067\375\242\176"}, - {0x2665, "\071\375\125\176"}, - {0x2666, "\071\275\176"}, - {0x2667, "\067\375\056\176"}, - {0x2669, "\375\211\375\174"}, - {0x266A, "\352\375\174"}, - {0x266B, "\375\041\352\375\175"}, - {0x266C, "\375\041\376\356\375\175"}, - {0x266D, "\373\376\200\036"}, - {0x266E, "\373\376\262\036"}, - {0x266F, "\373\375\231\036"}, - {0x2713, "\375\054\046"}, - {0x2717, "\376\104\151"}, - {0x2720, "\376\250\376\134"}, - {0x3000, "\201\146"}, - {0x3001, "\201\346"}, - {0x3002, "\201\376\306"}, - {0x3003, "\375\071\046"}, - {0x3005, "\201\241\046"}, - {0x3006, "\201\376\125\046"}, - {0x3007, "\201\133\225"}, - {0x300A, "\034\064\152\112"}, - {0x300B, "\035\064\152\112"}, - {0x300C, "\034\273\112"}, - {0x300D, "\035\273\112"}, - {0x300E, "\034\067\273\112"}, - {0x300F, "\035\067\273\112"}, - {0x3010, "\034\071\310\112"}, - {0x3011, "\035\071\310\112"}, - {0x3012, "\376\314\046"}, - {0x3013, "\376\206\046"}, - {0x3014, "\034\375\256\375\233\112"}, - {0x3015, "\035\375\256\375\233\112"}, - {0x3016, "\034\067\310\112"}, - {0x3017, "\035\067\310\112"}, - {0x301C, "\377\032\142"}, - {0x3041, "\017\001\004\030"}, - {0x3042, "\017\001\030"}, - {0x3043, "\017\001\004\041"}, - {0x3044, "\017\001\041"}, - {0x3045, "\017\001\004\024"}, - {0x3046, "\017\001\024"}, - {0x3047, "\017\001\004\033"}, - {0x3048, "\017\001\033"}, - {0x3049, "\017\001\004\023"}, - {0x304A, "\017\001\023"}, - {0x304B, "\017\001\243"}, - {0x304C, "\017\001\375\114"}, - {0x304D, "\017\001\375\143"}, - {0x304E, "\017\001\375\117"}, - {0x304F, "\017\001\375\146"}, - {0x3050, "\017\001\375\122"}, - {0x3051, "\017\001\367"}, - {0x3052, "\017\001\375\116"}, - {0x3053, "\017\001\375\145"}, - {0x3054, "\017\001\375\121"}, - {0x3055, "\017\001\375\222"}, - {0x3056, "\017\001\375\301"}, - {0x3057, "\017\001\375\235"}, - {0x3058, "\017\001\375\304"}, - {0x3059, "\017\001\375\245"}, - {0x305A, "\017\001\375\306"}, - {0x305B, "\017\001\375\224"}, - {0x305C, "\017\001\340"}, - {0x305D, "\017\001\375\240"}, - {0x305E, "\017\001\375\305"}, - {0x305F, "\017\001\375\250"}, - {0x3060, "\017\001\375\064"}, - {0x3061, "\017\001\375\255"}, - {0x3062, "\017\001\375\067"}, - {0x3063, "\017\001\004\333"}, - {0x3064, "\017\001\333"}, - {0x3065, "\017\001\375\075"}, - {0x3066, "\017\001\331"}, - {0x3067, "\017\001\274"}, - {0x3068, "\017\001\111"}, - {0x3069, "\017\001\375\073"}, - {0x306A, "\017\001\375\166"}, - {0x306B, "\017\001\375\171"}, - {0x306C, "\017\001\315"}, - {0x306D, "\017\001\375\167"}, - {0x306E, "\017\001\374"}, - {0x306F, "\017\001\304"}, - {0x3070, "\017\001\375\037"}, - {0x3071, "\017\001\375\202"}, - {0x3072, "\017\001\375\127"}, - {0x3073, "\017\001\375\042"}, - {0x3074, "\017\001\321"}, - {0x3075, "\017\001\375\132"}, - {0x3076, "\017\001\375\046"}, - {0x3077, "\017\001\375\210"}, - {0x3078, "\017\001\363"}, - {0x3079, "\017\001\272"}, - {0x307A, "\017\001\216"}, - {0x307B, "\017\001\375\131"}, - {0x307C, "\017\001\375\044"}, - {0x307D, "\017\001\375\204"}, - {0x307E, "\017\001\375\154"}, - {0x307F, "\017\001\375\162"}, - {0x3080, "\017\001\314"}, - {0x3081, "\017\001\375\155"}, - {0x3082, "\017\001\375\163"}, - {0x3083, "\017\001\004\222"}, - {0x3084, "\017\001\222"}, - {0x3085, "\017\001\004\224"}, - {0x3086, "\017\001\224"}, - {0x3087, "\017\001\004\337"}, - {0x3088, "\017\001\337"}, - {0x3089, "\017\001\375\212"}, - {0x308A, "\017\001\375\217"}, - {0x308B, "\017\001\375\221"}, - {0x308C, "\017\001\375\213"}, - {0x308D, "\017\001\375\220"}, - {0x308E, "\017\001\004\335"}, - {0x308F, "\017\001\335"}, - {0x3090, "\017\001\375\272"}, - {0x3091, "\017\001\375\270"}, - {0x3092, "\017\001\375\273"}, - {0x3093, "\017\001\061"}, - {0x3094, "\017\001\375\267"}, - {0x309B, "\366\375\020\330\046"}, - {0x309C, "\366\376\346\330\046"}, - {0x309D, "\017\241\046"}, - {0x309E, "\017\375\020\241\046"}, - {0x30A1, "\014\001\004\030"}, - {0x30A2, "\014\001\030"}, - {0x30A3, "\014\001\004\041"}, - {0x30A4, "\014\001\041"}, - {0x30A5, "\014\001\004\024"}, - {0x30A6, "\014\001\024"}, - {0x30A7, "\014\001\004\033"}, - {0x30A8, "\014\001\033"}, - {0x30A9, "\014\001\004\023"}, - {0x30AA, "\014\001\023"}, - {0x30AB, "\014\001\243"}, - {0x30AC, "\014\001\375\114"}, - {0x30AD, "\014\001\375\143"}, - {0x30AE, "\014\001\375\117"}, - {0x30AF, "\014\001\375\146"}, - {0x30B0, "\014\001\375\122"}, - {0x30B1, "\014\001\367"}, - {0x30B2, "\014\001\375\116"}, - {0x30B3, "\014\001\375\145"}, - {0x30B4, "\014\001\375\121"}, - {0x30B5, "\014\001\375\222"}, - {0x30B6, "\014\001\375\301"}, - {0x30B7, "\014\001\375\235"}, - {0x30B8, "\014\001\375\304"}, - {0x30B9, "\014\001\375\245"}, - {0x30BA, "\014\001\375\306"}, - {0x30BB, "\014\001\375\224"}, - {0x30BC, "\014\001\340"}, - {0x30BD, "\014\001\375\240"}, - {0x30BE, "\014\001\375\305"}, - {0x30BF, "\014\001\375\250"}, - {0x30C0, "\014\001\375\064"}, - {0x30C1, "\014\001\375\255"}, - {0x30C2, "\014\001\375\067"}, - {0x30C3, "\014\001\004\333"}, - {0x30C4, "\014\001\333"}, - {0x30C5, "\014\001\375\075"}, - {0x30C6, "\014\001\331"}, - {0x30C7, "\014\001\274"}, - {0x30C8, "\014\001\111"}, - {0x30C9, "\014\001\375\073"}, - {0x30CA, "\014\001\375\166"}, - {0x30CB, "\014\001\375\171"}, - {0x30CC, "\014\001\315"}, - {0x30CD, "\014\001\375\167"}, - {0x30CE, "\014\001\374"}, - {0x30CF, "\014\001\304"}, - {0x30D0, "\014\001\375\037"}, - {0x30D1, "\014\001\375\202"}, - {0x30D2, "\014\001\375\127"}, - {0x30D3, "\014\001\375\042"}, - {0x30D4, "\014\001\321"}, - {0x30D5, "\014\001\375\132"}, - {0x30D6, "\014\001\375\046"}, - {0x30D7, "\014\001\375\210"}, - {0x30D8, "\014\001\363"}, - {0x30D9, "\014\001\272"}, - {0x30DA, "\014\001\216"}, - {0x30DB, "\014\001\375\131"}, - {0x30DC, "\014\001\375\044"}, - {0x30DD, "\014\001\375\204"}, - {0x30DE, "\014\001\375\154"}, - {0x30DF, "\014\001\375\162"}, - {0x30E0, "\014\001\314"}, - {0x30E1, "\014\001\375\155"}, - {0x30E2, "\014\001\375\163"}, - {0x30E3, "\014\001\004\222"}, - {0x30E4, "\014\001\222"}, - {0x30E5, "\014\001\004\224"}, - {0x30E6, "\014\001\224"}, - {0x30E7, "\014\001\004\337"}, - {0x30E8, "\014\001\337"}, - {0x30E9, "\014\001\375\212"}, - {0x30EA, "\014\001\375\217"}, - {0x30EB, "\014\001\375\221"}, - {0x30EC, "\014\001\375\213"}, - {0x30ED, "\014\001\375\220"}, - {0x30EE, "\014\001\004\335"}, - {0x30EF, "\014\001\335"}, - {0x30F0, "\014\001\375\272"}, - {0x30F1, "\014\001\375\270"}, - {0x30F2, "\014\001\375\273"}, - {0x30F3, "\014\001\061"}, - {0x30F4, "\014\001\375\267"}, - {0x30F5, "\014\001\004\243"}, - {0x30F6, "\014\001\004\367"}, - {0x30F7, "\014\001\377\023"}, - {0x30F8, "\014\001\377\027"}, - {0x30F9, "\014\001\375\017"}, - {0x30FA, "\014\001\377\030"}, - {0x30FB, "\014\247\015"}, - {0x30FC, "\366\376\324\330\046"}, - {0x30FD, "\014\241\046"}, - {0x30FE, "\014\375\020\241\046"}, - {0x3105, "\043\001\136"}, - {0x3106, "\043\001\163"}, - {0x3107, "\043\001\145"}, - {0x3108, "\043\001\172"}, - {0x3109, "\043\001\103"}, - {0x310A, "\043\001\106"}, - {0x310B, "\043\001\061"}, - {0x310C, "\043\001\077"}, - {0x310D, "\043\001\075"}, - {0x310E, "\043\001\123"}, - {0x310F, "\043\001\104"}, - {0x3110, "\043\001\171"}, - {0x3111, "\043\001\220"}, - {0x3112, "\043\001\151"}, - {0x3113, "\043\001\377\040"}, - {0x3114, "\043\001\376\123"}, - {0x3115, "\043\001\376\352"}, - {0x3116, "\043\001\116"}, - {0x3117, "\043\001\107"}, - {0x3118, "\043\001\113"}, - {0x3119, "\043\001\070"}, - {0x311A, "\043\001\030"}, - {0x311B, "\043\001\023"}, - {0x311C, "\043\001\033"}, - {0x311D, "\043\001\376\154"}, - {0x311E, "\043\001\376\063"}, - {0x311F, "\043\001\376\155"}, - {0x3120, "\043\001\376\100"}, - {0x3121, "\043\001\376\276"}, - {0x3122, "\043\001\376\067"}, - {0x3123, "\043\001\233"}, - {0x3124, "\043\001\376\070"}, - {0x3125, "\043\001\355"}, - {0x3126, "\043\001\357"}, - {0x3127, "\043\001\041"}, - {0x3128, "\043\001\024"}, - {0x3129, "\043\001\376\232"}, - {0x312A, "\043\001\167"}, - {0x312B, "\043\001\376\264"}, - {0x312C, "\043\001\376\210"}, - {0x3220, "\040\161\115"}, - {0x3221, "\040\161\125"}, - {0x3222, "\040\161\130"}, - {0x3223, "\040\161\144"}, - {0x3224, "\040\161\143"}, - {0x3225, "\040\161\165"}, - {0x3226, "\040\161\150"}, - {0x3227, "\040\161\155"}, - {0x3228, "\040\161\162"}, - {0x3229, "\040\161\332"}, - {0x327F, "\376\237\376\363\376\371"}, - {0x33C2, "\376\072\375\160\036\342\376\023"}, - {0x33D8, "\376\313\375\160\036\342\376\024"}, - {0xE000, "\100\377\020\375\023\375\027\117\164"}, - {0xE001, "\100\037\003\147\375\357\376\040"}, - {0xE002, "\100\047\147\132\376\041\117"}, - {0xE003, "\100\013\147\132\376\042\117"}, - {0xE004, "\100\027\147\132\376\043"}, - {0xE005, "\100\042\132\376\044\117\164"}, - {0xE006, "\100\050\132\376\045\117\164"}, - {0xE007, "\100\057\132\376\046\117\164"}, - {0xE008, "\100\015\016\132\376\047\117\164"}, - {0xE009, "\100\037\132\376\050\117\164"}, - {0xE00A, "\100\141\016\132\376\051\117\164"}, - {0xE00B, "\100\060\132\376\052\117\164"}, - {0xE00C, "\100\312\052\132\375\030\117"}, - {0xE00D, "\100\064\376\062\132\375\030\117"}, - {0xE00E, "\100\134\132\375\031\117\164"}, - {0xE00F, "\100\045\132\375\031\117\164"}, - {0xE010, "\100\064\312\052\375\023\376\053\117"}, - {0xE011, "\100\376\245\375\011\375\355\375\027\117"}, - {0xE012, "\012\100\252\322\344\376\054"}, - {0xE013, "\012\100\231\322\344\376\055"}, - {0xE014, "\012\100\170\020\344\376\056\117"}, - {0xE015, "\201\375\071\046"}, - {0xE016, "\006\001\073\044\010\375\060\375\347\376\036"}, - {0xE017, "\377\001\375\060\036\342\376\025"}, - {0xE018, "\375\016\146\030\375\024\376\032"}, - {0xE019, "\375\016\146\136\375\024\376\033"}, - {0xE01A, "\012\004\001\375\244"}, - {0xE01B, "\012\004\001\375\070"}, - {0xE01C, "\012\004\001\307"}, - {0xE01D, "\012\004\001\375\223"}, - {0xE01F, "\376\153\376\213\036\375\346\376\037"}, - {0xE024, "\376\233\377\012\052\003\375\170\052\375\362"}, - {0xFB00, "\002\004\114\376\170"}, - {0xFB01, "\002\004\114\376\173"}, - {0xFB02, "\002\004\114\376\177"}, - {0xFB03, "\002\004\114\376\171"}, - {0xFB04, "\002\004\114\376\172"}, - {0xFB06, "\002\004\114\376\362"}, - {0xFE7D, "\006\375\230\072\010"}, - {0xFE82, "\006\001\073\003\313\016\044\010"}, - {0xFE84, "\006\001\073\003\160\016\044\010"}, - {0xFE8D, "\006\001\073\051\010"}, - {0xFE8E, "\006\001\073\044\010"}, - {0xFE8F, "\006\001\227\051\010"}, - {0xFE90, "\006\001\227\044\010"}, - {0xFE91, "\006\001\227\076\010"}, - {0xFE92, "\006\001\227\072\010"}, - {0xFE93, "\006\001\177\371\051\010"}, - {0xFE94, "\006\001\177\371\044\010"}, - {0xFE95, "\006\001\177\051\010"}, - {0xFE96, "\006\001\177\044\010"}, - {0xFE97, "\006\001\177\076\010"}, - {0xFE98, "\006\001\177\072\010"}, - {0xFE99, "\006\001\263\051\010"}, - {0xFE9A, "\006\001\263\044\010"}, - {0xFE9B, "\006\001\263\076\010"}, - {0xFE9C, "\006\001\263\072\010"}, - {0xFE9D, "\006\001\242\051\010"}, - {0xFE9E, "\006\001\242\044\010"}, - {0xFE9F, "\006\001\242\076\010"}, - {0xFEA0, "\006\001\242\072\010"}, - {0xFEA1, "\006\001\236\051\010"}, - {0xFEA2, "\006\001\236\044\010"}, - {0xFEA3, "\006\001\236\076\010"}, - {0xFEA4, "\006\001\236\072\010"}, - {0xFEA5, "\006\001\244\051\010"}, - {0xFEA6, "\006\001\244\044\010"}, - {0xFEA7, "\006\001\244\076\010"}, - {0xFEA8, "\006\001\244\072\010"}, - {0xFEA9, "\006\001\347\051\010"}, - {0xFEAA, "\006\001\347\044\010"}, - {0xFEAB, "\006\001\375\014\051\010"}, - {0xFEAC, "\006\001\375\014\044\010"}, - {0xFEAD, "\006\001\375\004\051\010"}, - {0xFEAE, "\006\001\375\004\044\010"}, - {0xFEAF, "\006\001\375\021\051\010"}, - {0xFEB0, "\006\001\375\021\044\010"}, - {0xFEB1, "\006\001\256\051\010"}, - {0xFEB2, "\006\001\256\044\010"}, - {0xFEB3, "\006\001\256\076\010"}, - {0xFEB4, "\006\001\256\072\010"}, - {0xFEB5, "\006\001\257\051\010"}, - {0xFEB6, "\006\001\257\044\010"}, - {0xFEB7, "\006\001\257\076\010"}, - {0xFEB8, "\006\001\257\072\010"}, - {0xFEB9, "\006\001\255\051\010"}, - {0xFEBA, "\006\001\255\044\010"}, - {0xFEBB, "\006\001\255\076\010"}, - {0xFEBC, "\006\001\255\072\010"}, - {0xFEBD, "\006\001\230\051\010"}, - {0xFEBE, "\006\001\230\044\010"}, - {0xFEBF, "\006\001\230\076\010"}, - {0xFEC0, "\006\001\230\072\010"}, - {0xFEC1, "\006\001\262\051\010"}, - {0xFEC2, "\006\001\262\044\010"}, - {0xFEC3, "\006\001\262\076\010"}, - {0xFEC4, "\006\001\262\072\010"}, - {0xFEC5, "\006\001\265\051\010"}, - {0xFEC6, "\006\001\265\044\010"}, - {0xFEC7, "\006\001\265\076\010"}, - {0xFEC8, "\006\001\265\072\010"}, - {0xFEC9, "\006\001\226\051\010"}, - {0xFECA, "\006\001\226\044\010"}, - {0xFECB, "\006\001\226\076\010"}, - {0xFECC, "\006\001\226\072\010"}, - {0xFECD, "\006\001\235\051\010"}, - {0xFECE, "\006\001\235\044\010"}, - {0xFECF, "\006\001\235\076\010"}, - {0xFED0, "\006\001\235\072\010"}, - {0xFED1, "\006\001\234\051\010"}, - {0xFED2, "\006\001\234\044\010"}, - {0xFED3, "\006\001\234\076\010"}, - {0xFED4, "\006\001\234\072\010"}, - {0xFED5, "\006\001\253\051\010"}, - {0xFED6, "\006\001\253\044\010"}, - {0xFED7, "\006\001\253\076\010"}, - {0xFED8, "\006\001\253\072\010"}, - {0xFED9, "\006\001\202\051\010"}, - {0xFEDA, "\006\001\202\044\010"}, - {0xFEDB, "\006\001\202\076\010"}, - {0xFEDC, "\006\001\202\072\010"}, - {0xFEDD, "\006\001\137\051\010"}, - {0xFEDE, "\006\001\137\044\010"}, - {0xFEDF, "\006\001\137\076\010"}, - {0xFEE0, "\006\001\137\072\010"}, - {0xFEE1, "\006\001\246\051\010"}, - {0xFEE2, "\006\001\246\044\010"}, - {0xFEE3, "\006\001\246\076\010"}, - {0xFEE4, "\006\001\246\072\010"}, - {0xFEE5, "\006\001\250\051\010"}, - {0xFEE6, "\006\001\250\044\010"}, - {0xFEE7, "\006\001\250\076\010"}, - {0xFEE8, "\006\001\250\072\010"}, - {0xFEE9, "\006\001\237\051\010"}, - {0xFEEA, "\006\001\237\044\010"}, - {0xFEEB, "\006\001\237\076\010"}, - {0xFEEC, "\006\001\237\072\010"}, - {0xFEED, "\006\001\336\051\010"}, - {0xFEEE, "\006\001\336\044\010"}, - {0xFEEF, "\006\001\073\370\051\010"}, - {0xFEF0, "\006\001\073\370\044\010"}, - {0xFEF1, "\006\001\223\051\010"}, - {0xFEF2, "\006\001\223\044\010"}, - {0xFEF3, "\006\001\223\076\010"}, - {0xFEF4, "\006\001\223\072\010"}, - {0xFEF5, "\006\114\137\003\073\003\313\016"}, - {0xFEF6, "\006\114\137\003\073\003\313\016"}, - {0xFEF7, "\006\114\137\003\073\003\160\016"}, - {0xFEF8, "\006\114\137\003\073\003\160\016"}, - {0xFEF9, "\006\114\137\003\073\003\160\020"}, - {0xFEFA, "\006\114\137\003\073\003\160\020"}, - {0xFEFB, "\006\114\137\003\073\051\010"}, - {0xFEFC, "\006\114\137\003\073\044\010"}, - }; diff --git a/src/cleaner.h b/src/cleaner.h new file mode 100644 index 0000000..2d2f97d --- /dev/null +++ b/src/cleaner.h @@ -0,0 +1,95 @@ +/* Conversion of files between different charsets and surfaces. + Copyright © 2008-2023 Free Software Foundation, Inc. + Contributed by François Pinard , 2008. + + This 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 3 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. + + You should have received a copy of the GNU Library General Public + License along with the Recode Library; see the file `COPYING.LIB'. + If not, see . +*/ + +/* Definitions to clean up the linker namespace. */ + +#ifndef CLEANER_H_ +# define CLEANER_H_ + +# define delmodule_african librecode_delmodule_african +# define delmodule_afrtran librecode_delmodule_afrtran +# define delmodule_applemac librecode_delmodule_applemac +# define delmodule_ascii_latin1 librecode_delmodule_ascii_latin1 +# define delmodule_atarist librecode_delmodule_atarist +# define delmodule_bangbang librecode_delmodule_bangbang +# define delmodule_base64 librecode_delmodule_base64 +# define delmodule_cdcnos librecode_delmodule_cdcnos +# define delmodule_dump librecode_delmodule_dump +# define delmodule_ebcdic librecode_delmodule_ebcdic +# define delmodule_endline librecode_delmodule_endline +# define delmodule_flat librecode_delmodule_flat +# define delmodule_html librecode_delmodule_html +# define delmodule_ibmpc librecode_delmodule_ibmpc +# define delmodule_iconqnx librecode_delmodule_iconqnx +# define delmodule_iconv librecode_delmodule_iconv +# define delmodule_latex_latin1 librecode_delmodule_latex_latin1 +# define delmodule_latin1_ascii librecode_delmodule_latin1_ascii +# define delmodule_latin1_latex librecode_delmodule_latin1_latex +# define delmodule_latin1_texte librecode_delmodule_latin1_texte +# define delmodule_mule librecode_delmodule_mule +# define delmodule_permutations librecode_delmodule_permutations +# define delmodule_quoted_printable librecode_delmodule_quoted_printable +# define delmodule_rfc1345 librecode_delmodule_rfc1345 +# define delmodule_strips librecode_delmodule_strips +# define delmodule_testdump librecode_delmodule_testdump +# define delmodule_texinfo librecode_delmodule_texinfo +# define delmodule_texte_latin1 librecode_delmodule_texte_latin1 +# define delmodule_ucs librecode_delmodule_ucs +# define delmodule_utf16 librecode_delmodule_utf16 +# define delmodule_utf7 librecode_delmodule_utf7 +# define delmodule_utf8 librecode_delmodule_utf8 +# define delmodule_varia librecode_delmodule_varia +# define delmodule_vietnamese librecode_delmodule_vietnamese +# define module_african librecode_module_african +# define module_afrtran librecode_module_afrtran +# define module_applemac librecode_module_applemac +# define module_ascii_latin1 librecode_module_ascii_latin1 +# define module_atarist librecode_module_atarist +# define module_bangbang librecode_module_bangbang +# define module_base64 librecode_module_base64 +# define module_cdcnos librecode_module_cdcnos +# define module_dump librecode_module_dump +# define module_ebcdic librecode_module_ebcdic +# define module_endline librecode_module_endline +# define module_flat librecode_module_flat +# define module_html librecode_module_html +# define module_ibmpc librecode_module_ibmpc +# define module_iconqnx librecode_module_iconqnx +# define module_iconv librecode_module_iconv +# define module_latex_latin1 librecode_module_latex_latin1 +# define module_latin1_ascii librecode_module_latin1_ascii +# define module_latin1_latex librecode_module_latin1_latex +# define module_latin1_texte librecode_module_latin1_texte +# define module_mule librecode_module_mule +# define module_permutations librecode_module_permutations +# define module_quoted_printable librecode_module_quoted_printable +# define module_rfc1345 librecode_module_rfc1345 +# define module_strips librecode_module_strips +# define module_testdump librecode_module_testdump +# define module_texinfo librecode_module_texinfo +# define module_texte_latin1 librecode_module_texte_latin1 +# define module_ucs librecode_module_ucs +# define module_utf16 librecode_module_utf16 +# define module_utf7 librecode_module_utf7 +# define module_utf8 librecode_module_utf8 +# define module_varia librecode_module_varia +# define module_vietnamese librecode_module_vietnamese +# define texte_latin1_diaeresis librecode_texte_latin1_diaeresis + +#endif /* ! CLEANER_H_ */ diff --git a/src/combine.c b/src/combine.c index b7fc116..ac3a054 100644 --- a/src/combine.c +++ b/src/combine.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990,92,93,94,96,97,98,99,00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1990. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,13 +14,14 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" #include "hash.h" -/* FIXME: Cleanup memory at end of job, and softly report errors. */ +/* FIXME: Softly report errors. */ /* The satisfactory aspects are that Recode is now able to combine a set of sequence of UCS-2 characters into single codes, or explode those single @@ -39,7 +40,7 @@ hash coding. The less satisfactory aspects are that the user interface is still very - rude. For the time being, I merely added a "combined" charset: combining + crude. For the time being, I merely added a "combined" charset: combining is done by `u2..co', exploding is done by `co..u2'. We surely could do much better, and build on the concept of options (introduced by `+' in the request syntax), Options are probably going to be used for other @@ -49,7 +50,7 @@ foresee is that, contrarily to surfaces, options like transliteration or combining _require_ specific charsets (like UCS-2) as a vehicle, and if UCS-2 is not otherwise mandated in the request, we would have to create - such an UCS-2 intermediate. On the other hand, if UCS-2 is sandwidched + such an UCS-2 intermediate. On the other hand, if UCS-2 is sandwiched somewhere in a complex series of steps, we should implicitly propagate options towards the UCS-2 step. Even if nothing looks utterly difficult, I guess that for doing it right, a lot of attention and care is needed. @@ -80,8 +81,8 @@ combined_compare (const void *void_first, const void *void_second) } bool -init_explode (RECODE_STEP step, - RECODE_CONST_REQUEST request, +recode_init_explode (RECODE_STEP step, + RECODE_CONST_REQUEST request _GL_UNUSED, RECODE_CONST_OPTION_LIST before_options, RECODE_CONST_OPTION_LIST after_options) { @@ -97,6 +98,7 @@ init_explode (RECODE_STEP step, return false; step->step_type = RECODE_EXPLODE_STEP; step->step_table = table; + step->step_table_term_routine = (void (*) (void *)) hash_free; if (!data) return true; @@ -119,12 +121,12 @@ init_explode (RECODE_STEP step, `------------------------------------*/ bool -explode_byte_byte (RECODE_SUBTASK subtask) +recode_explode_byte_byte (RECODE_SUBTASK subtask) { Hash_table *table = (Hash_table *) subtask->step->step_table; unsigned value; - while (value = get_byte (subtask), value != EOF) + while (value = recode_get_byte (subtask), value != (unsigned)EOF) { unsigned short lookup = value; unsigned short *result = (unsigned short *) hash_lookup (table, &lookup); @@ -134,24 +136,24 @@ explode_byte_byte (RECODE_SUBTASK subtask) result++; while (*result != DONE && *result != ELSE) { - put_byte (*result, subtask); + recode_put_byte (*result, subtask); result++; } } else - put_byte (value, subtask); + recode_put_byte (value, subtask); } SUBTASK_RETURN (subtask); } bool -explode_ucs2_byte (RECODE_SUBTASK subtask) +recode_explode_ucs2_byte (RECODE_SUBTASK subtask) { Hash_table *table = (Hash_table *) subtask->step->step_table; unsigned value; - while (get_ucs2 (&value, subtask)) + while (recode_get_ucs2 (&value, subtask)) { unsigned short lookup = value; unsigned short *result = (unsigned short *) hash_lookup (table, &lookup); @@ -161,27 +163,27 @@ explode_ucs2_byte (RECODE_SUBTASK subtask) result++; while (*result != DONE && *result != ELSE) { - put_byte (*result, subtask); + recode_put_byte (*result, subtask); result++; } } else - put_byte (value, subtask); + recode_put_byte (value, subtask); } SUBTASK_RETURN (subtask); } bool -explode_byte_ucs2 (RECODE_SUBTASK subtask) +recode_explode_byte_ucs2 (RECODE_SUBTASK subtask) { Hash_table *table = (Hash_table *) subtask->step->step_table; unsigned value; - if (value = get_byte (subtask), value != EOF) + if (value = recode_get_byte (subtask), value != (unsigned)EOF) { if (subtask->task->byte_order_mark) - put_ucs2 (BYTE_ORDER_MARK, subtask); + recode_put_ucs2 (BYTE_ORDER_MARK, subtask); while (true) { @@ -193,12 +195,12 @@ explode_byte_ucs2 (RECODE_SUBTASK subtask) { result++; while (*result != DONE && *result != ELSE) - put_ucs2 (*result++, subtask); + recode_put_ucs2 (*result++, subtask); } else - put_ucs2 (value, subtask); + recode_put_ucs2 (value, subtask); - if (value = get_byte (subtask), value == EOF) + if (value = recode_get_byte (subtask), value == (unsigned)EOF) break; } } @@ -207,15 +209,15 @@ explode_byte_ucs2 (RECODE_SUBTASK subtask) } bool -explode_ucs2_ucs2 (RECODE_SUBTASK subtask) +recode_explode_ucs2_ucs2 (RECODE_SUBTASK subtask) { Hash_table *table = (Hash_table *) subtask->step->step_table; unsigned value; - if (get_ucs2 (&value, subtask)) + if (recode_get_ucs2 (&value, subtask)) { if (subtask->task->byte_order_mark) - put_ucs2 (BYTE_ORDER_MARK, subtask); + recode_put_ucs2 (BYTE_ORDER_MARK, subtask); while (true) { @@ -227,12 +229,12 @@ explode_ucs2_ucs2 (RECODE_SUBTASK subtask) { result++; while (*result != DONE && *result != ELSE) - put_ucs2 (*result++, subtask); + recode_put_ucs2 (*result++, subtask); } else - put_ucs2 (value, subtask); + recode_put_ucs2 (value, subtask); - if (!get_ucs2 (&value, subtask)) + if (!recode_get_ucs2 (&value, subtask)) break; } } @@ -285,12 +287,12 @@ static void state_free (void *void_state) { struct state *state = (struct state *) void_state; - struct state *shift = (struct state *) state->shift; + struct state *shift = state->shift; while (shift != NULL) { struct state *next_shift = shift->next; - free (shift); + state_free (shift); shift = next_shift; } free (state); @@ -330,7 +332,7 @@ prepare_shifted_state (struct state *state, unsigned character, state = (struct state *) hash_lookup (table, &lookup); if (!state) { - if (state= (struct state *) malloc (sizeof (struct state)), !state) + if (state = (struct state *) malloc (sizeof (struct state)), !state) return NULL; state->character = character; @@ -373,8 +375,8 @@ find_shifted_state (struct state *state, unsigned character, } bool -init_combine (RECODE_STEP step, - RECODE_CONST_REQUEST request, +recode_init_combine (RECODE_STEP step, + RECODE_CONST_REQUEST request _GL_UNUSED, RECODE_CONST_OPTION_LIST before_options, RECODE_CONST_OPTION_LIST after_options) { @@ -390,6 +392,7 @@ init_combine (RECODE_STEP step, return false; step->step_type = RECODE_COMBINE_STEP; step->step_table = table; + step->step_table_term_routine = (void (*) (void *)) hash_free; if (!data) return true; @@ -450,10 +453,10 @@ backtrack_byte (struct state *state, RECODE_SUBTASK subtask) if (state->result == NOT_A_CHARACTER) { backtrack_byte (state->unshift, subtask); - put_byte (state->character, subtask); + recode_put_byte (state->character, subtask); } else - put_byte (state->result, subtask); + recode_put_byte (state->result, subtask); } static void @@ -462,10 +465,10 @@ backtrack_ucs2 (struct state *state, RECODE_SUBTASK subtask) if (state->result == NOT_A_CHARACTER) { backtrack_ucs2 (state->unshift, subtask); - put_ucs2 (state->character, subtask); + recode_put_ucs2 (state->character, subtask); } else - put_ucs2 (state->result, subtask); + recode_put_ucs2 (state->result, subtask); } /*------------------------------------. @@ -473,12 +476,12 @@ backtrack_ucs2 (struct state *state, RECODE_SUBTASK subtask) `------------------------------------*/ bool -combine_byte_byte (RECODE_SUBTASK subtask) +recode_combine_byte_byte (RECODE_SUBTASK subtask) { struct state *state = NULL; unsigned value; - if (value = get_byte (subtask), value != EOF) + if (value = recode_get_byte (subtask), value != (unsigned)EOF) { while (true) { @@ -488,7 +491,7 @@ combine_byte_byte (RECODE_SUBTASK subtask) if (shift) { state = shift; - if (value = get_byte (subtask), value == EOF) + if (value = recode_get_byte (subtask), value == (unsigned)EOF) break; } else if (state) @@ -496,13 +499,13 @@ combine_byte_byte (RECODE_SUBTASK subtask) if (state->result == NOT_A_CHARACTER) backtrack_byte (state, subtask); else - put_byte (state->result, subtask); + recode_put_byte (state->result, subtask); state = NULL; } else { - put_byte (value, subtask); - if (value = get_byte (subtask), value == EOF) + recode_put_byte (value, subtask); + if (value = recode_get_byte (subtask), value == (unsigned)EOF) break; } } @@ -512,7 +515,7 @@ combine_byte_byte (RECODE_SUBTASK subtask) if (state->result == NOT_A_CHARACTER) backtrack_byte (state, subtask); else - put_byte (state->result, subtask); + recode_put_byte (state->result, subtask); } } @@ -520,12 +523,12 @@ combine_byte_byte (RECODE_SUBTASK subtask) } bool -combine_ucs2_byte (RECODE_SUBTASK subtask) +recode_combine_ucs2_byte (RECODE_SUBTASK subtask) { struct state *state = NULL; unsigned value; - if (get_ucs2 (&value, subtask)) + if (recode_get_ucs2 (&value, subtask)) { while (true) { @@ -535,7 +538,7 @@ combine_ucs2_byte (RECODE_SUBTASK subtask) if (shift) { state = shift; - if (!get_ucs2 (&value, subtask)) + if (!recode_get_ucs2 (&value, subtask)) break; } else if (state) @@ -543,13 +546,13 @@ combine_ucs2_byte (RECODE_SUBTASK subtask) if (state->result == NOT_A_CHARACTER) backtrack_byte (state, subtask); else - put_byte (state->result, subtask); + recode_put_byte (state->result, subtask); state = NULL; } else { - put_byte (value, subtask); - if (!get_ucs2 (&value, subtask)) + recode_put_byte (value, subtask); + if (!recode_get_ucs2 (&value, subtask)) break; } } @@ -559,7 +562,7 @@ combine_ucs2_byte (RECODE_SUBTASK subtask) if (state->result == NOT_A_CHARACTER) backtrack_byte (state, subtask); else - put_byte (state->result, subtask); + recode_put_byte (state->result, subtask); } } @@ -567,16 +570,16 @@ combine_ucs2_byte (RECODE_SUBTASK subtask) } bool -combine_byte_ucs2 (RECODE_SUBTASK subtask) +recode_combine_byte_ucs2 (RECODE_SUBTASK subtask) { unsigned value; - if (value = get_byte (subtask), value != EOF) + if (value = recode_get_byte (subtask), value != (unsigned)EOF) { struct state *state = NULL; if (subtask->task->byte_order_mark) - put_ucs2 (BYTE_ORDER_MARK, subtask); + recode_put_ucs2 (BYTE_ORDER_MARK, subtask); while (true) { @@ -586,7 +589,7 @@ combine_byte_ucs2 (RECODE_SUBTASK subtask) if (shift) { state = shift; - if (value = get_byte (subtask), value == EOF) + if (value = recode_get_byte (subtask), value == (unsigned)EOF) break; } else if (state) @@ -594,13 +597,13 @@ combine_byte_ucs2 (RECODE_SUBTASK subtask) if (state->result == NOT_A_CHARACTER) backtrack_ucs2 (state, subtask); else - put_ucs2 (state->result, subtask); + recode_put_ucs2 (state->result, subtask); state = NULL; } else { - put_ucs2 (value, subtask); - if (value = get_byte (subtask), value == EOF) + recode_put_ucs2 (value, subtask); + if (value = recode_get_byte (subtask), value == (unsigned)EOF) break; } } @@ -610,7 +613,7 @@ combine_byte_ucs2 (RECODE_SUBTASK subtask) if (state->result == NOT_A_CHARACTER) backtrack_ucs2 (state, subtask); else - put_ucs2 (state->result, subtask); + recode_put_ucs2 (state->result, subtask); } } @@ -618,16 +621,16 @@ combine_byte_ucs2 (RECODE_SUBTASK subtask) } bool -combine_ucs2_ucs2 (RECODE_SUBTASK subtask) +recode_combine_ucs2_ucs2 (RECODE_SUBTASK subtask) { unsigned value; - if (get_ucs2 (&value, subtask)) + if (recode_get_ucs2 (&value, subtask)) { struct state *state = NULL; if (subtask->task->byte_order_mark) - put_ucs2 (BYTE_ORDER_MARK, subtask); + recode_put_ucs2 (BYTE_ORDER_MARK, subtask); while (true) { @@ -637,7 +640,7 @@ combine_ucs2_ucs2 (RECODE_SUBTASK subtask) if (shift) { state = shift; - if (!get_ucs2 (&value, subtask)) + if (!recode_get_ucs2 (&value, subtask)) break; } else if (state) @@ -645,13 +648,13 @@ combine_ucs2_ucs2 (RECODE_SUBTASK subtask) if (state->result == NOT_A_CHARACTER) backtrack_ucs2 (state, subtask); else - put_ucs2 (state->result, subtask); + recode_put_ucs2 (state->result, subtask); state = NULL; } else { - put_ucs2 (value, subtask); - if (!get_ucs2 (&value, subtask)) + recode_put_ucs2 (value, subtask); + if (!recode_get_ucs2 (&value, subtask)) break; } } @@ -661,7 +664,7 @@ combine_ucs2_ucs2 (RECODE_SUBTASK subtask) if (state->result == NOT_A_CHARACTER) backtrack_ucs2 (state, subtask); else - put_ucs2 (state->result, subtask); + recode_put_ucs2 (state->result, subtask); } } diff --git a/src/common.h b/src/common.h index 6104512..1625db5 100644 --- a/src/common.h +++ b/src/common.h @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 96, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,127 +14,45 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ -#if HAVE_CONFIG_H -# include -#endif - -#if MSDOS || WIN32 || _WIN32 -# define DOSWIN 1 -# define DOSWIN_OR_OS2 1 -#endif - -#if OS2 -# define DOSWIN_OR_OS2 1 -#endif +#include "cleaner.h" #include #include - -#if STDC_HEADERS -# include -#endif - -#if HAVE_STDBOOL_H -# include -#else -typedef enum {false = 0, true = 1} bool; -#endif - -#if HAVE_STRING_H -# include -#else -# include -# define strchr index -# define strrchr rindex -#endif - +#include +#include +#include #include -#ifndef RETSIGTYPE -# define RETSIGTYPE void -#endif - -#if DIFF_HASH -# ifdef HAVE_LIMITS_H -# include -# endif -# ifndef CHAR_BIT -# define CHAR_BIT 8 -# endif -#endif - -/* Some systems do not define EXIT_*, even with STDC_HEADERS. */ -#ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -#endif -#ifndef EXIT_FAILURE -# define EXIT_FAILURE 1 -#endif -/* The following test is to work around the gross typo in systems like Sony - NEWS-OS Release 4.0C, whereby EXIT_FAILURE is defined to 0, not 1. */ -#if !EXIT_FAILURE -# undef EXIT_FAILURE -# define EXIT_FAILURE 1 -#endif +#include #include "xalloc.h" - -#if HAVE_LOCALE_H -# include -#endif -#if !HAVE_SETLOCALE -# define setlocale(Category, Locale) -#endif +#include "argmatch.h" +#include "localcharset.h" +#include "error.h" +#include "gettext.h" #if ENABLE_NLS -# include # define _(Text) gettext (Text) #else -# define bindtextdomain(Domain, Directory) -# define textdomain(Domain) # define _(Text) Text #endif #define N_(Text) Text -#ifndef PARAMS -# if __STDC__ -# define PARAMS(Args) Args +#ifndef FALLTHROUGH +# if __GNUC__ < 7 +# define FALLTHROUGH ((void) 0) # else -# define PARAMS(Args) () +# define FALLTHROUGH __attribute__ ((__fallthrough__)) # endif #endif -#include - -#include -#ifndef errno -extern int errno; -#endif -#include "error.h" - /* Generate a mask of LENGTH one-bits, right justified in a word. */ -#define MASK(Length) ((unsigned) ~(~0 << (Length))) +#define BIT_MASK(Length) ((1U << (Length)) - 1) /* Indicate if CHARACTER holds into 7 bits. */ #define IS_ASCII(Character) \ - (!((Character) & ~MASK (7))) - -/* This is a bit ridiculous. DJGPP offers a non-working `pipe' function, - for the only sake of being POSIX compliant (I'm told so). So, `pipe' - cannot be autoconfigured without AC_TRY_RUN, which is better avoided. */ -#if !DOSWIN -# if !_AMIGA -# define HAVE_PIPE 1 -# endif -#endif - -/* Debugging the memory allocator. */ - -#if WITH_DMALLOC -# define DMALLOC_FUNC_CHECK -# include -#endif + (!((Character) & ~BIT_MASK (7))) #include "recodext.h" diff --git a/src/decsteps.h b/src/decsteps.h deleted file mode 100644 index 222c034..0000000 --- a/src/decsteps.h +++ /dev/null @@ -1,68 +0,0 @@ -bool module_african PARAMS ((struct recode_outer *)); -bool module_afrtran PARAMS ((struct recode_outer *)); -bool module_applemac PARAMS ((struct recode_outer *)); -bool module_atarist PARAMS ((struct recode_outer *)); -bool module_bangbang PARAMS ((struct recode_outer *)); -bool module_cdcnos PARAMS ((struct recode_outer *)); -bool module_ebcdic PARAMS ((struct recode_outer *)); -bool module_ibmpc PARAMS ((struct recode_outer *)); -bool module_iconqnx PARAMS ((struct recode_outer *)); -bool module_latin1_ascii PARAMS ((struct recode_outer *)); -bool module_java PARAMS ((struct recode_outer *)); -bool module_mule PARAMS ((struct recode_outer *)); -bool module_strips PARAMS ((struct recode_outer *)); -bool module_testdump PARAMS ((struct recode_outer *)); -bool module_ucs PARAMS ((struct recode_outer *)); -bool module_utf16 PARAMS ((struct recode_outer *)); -bool module_utf7 PARAMS ((struct recode_outer *)); -bool module_utf8 PARAMS ((struct recode_outer *)); -bool module_varia PARAMS ((struct recode_outer *)); -bool module_vietnamese PARAMS ((struct recode_outer *)); -bool module_flat PARAMS ((struct recode_outer *)); -bool module_html PARAMS ((struct recode_outer *)); -bool module_latin1_latex PARAMS ((struct recode_outer *)); -bool module_latin1_texte PARAMS ((struct recode_outer *)); -bool module_rfc1345 PARAMS ((struct recode_outer *)); -bool module_texinfo PARAMS ((struct recode_outer *)); -bool module_base64 PARAMS ((struct recode_outer *)); -bool module_dump PARAMS ((struct recode_outer *)); -bool module_endline PARAMS ((struct recode_outer *)); -bool module_permutations PARAMS ((struct recode_outer *)); -bool module_quoted_printable PARAMS ((struct recode_outer *)); -bool module_ascii_latin1 PARAMS ((struct recode_outer *)); -bool module_latex_latin1 PARAMS ((struct recode_outer *)); -bool module_texte_latin1 PARAMS ((struct recode_outer *)); -void delmodule_african PARAMS ((struct recode_outer *)); -void delmodule_afrtran PARAMS ((struct recode_outer *)); -void delmodule_applemac PARAMS ((struct recode_outer *)); -void delmodule_atarist PARAMS ((struct recode_outer *)); -void delmodule_bangbang PARAMS ((struct recode_outer *)); -void delmodule_cdcnos PARAMS ((struct recode_outer *)); -void delmodule_ebcdic PARAMS ((struct recode_outer *)); -void delmodule_ibmpc PARAMS ((struct recode_outer *)); -void delmodule_iconqnx PARAMS ((struct recode_outer *)); -void delmodule_latin1_ascii PARAMS ((struct recode_outer *)); -void delmodule_java PARAMS ((struct recode_outer *)); -void delmodule_mule PARAMS ((struct recode_outer *)); -void delmodule_strips PARAMS ((struct recode_outer *)); -void delmodule_testdump PARAMS ((struct recode_outer *)); -void delmodule_ucs PARAMS ((struct recode_outer *)); -void delmodule_utf16 PARAMS ((struct recode_outer *)); -void delmodule_utf7 PARAMS ((struct recode_outer *)); -void delmodule_utf8 PARAMS ((struct recode_outer *)); -void delmodule_varia PARAMS ((struct recode_outer *)); -void delmodule_vietnamese PARAMS ((struct recode_outer *)); -void delmodule_flat PARAMS ((struct recode_outer *)); -void delmodule_html PARAMS ((struct recode_outer *)); -void delmodule_latin1_latex PARAMS ((struct recode_outer *)); -void delmodule_latin1_texte PARAMS ((struct recode_outer *)); -void delmodule_rfc1345 PARAMS ((struct recode_outer *)); -void delmodule_texinfo PARAMS ((struct recode_outer *)); -void delmodule_base64 PARAMS ((struct recode_outer *)); -void delmodule_dump PARAMS ((struct recode_outer *)); -void delmodule_endline PARAMS ((struct recode_outer *)); -void delmodule_permutations PARAMS ((struct recode_outer *)); -void delmodule_quoted_printable PARAMS ((struct recode_outer *)); -void delmodule_ascii_latin1 PARAMS ((struct recode_outer *)); -void delmodule_latex_latin1 PARAMS ((struct recode_outer *)); -void delmodule_texte_latin1 PARAMS ((struct recode_outer *)); diff --git a/src/dump.c b/src/dump.c index 07b7ac5..f3b3594 100644 --- a/src/dump.c +++ b/src/dump.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1997, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1997-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1997. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" /* Constants for the possible bases. If these are reordered, so should be the initialisers for the three tables which follow. */ @@ -57,53 +59,56 @@ dump (RECODE_SUBTASK subtask, { unsigned per_line = per_line_table[base][size]; unsigned column = 0; - int character = get_byte (subtask); + int character = recode_get_byte (subtask); while (character != EOF) { - unsigned value = MASK (8) & character; + unsigned value = BIT_MASK (8) & character; unsigned byte_count; char buffer[14]; const char *cursor; for (byte_count = 1; byte_count < size; byte_count++) { - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == EOF) break; - value = (value << 8) | (MASK (8) & character); + value = (value << 8) | (BIT_MASK (8) & character); } /* Write delimiters. */ if (column == per_line) { - put_byte (',', subtask); - put_byte ('\n', subtask); + recode_put_byte (',', subtask); + recode_put_byte ('\n', subtask); column = 1; } else if (column == 0) column = 1; else { - put_byte (',', subtask); - put_byte (' ', subtask); + recode_put_byte (',', subtask); + recode_put_byte (' ', subtask); column++; } /* Write formatted value. */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wformat-nonliteral" sprintf (buffer, format_table[base][byte_count], value); +#pragma GCC diagnostic pop for (cursor = buffer; *cursor; cursor++) - put_byte (*cursor, subtask); + recode_put_byte (*cursor, subtask); /* Prepare for next iteration. */ if (character != EOF) - character = get_byte (subtask); + character = recode_get_byte (subtask); } - put_byte ('\n', subtask); + recode_put_byte ('\n', subtask); SUBTASK_RETURN (subtask); } @@ -113,7 +118,7 @@ undump (RECODE_SUBTASK subtask, { unsigned per_line = per_line_table[expected_base][expected_size]; unsigned column = 0; - int character = get_byte (subtask); + int character = recode_get_byte (subtask); bool last_is_short = false; bool comma_on_last = character != EOF; @@ -133,7 +138,7 @@ undump (RECODE_SUBTASK subtask, else RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); - character = get_byte (subtask); + character = recode_get_byte (subtask); } if (character == EOF) { @@ -147,7 +152,7 @@ undump (RECODE_SUBTASK subtask, if (character == '0') { - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == 'x') { @@ -155,7 +160,7 @@ undump (RECODE_SUBTASK subtask, RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); width = 0; base = HEXADECIMAL; - character = get_byte (subtask); + character = recode_get_byte (subtask); } else if (character >= '0' && character <= '9') { @@ -183,9 +188,9 @@ undump (RECODE_SUBTASK subtask, RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); while (character != '\n' && character != EOF) - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == '\n') - character = get_byte (subtask); + character = recode_get_byte (subtask); continue; } @@ -202,7 +207,7 @@ undump (RECODE_SUBTASK subtask, { value = (value << 3) | (character - '0'); width++; - character = get_byte (subtask); + character = recode_get_byte (subtask); } break; @@ -211,7 +216,7 @@ undump (RECODE_SUBTASK subtask, { value = value * 10 + character - '0'; width++; - character = get_byte (subtask); + character = recode_get_byte (subtask); } break; @@ -221,23 +226,26 @@ undump (RECODE_SUBTASK subtask, { value = (value << 4) | (character - '0'); width++; - character = get_byte (subtask); + character = recode_get_byte (subtask); } else if (character >= 'A' && character <= 'F') { value = (value << 4) | (character - 'A' + 10); width++; - character = get_byte (subtask); + character = recode_get_byte (subtask); } else if (character >= 'a' && character <= 'f') { value = (value << 4) | (character - 'a' + 10); width++; - character = get_byte (subtask); + character = recode_get_byte (subtask); } else break; break; + + default: + break; } if (width == 0 || width > width_table[base][expected_size]) @@ -276,13 +284,8 @@ undump (RECODE_SUBTASK subtask, size = expected_size; /* Produce the output bytes. */ - - { - unsigned shift; - - for (shift = size * 8; shift != 0; shift -= 8) - put_byte (MASK (8) & value >> (shift - 8), subtask); - } + for (unsigned shift = size; shift != 0; shift--) + recode_put_byte (BIT_MASK (8) & value >> ((shift * 8) - 8), subtask); } /* Skip separators. */ @@ -291,24 +294,24 @@ undump (RECODE_SUBTASK subtask, if (!comma_on_last) { if (character == '\n') - character = get_byte (subtask); + character = recode_get_byte (subtask); else RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); } else { - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == ' ') { column++; - character = get_byte (subtask); + character = recode_get_byte (subtask); } else if (character == '\n') { if (column + 1!= per_line) RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); column = 0; - character = get_byte (subtask); + character = recode_get_byte (subtask); } } } @@ -349,118 +352,90 @@ TRANSFORM (hex4_data, undump, HEXADECIMAL, 4) bool module_dump (RECODE_OUTER outer) { + return + /* Single bytes. */ - if (!declare_single (outer, "data", "Octal-1", - outer->quality_variable_to_variable, - NULL, data_oct1)) - return false; - if (!declare_single (outer, "data", "Decimal-1", - outer->quality_variable_to_variable, - NULL, data_dec1)) - return false; - if (!declare_single (outer, "data", "Hexadecimal-1", - outer->quality_variable_to_variable, - NULL, data_hex1)) - return false; - if (!declare_single (outer, "Octal-1", "data", - outer->quality_variable_to_variable, - NULL, oct1_data)) - return false; - if (!declare_single (outer, "Decimal-1", "data", - outer->quality_variable_to_variable, - NULL, dec1_data)) - return false; - if (!declare_single (outer, "Hexadecimal-1", "data", - outer->quality_variable_to_variable, - NULL, hex1_data)) - return false; - - if (!declare_alias (outer, "o1", "Octal-1")) - return false; - if (!declare_alias (outer, "d1", "Decimal-1")) - return false; - if (!declare_alias (outer, "x1", "Hexadecimal-1")) - return false; - if (!declare_alias (outer, "o", "Octal-1")) - return false; - if (!declare_alias (outer, "d", "Decimal-1")) - return false; - if (!declare_alias (outer, "x", "Hexadecimal-1")) - return false; + recode_declare_single (outer, "data", "Octal-1", + outer->quality_variable_to_variable, + NULL, data_oct1) + && recode_declare_single (outer, "data", "Decimal-1", + outer->quality_variable_to_variable, + NULL, data_dec1) + && recode_declare_single (outer, "data", "Hexadecimal-1", + outer->quality_variable_to_variable, + NULL, data_hex1) + && recode_declare_single (outer, "Octal-1", "data", + outer->quality_variable_to_variable, + NULL, oct1_data) + && recode_declare_single (outer, "Decimal-1", "data", + outer->quality_variable_to_variable, + NULL, dec1_data) + && recode_declare_single (outer, "Hexadecimal-1", "data", + outer->quality_variable_to_variable, + NULL, hex1_data) + + && recode_declare_alias (outer, "o1", "Octal-1") + && recode_declare_alias (outer, "d1", "Decimal-1") + && recode_declare_alias (outer, "x1", "Hexadecimal-1") + && recode_declare_alias (outer, "o", "Octal-1") + && recode_declare_alias (outer, "d", "Decimal-1") + && recode_declare_alias (outer, "x", "Hexadecimal-1") /* Double bytes. */ - if (!declare_single (outer, "data", "Octal-2", + && recode_declare_single (outer, "data", "Octal-2", outer->quality_variable_to_variable, - NULL, data_oct2)) - return false; - if (!declare_single (outer, "data", "Decimal-2", + NULL, data_oct2) + && recode_declare_single (outer, "data", "Decimal-2", outer->quality_variable_to_variable, - NULL, data_dec2)) - return false; - if (!declare_single (outer, "data", "Hexadecimal-2", + NULL, data_dec2) + && recode_declare_single (outer, "data", "Hexadecimal-2", outer->quality_variable_to_variable, - NULL, data_hex2)) - return false; - if (!declare_single (outer, "Octal-2", "data", + NULL, data_hex2) + && recode_declare_single (outer, "Octal-2", "data", outer->quality_variable_to_variable, - NULL, oct2_data)) - return false; - if (!declare_single (outer, "Decimal-2", "data", + NULL, oct2_data) + && recode_declare_single (outer, "Decimal-2", "data", outer->quality_variable_to_variable, - NULL, dec2_data)) - return false; - if (!declare_single (outer, "Hexadecimal-2", "data", + NULL, dec2_data) + && recode_declare_single (outer, "Hexadecimal-2", "data", outer->quality_variable_to_variable, - NULL, hex2_data)) - return false; + NULL, hex2_data) - if (!declare_alias (outer, "o2", "Octal-2")) - return false; - if (!declare_alias (outer, "d2", "Decimal-2")) - return false; - if (!declare_alias (outer, "x2", "Hexadecimal-2")) - return false; + && recode_declare_alias (outer, "o2", "Octal-2") + && recode_declare_alias (outer, "d2", "Decimal-2") + && recode_declare_alias (outer, "x2", "Hexadecimal-2") /* Quadruple bytes. */ - if (!declare_single (outer, "data", "Octal-4", + && recode_declare_single (outer, "data", "Octal-4", outer->quality_variable_to_variable, - NULL, data_oct4)) - return false; - if (!declare_single (outer, "data", "Decimal-4", + NULL, data_oct4) + && recode_declare_single (outer, "data", "Decimal-4", outer->quality_variable_to_variable, - NULL, data_dec4)) - return false; - if (!declare_single (outer, "data", "Hexadecimal-4", + NULL, data_dec4) + && recode_declare_single (outer, "data", "Hexadecimal-4", outer->quality_variable_to_variable, - NULL, data_hex4)) - return false; - if (!declare_single (outer, "Octal-4", "data", + NULL, data_hex4) + && recode_declare_single (outer, "Octal-4", "data", outer->quality_variable_to_variable, - NULL, oct4_data)) - return false; - if (!declare_single (outer, "Decimal-4", "data", + NULL, oct4_data) + && recode_declare_single (outer, "Decimal-4", "data", outer->quality_variable_to_variable, - NULL, dec4_data)) - return false; - if (!declare_single (outer, "Hexadecimal-4", "data", + NULL, dec4_data) + && recode_declare_single (outer, "Hexadecimal-4", "data", outer->quality_variable_to_variable, - NULL, hex4_data)) - return false; + NULL, hex4_data) - if (!declare_alias (outer, "o4", "Octal-4")) - return false; - if (!declare_alias (outer, "d4", "Decimal-4")) - return false; - if (!declare_alias (outer, "x4", "Hexadecimal-4")) - return false; + && recode_declare_alias (outer, "o4", "Octal-4") + && recode_declare_alias (outer, "d4", "Decimal-4") + && recode_declare_alias (outer, "x4", "Hexadecimal-4") - return true; + ; } void -delmodule_dump (RECODE_OUTER outer) +delmodule_dump (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/ebcdic.c b/src/ebcdic.c index d7c648f..b6892eb 100644 --- a/src/ebcdic.c +++ b/src/ebcdic.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,13 +14,15 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ #define ASCII "ASCII" /* Previously: #define ASCII "ASCII-BS" */ +#include "config.h" #include "common.h" +#include "decsteps.h" static unsigned char const ascii_to_ebcdic[256] = { @@ -137,7 +139,7 @@ static unsigned char const ascii_to_ebcdic_ibm[256] = static bool init_ascii_ebcdic (RECODE_STEP step, - RECODE_CONST_REQUEST request, + RECODE_CONST_REQUEST request _GL_UNUSED, RECODE_CONST_OPTION_LIST before_options, RECODE_CONST_OPTION_LIST after_options) { @@ -159,10 +161,11 @@ init_ebcdic_ascii (RECODE_STEP step, if (before_options || after_options) return false; - if (step->step_table = invert_table (request->outer, ascii_to_ebcdic), + if (step->step_table = recode_invert_table (request->outer, ascii_to_ebcdic), step->step_table) { step->step_type = RECODE_BYTE_TO_BYTE; + step->step_table_term_routine = free; return true; } else @@ -171,7 +174,7 @@ init_ebcdic_ascii (RECODE_STEP step, static bool init_ascii_ebcdic_ccc (RECODE_STEP step, - RECODE_CONST_REQUEST request, + RECODE_CONST_REQUEST request _GL_UNUSED, RECODE_CONST_OPTION_LIST before_options, RECODE_CONST_OPTION_LIST after_options) { @@ -194,10 +197,11 @@ init_ebcdic_ccc_ascii (RECODE_STEP step, if (before_options || after_options) return false; - if (step->step_table = invert_table (request->outer, ascii_to_ebcdic_ccc), + if (step->step_table = recode_invert_table (request->outer, ascii_to_ebcdic_ccc), step->step_table) { step->step_type = RECODE_BYTE_TO_BYTE; + step->step_table_term_routine = free; return true; } else @@ -206,7 +210,7 @@ init_ebcdic_ccc_ascii (RECODE_STEP step, static bool init_ascii_ebcdic_ibm (RECODE_STEP step, - RECODE_CONST_REQUEST request, + RECODE_CONST_REQUEST request _GL_UNUSED, RECODE_CONST_OPTION_LIST before_options, RECODE_CONST_OPTION_LIST after_options) { @@ -228,10 +232,11 @@ init_ebcdic_ibm_ascii (RECODE_STEP step, if (before_options || after_options) return false; - if (step->step_table = invert_table (request->outer, ascii_to_ebcdic_ibm), + if (step->step_table = recode_invert_table (request->outer, ascii_to_ebcdic_ibm), step->step_table) { step->step_type = RECODE_BYTE_TO_BYTE; + step->step_table_term_routine = free; return true; } else @@ -242,27 +247,27 @@ bool module_ebcdic (RECODE_OUTER outer) { return - declare_single (outer, ASCII, "EBCDIC", + recode_declare_single (outer, ASCII, "EBCDIC", outer->quality_byte_reversible, - init_ascii_ebcdic, transform_byte_to_byte) - && declare_single (outer, "EBCDIC", ASCII, + init_ascii_ebcdic, recode_transform_byte_to_byte) + && recode_declare_single (outer, "EBCDIC", ASCII, outer->quality_byte_reversible, - init_ebcdic_ascii, transform_byte_to_byte) - && declare_single (outer, ASCII, "EBCDIC-CCC", + init_ebcdic_ascii, recode_transform_byte_to_byte) + && recode_declare_single (outer, ASCII, "EBCDIC-CCC", outer->quality_byte_reversible, - init_ascii_ebcdic_ccc, transform_byte_to_byte) - && declare_single (outer, "EBCDIC-CCC", ASCII, + init_ascii_ebcdic_ccc, recode_transform_byte_to_byte) + && recode_declare_single (outer, "EBCDIC-CCC", ASCII, outer->quality_byte_reversible, - init_ebcdic_ccc_ascii, transform_byte_to_byte) - && declare_single (outer, ASCII, "EBCDIC-IBM", + init_ebcdic_ccc_ascii, recode_transform_byte_to_byte) + && recode_declare_single (outer, ASCII, "EBCDIC-IBM", outer->quality_byte_reversible, - init_ascii_ebcdic_ibm, transform_byte_to_byte) - && declare_single (outer, "EBCDIC-IBM", ASCII, + init_ascii_ebcdic_ibm, recode_transform_byte_to_byte) + && recode_declare_single (outer, "EBCDIC-IBM", ASCII, outer->quality_byte_reversible, - init_ebcdic_ibm_ascii, transform_byte_to_byte); + init_ebcdic_ibm_ascii, recode_transform_byte_to_byte); } void -delmodule_ebcdic (RECODE_OUTER outer) +delmodule_ebcdic (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/endline.c b/src/endline.c index 5038c29..7fc1a69 100644 --- a/src/endline.c +++ b/src/endline.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" #define CR 13 /* carriage return */ #define LF 10 /* line feed */ @@ -26,27 +28,27 @@ static bool transform_data_cr (RECODE_SUBTASK subtask) { - bool strict = subtask->step->fallback_routine != reversibility; + bool strict = subtask->step->fallback_routine != recode_reversibility; int character; - while (character = get_byte (subtask), character != EOF) + while (character = recode_get_byte (subtask), character != EOF) switch (character) { case '\n': - put_byte (CR, subtask); + recode_put_byte (CR, subtask); break; case CR: if (!strict) { - put_byte ('\n', subtask); + recode_put_byte ('\n', subtask); break; } RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - /* Fall through. */ + FALLTHROUGH; default: - put_byte (character, subtask); + recode_put_byte (character, subtask); } SUBTASK_RETURN (subtask); @@ -55,27 +57,27 @@ transform_data_cr (RECODE_SUBTASK subtask) static bool transform_cr_data (RECODE_SUBTASK subtask) { - bool strict = subtask->step->fallback_routine != reversibility; + bool strict = subtask->step->fallback_routine != recode_reversibility; int character; - while (character = get_byte (subtask), character != EOF) + while (character = recode_get_byte (subtask), character != EOF) switch (character) { case CR: - put_byte ('\n', subtask); + recode_put_byte ('\n', subtask); break; case '\n': if (!strict) { - put_byte (CR, subtask); + recode_put_byte (CR, subtask); break; } RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - /* Fall through. */ + FALLTHROUGH; default: - put_byte (character, subtask); + recode_put_byte (character, subtask); } SUBTASK_RETURN (subtask); @@ -84,31 +86,31 @@ transform_cr_data (RECODE_SUBTASK subtask) static bool transform_data_crlf (RECODE_SUBTASK subtask) { - int character = get_byte (subtask); + int character = recode_get_byte (subtask); while (character != EOF) switch (character) { case '\n': - put_byte (CR, subtask); - put_byte (LF, subtask); - character = get_byte (subtask); + recode_put_byte (CR, subtask); + recode_put_byte (LF, subtask); + character = recode_get_byte (subtask); break; case CR: - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == LF) RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - put_byte (CR, subtask); + recode_put_byte (CR, subtask); break; case OLD_EOF: RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - /* Fall through. */ + FALLTHROUGH; default: - put_byte (character, subtask); - character = get_byte (subtask); + recode_put_byte (character, subtask); + character = recode_get_byte (subtask); } SUBTASK_RETURN (subtask); @@ -117,7 +119,7 @@ transform_data_crlf (RECODE_SUBTASK subtask) static bool transform_crlf_data (RECODE_SUBTASK subtask) { - int character = get_byte (subtask); + int character = recode_get_byte (subtask); while (character != EOF) switch (character) @@ -127,23 +129,23 @@ transform_crlf_data (RECODE_SUBTASK subtask) SUBTASK_RETURN (subtask); case CR: - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == LF) { - put_byte ('\n', subtask); - character = get_byte (subtask); + recode_put_byte ('\n', subtask); + character = recode_get_byte (subtask); } else - put_byte (CR, subtask); + recode_put_byte (CR, subtask); break; case LF: RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - /* Fall through. */ + FALLTHROUGH; default: - put_byte (character, subtask); - character = get_byte (subtask); + recode_put_byte (character, subtask); + character = recode_get_byte (subtask); } SUBTASK_RETURN (subtask); @@ -153,23 +155,23 @@ bool module_endline (RECODE_OUTER outer) { return - declare_single (outer, "data", "CR", + recode_declare_single (outer, "data", "CR", outer->quality_byte_to_byte, NULL, transform_data_cr) - && declare_single (outer, "CR", "data", + && recode_declare_single (outer, "CR", "data", outer->quality_byte_to_byte, NULL, transform_cr_data) - && declare_single (outer, "data", "CR-LF", + && recode_declare_single (outer, "data", "CR-LF", outer->quality_byte_to_variable, NULL, transform_data_crlf) - && declare_single (outer, "CR-LF", "data", + && recode_declare_single (outer, "CR-LF", "data", outer->quality_variable_to_byte, NULL, transform_crlf_data) - && declare_alias (outer, "cl", "CR-LF"); + && recode_declare_alias (outer, "cl", "CR-LF"); } void -delmodule_endline (RECODE_OUTER outer) +delmodule_endline (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/exit.h b/src/exit.h deleted file mode 100644 index 9dbfb7c..0000000 --- a/src/exit.h +++ /dev/null @@ -1,32 +0,0 @@ -/* exit() function. - Copyright (C) 1995, 2001 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _EXIT_H -#define _EXIT_H - -/* Get exit() declaration. */ -#include - -/* Some systems do not define EXIT_*, even with STDC_HEADERS. */ -#ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -#endif -#ifndef EXIT_FAILURE -# define EXIT_FAILURE 1 -#endif - -#endif /* _EXIT_H */ diff --git a/src/exitfail.c b/src/exitfail.c deleted file mode 100644 index 27d38c3..0000000 --- a/src/exitfail.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Failure exit status - - Copyright (C) 2002, 2003 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include "exitfail.h" -#include "exit.h" - -int volatile exit_failure = EXIT_FAILURE; diff --git a/src/exitfail.h b/src/exitfail.h deleted file mode 100644 index e46cf9c..0000000 --- a/src/exitfail.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Failure exit status - - Copyright (C) 2002 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -extern int volatile exit_failure; diff --git a/src/flat.c b/src/flat.c index 5b30fcd..34f8a9a 100644 --- a/src/flat.c +++ b/src/flat.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" static bool transform_ascii_flat (RECODE_SUBTASK subtask) @@ -25,7 +27,7 @@ transform_ascii_flat (RECODE_SUBTASK subtask) int input_char; /* current character */ int temp_char; /* look ahead character */ - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); while (true) switch (input_char) { @@ -34,12 +36,12 @@ transform_ascii_flat (RECODE_SUBTASK subtask) case '\n': case '\t': - put_byte (input_char, subtask); - input_char = get_byte (subtask); + recode_put_byte (input_char, subtask); + input_char = recode_get_byte (subtask); break; case '\b': - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); switch (input_char) { case '\'': @@ -50,11 +52,11 @@ transform_ascii_flat (RECODE_SUBTASK subtask) case ',': case '_': RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); break; default: - put_byte ('\b', subtask); + recode_put_byte ('\b', subtask); } break; @@ -65,15 +67,15 @@ transform_ascii_flat (RECODE_SUBTASK subtask) case '~': case ',': case '_': - temp_char = get_byte (subtask); + temp_char = recode_get_byte (subtask); if (temp_char == '\b') { RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); } else { - put_byte (input_char, subtask); + recode_put_byte (input_char, subtask); input_char = temp_char; } break; @@ -82,25 +84,25 @@ transform_ascii_flat (RECODE_SUBTASK subtask) if (!IS_ASCII (input_char)) { RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - put_byte ('M', subtask); - put_byte ('-', subtask); - input_char &= MASK (7); + recode_put_byte ('M', subtask); + recode_put_byte ('-', subtask); + input_char &= BIT_MASK (7); } - if (input_char < ' ' || input_char == MASK (7)) + if (input_char < ' ' || input_char == BIT_MASK (7)) { RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - put_byte ('^', subtask); + recode_put_byte ('^', subtask); input_char ^= (1 << 6); } - put_byte (input_char, subtask); - input_char = get_byte (subtask); + recode_put_byte (input_char, subtask); + input_char = recode_get_byte (subtask); } } bool module_flat (RECODE_OUTER outer) { - if (!declare_single (outer, "ASCII-BS", "flat", + if (!recode_declare_single (outer, "ASCII-BS", "flat", outer->quality_variable_to_variable, NULL, transform_ascii_flat)) return false; @@ -109,6 +111,6 @@ module_flat (RECODE_OUTER outer) } void -delmodule_flat (RECODE_OUTER outer) +delmodule_flat (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/fr-charname.c b/src/fr-charname.c index 4e473bc..51d8166 100644 --- a/src/fr-charname.c +++ b/src/fr-charname.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1993, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1993-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1993. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,9 +14,10 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" #include "fr-charname.h" @@ -26,7 +27,7 @@ `--------------------------------------------------------------------*/ const char * -ucs2_to_french_charname (int ucs2) +recode_ucs2_to_french_charname (int ucs2) { static char result[MAX_CHARNAME_LENGTH + 1]; int first; @@ -83,6 +84,7 @@ ucs2_to_french_charname (int ucs2) /* Return the result. */ - *out = NUL; + if (out) + *out = NUL; return result; } diff --git a/src/fr-charname.h b/src/fr-charname.h deleted file mode 100644 index c0c45ea..0000000 --- a/src/fr-charname.h +++ /dev/null @@ -1,15536 +0,0 @@ -/* DO NOT MODIFY THIS FILE! It was generated by `recode/tables.py'. */ - -/* Conversion of files between different charsets and surfaces. - Copyright © 1999 Free Software Foundation, Inc. - Contributed by François Pinard , 1993, 1997. - - This 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. - - 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the Recode 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. */ - -#define NUMBER_OF_SINGLES 236 -#define MAX_CHARNAME_LENGTH 90 -#define NUMBER_OF_CHARNAMES 10616 - -static const char *const word[4882] = - { - "lettre", /* \001 */ - "syllabe", /* \002 */ - "yi", /* \003 */ - "arabe", /* \004 */ - "minuscule", /* \005 */ - "latine", /* \006 */ - "de", /* \007 */ - "majuscule", /* \010 */ - "canadienne", /* \011 */ - "ligature", /* \012 */ - "en", /* \013 */ - "hang�l", /* \014 */ - "vers", /* \015 */ - "id�ogramme", /* \016 */ - "cl�", /* \017 */ - "et", /* \020 */ - "accent", /* \021 */ - "symbole", /* \022 */ - "�thiopienne", /* \023 */ - "chiffre", /* \024 */ - "compatibilit�", /* \025 */ - "diacritique", /* \026 */ - "grecque", /* \027 */ - "braille", /* \030 */ - "combinaison", /* \031 */ - "final", /* \032 */ - "la", /* \033 */ - "cyrillique", /* \034 */ - "carr�", /* \035 */ - "isol�", /* \036 */ - "point", /* \037 */ - "chef", /* \040 */ - "chinoise", /* \041 */ - "voyelle", /* \042 */ - "souscrit", /* \043 */ - "�", /* \044 */ - "katakana", /* \045 */ - "dispos�", /* \046 */ - "m�m", /* \047 */ - "le", /* \050 */ - "cercl�", /* \051 */ - "gauche", /* \052 */ - "droite", /* \053 */ - "porteur", /* \054 */ - "initial", /* \055 */ - "ya'", /* \056 */ - "signe", /* \057 */ - "esprit", /* \060 */ - "fl�che", /* \061 */ - "aigu", /* \062 */ - "a", /* \063 */ - "o", /* \064 */ - "filet", /* \065 */ - "mongole", /* \066 */ - "grave", /* \067 */ - "double", /* \070 */ - "demi-chasse", /* \071 */ - "circonflexe", /* \072 */ - "pleine", /* \073 */ - "cjc", /* \074 */ - "entre", /* \075 */ - "id�ographique", /* \076 */ - "parenth�ses", /* \077 */ - "alif", /* \100 */ - "bas", /* \101 */ - "haut", /* \102 */ - "i", /* \103 */ - "iota", /* \104 */ - "chasse", /* \105 */ - "d�van�gar�", /* \106 */ - "tib�taine", /* \107 */ - "un", /* \110 */ - "ha'", /* \111 */ - "cri", /* \112 */ - "ou", /* \113 */ - "des", /* \114 */ - "dj�m", /* \115 */ - "fin", /* \116 */ - "tch'�song", /* \117 */ - "tib�tain", /* \120 */ - "bengali", /* \121 */ - "crochet", /* \122 */ - "plaines", /* \123 */ - "hiragana", /* \124 */ - "arm�nienne", /* \125 */ - "ch�rokie", /* \126 */ - "deux", /* \127 */ - "e", /* \130 */ - "m�dial", /* \131 */ - "u", /* \132 */ - "dj�ngsong", /* \133 */ - "rude", /* \134 */ - "runique", /* \135 */ - "trois", /* \136 */ - "h�bra�que", /* \137 */ - "kannara", /* \140 */ - "t�lougou", /* \141 */ - "oriya", /* \142 */ - "doux", /* \143 */ - "goudjarati", /* \144 */ - "malayalam", /* \145 */ - "g�orgienne", /* \146 */ - "blanc", /* \147 */ - "gourmoukh�", /* \150 */ - "gras", /* \151 */ - "singhalaise", /* \152 */ - "tha�e", /* \153 */ - "fonction", /* \154 */ - "apl", /* \155 */ - "hamza", /* \156 */ - "khm�re", /* \157 */ - "maksoura", /* \160 */ - "syriaque", /* \161 */ - "t�l�graphique", /* \162 */ - "djoungsong", /* \163 */ - "avec", /* \164 */ - "tr�ma", /* \165 */ - "bopomofo", /* \166 */ - "r", /* \167 */ - "kha'", /* \170 */ - "tamoul", /* \171 */ - "tilde", /* \172 */ - "�gal", /* \173 */ - "macron", /* \174 */ - "petit", /* \175 */ - "birmane", /* \176 */ - "cercl�e", /* \177 */ - "modificative", /* \200 */ - "om�ga", /* \201 */ - "vertical", /* \202 */ - "alpha", /* \203 */ - "marque", /* \204 */ - "vocalique", /* \205 */ - "lam", /* \206 */ - "noir", /* \207 */ - "nombre", /* \210 */ - "l", /* \211 */ - "du", /* \212 */ - "br�ve", /* \213 */ - "plus", /* \214 */ - "no�n", /* \215 */ - "th�na", /* \216 */ - "�", /* \217 */ - "quatre", /* \220 */ - "droit", /* \221 */ - "h�breu", /* \222 */ - "s", /* \223 */ - "�ta", /* \224 */ - "caron", /* \225 */ - "huit", /* \226 */ - "laotienne", /* \227 */ - "cinq", /* \230 */ - "h�'", /* \231 */ - "barr�", /* \232 */ - "t�'", /* \233 */ - "ali", /* \234 */ - "gali", /* \235 */ - "subjointe", /* \236 */ - "h", /* \237 */ - "ka", /* \240 */ - "n", /* \241 */ - "horizontal", /* \242 */ - "ligne", /* \243 */ - "ni", /* \244 */ - "s�n", /* \245 */ - "barre", /* \246 */ - "ch�n", /* \247 */ - "mkhedrouli", /* \250 */ - "points", /* \251 */ - "sept", /* \252 */ - "assomtavrouli", /* \253 */ - "kaf", /* \254 */ - "six", /* \255 */ - "verticale", /* \256 */ - "neuf", /* \257 */ - "romain", /* \260 */ - "t", /* \261 */ - "upsilon", /* \262 */ - "forme", /* \263 */ - "noire", /* \264 */ - "y", /* \265 */ - "g", /* \266 */ - "khmer", /* \267 */ - "sans", /* \270 */ - "z", /* \271 */ - "cercle", /* \272 */ - "coin", /* \273 */ - "c�dille", /* \274 */ - "d", /* \275 */ - "m", /* \276 */ - "ma", /* \277 */ - "n�gatif", /* \300 */ - "souscrite", /* \301 */ - "rond", /* \302 */ - "jour", /* \303 */ - "vignette", /* \304 */ - "ya", /* \305 */ - "�", /* \306 */ - "a�", /* \307 */ - "d'ogam", /* \310 */ - "ta", /* \311 */ - "todo", /* \312 */ - "c", /* \313 */ - "ha", /* \314 */ - "�", /* \315 */ - "blanche", /* \316 */ - "grec", /* \317 */ - "inf�rieur", /* \320 */ - "pointant", /* \321 */ - "ra", /* \322 */ - "�", /* \323 */ - "ba'", /* \324 */ - "culbut�", /* \325 */ - "epsilon", /* \326 */ - "pa", /* \327 */ - "virgule", /* \330 */ - "z�ro", /* \331 */ - "�thiopien", /* \332 */ - "aou", /* \333 */ - "b", /* \334 */ - "caract�re", /* \335 */ - "cornu", /* \336 */ - "crosse", /* \337 */ - "grand", /* \340 */ - "heure", /* \341 */ - "o�", /* \342 */ - "ra'", /* \343 */ - "sup�rieur", /* \344 */ - "ton", /* \345 */ - "triangle", /* \346 */ - "w", /* \347 */ - "dad", /* \350 */ - "fa'", /* \351 */ - "k", /* \352 */ - "moiti�", /* \353 */ - "na", /* \354 */ - "simple", /* \355\001 */ - "da", /* \355\002 */ - "pointe", /* \355\003 */ - "sa", /* \355\004 */ - "sad", /* \355\005 */ - "s�b�", /* \355\006 */ - "tiret", /* \355\007 */ - "c-simplifi�", /* \355\010 */ - "dagu�ch", /* \355\011 */ - "mongol", /* \355\012 */ - "r�fl�chi", /* \355\013 */ - "taquet", /* \355\014 */ - "�toile", /* \355\015 */ - "bloc", /* \355\016 */ - "ga", /* \355\017 */ - "moins", /* \355\020 */ - "p", /* \355\021 */ - "pr�sentation", /* \355\022 */ - "que", /* \355\023 */ - "tcha", /* \355\024 */ - "v", /* \355\025 */ - "x", /* \355\026 */ - "'a�n", /* \355\027 */ - "arabe-hindi", /* \355\030 */ - "birman", /* \355\031 */ - "cha", /* \355\032 */ - "croix", /* \355\033 */ - "dix", /* \355\034 */ - "empattement", /* \355\035 */ - "omicron", /* \355\036 */ - "qaf", /* \355\037 */ - "yo", /* \355\040 */ - "d'annotation", /* \355\041 */ - "laotien", /* \355\042 */ - "non", /* \355\043 */ - "oblique", /* \355\044 */ - "s�parateur", /* \355\045 */ - "ta'", /* \355\046 */ - "tonos", /* \355\047 */ - "wa", /* \355\050 */ - "waw", /* \355\051 */ - "ba", /* \355\052 */ - "j", /* \355\053 */ - "kha", /* \355\054 */ - "ogonek", /* \355\055 */ - "pas", /* \355\056 */ - "pour", /* \355\057 */ - "th�'", /* \355\060 */ - "dialytika", /* \355\061 */ - "f", /* \355\062 */ - "gha�n", /* \355\063 */ - "hame�on", /* \355\064 */ - "mandchou", /* \355\065 */ - "nga", /* \355\066 */ - "pied-noir", /* \355\067 */ - "so", /* \355\070 */ - "tch�", /* \355\071 */ - "tha", /* \355\072 */ - "espace", /* \355\073 */ - "exposant", /* \355\074 */ - "quadrat", /* \355\075 */ - "renvers�e", /* \355\076 */ - "tho", /* \355\077 */ - "tta", /* \355\100 */ - "za", /* \355\101 */ - "cramponn�", /* \355\102 */ - "deux-points", /* \355\103 */ - "dja", /* \355\104 */ - "fraction", /* \355\105 */ - "gha", /* \355\106 */ - "ho", /* \355\107 */ - "indice", /* \355\110 */ - "mu", /* \355\111 */ - "naskapi", /* \355\112 */ - "no", /* \355\113 */ - "rr", /* \355\114 */ - "ast�risque", /* \355\115 */ - "branches", /* \355\116 */ - "copte", /* \355\117 */ - "dda", /* \355\120 */ - "grasse", /* \355\121 */ - "gros", /* \355\122 */ - "parenth�se", /* \355\123 */ - "pha", /* \355\124 */ - "sara", /* \355\125 */ - "trait", /* \355\126 */ - "ttha", /* \355\127 */ - "�quivalent", /* \355\130 */ - "bris�", /* \355\131 */ - "contour", /* \355\132 */ - "demi", /* \355\133 */ - "digramme", /* \355\134 */ - "guillemet", /* \355\135 */ - "mo", /* \355\136 */ - "m�dian", /* \355\137 */ - "ne", /* \355\140 */ - "nna", /* \355\141 */ - "petite", /* \355\142 */ - "renvers�", /* \355\143 */ - "ronde", /* \355\144 */ - "sayissi", /* \355\145 */ - "sur", /* \355\146 */ - "tha�", /* \355\147 */ - "wo", /* \355\150 */ - "you", /* \355\151 */ - "�a", /* \355\152 */ - "bha", /* \355\153 */ - "chadda", /* \355\154 */ - "commande", /* \355\155 */ - "cri-y", /* \355\156 */ - "d'�checs", /* \355\157 */ - "ddha", /* \355\160 */ - "description", /* \355\161 */ - "dha", /* \355\162 */ - "finale", /* \355\163 */ - "hangzhou", /* \355\164 */ - "harpon", /* \355\165 */ - "jeu", /* \355\166 */ - "ko", /* \355\167 */ - "lo", /* \355\170 */ - "op�rateur", /* \355\171 */ - "p�", /* \355\172 */ - "q", /* \355\173 */ - "ro", /* \355\174 */ - "son", /* \355\175 */ - "to", /* \355\176 */ - "tsa", /* \355\177 */ - "�", /* \355\200 */ - "�a", /* \355\201 */ - "arc", /* \355\202 */ - "coeur", /* \355\203 */ - "j�", /* \355\204 */ - "kirghize", /* \355\205 */ - "ll", /* \355\206 */ - "mgo", /* \355\207 */ - "oe", /* \355\210 */ - "roc", /* \355\211 */ - "rra", /* \355\212 */ - "rtags", /* \355\213 */ - "r�troflexe", /* \355\214 */ - "sens", /* \355\215 */ - "soulign�", /* \355\216 */ - "ti", /* \355\217 */ - "triple", /* \355\220 */ - "alpapr�na", /* \355\221 */ - "anousv�ra", /* \355\222 */ - "bref", /* \355\223 */ - "coup", /* \355\224 */ - "fa", /* \355\225 */ - "glotte", /* \355\226 */ - "mah�pr�na", /* \355\227 */ - "mi", /* \355\230 */ - "normal", /* \355\231 */ - "par", /* \355\232 */ - "pi", /* \355\233 */ - "ponctuation", /* \355\234 */ - "prime", /* \355\235 */ - "quartier", /* \355\236 */ - "souscrits", /* \355\237 */ - "tchha", /* \355\240 */ - "va", /* \355\241 */ - "vir�ma", /* \355\242 */ - "visarga", /* \355\243 */ - "�tendu", /* \355\244 */ - "cent", /* \355\245 */ - "comme", /* \355\246 */ - "dans", /* \355\247 */ - "dent", /* \355\250 */ - "djha", /* \355\251 */ - "do", /* \355\252 */ - "empennage", /* \355\253 */ - "gu�", /* \355\254 */ - "hi", /* \355\255 */ - "huiti�mes", /* \355\256 */ - "int�grale", /* \355\257 */ - "i�", /* \355\260 */ - "kho", /* \355\261 */ - "large", /* \355\262 */ - "lla", /* \355\263 */ - "long", /* \355\264 */ - "longueur", /* \355\265 */ - "losange", /* \355\266 */ - "mais", /* \355\267 */ - "ma�", /* \355\270 */ - "mille", /* \355\271 */ - "mon�taire", /* \355\272 */ - "po", /* \355\273 */ - "shad", /* \355\274 */ - "si", /* \355\275 */ - "tchi�tch", /* \355\276 */ - "tcho", /* \355\277 */ - "tu", /* \355\300 */ - "t�", /* \355\301 */ - "yig", /* \355\302 */ - "y�", /* \355\303 */ - "abkhaze", /* \355\304 */ - "ae", /* \355\305 */ - "apostrophe", /* \355\306 */ - "au", /* \355\307 */ - "chine", /* \355\310 */ - "cri-th", /* \355\311 */ - "d'exclamation", /* \355\312 */ - "d'interrogation", /* \355\313 */ - "d'un", /* \355\314 */ - "d'union", /* \355\315 */ - "dal", /* \355\316 */ - "douze", /* \355\317 */ - "d�but", /* \355\320 */ - "ej", /* \355\321 */ - "gaf", /* \355\322 */ - "glottal", /* \355\323 */ - "grosse", /* \355\324 */ - "hi�h", /* \355\325 */ - "index", /* \355\326 */ - "i�ng", /* \355\327 */ - "k'i�k'", /* \355\330 */ - "ke", /* \355\331 */ - "ki", /* \355\332 */ - "kiyok", /* \355\333 */ - "me", /* \355\334 */ - "mi�m", /* \355\335 */ - "ng", /* \355\336 */ - "ni�n", /* \355\337 */ - "nou", /* \355\340 */ - "nunavik", /* \355\341 */ - "ombr�e", /* \355\342 */ - "ouvert", /* \355\343 */ - "p'i�p'", /* \355\344 */ - "pi�p", /* \355\345 */ - "rdel", /* \355\346 */ - "ri", /* \355\347 */ - "ri�l", /* \355\350 */ - "si�s", /* \355\351 */ - "sous-groupe", /* \355\352 */ - "sud-est", /* \355\353 */ - "sup�rieure", /* \355\354 */ - "t'i�t'", /* \355\355 */ - "tch'i�tch'", /* \355\356 */ - "tchandra", /* \355\357 */ - "tik�t", /* \355\360 */ - "trigramme", /* \355\361 */ - "wi", /* \355\362 */ - "yousse", /* \355\363 */ - "yu", /* \355\364 */ - "zha", /* \355\365 */ - "zza'", /* \355\366 */ - "z�", /* \355\367 */ - "�caille", /* \355\370 */ - "ajour�", /* \355\371 */ - "alef", /* \355\372 */ - "ang", /* \355\373 */ - "angle", /* \355\374 */ - "autour", /* \355\375 */ - "barr�e", /* \355\376 */ - "bo", /* \355\377 */ - "bois", /* \356\001 */ - "boucl�", /* \356\002 */ - "bu", /* \356\003 */ - "cadratin", /* \356\004 */ - "demi-cercle", /* \356\005 */ - "diga", /* \356\006 */ - "eng", /* \356\007 */ - "enne", /* \356\010 */ - "eu", /* \356\011 */ - "famille", /* \356\012 */ - "fantaisie", /* \356\013 */ - "fo", /* \356\014 */ - "g�l", /* \356\015 */ - "h�", /* \356\016 */ - "image", /* \356\017 */ - "inf�rieure", /* \356\020 */ - "ku", /* \356\021 */ - "madda", /* \356\022 */ - "nord-est", /* \356\023 */ - "nord-ouest", /* \356\024 */ - "nu", /* \356\025 */ - "ombre", /* \356\026 */ - "onze", /* \356\027 */ - "par-dessus", /* \356\030 */ - "partir", /* \356\031 */ - "pharyngal", /* \356\032 */ - "pho", /* \356\033 */ - "point�", /* \356\034 */ - "re", /* \356\035 */ - "rh�", /* \356\036 */ - "ru", /* \356\037 */ - "r�", /* \356\040 */ - "schwa", /* \356\041 */ - "se", /* \356\042 */ - "seize", /* \356\043 */ - "soleil", /* \356\044 */ - "transmission", /* \356\045 */ - "tsheg", /* \356\046 */ - "ts�", /* \356\047 */ - "vingt", /* \356\050 */ - "accolade", /* \356\051 */ - "arm�nien", /* \356\052 */ - "carr�e", /* \356\053 */ - "cho", /* \356\054 */ - "contient", /* \356\055 */ - "couvrante", /* \356\056 */ - "d'insertion", /* \356\057 */ - "delta", /* \356\060 */ - "demi-rond", /* \356\061 */ - "di", /* \356\062 */ - "dj�", /* \356\063 */ - "dz", /* \356\064 */ - "dza", /* \356\065 */ - "eau", /* \356\066 */ - "farsi", /* \356\067 */ - "gamma", /* \356\070 */ - "go", /* \356\071 */ - "he", /* \356\072 */ - "invers�e", /* \356\073 */ - "iotacisme", /* \356\074 */ - "katakana-hiragana", /* \356\075 */ - "lenticulaire", /* \356\076 */ - "li", /* \356\077 */ - "logique", /* \356\100 */ - "lune", /* \356\101 */ - "m�n", /* \356\102 */ - "num�rateur", /* \356\103 */ - "point-virgule", /* \356\104 */ - "positif", /* \356\105 */ - "produit", /* \356\106 */ - "puce", /* \356\107 */ - "quadrant", /* \356\110 */ - "rectangle", /* \356\111 */ - "r�p�tition", /* \356\112 */ - "simplifi�", /* \356\113 */ - "singhalais", /* \356\114 */ - "soung", /* \356\115 */ - "sous-ensemble", /* \356\116 */ - "suit", /* \356\117 */ - "sur-ensemble", /* \356\120 */ - "s�", /* \356\121 */ - "tam", /* \356\122 */ - "tchandrabindou", /* \356\123 */ - "tchim'", /* \356\124 */ - "te", /* \356\125 */ - "terre", /* \356\126 */ - "thi", /* \356\127 */ - "th�", /* \356\130 */ - "triangulaire", /* \356\131 */ - "vo", /* \356\132 */ - "vrakhy", /* \356\133 */ - "zay", /* \356\134 */ - "zo", /* \356\135 */ - "�", /* \356\136 */ - "ajour�e", /* \356\137 */ - "approximativement", /* \356\140 */ - "arr�t", /* \356\141 */ - "be", /* \356\142 */ - "bea'", /* \356\143 */ - "beha'", /* \356\144 */ - "bourre", /* \356\145 */ - "bulletin", /* \356\146 */ - "b�", /* \356\147 */ - "can", /* \356\150 */ - "che", /* \356\151 */ - "clic", /* \356\152 */ - "couch�", /* \356\153 */ - "culbut�e", /* \356\154 */ - "d'appareil", /* \356\155 */ - "d'it�ration", /* \356\156 */ - "damma", /* \356\157 */ - "dix-huit", /* \356\160 */ - "dix-neuf", /* \356\161 */ - "dix-sept", /* \356\162 */ - "doatchachmi", /* \356\163 */ - "dya'", /* \356\164 */ - "dz�", /* \356\165 */ - "d�", /* \356\166 */ - "ech", /* \356\167 */ - "encadr�", /* \356\170 */ - "englobant", /* \356\171 */ - "esclave", /* \356\172 */ - "esse", /* \356\173 */ - "est", /* \356\174 */ - "fatha", /* \356\175 */ - "fathatan", /* \356\176 */ - "feu", /* \356\177 */ - "fi", /* \356\200 */ - "fixe", /* \356\201 */ - "f�", /* \356\202 */ - "ge", /* \356\203 */ - "gi", /* \356\204 */ - "gothique", /* \356\205 */ - "gter", /* \356\206 */ - "hachur�", /* \356\207 */ - "huiti�me", /* \356\210 */ - "h�", /* \356\211 */ - "infirme", /* \356\212 */ - "jusqu'�", /* \356\213 */ - "kana", /* \356\214 */ - "kasra", /* \356\215 */ - "keha'", /* \356\216 */ - "kombouva", /* \356\217 */ - "k�", /* \356\220 */ - "longue", /* \356\221 */ - "l�", /* \356\222 */ - "manger", /* \356\223 */ - "mou", /* \356\224 */ - "ngo", /* \356\225 */ - "ngoa'", /* \356\226 */ - "noukta", /* \356\227 */ - "nya'", /* \356\230 */ - "n�", /* \356\231 */ - "ondul�", /* \356\232 */ - "original", /* \356\233 */ - "oua", /* \356\234 */ - "ou�", /* \356\235 */ - "ou�gour", /* \356\236 */ - "pa'", /* \356\237 */ - "peha'", /* \356\240 */ - "phi", /* \356\241 */ - "pied", /* \356\242 */ - "plume", /* \356\243 */ - "pr�c�de", /* \356\244 */ - "qa", /* \356\245 */ - "quatorze", /* \356\246 */ - "queue", /* \356\247 */ - "quinze", /* \356\250 */ - "rep�re", /* \356\251 */ - "ssa", /* \356\252 */ - "su", /* \356\253 */ - "s�lecteur", /* \356\254 */ - "tcheha'", /* \356\255 */ - "teha'", /* \356\256 */ - "th", /* \356\257 */ - "treize", /* \356\260 */ - "tta'", /* \356\261 */ - "tteha'", /* \356\262 */ - "t�", /* \356\263 */ - "va'", /* \356\264 */ - "visage", /* \356\265 */ - "vois�", /* \356\266 */ - "vote", /* \356\267 */ - "we", /* \356\270 */ - "w�", /* \356\271 */ - "yod", /* \356\272 */ - "y�", /* \356\273 */ - "ze", /* \356\274 */ - "zi", /* \356\275 */ - "�lev�", /* \356\276 */ - "am", /* \356\277 */ - "anglais", /* \356\300 */ - "angulaire", /* \356\301 */ - "barbe", /* \356\302 */ - "barri", /* \356\303 */ - "bi", /* \356\304 */ - "b�ta", /* \356\305 */ - "cantilation", /* \356\306 */ - "centre", /* \356\307 */ - "chi", /* \356\310 */ - "ch�", /* \356\311 */ - "ciseaux", /* \356\312 */ - "code", /* \356\313 */ - "courte", /* \356\314 */ - "couvrant", /* \356\315 */ - "cube", /* \356\316 */ - "dal�t", /* \356\317 */ - "dch�", /* \356\320 */ - "dhal", /* \356\321 */ - "dispositif", /* \356\322 */ - "dkar", /* \356\323 */ - "dur", /* \356\324 */ - "elle", /* \356\325 */ - "emme", /* \356\326 */ - "erre", /* \356\327 */ - "fl�ches", /* \356\330 */ - "gua'", /* \356\331 */ - "guillemet-apostrophe", /* \356\332 */ - "guillemet-virgule", /* \356\333 */ - "herbe", /* \356\334 */ - "horizontale", /* \356\335 */ - "hu", /* \356\336 */ - "ijitsa", /* \356\337 */ - "j-simplifi�", /* \356\340 */ - "khi", /* \356\341 */ - "kh�", /* \356\342 */ - "km", /* \356\343 */ - "koppa", /* \356\344 */ - "l'avant", /* \356\345 */ - "lambda", /* \356\346 */ - "lam�d", /* \356\347 */ - "larm�", /* \356\350 */ - "latin", /* \356\351 */ - "lou", /* \356\352 */ - "main", /* \356\353 */ - "marbouta", /* \356\354 */ - "multiplication", /* \356\355 */ - "m�", /* \356\356 */ - "m�m", /* \356\357 */ - "nag", /* \356\360 */ - "neige", /* \356\361 */ - "noeud", /* \356\362 */ - "nor", /* \356\363 */ - "n�gation", /* \356\364 */ - "ohm", /* \356\365 */ - "om", /* \356\366 */ - "ondul�e", /* \356\367 */ - "oui", /* \356\370 */ - "ouo", /* \356\371 */ - "page", /* \356\372 */ - "paire", /* \356\373 */ - "patah", /* \356\374 */ - "pe", /* \356\375 */ - "pench�", /* \356\376 */ - "perlu�te", /* \356\377 */ - "pique", /* \357\001 */ - "pi�p-si�s", /* \357\002 */ - "pointes", /* \357\003 */ - "pointeur", /* \357\004 */ - "pointill�", /* \357\005 */ - "pointill�e", /* \357\006 */ - "pointill�s", /* \357\007 */ - "potence", /* \357\010 */ - "presque", /* \357\011 */ - "priv�", /* \357\012 */ - "prolong�", /* \357\013 */ - "promenade", /* \357\014 */ - "psi", /* \357\015 */ - "quadruple", /* \357\016 */ - "quart", /* \357\017 */ - "rad", /* \357\020 */ - "rafe", /* \357\021 */ - "remplacement", /* \357\022 */ - "ri�l-hi�h", /* \357\023 */ - "rno�n", /* \357\024 */ - "r�ception", /* \357\025 */ - "sa�aka", /* \357\026 */ - "semi-direct", /* \357\027 */ - "sigma", /* \357\030 */ - "sixi�me", /* \357\031 */ - "socle", /* \357\032 */ - "sortie", /* \357\033 */ - "sou", /* \357\034 */ - "soud�", /* \357\035 */ - "soukoun", /* \357\036 */ - "sous", /* \357\037 */ - "ssangkiyok", /* \357\040 */ - "ssangsi�s", /* \357\041 */ - "sud", /* \357\042 */ - "sud-ouest", /* \357\043 */ - "syriaques", /* \357\044 */ - "tabulation", /* \357\045 */ - "texte", /* \357\046 */ - "tortue", /* \357\047 */ - "t�l�phone", /* \357\050 */ - "unique", /* \357\051 */ - "variation", /* \357\052 */ - "ve", /* \357\053 */ - "v�", /* \357\054 */ - "xi", /* \357\055 */ - "yidich", /* \357\056 */ - "y�tch", /* \357\057 */ - "y�rou", /* \357\060 */ - "zone", /* \357\061 */ - "�re", /* \357\062 */ - "�o", /* \357\063 */ - "an", /* \357\064 */ - "arrobe", /* \357\065 */ - "astrologique", /* \357\066 */ - "avagraha", /* \357\067 */ - "bayanna", /* \357\070 */ - "boucle", /* \357\071 */ - "b�t", /* \357\072 */ - "ca", /* \357\073 */ - "centime", /* \357\074 */ - "ch", /* \357\075 */ - "cha�ne", /* \357\076 */ - "chin", /* \357\077 */ - "ciel", /* \357\100 */ - "cinquante", /* \357\101 */ - "cinqui�me", /* \357\102 */ - "cinqui�mes", /* \357\103 */ - "cm", /* \357\104 */ - "constante", /* \357\105 */ - "corne", /* \357\106 */ - "couteau", /* \357\107 */ - "crayon", /* \357\110 */ - "cri-n", /* \357\111 */ - "croisillon", /* \357\112 */ - "cuir", /* \357\113 */ - "d'abr�viation", /* \357\114 */ - "d'accentuation", /* \357\115 */ - "d'amorce", /* \357\116 */ - "d'en", /* \357\117 */ - "d'une", /* \357\120 */ - "dahal", /* \357\121 */ - "dammatan", /* \357\122 */ - "dantadja", /* \357\123 */ - "dayanna", /* \357\124 */ - "ddahal", /* \357\125 */ - "ddal", /* \357\126 */ - "ddayanna", /* \357\127 */ - "degr�", /* \357\130 */ - "demi-cadratin", /* \357\131 */ - "dessus", /* \357\132 */ - "diagonal", /* \357\133 */ - "diff�rent", /* \357\134 */ - "division", /* \357\135 */ - "djayanna", /* \357\136 */ - "dji", /* \357\137 */ - "djou", /* \357\140 */ - "dollar", /* \357\141 */ - "dragon", /* \357\142 */ - "droite-�-gauche", /* \357\143 */ - "dul", /* \357\144 */ - "encoch�e", /* \357\145 */ - "ferm�", /* \357\146 */ - "flocon", /* \357\147 */ - "floral", /* \357\150 */ - "fou", /* \357\151 */ - "gauche-�-droite", /* \357\152 */ - "gayanna", /* \357\153 */ - "gayanoukitta", /* \357\154 */ - "gou", /* \357\155 */ - "groin", /* \357\156 */ - "gsum", /* \357\157 */ - "gu", /* \357\160 */ - "haa", /* \357\161 */ - "hampe", /* \357\162 */ - "hamp�", /* \357\163 */ - "harmonie", /* \357\164 */ - "hataf", /* \357\165 */ - "haut-bas", /* \357\166 */ - "hioun", /* \357\167 */ - "h�", /* \357\170 */ - "h�racl�en", /* \357\171 */ - "h�", /* \357\172 */ - "h�", /* \357\173 */ - "il", /* \357\174 */ - "in", /* \357\175 */ - "indicateur", /* \357\176 */ - "ini", /* \357\177 */ - "inscrit", /* \357\200 */ - "ins�cable", /* \357\201 */ - "interligne", /* \357\202 */ - "interlin�aire", /* \357\203 */ - "intersection", /* \357\204 */ - "introducteur", /* \357\205 */ - "ja", /* \357\206 */ - "ja'", /* \357\207 */ - "jambage", /* \357\210 */ - "jo", /* \357\211 */ - "kappa", /* \357\212 */ - "kapyo-ounmi�m", /* \357\213 */ - "kapyo-ounp'i�p'", /* \357\214 */ - "kapyo-ounpi�p", /* \357\215 */ - "kasratan", /* \357\216 */ - "khan", /* \357\217 */ - "kha�", /* \357\220 */ - "kiyok-si�s", /* \357\221 */ - "kou�", /* \357\222 */ - "kssa", /* \357\223 */ - "k�tti", /* \357\224 */ - "larm�e", /* \357\225 */ - "lha", /* \357\226 */ - "libre", /* \357\227 */ - "llla", /* \357\230 */ - "man", /* \357\231 */ - "mapiq", /* \357\232 */ - "milliers", /* \357\233 */ - "mince", /* \357\234 */ - "mi�m-pi�p", /* \357\235 */ - "mm", /* \357\236 */ - "mouche", /* \357\237 */ - "mou�", /* \357\240 */ - "mo�rdhadja", /* \357\241 */ - "multiensemble", /* \357\242 */ - "multipli�", /* \357\243 */ - "m�ga", /* \357\244 */ - "ni�n-hi�h", /* \357\245 */ - "ni�n-tchi�tch", /* \357\246 */ - "ni�n-tik�t", /* \357\247 */ - "note", /* \357\250 */ - "noun", /* \357\251 */ - "nou�", /* \357\252 */ - "ob�le", /* \357\253 */ - "oiseau", /* \357\254 */ - "ombr�", /* \357\255 */ - "on", /* \357\256 */ - "os", /* \357\257 */ - "ouest", /* \357\260 */ - "ouk", /* \357\261 */ - "ou�", /* \357\262 */ - "ou�", /* \357\263 */ - "palatal", /* \357\264 */ - "pansi�s", /* \357\265 */ - "paragraphes", /* \357\266 */ - "parall�le", /* \357\267 */ - "perc�e", /* \357\270 */ - "peth�hh�", /* \357\271 */ - "pinceau", /* \357\272 */ - "pontet", /* \357\273 */ - "porte", /* \357\274 */ - "postale", /* \357\275 */ - "pou�", /* \357\276 */ - "pu", /* \357\277 */ - "qamats", /* \357\300 */ - "qi", /* \357\301 */ - "qo", /* \357\302 */ - "quarts", /* \357\303 */ - "racine", /* \357\304 */ - "rha", /* \357\305 */ - "rites", /* \357\306 */ - "ri�l-kiyok", /* \357\307 */ - "ri�l-mi�m", /* \357\310 */ - "ri�l-p'i�p'", /* \357\311 */ - "ri�l-pi�p", /* \357\312 */ - "ri�l-si�s", /* \357\313 */ - "ri�l-t'i�t'", /* \357\314 */ - "rou", /* \357\315 */ - "roupie", /* \357\316 */ - "rra'", /* \357\317 */ - "r�", /* \357\320 */ - "r�ch", /* \357\321 */ - "r�fl�chie", /* \357\322 */ - "second", /* \357\323 */ - "semi-vois�", /* \357\324 */ - "sha", /* \357\325 */ - "si�s-kiyok", /* \357\326 */ - "si�s-pi�p", /* \357\327 */ - "si�s-tik�t", /* \357\330 */ - "soci�t�", /* \357\331 */ - "soie", /* \357\332 */ - "soua", /* \357\333 */ - "sou�", /* \357\334 */ - "ssangi�ng", /* \357\335 */ - "ssangpi�p", /* \357\336 */ - "ssangtchi�tch", /* \357\337 */ - "ssangtik�t", /* \357\340 */ - "strictement", /* \357\341 */ - "sublin�aire", /* \357\342 */ - "substitution", /* \357\343 */ - "supralin�aire", /* \357\344 */ - "suspension", /* \357\345 */ - "tabulateur", /* \357\346 */ - "tav", /* \357\347 */ - "tche", /* \357\350 */ - "tchi", /* \357\351 */ - "tchou�", /* \357\352 */ - "tertre", /* \357\353 */ - "than", /* \357\354 */ - "th�", /* \357\355 */ - "th�ta", /* \357\356 */ - "th�", /* \357\357 */ - "tiers", /* \357\360 */ - "titlo", /* \357\361 */ - "tourniquet", /* \357\362 */ - "tou�", /* \357\363 */ - "travail", /* \357\364 */ - "trente", /* \357\365 */ - "tsad�", /* \357\366 */ - "tsi", /* \357\367 */ - "tso", /* \357\370 */ - "tsou", /* \357\371 */ - "t�loudja", /* \357\372 */ - "t�te", /* \357\373 */ - "union", /* \357\374 */ - "vent", /* \357\375 */ - "verticalement", /* \357\376 */ - "verticaux", /* \357\377 */ - "vi", /* \360\001 */ - "vin", /* \360\002 */ - "vois�e", /* \360\003 */ - "vu", /* \360\004 */ - "v�v", /* \360\005 */ - "wasla", /* \360\006 */ - "wynn", /* \360\007 */ - "w�", /* \360\010 */ - "yang", /* \360\011 */ - "yesi�ng", /* \360\012 */ - "yorinhi�h", /* \360\013 */ - "you�", /* \360\014 */ - "yya", /* \360\015 */ - "y�", /* \360\016 */ - "za�", /* \360\017 */ - "za�n", /* \360\020 */ - "zeq�ph�", /* \360\021 */ - "zu", /* \360\022 */ - "�", /* \360\023 */ - "�la-pilla", /* \360\024 */ - "�chappement", /* \360\025 */ - "�cran", /* \360\026 */ - "�l�ment", /* \360\027 */ - "�i", /* \360\030 */ - "�is", /* \360\031 */ - "��", /* \360\032 */ - "�", /* \360\033 */ - "�i", /* \360\034 */ - "'a", /* \360\035 */ - "'ess�s�", /* \360\036 */ - "'khy�l", /* \360\037 */ - "'um", /* \360\040 */ - "<=", /* \360\041 */ - "accus�", /* \360\042 */ - "activateur", /* \360\043 */ - "agraf�", /* \360\044 */ - "ala�he", /* \360\045 */ - "alliance", /* \360\046 */ - "alternative", /* \360\047 */ - "annulation", /* \360\050 */ - "appartient", /* \360\051 */ - "arri�re", /* \360\052 */ - "ar�a", /* \360\053 */ - "ascendant", /* \360\054 */ - "ast�risque-h�lice", /* \360\055 */ - "asymptotiquement", /* \360\056 */ - "athabascan", /* \360\057 */ - "aucun", /* \360\060 */ - "avoir", /* \360\061 */ - "a�n", /* \360\062 */ - "a�p", /* \360\063 */ - "bachkir", /* \360\064 */ - "bambou", /* \360\065 */ - "ban", /* \360\066 */ - "bateau", /* \360\067 */ - "bbut", /* \360\070 */ - "bcad", /* \360\071 */ - "beaucoup", /* \360\072 */ - "bec", /* \360\073 */ - "bi�lorusse-ukrainien", /* \360\074 */ - "bleu", /* \360\075 */ - "bl�", /* \360\076 */ - "boeuf", /* \360\077 */ - "bris�e", /* \360\100 */ - "bur", /* \360\101 */ - "bzhi", /* \360\102 */ - "bzung", /* \360\103 */ - "b�lier", /* \360\104 */ - "carreau", /* \360\105 */ - "cavalier", /* \360\106 */ - "ce", /* \360\107 */ - "central", /* \360\110 */ - "centr�", /* \360\111 */ - "cents", /* \360\112 */ - "changement", /* \360\113 */ - "chariot", /* \360\114 */ - "cheval", /* \360\115 */ - "chien", /* \360\116 */ - "chofar", /* \360\117 */ - "chou", /* \360\120 */ - "choua", /* \360\121 */ - "choui", /* \360\122 */ - "chouo", /* \360\123 */ - "chou�", /* \360\124 */ - "chou�", /* \360\125 */ - "chou�", /* \360\126 */ - "chou�", /* \360\127 */ - "chtcha", /* \360\130 */ - "cip", /* \360\131 */ - "circuit", /* \360\132 */ - "co", /* \360\133 */ - "colon", /* \360\134 */ - "consid�ralement", /* \360\135 */ - "continu", /* \360\136 */ - "copyright", /* \360\137 */ - "coquillage", /* \360\140 */ - "coranique", /* \360\141 */ - "coronis", /* \360\142 */ - "courb�e", /* \360\143 */ - "croches", /* \360\144 */ - "cuop", /* \360\145 */ - "cy", /* \360\146 */ - "cyp", /* \360\147 */ - "cyt", /* \360\150 */ - "d'accolade", /* \360\151 */ - "d'accus�", /* \360\152 */ - "d'annulation", /* \360\153 */ - "d'arr�t", /* \360\154 */ - "d'en-t�te", /* \360\155 */ - "d'int�grale", /* \360\156 */ - "d'�change", /* \360\157 */ - "d'�toffe", /* \360\160 */ - "dame", /* \360\161 */ - "danndda", /* \360\162 */ - "dde", /* \360\163 */ - "ddi", /* \360\164 */ - "ddo", /* \360\165 */ - "ddur", /* \360\166 */ - "demande", /* \360\167 */ - "demi-anneau", /* \360\170 */ - "demi-disque", /* \360\171 */ - "demi-voyelle", /* \360\172 */ - "dents", /* \360\173 */ - "deuxi�me", /* \360\174 */ - "diagonaux", /* \360\175 */ - "diff�rence", /* \360\176 */ - "digamma", /* \360\177 */ - "dioun", /* \360\200 */ - "disque", /* \360\201 */ - "divination", /* \360\202 */ - "diviseur", /* \360\203 */ - "djan", /* \360\204 */ - "djanda", /* \360\205 */ - "dje", /* \360\206 */ - "djo", /* \360\207 */ - "dla", /* \360\210 */ - "don", /* \360\211 */ - "dou", /* \360\212 */ - "doubles", /* \360\213 */ - "dzha", /* \360\214 */ - "dzil", /* \360\215 */ - "dzud", /* \360\216 */ - "dz�ta", /* \360\217 */ - "d�lath", /* \360\220 */ - "d�cimal", /* \360\221 */ - "d�mon", /* \360\222 */ - "d�nominateur", /* \360\223 */ - "d�part", /* \360\224 */ - "ed", /* \360\225 */ - "effe", /* \360\226 */ - "ek", /* \360\227 */ - "ench�ssement", /* \360\230 */ - "encoignure", /* \360\231 */ - "entreprise", /* \360\232 */ - "ett", /* \360\233 */ - "facteur", /* \360\234 */ - "falaise", /* \360\235 */ - "fa�", /* \360\236 */ - "femelle", /* \360\237 */ - "feuille", /* \360\240 */ - "financier", /* \360\241 */ - "fine", /* \360\242 */ - "fita", /* \360\243 */ - "formage", /* \360\244 */ - "formatage", /* \360\245 */ - "formes", /* \360\246 */ - "for�age", /* \360\247 */ - "fourche", /* \360\250 */ - "fourchette", /* \360\251 */ - "fou�", /* \360\252 */ - "fractionnaire", /* \360\253 */ - "f�licitations", /* \360\254 */ - "f�minin", /* \360\255 */ - "gadol", /* \360\256 */ - "gan", /* \360\257 */ - "garchouni", /* \360\260 */ - "gauche-droite", /* \360\261 */ - "gcig", /* \360\262 */ - "gep", /* \360\263 */ - "gerich", /* \360\264 */ - "gga", /* \360\265 */ - "gge", /* \360\266 */ - "ggi", /* \360\267 */ - "ggo", /* \360\270 */ - "ggop", /* \360\271 */ - "gguo", /* \360\272 */ - "ghad", /* \360\273 */ - "ghan", /* \360\274 */ - "ghha", /* \360\275 */ - "ghunna", /* \360\276 */ - "got", /* \360\277 */ - "gram", /* \360\300 */ - "gru", /* \360\301 */ - "gug", /* \360\302 */ - "guimel", /* \360\303 */ - "gui�", /* \360\304 */ - "gu�n", /* \360\305 */ - "gyas", /* \360\306 */ - "gyon", /* \360\307 */ - "g�tta-pilla", /* \360\310 */ - "g�", /* \360\311 */ - "g�mal", /* \360\312 */ - "g�", /* \360\313 */ - "g�om�triquement", /* \360\314 */ - "g�is", /* \360\315 */ - "h'ar", /* \360\316 */ - "habits", /* \360\317 */ - "ha�", /* \360\320 */ - "hhev�ss�", /* \360\321 */ - "hirik", /* \360\322 */ - "hmo", /* \360\323 */ - "hna", /* \360\324 */ - "holam", /* \360\325 */ - "homme", /* \360\326 */ - "homoth�tique", /* \360\327 */ - "hori", /* \360\330 */ - "hors", /* \360\331 */ - "hou", /* \360\332 */ - "ho�", /* \360\333 */ - "hxit", /* \360\334 */ - "hxop", /* \360\335 */ - "hxot", /* \360\336 */ - "hxuo", /* \360\337 */ - "h�", /* \360\340 */ - "ia", /* \360\341 */ - "ici", /* \360\342 */ - "identique", /* \360\343 */ - "ij", /* \360\344 */ - "imprimer", /* \360\345 */ - "inhibiteur", /* \360\346 */ - "inh�rente", /* \360\347 */ - "io", /* \360\350 */ - "iou", /* \360\351 */ - "is-pilla", /* \360\352 */ - "i�n", /* \360\353 */ - "i�ng-kiyok", /* \360\354 */ - "jade", /* \360\355 */ - "jan", /* \360\356 */ - "jaune", /* \360\357 */ - "ji", /* \360\360 */ - "jjut", /* \360\361 */ - "jjy", /* \360\362 */ - "k'", /* \360\363 */ - "k'an", /* \360\364 */ - "kapyo-ounssangpi�p", /* \360\365 */ - "kayanna", /* \360\366 */ - "kazakhe", /* \360\367 */ - "kg", /* \360\370 */ - "khakasse", /* \360\371 */ - "khang", /* \360\372 */ - "khar", /* \360\373 */ - "khha", /* \360\374 */ - "kim", /* \360\375 */ - "kip", /* \360\376 */ - "kit", /* \360\377 */ - "ki�", /* \361\001 */ - "kk", /* \361\002 */ - "kou", /* \361\003 */ - "koua", /* \361\004 */ - "koui", /* \361\005 */ - "kouo", /* \361\006 */ - "kou�", /* \361\007 */ - "kou�", /* \361\010 */ - "kou�", /* \361\011 */ - "ksi", /* \361\012 */ - "kwa", /* \361\013 */ - "kwi", /* \361\014 */ - "kw�", /* \361\015 */ - "k�", /* \361\016 */ - "l'arri�re", /* \361\017 */ - "lame", /* \361\020 */ - "larm�es", /* \361\021 */ - "lass", /* \361\022 */ - "layanna", /* \361\023 */ - "lhi", /* \361\024 */ - "lho", /* \361\025 */ - "liant", /* \361\026 */ - "lie", /* \361\027 */ - "ling", /* \361\030 */ - "lioun", /* \361\031 */ - "livre", /* \361\032 */ - "li�", /* \361\033 */ - "lj", /* \361\034 */ - "logotype", /* \361\035 */ - "loua", /* \361\036 */ - "loui", /* \361\037 */ - "louo", /* \361\040 */ - "lou�", /* \361\041 */ - "lou�", /* \361\042 */ - "lou�", /* \361\043 */ - "lou�", /* \361\044 */ - "lyr", /* \361\045 */ - "l�", /* \361\046 */ - "mai", /* \361\047 */ - "marchandises", /* \361\050 */ - "mb", /* \361\051 */ - "message", /* \361\052 */ - "mesur�", /* \361\053 */ - "mig", /* \361\054 */ - "milieu", /* \361\055 */ - "mi�m-pansi�s", /* \361\056 */ - "mi�m-si�s", /* \361\057 */ - "molette", /* \361\060 */ - "montagne", /* \361\061 */ - "mop", /* \361\062 */ - "mort", /* \361\063 */ - "mortier", /* \361\064 */ - "mot", /* \361\065 */ - "moua", /* \361\066 */ - "moue", /* \361\067 */ - "moui", /* \361\070 */ - "mouo", /* \361\071 */ - "mouton", /* \361\072 */ - "mou�", /* \361\073 */ - "mou�", /* \361\074 */ - "mou�", /* \361\075 */ - "moyenne", /* \361\076 */ - "mur", /* \361\077 */ - "mv", /* \361\100 */ - "mw", /* \361\101 */ - "m�le", /* \361\102 */ - "m�tal", /* \361\103 */ - "m�", /* \361\104 */ - "nar", /* \361\105 */ - "nayanna", /* \361\106 */ - "nbie", /* \361\107 */ - "ngas", /* \361\110 */ - "ni�n-kiyok", /* \361\111 */ - "ni�n-pansi�s", /* \361\112 */ - "ni�n-si�s", /* \361\113 */ - "nj", /* \361\114 */ - "nnna", /* \361\115 */ - "nom", /* \361\116 */ - "norme", /* \361\117 */ - "noua", /* \361\120 */ - "nou�", /* \361\121 */ - "nul", /* \361\122 */ - "num�ral", /* \361\123 */ - "num�rique", /* \361\124 */ - "num�ro", /* \361\125 */ - "nyip", /* \361\126 */ - "nyop", /* \361\127 */ - "nzur", /* \361\130 */ - "n�", /* \361\131 */ - "n�sikyaya", /* \361\132 */ - "n�", /* \361\133 */ - "obliquement", /* \361\134 */ - "oeil", /* \361\135 */ - "ond�", /* \361\136 */ - "onn", /* \361\137 */ - "op", /* \361\140 */ - "or", /* \361\141 */ - "ordinal", /* \361\142 */ - "orn�e", /* \361\143 */ - "otte", /* \361\144 */ - "oubadama", /* \361\145 */ - "oun", /* \361\146 */ - "ouverte", /* \361\147 */ - "ou�", /* \361\150 */ - "p'i�p'-pi�p", /* \361\151 */ - "papillon", /* \361\152 */ - "paragraphe", /* \361\153 */ - "parall�logramme", /* \361\154 */ - "parole", /* \361\155 */ - "partiel", /* \361\156 */ - "passive", /* \361\157 */ - "patte", /* \361\160 */ - "payanna", /* \361\161 */ - "pench�e", /* \361\162 */ - "percussion", /* \361\163 */ - "perc�", /* \361\164 */ - "phar", /* \361\165 */ - "phur", /* \361\166 */ - "pion", /* \361\167 */ - "piour", /* \361\170 */ - "pi�ce", /* \361\171 */ - "pi�p-kiyok", /* \361\172 */ - "pi�p-p'i�p'", /* \361\173 */ - "pi�p-si�s-kiyok", /* \361\174 */ - "pi�p-si�s-tik�t", /* \361\175 */ - "pi�p-t'i�t'", /* \361\176 */ - "pi�p-tchi�tch", /* \361\177 */ - "pi�p-tik�t", /* \361\200 */ - "place", /* \361\201 */ - "plafond", /* \361\202 */ - "plancher", /* \361\203 */ - "planck", /* \361\204 */ - "plein", /* \361\205 */ - "pluie", /* \361\206 */ - "pneumata", /* \361\207 */ - "poil", /* \361\210 */ - "poisson", /* \361\211 */ - "pommet�e", /* \361\212 */ - "pou", /* \361\213 */ - "poua", /* \361\214 */ - "poui", /* \361\215 */ - "pouo", /* \361\216 */ - "pou�", /* \361\217 */ - "pou�", /* \361\220 */ - "pou�", /* \361\221 */ - "premier", /* \361\222 */ - "projet�e", /* \361\223 */ - "proportion", /* \361\224 */ - "prot�g�e", /* \361\225 */ - "pr�c�dant", /* \361\226 */ - "puis", /* \361\227 */ - "put", /* \361\230 */ - "pyt", /* \361\231 */ - "p�-pilla", /* \361\232 */ - "p�n", /* \361\233 */ - "p�", /* \361\234 */ - "p�", /* \361\235 */ - "p�", /* \361\236 */ - "q'ar", /* \361\237 */ - "qadma", /* \361\240 */ - "qot", /* \361\241 */ - "quadrill�", /* \361\242 */ - "quatri�me", /* \361\243 */ - "quintefeuille", /* \361\244 */ - "ram�es", /* \361\245 */ - "rat", /* \361\246 */ - "rayonnante", /* \361\247 */ - "rayons", /* \361\250 */ - "rdo", /* \361\251 */ - "recourb�", /* \361\252 */ - "rectiligne", /* \361\253 */ - "relation", /* \361\254 */ - "repos", /* \361\255 */ - "ressource", /* \361\256 */ - "retour", /* \361\257 */ - "rev�ss�", /* \361\260 */ - "rgya", /* \361\261 */ - "rgyings", /* \361\262 */ - "ri�l-kiyok-si�s", /* \361\263 */ - "ri�l-ni�n", /* \361\264 */ - "ri�l-pansi�s", /* \361\265 */ - "ri�l-pi�p-si�s", /* \361\266 */ - "ri�l-tik�t", /* \361\267 */ - "ri�l-yorinhi�h", /* \361\270 */ - "rje", /* \361\271 */ - "rnam", /* \361\272 */ - "roi", /* \361\273 */ - "roue", /* \361\274 */ - "rou�", /* \361\275 */ - "r�ch", /* \361\276 */ - "salla", /* \361\277 */ - "sampi", /* \361\300 */ - "sam�kh", /* \361\301 */ - "san", /* \361\302 */ - "saturne", /* \361\303 */ - "sceau", /* \361\304 */ - "section", /* \361\305 */ - "sel", /* \361\306 */ - "semi-circulaire", /* \361\307 */ - "semi-mou", /* \361\310 */ - "semkath", /* \361\311 */ - "shat", /* \361\312 */ - "shop", /* \361\313 */ - "shur", /* \361\314 */ - "shy", /* \361\315 */ - "sindhi", /* \361\316 */ - "sine", /* \361\317 */ - "si�s-ni�n", /* \361\320 */ - "si�s-ri�l", /* \361\321 */ - "si�s-tchi�tch", /* \361\322 */ - "sonnerie", /* \361\323 */ - "soui", /* \361\324 */ - "soulignement", /* \361\325 */ - "souo", /* \361\326 */ - "souriant", /* \361\327 */ - "sou�", /* \361\330 */ - "sou�", /* \361\331 */ - "sou�", /* \361\332 */ - "sp�cial", /* \361\333 */ - "ssanghi�h", /* \361\334 */ - "ssangni�n", /* \361\335 */ - "ssangri�l", /* \361\336 */ - "ssi", /* \361\337 */ - "stigma", /* \361\340 */ - "suivant", /* \361\341 */ - "suivante", /* \361\342 */ - "support", /* \361\343 */ - "suppression", /* \361\344 */ - "sym�trique", /* \361\345 */ - "synchronisation", /* \361\346 */ - "s�lectionn�e", /* \361\347 */ - "s�", /* \361\350 */ - "t'ar", /* \361\351 */ - "tabouret", /* \361\352 */ - "tann�", /* \361\353 */ - "taper", /* \361\354 */ - "tatou�l", /* \361\355 */ - "tau", /* \361\356 */ - "tayanna", /* \361\357 */ - "tch", /* \361\360 */ - "tch'ar", /* \361\361 */ - "tchan", /* \361\362 */ - "tchayanna", /* \361\363 */ - "tchima", /* \361\364 */ - "tchin", /* \361\365 */ - "tchou", /* \361\366 */ - "tchoua", /* \361\367 */ - "tchoui", /* \361\370 */ - "tchouo", /* \361\371 */ - "tchou�", /* \361\372 */ - "tchou�", /* \361\373 */ - "tchou�", /* \361\374 */ - "tch�", /* \361\375 */ - "temps", /* \361\376 */ - "the", /* \361\377 */ - "thorn", /* \362\001 */ - "thou", /* \362\002 */ - "thou�", /* \362\003 */ - "th�", /* \362\004 */ - "tigre", /* \362\005 */ - "tik�t-kiyok", /* \362\006 */ - "tirant", /* \362\007 */ - "tire-bouchon", /* \362\010 */ - "ti�", /* \362\011 */ - "tla", /* \362\012 */ - "tlha", /* \362\013 */ - "tlhi", /* \362\014 */ - "tlho", /* \362\015 */ - "tlh�", /* \362\016 */ - "tli", /* \362\017 */ - "tlo", /* \362\020 */ - "tlou", /* \362\021 */ - "tl�", /* \362\022 */ - "toua", /* \362\023 */ - "touche", /* \362\024 */ - "toui", /* \362\025 */ - "touo", /* \362\026 */ - "tour", /* \362\027 */ - "tou�", /* \362\030 */ - "tou�", /* \362\031 */ - "tou�", /* \362\032 */ - "traits", /* \362\033 */ - "trompe-l'oeil", /* \362\034 */ - "tronqu�e", /* \362\035 */ - "tr�fle", /* \362\036 */ - "tr�s", /* \362\037 */ - "ts", /* \362\040 */ - "ts'il", /* \362\041 */ - "tse", /* \362\042 */ - "tsha", /* \362\043 */ - "tshes", /* \362\044 */ - "tsin", /* \362\045 */ - "ts�", /* \362\046 */ - "ttayanna", /* \362\047 */ - "ttho", /* \362\050 */ - "tti", /* \362\051 */ - "tto", /* \362\052 */ - "tt�", /* \362\053 */ - "tt�th", /* \362\054 */ - "type", /* \362\055 */ - "t�t", /* \362\056 */ - "usage", /* \362\057 */ - "utilis�", /* \362\060 */ - "vecteur", /* \362\061 */ - "vep", /* \362\062 */ - "viande", /* \362\063 */ - "vieux", /* \362\064 */ - "vingt-deux", /* \362\065 */ - "vingt-et-un", /* \362\066 */ - "vingt-quatre", /* \362\067 */ - "vingt-trois", /* \362\070 */ - "virtuel", /* \362\071 */ - "visible", /* \362\072 */ - "vi�", /* \362\073 */ - "voir", /* \362\074 */ - "voltiger", /* \362\075 */ - "vrai", /* \362\076 */ - "vur", /* \362\077 */ - "v�hicule", /* \362\100 */ - "v�rification", /* \362\101 */ - "wasallam", /* \362\102 */ - "won", /* \362\103 */ - "wou", /* \362\104 */ - "w�n", /* \362\105 */ - "xo", /* \362\106 */ - "yate", /* \362\107 */ - "ye", /* \362\110 */ - "yen", /* \362\111 */ - "yesi�ng-pansi�s", /* \362\112 */ - "yesi�ng-si�s", /* \362\113 */ - "yin", /* \362\114 */ - "yit", /* \362\115 */ - "yogh", /* \362\116 */ - "yot", /* \362\117 */ - "you-i", /* \362\120 */ - "you-yo", /* \362\121 */ - "you-y�", /* \362\122 */ - "youa", /* \362\123 */ - "youd", /* \362\124 */ - "youi", /* \362\125 */ - "youo", /* \362\126 */ - "you�", /* \362\127 */ - "you�", /* \362\130 */ - "you�", /* \362\131 */ - "yo�dh", /* \362\132 */ - "yr", /* \362\133 */ - "y�", /* \362\134 */ - "y�-i", /* \362\135 */ - "y�-ya", /* \362\136 */ - "y�-y�", /* \362\137 */ - "zaqef", /* \362\140 */ - "zel�m�", /* \362\141 */ - "zla", /* \362\142 */ - "zot", /* \362\143 */ - "zou", /* \362\144 */ - "zur", /* \362\145 */ - "zziet", /* \362\146 */ - "zzip", /* \362\147 */ - "z�n", /* \362\150 */ - "�", /* \362\151 */ - "�da-pilla", /* \362\152 */ - "�e", /* \362\153 */ - "�laph", /* \362\154 */ - "�clair�e", /* \362\155 */ - "�tincellement", /* \362\156 */ - "�tude", /* \362\157 */ - "�schar", /* \362\160 */ - "'char", /* \362\161 */ - "'khyil", /* \362\162 */ - "'khyud", /* \362\163 */ - "'phru", /* \362\164 */ - "'�", /* \362\165 */ - "(ack)", /* \362\166 */ - "(apc)", /* \362\167 */ - "(bel)", /* \362\170 */ - "(bph)", /* \362\171 */ - "(bs)", /* \362\172 */ - "(can)", /* \362\173 */ - "(cch)", /* \362\174 */ - "(cr)", /* \362\175 */ - "(csi)", /* \362\176 */ - "(dc1)", /* \362\177 */ - "(dc2)", /* \362\200 */ - "(dc3)", /* \362\201 */ - "(dc4)", /* \362\202 */ - "(dcs)", /* \362\203 */ - "(del)", /* \362\204 */ - "(dle)", /* \362\205 */ - "(ega)", /* \362\206 */ - "(em)", /* \362\207 */ - "(enq)", /* \362\210 */ - "(eot)", /* \362\211 */ - "(esa)", /* \362\212 */ - "(esc)", /* \362\213 */ - "(etb)", /* \362\214 */ - "(etx)", /* \362\215 */ - "(ff)", /* \362\216 */ - "(fs)", /* \362\217 */ - "(gs)", /* \362\220 */ - "(hop)", /* \362\221 */ - "(ht)", /* \362\222 */ - "(htj)", /* \362\223 */ - "(hts)", /* \362\224 */ - "(ind)", /* \362\225 */ - "(lf)", /* \362\226 */ - "(mw)", /* \362\227 */ - "(nak)", /* \362\230 */ - "(nbh)", /* \362\231 */ - "(nel)", /* \362\232 */ - "(nul)", /* \362\233 */ - "(osc)", /* \362\234 */ - "(pad)", /* \362\235 */ - "(pld)", /* \362\236 */ - "(plu)", /* \362\237 */ - "(pm)", /* \362\240 */ - "(pu1)", /* \362\241 */ - "(pu2)", /* \362\242 */ - "(ri)", /* \362\243 */ - "(rs)", /* \362\244 */ - "(sci)", /* \362\245 */ - "(sga)", /* \362\246 */ - "(sgci)", /* \362\247 */ - "(si)", /* \362\250 */ - "(so)", /* \362\251 */ - "(soh)", /* \362\252 */ - "(sos)", /* \362\253 */ - "(ss2)", /* \362\254 */ - "(ss3)", /* \362\255 */ - "(ssa)", /* \362\256 */ - "(st)", /* \362\257 */ - "(sts)", /* \362\260 */ - "(stx)", /* \362\261 */ - "(sub)", /* \362\262 */ - "(syn)", /* \362\263 */ - "(us)", /* \362\264 */ - "(vt)", /* \362\265 */ - "(vts)", /* \362\266 */ - "a-ou", /* \362\267 */ - "a-�", /* \362\270 */ - "abafili", /* \362\271 */ - "abaisseuse", /* \362\272 */ - "abat-jour", /* \362\273 */ - "ab�me", /* \362\274 */ - "ac", /* \362\275 */ - "accentu�", /* \362\276 */ - "acceptable", /* \362\277 */ - "accompli", /* \362\300 */ - "addak", /* \362\301 */ - "africain", /* \362\302 */ - "ah", /* \362\303 */ - "ahsda", /* \362\304 */ - "ailm", /* \362\305 */ - "akat", /* \362\306 */ - "akbar", /* \362\307 */ - "al-lakouna", /* \362\310 */ - "algiz", /* \362\311 */ - "alifou", /* \362\312 */ - "align�s", /* \362\313 */ - "allah", /* \362\314 */ - "aller", /* \362\315 */ - "aloha", /* \362\316 */ - "alors", /* \362\317 */ - "alv�olaire", /* \362\320 */ - "al�sage", /* \362\321 */ - "amba", /* \362\322 */ - "amp�res", /* \362\323 */ - "ancre", /* \362\324 */ - "angkhankhou", /* \362\325 */ - "angstr�m", /* \362\326 */ - "animal", /* \362\327 */ - "ankh", /* \362\330 */ - "ann", /* \362\331 */ - "anne", /* \362\332 */ - "anneau", /* \362\333 */ - "ano", /* \362\334 */ - "anoudatta", /* \362\335 */ - "anousv�raya", /* \362\336 */ - "anpea", /* \362\337 */ - "ansuz", /* \362\340 */ - "anti-liant", /* \362\341 */ - "ao", /* \362\342 */ - "aonn", /* \362\343 */ - "aouyanna", /* \362\344 */ - "ao�t", /* \362\345 */ - "ap", /* \362\346 */ - "appel", /* \362\347 */ - "appentis", /* \362\350 */ - "appuy�e", /* \362\351 */ - "ap�to", /* \362\352 */ - "ar", /* \362\353 */ - "ar-�-longue-branche", /* \362\354 */ - "arbre", /* \362\355 */ - "arlaug", /* \362\356 */ - "arme", /* \362\357 */ - "arriver", /* \362\360 */ - "arrondi", /* \362\361 */ - "arrondie", /* \362\362 */ - "arrondis", /* \362\363 */ - "article", /* \362\364 */ - "aruhua", /* \362\365 */ - "ar�a-i", /* \362\366 */ - "ar�a-o", /* \362\367 */ - "ar�a-ou", /* \362\370 */ - "ar��", /* \362\371 */ - "as", /* \362\372 */ - "aspir�e", /* \362\373 */ - "assertion", /* \362\374 */ - "ast�rique", /* \362\375 */ - "ast�risme", /* \362\376 */ - "at", /* \362\377 */ - "atnah", /* \363\001 */ - "atteindre", /* \363\002 */ - "attente", /* \363\003 */ - "attention", /* \363\004 */ - "aux", /* \363\005 */ - "avakrahasa��a", /* \363\006 */ - "avion", /* \363\007 */ - "avril", /* \363\010 */ - "ax", /* \363\011 */ - "ay", /* \363\012 */ - "ayah", /* \363\013 */ - "ayanna", /* \363\014 */ - "a�nn", /* \363\015 */ - "a�nou", /* \363\016 */ - "a�vilik", /* \363\017 */ - "a�yanna", /* \363\020 */ - "a�", /* \363\021 */ - "baht", /* \363\022 */ - "balance", /* \363\023 */ - "balouda", /* \363\024 */ - "baloudas", /* \363\025 */ - "bancaire", /* \363\026 */ - "bantotch", /* \363\027 */ - "bap", /* \363\030 */ - "bar", /* \363\031 */ - "barbiche", /* \363\032 */ - "bariy�san", /* \363\033 */ - "barrekh", /* \363\034 */ - "barricade", /* \363\035 */ - "base", /* \363\036 */ - "bat", /* \363\037 */ - "bathamasat", /* \363\040 */ - "battant", /* \363\041 */ - "bax", /* \363\042 */ - "ba�ma�", /* \363\043 */ - "bba", /* \363\044 */ - "bbap", /* \363\045 */ - "bbat", /* \363\046 */ - "bbax", /* \363\047 */ - "bbe", /* \363\050 */ - "bbep", /* \363\051 */ - "bbex", /* \363\052 */ - "bbi", /* \363\053 */ - "bbie", /* \363\054 */ - "bbiep", /* \363\055 */ - "bbiet", /* \363\056 */ - "bbiex", /* \363\057 */ - "bbip", /* \363\060 */ - "bbit", /* \363\061 */ - "bbix", /* \363\062 */ - "bbo", /* \363\063 */ - "bbop", /* \363\064 */ - "bbot", /* \363\065 */ - "bbox", /* \363\066 */ - "bbu", /* \363\067 */ - "bbuo", /* \363\070 */ - "bbuop", /* \363\071 */ - "bbuox", /* \363\072 */ - "bbup", /* \363\073 */ - "bbur", /* \363\074 */ - "bburx", /* \363\075 */ - "bbux", /* \363\076 */ - "bby", /* \363\077 */ - "bbyp", /* \363\100 */ - "bbyt", /* \363\101 */ - "bbyx", /* \363\102 */ - "bchi", /* \363\103 */ - "beigne", /* \363\104 */ - "beith", /* \363\105 */ - "belgthor", /* \363\106 */ - "ben", /* \363\107 */ - "benz�ne", /* \363\110 */ - "beorc", /* \363\111 */ - "bep", /* \363\112 */ - "berkanan", /* \363\113 */ - "bet", /* \363\114 */ - "bex", /* \363\115 */ - "beyyal", /* \363\116 */ - "biarkan", /* \363\117 */ - "biarkan-�-ramille", /* \363\120 */ - "biblique", /* \363\121 */ - "bidentale", /* \363\122 */ - "bie", /* \363\123 */ - "biep", /* \363\124 */ - "biet", /* \363\125 */ - "biex", /* \363\126 */ - "bilabial", /* \363\127 */ - "bilaliale", /* \363\130 */ - "bindi", /* \363\131 */ - "biologique", /* \363\132 */ - "bip", /* \363\133 */ - "birga", /* \363\134 */ - "biru", /* \363\135 */ - "bis", /* \363\136 */ - "bisectrice", /* \363\137 */ - "bit", /* \363\140 */ - "bix", /* \363\141 */ - "bka'", /* \363\142 */ - "blancs", /* \363\143 */ - "boisseau", /* \363\144 */ - "bonhomme", /* \363\145 */ - "bons", /* \363\146 */ - "bop", /* \363\147 */ - "boruto", /* \363\150 */ - "bot", /* \363\151 */ - "bou", /* \363\152 */ - "bouche", /* \363\153 */ - "bourgeon", /* \363\154 */ - "bouton", /* \363\155 */ - "box", /* \363\156 */ - "bo�te", /* \363\157 */ - "bq", /* \363\160 */ - "branche", /* \363\161 */ - "brebis", /* \363\162 */ - "broderie", /* \363\163 */ - "bsdus", /* \363\164 */ - "bskur", /* \363\165 */ - "bstar", /* \363\166 */ - "buo", /* \363\167 */ - "buop", /* \363\170 */ - "buox", /* \363\171 */ - "bup", /* \363\172 */ - "bureau", /* \363\173 */ - "burx", /* \363\174 */ - "bussyeru", /* \363\175 */ - "but", /* \363\176 */ - "bux", /* \363\177 */ - "bwa", /* \363\200 */ - "by", /* \363\201 */ - "byp", /* \363\202 */ - "byr", /* \363\203 */ - "byrx", /* \363\204 */ - "byt", /* \363\205 */ - "byx", /* \363\206 */ - "b�", /* \363\207 */ - "b�", /* \363\210 */ - "b�reru", /* \363\211 */ - "b�carre", /* \363\212 */ - "b�mol", /* \363\213 */ - "b�th", /* \363\214 */ - "b�che", /* \363\215 */ - "c'hal", /* \363\216 */ - "cachette", /* \363\217 */ - "cada", /* \363\220 */ - "cadavre", /* \363\221 */ - "cadrat", /* \363\222 */ - "caduc�e", /* \363\223 */ - "caisse", /* \363\224 */ - "cal", /* \363\225 */ - "calage", /* \363\226 */ - "calc", /* \363\227 */ - "cancer", /* \363\230 */ - "cang", /* \363\231 */ - "cap", /* \363\232 */ - "capricorne", /* \363\233 */ - "care-of", /* \363\234 */ - "carotte", /* \363\235 */ - "cat", /* \363\236 */ - "caverne", /* \363\237 */ - "cax", /* \363\240 */ - "cc", /* \363\241 */ - "cd", /* \363\242 */ - "cealc", /* \363\243 */ - "ceinture", /* \363\244 */ - "ceirt", /* \363\245 */ - "celsius", /* \363\246 */ - "cen", /* \363\247 */ - "centaine", /* \363\250 */ - "cep", /* \363\251 */ - "cerf", /* \363\252 */ - "cex", /* \363\253 */ - "chad", /* \363\254 */ - "chaise", /* \363\255 */ - "chalchelet", /* \363\256 */ - "champ", /* \363\257 */ - "chanvre", /* \363\260 */ - "chap", /* \363\261 */ - "chapeau", /* \363\262 */ - "charrue", /* \363\263 */ - "chat", /* \363\264 */ - "chaudes", /* \363\265 */ - "chaudron", /* \363\266 */ - "chaviyani", /* \363\267 */ - "chax", /* \363\270 */ - "chayanna", /* \363\271 */ - "cha�", /* \363\272 */ - "chei", /* \363\273 */ - "cheminer", /* \363\274 */ - "chen", /* \363\275 */ - "chen�", /* \363\276 */ - "chep", /* \363\277 */ - "chet", /* \363\300 */ - "cheva", /* \363\301 */ - "chevauchement", /* \363\302 */ - "chevelure", /* \363\303 */ - "chevron", /* \363\304 */ - "chevrons", /* \363\305 */ - "chex", /* \363\306 */ - "chifre", /* \363\307 */ - "chop", /* \363\310 */ - "chot", /* \363\311 */ - "chox", /* \363\312 */ - "chrisme", /* \363\313 */ - "chu", /* \363\314 */ - "chuo", /* \363\315 */ - "chuop", /* \363\316 */ - "chuot", /* \363\317 */ - "chuox", /* \363\320 */ - "chup", /* \363\321 */ - "chur", /* \363\322 */ - "churx", /* \363\323 */ - "chux", /* \363\324 */ - "chwa", /* \363\325 */ - "chy", /* \363\326 */ - "chyp", /* \363\327 */ - "chyr", /* \363\330 */ - "chyrx", /* \363\331 */ - "chyt", /* \363\332 */ - "chyx", /* \363\333 */ - "ch�", /* \363\334 */ - "ch�", /* \363\335 */ - "ch�que", /* \363\336 */ - "ch�kel", /* \363\337 */ - "ch�", /* \363\340 */ - "ch�nou", /* \363\341 */ - "ch�", /* \363\342 */ - "ch�wa", /* \363\343 */ - "ci", /* \363\344 */ - "ciboulette", /* \363\345 */ - "cie", /* \363\346 */ - "ciep", /* \363\347 */ - "ciet", /* \363\350 */ - "ciex", /* \363\351 */ - "circulaire", /* \363\352 */ - "cit", /* \363\353 */ - "citron", /* \363\354 */ - "civil", /* \363\355 */ - "cix", /* \363\356 */ - "cjc-f900", /* \363\357 */ - "cjc-f901", /* \363\360 */ - "cjc-f902", /* \363\361 */ - "cjc-f903", /* \363\362 */ - "cjc-f904", /* \363\363 */ - "cjc-f905", /* \363\364 */ - "cjc-f906", /* \363\365 */ - "cjc-f907", /* \363\366 */ - "cjc-f908", /* \363\367 */ - "cjc-f909", /* \363\370 */ - "cjc-f90a", /* \363\371 */ - "cjc-f90b", /* \363\372 */ - "cjc-f90c", /* \363\373 */ - "cjc-f90d", /* \363\374 */ - "cjc-f90e", /* \363\375 */ - "cjc-f90f", /* \363\376 */ - "cjc-f910", /* \363\377 */ - "cjc-f911", /* \364\001 */ - "cjc-f912", /* \364\002 */ - "cjc-f913", /* \364\003 */ - "cjc-f914", /* \364\004 */ - "cjc-f915", /* \364\005 */ - "cjc-f916", /* \364\006 */ - "cjc-f917", /* \364\007 */ - "cjc-f918", /* \364\010 */ - "cjc-f919", /* \364\011 */ - "cjc-f91a", /* \364\012 */ - "cjc-f91b", /* \364\013 */ - "cjc-f91c", /* \364\014 */ - "cjc-f91d", /* \364\015 */ - "cjc-f91e", /* \364\016 */ - "cjc-f91f", /* \364\017 */ - "cjc-f920", /* \364\020 */ - "cjc-f921", /* \364\021 */ - "cjc-f922", /* \364\022 */ - "cjc-f923", /* \364\023 */ - "cjc-f924", /* \364\024 */ - "cjc-f925", /* \364\025 */ - "cjc-f926", /* \364\026 */ - "cjc-f927", /* \364\027 */ - "cjc-f928", /* \364\030 */ - "cjc-f929", /* \364\031 */ - "cjc-f92a", /* \364\032 */ - "cjc-f92b", /* \364\033 */ - "cjc-f92c", /* \364\034 */ - "cjc-f92d", /* \364\035 */ - "cjc-f92e", /* \364\036 */ - "cjc-f92f", /* \364\037 */ - "cjc-f930", /* \364\040 */ - "cjc-f931", /* \364\041 */ - "cjc-f932", /* \364\042 */ - "cjc-f933", /* \364\043 */ - "cjc-f934", /* \364\044 */ - "cjc-f935", /* \364\045 */ - "cjc-f936", /* \364\046 */ - "cjc-f937", /* \364\047 */ - "cjc-f938", /* \364\050 */ - "cjc-f939", /* \364\051 */ - "cjc-f93a", /* \364\052 */ - "cjc-f93b", /* \364\053 */ - "cjc-f93c", /* \364\054 */ - "cjc-f93d", /* \364\055 */ - "cjc-f93e", /* \364\056 */ - "cjc-f93f", /* \364\057 */ - "cjc-f940", /* \364\060 */ - "cjc-f941", /* \364\061 */ - "cjc-f942", /* \364\062 */ - "cjc-f943", /* \364\063 */ - "cjc-f944", /* \364\064 */ - "cjc-f945", /* \364\065 */ - "cjc-f946", /* \364\066 */ - "cjc-f947", /* \364\067 */ - "cjc-f948", /* \364\070 */ - "cjc-f949", /* \364\071 */ - "cjc-f94a", /* \364\072 */ - "cjc-f94b", /* \364\073 */ - "cjc-f94c", /* \364\074 */ - "cjc-f94d", /* \364\075 */ - "cjc-f94e", /* \364\076 */ - "cjc-f94f", /* \364\077 */ - "cjc-f950", /* \364\100 */ - "cjc-f951", /* \364\101 */ - "cjc-f952", /* \364\102 */ - "cjc-f953", /* \364\103 */ - "cjc-f954", /* \364\104 */ - "cjc-f955", /* \364\105 */ - "cjc-f956", /* \364\106 */ - "cjc-f957", /* \364\107 */ - "cjc-f958", /* \364\110 */ - "cjc-f959", /* \364\111 */ - "cjc-f95a", /* \364\112 */ - "cjc-f95b", /* \364\113 */ - "cjc-f95c", /* \364\114 */ - "cjc-f95d", /* \364\115 */ - "cjc-f95e", /* \364\116 */ - "cjc-f95f", /* \364\117 */ - "cjc-f960", /* \364\120 */ - "cjc-f961", /* \364\121 */ - "cjc-f962", /* \364\122 */ - "cjc-f963", /* \364\123 */ - "cjc-f964", /* \364\124 */ - "cjc-f965", /* \364\125 */ - "cjc-f966", /* \364\126 */ - "cjc-f967", /* \364\127 */ - "cjc-f968", /* \364\130 */ - "cjc-f969", /* \364\131 */ - "cjc-f96a", /* \364\132 */ - "cjc-f96b", /* \364\133 */ - "cjc-f96c", /* \364\134 */ - "cjc-f96d", /* \364\135 */ - "cjc-f96e", /* \364\136 */ - "cjc-f96f", /* \364\137 */ - "cjc-f970", /* \364\140 */ - "cjc-f971", /* \364\141 */ - "cjc-f972", /* \364\142 */ - "cjc-f973", /* \364\143 */ - "cjc-f974", /* \364\144 */ - "cjc-f975", /* \364\145 */ - "cjc-f976", /* \364\146 */ - "cjc-f977", /* \364\147 */ - "cjc-f978", /* \364\150 */ - "cjc-f979", /* \364\151 */ - "cjc-f97a", /* \364\152 */ - "cjc-f97b", /* \364\153 */ - "cjc-f97c", /* \364\154 */ - "cjc-f97d", /* \364\155 */ - "cjc-f97e", /* \364\156 */ - "cjc-f97f", /* \364\157 */ - "cjc-f980", /* \364\160 */ - "cjc-f981", /* \364\161 */ - "cjc-f982", /* \364\162 */ - "cjc-f983", /* \364\163 */ - "cjc-f984", /* \364\164 */ - "cjc-f985", /* \364\165 */ - "cjc-f986", /* \364\166 */ - "cjc-f987", /* \364\167 */ - "cjc-f988", /* \364\170 */ - "cjc-f989", /* \364\171 */ - "cjc-f98a", /* \364\172 */ - "cjc-f98b", /* \364\173 */ - "cjc-f98c", /* \364\174 */ - "cjc-f98d", /* \364\175 */ - "cjc-f98e", /* \364\176 */ - "cjc-f98f", /* \364\177 */ - "cjc-f990", /* \364\200 */ - "cjc-f991", /* \364\201 */ - "cjc-f992", /* \364\202 */ - "cjc-f993", /* \364\203 */ - "cjc-f994", /* \364\204 */ - "cjc-f995", /* \364\205 */ - "cjc-f996", /* \364\206 */ - "cjc-f997", /* \364\207 */ - "cjc-f998", /* \364\210 */ - "cjc-f999", /* \364\211 */ - "cjc-f99a", /* \364\212 */ - "cjc-f99b", /* \364\213 */ - "cjc-f99c", /* \364\214 */ - "cjc-f99d", /* \364\215 */ - "cjc-f99e", /* \364\216 */ - "cjc-f99f", /* \364\217 */ - "cjc-f9a0", /* \364\220 */ - "cjc-f9a1", /* \364\221 */ - "cjc-f9a2", /* \364\222 */ - "cjc-f9a3", /* \364\223 */ - "cjc-f9a4", /* \364\224 */ - "cjc-f9a5", /* \364\225 */ - "cjc-f9a6", /* \364\226 */ - "cjc-f9a7", /* \364\227 */ - "cjc-f9a8", /* \364\230 */ - "cjc-f9a9", /* \364\231 */ - "cjc-f9aa", /* \364\232 */ - "cjc-f9ab", /* \364\233 */ - "cjc-f9ac", /* \364\234 */ - "cjc-f9ad", /* \364\235 */ - "cjc-f9ae", /* \364\236 */ - "cjc-f9af", /* \364\237 */ - "cjc-f9b0", /* \364\240 */ - "cjc-f9b1", /* \364\241 */ - "cjc-f9b2", /* \364\242 */ - "cjc-f9b3", /* \364\243 */ - "cjc-f9b4", /* \364\244 */ - "cjc-f9b5", /* \364\245 */ - "cjc-f9b6", /* \364\246 */ - "cjc-f9b7", /* \364\247 */ - "cjc-f9b8", /* \364\250 */ - "cjc-f9b9", /* \364\251 */ - "cjc-f9ba", /* \364\252 */ - "cjc-f9bb", /* \364\253 */ - "cjc-f9bc", /* \364\254 */ - "cjc-f9bd", /* \364\255 */ - "cjc-f9be", /* \364\256 */ - "cjc-f9bf", /* \364\257 */ - "cjc-f9c0", /* \364\260 */ - "cjc-f9c1", /* \364\261 */ - "cjc-f9c2", /* \364\262 */ - "cjc-f9c3", /* \364\263 */ - "cjc-f9c4", /* \364\264 */ - "cjc-f9c5", /* \364\265 */ - "cjc-f9c6", /* \364\266 */ - "cjc-f9c7", /* \364\267 */ - "cjc-f9c8", /* \364\270 */ - "cjc-f9c9", /* \364\271 */ - "cjc-f9ca", /* \364\272 */ - "cjc-f9cb", /* \364\273 */ - "cjc-f9cc", /* \364\274 */ - "cjc-f9cd", /* \364\275 */ - "cjc-f9ce", /* \364\276 */ - "cjc-f9cf", /* \364\277 */ - "cjc-f9d0", /* \364\300 */ - "cjc-f9d1", /* \364\301 */ - "cjc-f9d2", /* \364\302 */ - "cjc-f9d3", /* \364\303 */ - "cjc-f9d4", /* \364\304 */ - "cjc-f9d5", /* \364\305 */ - "cjc-f9d6", /* \364\306 */ - "cjc-f9d7", /* \364\307 */ - "cjc-f9d8", /* \364\310 */ - "cjc-f9d9", /* \364\311 */ - "cjc-f9da", /* \364\312 */ - "cjc-f9db", /* \364\313 */ - "cjc-f9dc", /* \364\314 */ - "cjc-f9dd", /* \364\315 */ - "cjc-f9de", /* \364\316 */ - "cjc-f9df", /* \364\317 */ - "cjc-f9e0", /* \364\320 */ - "cjc-f9e1", /* \364\321 */ - "cjc-f9e2", /* \364\322 */ - "cjc-f9e3", /* \364\323 */ - "cjc-f9e4", /* \364\324 */ - "cjc-f9e5", /* \364\325 */ - "cjc-f9e6", /* \364\326 */ - "cjc-f9e7", /* \364\327 */ - "cjc-f9e8", /* \364\330 */ - "cjc-f9e9", /* \364\331 */ - "cjc-f9ea", /* \364\332 */ - "cjc-f9eb", /* \364\333 */ - "cjc-f9ec", /* \364\334 */ - "cjc-f9ed", /* \364\335 */ - "cjc-f9ee", /* \364\336 */ - "cjc-f9ef", /* \364\337 */ - "cjc-f9f0", /* \364\340 */ - "cjc-f9f1", /* \364\341 */ - "cjc-f9f2", /* \364\342 */ - "cjc-f9f3", /* \364\343 */ - "cjc-f9f4", /* \364\344 */ - "cjc-f9f5", /* \364\345 */ - "cjc-f9f6", /* \364\346 */ - "cjc-f9f7", /* \364\347 */ - "cjc-f9f8", /* \364\350 */ - "cjc-f9f9", /* \364\351 */ - "cjc-f9fa", /* \364\352 */ - "cjc-f9fb", /* \364\353 */ - "cjc-f9fc", /* \364\354 */ - "cjc-f9fd", /* \364\355 */ - "cjc-f9fe", /* \364\356 */ - "cjc-f9ff", /* \364\357 */ - "cjc-fa00", /* \364\360 */ - "cjc-fa01", /* \364\361 */ - "cjc-fa02", /* \364\362 */ - "cjc-fa03", /* \364\363 */ - "cjc-fa04", /* \364\364 */ - "cjc-fa05", /* \364\365 */ - "cjc-fa06", /* \364\366 */ - "cjc-fa07", /* \364\367 */ - "cjc-fa08", /* \364\370 */ - "cjc-fa09", /* \364\371 */ - "cjc-fa0a", /* \364\372 */ - "cjc-fa0b", /* \364\373 */ - "cjc-fa0c", /* \364\374 */ - "cjc-fa0d", /* \364\375 */ - "cjc-fa0e", /* \364\376 */ - "cjc-fa0f", /* \364\377 */ - "cjc-fa10", /* \365\001 */ - "cjc-fa11", /* \365\002 */ - "cjc-fa12", /* \365\003 */ - "cjc-fa13", /* \365\004 */ - "cjc-fa14", /* \365\005 */ - "cjc-fa15", /* \365\006 */ - "cjc-fa16", /* \365\007 */ - "cjc-fa17", /* \365\010 */ - "cjc-fa18", /* \365\011 */ - "cjc-fa19", /* \365\012 */ - "cjc-fa1a", /* \365\013 */ - "cjc-fa1b", /* \365\014 */ - "cjc-fa1c", /* \365\015 */ - "cjc-fa1d", /* \365\016 */ - "cjc-fa1e", /* \365\017 */ - "cjc-fa1f", /* \365\020 */ - "cjc-fa20", /* \365\021 */ - "cjc-fa21", /* \365\022 */ - "cjc-fa22", /* \365\023 */ - "cjc-fa23", /* \365\024 */ - "cjc-fa24", /* \365\025 */ - "cjc-fa25", /* \365\026 */ - "cjc-fa26", /* \365\027 */ - "cjc-fa27", /* \365\030 */ - "cjc-fa28", /* \365\031 */ - "cjc-fa29", /* \365\032 */ - "cjc-fa2a", /* \365\033 */ - "cjc-fa2b", /* \365\034 */ - "cjc-fa2c", /* \365\035 */ - "cjc-fa2d", /* \365\036 */ - "clan", /* \365\037 */ - "clavier", /* \365\040 */ - "cochon", /* \365\041 */ - "coch�", /* \365\042 */ - "coffre", /* \365\043 */ - "coins", /* \365\044 */ - "coll", /* \365\045 */ - "commerce", /* \365\046 */ - "comparer", /* \365\047 */ - "compl�ment", /* \365\050 */ - "composition", /* \365\051 */ - "compte", /* \365\052 */ - "compte-client", /* \365\053 */ - "com�te", /* \365\054 */ - "concave", /* \365\055 */ - "conique", /* \365\056 */ - "conjonction", /* \365\057 */ - "conjugu�e", /* \365\060 */ - "conservateur", /* \365\061 */ - "cons�quent", /* \365\062 */ - "contenant", /* \365\063 */ - "contraction", /* \365\064 */ - "contre-cotice", /* \365\065 */ - "cop", /* \365\066 */ - "copie", /* \365\067 */ - "coproduit", /* \365\070 */ - "coq", /* \365\071 */ - "corbeau", /* \365\072 */ - "corps", /* \365\073 */ - "correct", /* \365\074 */ - "correspond", /* \365\075 */ - "cor�enne", /* \365\076 */ - "cot", /* \365\077 */ - "cotice", /* \365\100 */ - "couleur", /* \365\101 */ - "coupe", /* \365\102 */ - "coupure", /* \365\103 */ - "courant", /* \365\104 */ - "courb�", /* \365\105 */ - "courir", /* \365\106 */ - "couronne", /* \365\107 */ - "course", /* \365\110 */ - "court", /* \365\111 */ - "courts", /* \365\112 */ - "couvrir", /* \365\113 */ - "cox", /* \365\114 */ - "cri-r", /* \365\115 */ - "croc", /* \365\116 */ - "croche", /* \365\117 */ - "croissant", /* \365\120 */ - "crois�e", /* \365\121 */ - "cruzeiro", /* \365\122 */ - "cu", /* \365\123 */ - "cubique", /* \365\124 */ - "cueillir", /* \365\125 */ - "cuill�re", /* \365\126 */ - "cuo", /* \365\127 */ - "cuox", /* \365\130 */ - "cup", /* \365\131 */ - "cur", /* \365\132 */ - "cursif", /* \365\133 */ - "curx", /* \365\134 */ - "cut", /* \365\135 */ - "cux", /* \365\136 */ - "cweorth", /* \365\137 */ - "cylindricit�", /* \365\140 */ - "cyr", /* \365\141 */ - "cyrx", /* \365\142 */ - "cyx", /* \365\143 */ - "c�r�ales", /* \365\144 */ - "d'article", /* \365\145 */ - "d'emplacement", /* \365\146 */ - "d'enregistrements", /* \365\147 */ - "d'ensemble", /* \365\150 */ - "d'entr�e", /* \365\151 */ - "d'euler", /* \365\152 */ - "d'exclamation-interrogation",/* \365\153 */ - "d'exploitation", /* \365\154 */ - "d'information", /* \365\155 */ - "d'insistance", /* \365\156 */ - "d'interrogation-exclamation",/* \365\157 */ - "d'int�r�t", /* \365\160 */ - "d'inversion", /* \365\161 */ - "d'objet", /* \365\162 */ - "d'unit�s", /* \365\163 */ - "d'�chappement", /* \365\164 */ - "d'�crire", /* \365\165 */ - "dagalga", /* \365\166 */ - "dagaz", /* \365\167 */ - "daguech", /* \365\170 */ - "dair", /* \365\171 */ - "damarou", /* \365\172 */ - "danger", /* \365\173 */ - "dap", /* \365\174 */ - "darga", /* \365\175 */ - "dasia", /* \365\176 */ - "dat", /* \365\177 */ - "david", /* \365\200 */ - "daviyani", /* \365\201 */ - "dax", /* \365\202 */ - "db", /* \365\203 */ - "ddap", /* \365\204 */ - "ddat", /* \365\205 */ - "ddax", /* \365\206 */ - "dddha", /* \365\207 */ - "ddep", /* \365\210 */ - "ddex", /* \365\211 */ - "ddie", /* \365\212 */ - "ddiep", /* \365\213 */ - "ddiex", /* \365\214 */ - "ddip", /* \365\215 */ - "ddit", /* \365\216 */ - "ddix", /* \365\217 */ - "ddop", /* \365\220 */ - "ddot", /* \365\221 */ - "ddou", /* \365\222 */ - "ddox", /* \365\223 */ - "ddu", /* \365\224 */ - "dduo", /* \365\225 */ - "dduop", /* \365\226 */ - "dduox", /* \365\227 */ - "ddup", /* \365\230 */ - "ddurx", /* \365\231 */ - "ddut", /* \365\232 */ - "ddux", /* \365\233 */ - "ddwa", /* \365\234 */ - "dd�", /* \365\235 */ - "dd�", /* \365\236 */ - "debout", /* \365\237 */ - "dehi", /* \365\240 */ - "dej", /* \365\241 */ - "dek", /* \365\242 */ - "deka", /* \365\243 */ - "del", /* \365\244 */ - "demi-arbre", /* \365\245 */ - "demi-cadrat", /* \365\246 */ - "demi-espace", /* \365\247 */ - "dental", /* \365\250 */ - "dep", /* \365\251 */ - "dernier", /* \365\252 */ - "descendant", /* \365\253 */ - "descendu", /* \365\254 */ - "desi", /* \365\255 */ - "dessous", /* \365\256 */ - "dex", /* \365\257 */ - "dharma", /* \365\260 */ - "dh�lou", /* \365\261 */ - "diagonale", /* \365\262 */ - "diam�tre", /* \365\263 */ - "die", /* \365\264 */ - "diep", /* \365\265 */ - "diex", /* \365\266 */ - "dingot", /* \365\267 */ - "dip", /* \365\270 */ - "dire", /* \365\271 */ - "directionnel", /* \365\272 */ - "discontinu", /* \365\273 */ - "dit", /* \365\274 */ - "divis�", /* \365\275 */ - "di�se", /* \365\276 */ - "dj", /* \365\277 */ - "djalladjalalouhou", /* \365\300 */ - "djaviyani", /* \365\301 */ - "djia", /* \365\302 */ - "djja", /* \365\303 */ - "djje", /* \365\304 */ - "djji", /* \365\305 */ - "djjo", /* \365\306 */ - "djjou", /* \365\307 */ - "djj�", /* \365\310 */ - "djwa", /* \365\311 */ - "dj�", /* \365\312 */ - "dl", /* \365\313 */ - "dle", /* \365\314 */ - "dli", /* \365\315 */ - "dlo", /* \365\316 */ - "dlou", /* \365\317 */ - "dl�", /* \365\320 */ - "domino", /* \365\321 */ - "dong", /* \365\322 */ - "dop", /* \365\323 */ - "doru", /* \365\324 */ - "dot", /* \365\325 */ - "doute", /* \365\326 */ - "dox", /* \365\327 */ - "drachme", /* \365\330 */ - "dril", /* \365\331 */ - "duo", /* \365\332 */ - "duox", /* \365\333 */ - "dup", /* \365\334 */ - "durx", /* \365\335 */ - "dut", /* \365\336 */ - "dux", /* \365\337 */ - "dwa", /* \365\340 */ - "dze", /* \365\341 */ - "dzi", /* \365\342 */ - "dzo", /* \365\343 */ - "dzou", /* \365\344 */ - "d�", /* \365\345 */ - "d�g", /* \365\346 */ - "d�n", /* \365\347 */ - "d�dhou", /* \365\350 */ - "d�su", /* \365\351 */ - "d�cembre", /* \365\352 */ - "d�faire", /* \365\353 */ - "d�filer", /* \365\354 */ - "d�finition", /* \365\355 */ - "d�limiteur", /* \365\356 */ - "d�montrer", /* \365\357 */ - "d�pilement", /* \365\360 */ - "d�pos�e", /* \365\361 */ - "d�riv�e", /* \365\362 */ - "d�rouleur", /* \365\363 */ - "eadhadh", /* \365\364 */ - "eamhancholl", /* \365\365 */ - "ear", /* \365\366 */ - "effacement", /* \365\367 */ - "effachement", /* \365\370 */ - "egal", /* \365\371 */ - "eh", /* \365\372 */ - "ehwaz", /* \365\373 */ - "el", /* \365\374 */ - "elliptique", /* \365\375 */ - "emjamb�e", /* \365\376 */ - "enceinte", /* \365\377 */ - "encore", /* \366\001 */ - "enfant", /* \366\002 */ - "enfer", /* \366\003 */ - "englobante", /* \366\004 */ - "enn", /* \366\005 */ - "enregistreur", /* \366\006 */ - "ensemble", /* \366\007 */ - "enti�rement", /* \366\010 */ - "entrant", /* \366\011 */ - "entrelac�", /* \366\012 */ - "entrer", /* \366\013 */ - "enveloppe", /* \366\014 */ - "envelopper", /* \366\015 */ - "eoh", /* \366\016 */ - "eolhx", /* \366\017 */ - "eou", /* \366\020 */ - "estime", /* \366\021 */ - "estim�", /* \366\022 */ - "esuk�do", /* \366\023 */ - "eth", /* \366\024 */ - "ethel", /* \366\025 */ - "eul", /* \366\026 */ - "euro", /* \366\027 */ - "ex", /* \366\030 */ - "excellent", /* \366\031 */ - "exclarrogatif", /* \366\032 */ - "exclusif", /* \366\033 */ - "exc�s", /* \366\034 */ - "existe", /* \366\035 */ - "ex�cution", /* \366\036 */ - "e�", /* \366\037 */ - "fahrenheit", /* \366\040 */ - "faible", /* \366\041 */ - "fallait", /* \366\042 */ - "fan", /* \366\043 */ - "fap", /* \366\044 */ - "farah", /* \366\045 */ - "fat", /* \366\046 */ - "faucille", /* \366\047 */ - "fax", /* \366\050 */ - "fayanna", /* \366\051 */ - "fe", /* \366\052 */ - "fearn", /* \366\053 */ - "femme", /* \366\054 */ - "feng", /* \366\055 */ - "fermant", /* \366\056 */ - "fermeture", /* \366\057 */ - "festival", /* \366\060 */ - "ff", /* \366\061 */ - "ffi", /* \366\062 */ - "ffl", /* \366\063 */ - "fichier", /* \366\064 */ - "fichiers", /* \366\065 */ - "fil", /* \366\066 */ - "fip", /* \366\067 */ - "fit", /* \366\070 */ - "fix", /* \366\071 */ - "fl", /* \366\072 */ - "fl�che", /* \366\073 */ - "fl�te", /* \366\074 */ - "fm", /* \366\075 */ - "folioles", /* \366\076 */ - "fonc�e", /* \366\077 */ - "fongman", /* \366\100 */ - "fop", /* \366\101 */ - "force", /* \366\102 */ - "fort", /* \366\103 */ - "fosse", /* \366\104 */ - "fox", /* \366\105 */ - "fraisage", /* \366\106 */ - "franc", /* \366\107 */ - "fran�ais", /* \366\110 */ - "fu", /* \366\111 */ - "fup", /* \366\112 */ - "fur", /* \366\113 */ - "furx", /* \366\114 */ - "fuseau", /* \366\115 */ - "fut", /* \366\116 */ - "fux", /* \366\117 */ - "fwa", /* \366\120 */ - "fy", /* \366\121 */ - "fyp", /* \366\122 */ - "fyt", /* \366\123 */ - "fyx", /* \366\124 */ - "fy�", /* \366\125 */ - "f�", /* \366\126 */ - "f�", /* \366\127 */ - "f�fou", /* \366\130 */ - "f��", /* \366\131 */ - "f�hu", /* \366\132 */ - "f�oh", /* \366\133 */ - "f�vrier", /* \366\134 */ - "f�", /* \366\135 */ - "f�", /* \366\136 */ - "ganma", /* \366\137 */ - "gap", /* \366\140 */ - "gar", /* \366\141 */ - "garon", /* \366\142 */ - "gat", /* \366\143 */ - "gax", /* \366\144 */ - "gb", /* \366\145 */ - "gcan", /* \366\146 */ - "gdan", /* \366\147 */ - "gebo", /* \366\150 */ - "geofu", /* \366\151 */ - "ger", /* \366\152 */ - "gerch��m", /* \366\153 */ - "gerech", /* \366\154 */ - "get", /* \366\155 */ - "gex", /* \366\156 */ - "ggap", /* \366\157 */ - "ggat", /* \366\160 */ - "ggax", /* \366\161 */ - "ggep", /* \366\162 */ - "gget", /* \366\163 */ - "ggex", /* \366\164 */ - "ggie", /* \366\165 */ - "ggiep", /* \366\166 */ - "ggiex", /* \366\167 */ - "ggit", /* \366\170 */ - "ggix", /* \366\171 */ - "ggot", /* \366\172 */ - "ggou", /* \366\173 */ - "ggox", /* \366\174 */ - "ggu", /* \366\175 */ - "gguop", /* \366\176 */ - "gguot", /* \366\177 */ - "gguox", /* \366\200 */ - "ggup", /* \366\201 */ - "ggur", /* \366\202 */ - "ggurx", /* \366\203 */ - "ggut", /* \366\204 */ - "ggux", /* \366\205 */ - "gg�", /* \366\206 */ - "gg�", /* \366\207 */ - "gha�nou", /* \366\210 */ - "ghe", /* \366\211 */ - "ghi", /* \366\212 */ - "gho", /* \366\213 */ - "ghou", /* \366\214 */ - "ghz", /* \366\215 */ - "gh�", /* \366\216 */ - "gie", /* \366\217 */ - "giep", /* \366\220 */ - "giet", /* \366\221 */ - "giex", /* \366\222 */ - "giga", /* \366\223 */ - "gimel", /* \366\224 */ - "gin�", /* \366\225 */ - "gip", /* \366\226 */ - "girud�", /* \366\227 */ - "git", /* \366\230 */ - "gix", /* \366\231 */ - "glace", /* \366\232 */ - "gn", /* \366\233 */ - "gnaviyani", /* \366\234 */ - "gop", /* \366\235 */ - "gort", /* \366\236 */ - "goua'", /* \366\237 */ - "gox", /* \366\240 */ - "gpa", /* \366\241 */ - "graphique", /* \366\242 */ - "grenouille", /* \366\243 */ - "grichine", /* \366\244 */ - "griffe", /* \366\245 */ - "grima�ant", /* \366\246 */ - "groupe", /* \366\247 */ - "groupes", /* \366\250 */ - "gui", /* \366\251 */ - "guillemets", /* \366\252 */ - "guo", /* \366\253 */ - "guop", /* \366\254 */ - "guot", /* \366\255 */ - "guox", /* \366\256 */ - "gup", /* \366\257 */ - "gur", /* \366\260 */ - "guramu", /* \366\261 */ - "guramuton", /* \366\262 */ - "gurx", /* \366\263 */ - "gut", /* \366\264 */ - "gux", /* \366\265 */ - "gu�n", /* \366\266 */ - "gwa", /* \366\267 */ - "gwe", /* \366\270 */ - "gwi", /* \366\271 */ - "gw�", /* \366\272 */ - "gw�", /* \366\273 */ - "gy", /* \366\274 */ - "g�", /* \366\275 */ - "g�fou", /* \366\276 */ - "g�meaux", /* \366\277 */ - "g�nitif", /* \366\300 */ - "g�om�trique", /* \366\301 */ - "g�orgien", /* \366\302 */ - "g�ta", /* \366\303 */ - "hache", /* \366\304 */ - "hagall-�-longue-branche", /* \366\305 */ - "hagall-�-ramille", /* \366\306 */ - "haglaz", /* \366\307 */ - "haitu", /* \366\310 */ - "halanta", /* \366\311 */ - "hallebarde", /* \366\312 */ - "hameau", /* \366\313 */ - "han", /* \366\314 */ - "hap", /* \366\315 */ - "haricot", /* \366\316 */ - "hat", /* \366\317 */ - "haute", /* \366\320 */ - "hax", /* \366\321 */ - "hayanna", /* \366\322 */ - "hekut�ru", /* \366\323 */ - "hep", /* \366\324 */ - "hermitienne", /* \366\325 */ - "herutu", /* \366\326 */ - "hex", /* \366\327 */ - "he�se�", /* \366\330 */ - "hha", /* \366\331 */ - "hhe", /* \366\332 */ - "hhev�ss�/'ess�s�", /* \366\333 */ - "hhi", /* \366\334 */ - "hho", /* \366\335 */ - "hhou", /* \366\336 */ - "hhwa", /* \366\337 */ - "hh�", /* \366\340 */ - "hh�", /* \366\341 */ - "hh�", /* \366\342 */ - "hh�th", /* \366\343 */ - "hie", /* \366\344 */ - "hiex", /* \366\345 */ - "hip", /* \366\346 */ - "hit", /* \366\347 */ - "hizb", /* \366\350 */ - "hi�h-mi�m", /* \366\351 */ - "hi�h-ni�n", /* \366\352 */ - "hi�h-pi�p", /* \366\353 */ - "hi�h-ri�l", /* \366\354 */ - "hk", /* \366\355 */ - "hla", /* \366\356 */ - "hlap", /* \366\357 */ - "hlat", /* \366\360 */ - "hlax", /* \366\361 */ - "hle", /* \366\362 */ - "hlep", /* \366\363 */ - "hlex", /* \366\364 */ - "hli", /* \366\365 */ - "hlie", /* \366\366 */ - "hliep", /* \366\367 */ - "hliex", /* \366\370 */ - "hlip", /* \366\371 */ - "hlit", /* \366\372 */ - "hlix", /* \366\373 */ - "hlo", /* \366\374 */ - "hlop", /* \366\375 */ - "hlox", /* \366\376 */ - "hlu", /* \366\377 */ - "hluo", /* \367\001 */ - "hluop", /* \367\002 */ - "hluox", /* \367\003 */ - "hlup", /* \367\004 */ - "hlur", /* \367\005 */ - "hlurx", /* \367\006 */ - "hlut", /* \367\007 */ - "hlux", /* \367\010 */ - "hly", /* \367\011 */ - "hlyp", /* \367\012 */ - "hlyr", /* \367\013 */ - "hlyrx", /* \367\014 */ - "hlyt", /* \367\015 */ - "hlyx", /* \367\016 */ - "hma", /* \367\017 */ - "hmap", /* \367\020 */ - "hmat", /* \367\021 */ - "hmax", /* \367\022 */ - "hmi", /* \367\023 */ - "hmie", /* \367\024 */ - "hmiep", /* \367\025 */ - "hmiex", /* \367\026 */ - "hmip", /* \367\027 */ - "hmit", /* \367\030 */ - "hmix", /* \367\031 */ - "hmop", /* \367\032 */ - "hmot", /* \367\033 */ - "hmox", /* \367\034 */ - "hmu", /* \367\035 */ - "hmuo", /* \367\036 */ - "hmuop", /* \367\037 */ - "hmuox", /* \367\040 */ - "hmup", /* \367\041 */ - "hmur", /* \367\042 */ - "hmurx", /* \367\043 */ - "hmut", /* \367\044 */ - "hmux", /* \367\045 */ - "hmy", /* \367\046 */ - "hmyp", /* \367\047 */ - "hmyr", /* \367\050 */ - "hmyrx", /* \367\051 */ - "hmyx", /* \367\052 */ - "hnap", /* \367\053 */ - "hnat", /* \367\054 */ - "hnax", /* \367\055 */ - "hne", /* \367\056 */ - "hnep", /* \367\057 */ - "hnex", /* \367\060 */ - "hni", /* \367\061 */ - "hnie", /* \367\062 */ - "hniep", /* \367\063 */ - "hniet", /* \367\064 */ - "hniex", /* \367\065 */ - "hnip", /* \367\066 */ - "hnit", /* \367\067 */ - "hnix", /* \367\070 */ - "hnop", /* \367\071 */ - "hnot", /* \367\072 */ - "hnox", /* \367\073 */ - "hnuo", /* \367\074 */ - "hnuox", /* \367\075 */ - "hnut", /* \367\076 */ - "holekh", /* \367\077 */ - "hon", /* \367\100 */ - "hop", /* \367\101 */ - "horizontalement", /* \367\102 */ - "horizontaux", /* \367\103 */ - "hors-tout", /* \367\104 */ - "hot", /* \367\105 */ - "houa", /* \367\106 */ - "houe", /* \367\107 */ - "houi", /* \367\110 */ - "houo", /* \367\111 */ - "houou", /* \367\112 */ - "hou�", /* \367\113 */ - "hox", /* \367\114 */ - "hp", /* \367\115 */ - "hpa", /* \367\116 */ - "hs", /* \367\117 */ - "huarado", /* \367\120 */ - "huo", /* \367\121 */ - "huop", /* \367\122 */ - "huot", /* \367\123 */ - "huox", /* \367\124 */ - "huran", /* \367\125 */ - "hu�to", /* \367\126 */ - "hv", /* \367\127 */ - "hwair", /* \367\130 */ - "hxa", /* \367\131 */ - "hxap", /* \367\132 */ - "hxat", /* \367\133 */ - "hxax", /* \367\134 */ - "hxe", /* \367\135 */ - "hxep", /* \367\136 */ - "hxex", /* \367\137 */ - "hxi", /* \367\140 */ - "hxie", /* \367\141 */ - "hxiep", /* \367\142 */ - "hxiet", /* \367\143 */ - "hxiex", /* \367\144 */ - "hxip", /* \367\145 */ - "hxix", /* \367\146 */ - "hxo", /* \367\147 */ - "hxox", /* \367\150 */ - "hxuop", /* \367\151 */ - "hxuot", /* \367\152 */ - "hxuox", /* \367\153 */ - "hyst�r�sis", /* \367\154 */ - "hz", /* \367\155 */ - "h�", /* \367\156 */ - "h�gl", /* \367\157 */ - "h�n", /* \367\160 */ - "h�t", /* \367\161 */ - "h�n", /* \367\162 */ - "h�ru", /* \367\163 */ - "i-a", /* \367\164 */ - "i-ar�a", /* \367\165 */ - "i-ou", /* \367\166 */ - "i-ya", /* \367\167 */ - "i-�", /* \367\170 */ - "i-�", /* \367\171 */ - "ibifili", /* \367\172 */ - "identification", /* \367\173 */ - "ie", /* \367\174 */ - "iep", /* \367\175 */ - "iet", /* \367\176 */ - "iex", /* \367\177 */ - "if�n", /* \367\200 */ - "ilouyanna", /* \367\201 */ - "ilouz", /* \367\202 */ - "ilo�yanna", /* \367\203 */ - "im", /* \367\204 */ - "incr�ment", /* \367\205 */ - "industrielle", /* \367\206 */ - "infini", /* \367\207 */ - "info", /* \367\210 */ - "ing", /* \367\211 */ - "ingwaz", /* \367\212 */ - "iningu", /* \367\213 */ - "inn", /* \367\214 */ - "inne", /* \367\215 */ - "innn", /* \367\216 */ - "insecte", /* \367\217 */ - "intercale", /* \367\220 */ - "intersyllabique", /* \367\221 */ - "inti", /* \367\222 */ - "invers�", /* \367\223 */ - "iodhadh", /* \367\224 */ - "ior", /* \367\225 */ - "ip", /* \367\226 */ - "iri", /* \367\227 */ - "irouyanna", /* \367\230 */ - "iro�yanna", /* \367\231 */ - "is", /* \367\232 */ - "isa", /* \367\233 */ - "iss", /* \367\234 */ - "it", /* \367\235 */ - "iwaz", /* \367\236 */ - "ix", /* \367\237 */ - "iy", /* \367\240 */ - "iyanna", /* \367\241 */ - "i�ng-k'i�k'", /* \367\242 */ - "i�ng-mi�m", /* \367\243 */ - "i�ng-p'i�p'", /* \367\244 */ - "i�ng-pansi�s", /* \367\245 */ - "i�ng-pi�p", /* \367\246 */ - "i�ng-si�s", /* \367\247 */ - "i�ng-ssangkiyok", /* \367\250 */ - "i�ng-t'i�t'", /* \367\251 */ - "i�ng-tch'i�tch'", /* \367\252 */ - "i�ng-tchi�tch", /* \367\253 */ - "i�ng-tik�t", /* \367\254 */ - "jambes", /* \367\255 */ - "janvier", /* \367\256 */ - "japonaise", /* \367\257 */ - "je", /* \367\260 */ - "jeran", /* \367\261 */ - "jie", /* \367\262 */ - "jiep", /* \367\263 */ - "jiet", /* \367\264 */ - "jiex", /* \367\265 */ - "jip", /* \367\266 */ - "jit", /* \367\267 */ - "jix", /* \367\270 */ - "jji", /* \367\271 */ - "jjie", /* \367\272 */ - "jjiep", /* \367\273 */ - "jjiet", /* \367\274 */ - "jjiex", /* \367\275 */ - "jjip", /* \367\276 */ - "jjit", /* \367\277 */ - "jjix", /* \367\300 */ - "jjo", /* \367\301 */ - "jjop", /* \367\302 */ - "jjot", /* \367\303 */ - "jjox", /* \367\304 */ - "jju", /* \367\305 */ - "jjuo", /* \367\306 */ - "jjuop", /* \367\307 */ - "jjuox", /* \367\310 */ - "jjup", /* \367\311 */ - "jjur", /* \367\312 */ - "jjurx", /* \367\313 */ - "jjux", /* \367\314 */ - "jjyp", /* \367\315 */ - "jjyt", /* \367\316 */ - "jjyx", /* \367\317 */ - "jop", /* \367\320 */ - "jot", /* \367\321 */ - "jou", /* \367\322 */ - "jox", /* \367\323 */ - "ju", /* \367\324 */ - "jud�o-espagnol", /* \367\325 */ - "juillet", /* \367\326 */ - "juin", /* \367\327 */ - "juo", /* \367\330 */ - "juop", /* \367\331 */ - "juot", /* \367\332 */ - "juox", /* \367\333 */ - "jup", /* \367\334 */ - "jupiter", /* \367\335 */ - "jur", /* \367\336 */ - "jurx", /* \367\337 */ - "justification", /* \367\340 */ - "jut", /* \367\341 */ - "jux", /* \367\342 */ - "jwa", /* \367\343 */ - "jy", /* \367\344 */ - "jyp", /* \367\345 */ - "jyr", /* \367\346 */ - "jyrx", /* \367\347 */ - "jyt", /* \367\350 */ - "jyx", /* \367\351 */ - "j�", /* \367\352 */ - "j�rusalem", /* \367\353 */ - "kah", /* \367\354 */ - "kai", /* \367\355 */ - "kairi", /* \367\356 */ - "kakabat", /* \367\357 */ - "kan", /* \367\360 */ - "kantadja", /* \367\361 */ - "kap", /* \367\362 */ - "kapyo-ounri�l", /* \367\363 */ - "karatto", /* \367\364 */ - "karn�", /* \367\365 */ - "karor�", /* \367\366 */ - "kat", /* \367\367 */ - "kaun", /* \367\370 */ - "kauna", /* \367\371 */ - "kax", /* \367\372 */ - "ka�", /* \367\373 */ - "kb", /* \367\374 */ - "kcal", /* \367\375 */ - "kelvin", /* \367\376 */ - "kep", /* \367\377 */ - "ket", /* \370\001 */ - "kex", /* \370\002 */ - "khe", /* \370\003 */ - "khomout", /* \370\004 */ - "khon", /* \370\005 */ - "khou", /* \370\006 */ - "khouat", /* \370\007 */ - "khwa�", /* \370\010 */ - "khz", /* \370\011 */ - "kh�", /* \370\012 */ - "kie", /* \370\013 */ - "kiep", /* \370\014 */ - "kiex", /* \370\015 */ - "kih", /* \370\016 */ - "kiro", /* \370\017 */ - "kiroguramu", /* \370\020 */ - "kirom�toru", /* \370\021 */ - "kirowatto", /* \370\022 */ - "kix", /* \370\023 */ - "kiyok-ri�l", /* \370\024 */ - "kiyok-si�s-kiyok", /* \370\025 */ - "kka", /* \370\026 */ - "kke", /* \370\027 */ - "kki", /* \370\030 */ - "kko", /* \370\031 */ - "kkou", /* \370\032 */ - "kk�", /* \370\033 */ - "kl", /* \370\034 */ - "koh", /* \370\035 */ - "kombou", /* \370\036 */ - "kon", /* \370\037 */ - "kop", /* \370\040 */ - "koruna", /* \370\041 */ - "kot", /* \370\042 */ - "koubouts", /* \370\043 */ - "kounddaliya", /* \370\044 */ - "kox", /* \370\045 */ - "ko�h", /* \370\046 */ - "kpa", /* \370\047 */ - "kra", /* \370\050 */ - "kt", /* \370\051 */ - "kuo", /* \370\052 */ - "kuop", /* \370\053 */ - "kuox", /* \370\054 */ - "kup", /* \370\055 */ - "kur", /* \370\056 */ - "kuruzeiro", /* \370\057 */ - "kurx", /* \370\060 */ - "kur�ne", /* \370\061 */ - "kut", /* \370\062 */ - "kux", /* \370\063 */ - "kv", /* \370\064 */ - "kw", /* \370\065 */ - "kwe", /* \370\066 */ - "kwo", /* \370\067 */ - "kwou", /* \370\070 */ - "kw�", /* \370\071 */ - "kw�n", /* \370\072 */ - "kxa", /* \370\073 */ - "kxe", /* \370\074 */ - "kxi", /* \370\075 */ - "kxo", /* \370\076 */ - "kxou", /* \370\077 */ - "kxwa", /* \370\100 */ - "kxwe", /* \370\101 */ - "kxwi", /* \370\102 */ - "kxw�", /* \370\103 */ - "kxw�", /* \370\104 */ - "kx�", /* \370\105 */ - "kx�", /* \370\106 */ - "kyur�", /* \370\107 */ - "k�", /* \370\110 */ - "k�", /* \370\111 */ - "k�fou", /* \370\112 */ - "k�ph", /* \370\113 */ - "k��", /* \370\114 */ - "k�h", /* \370\115 */ - "k�su", /* \370\116 */ - "k�", /* \370\117 */ - "k�mo�t", /* \370\120 */ - "k�po", /* \370\121 */ - "l'espace", /* \370\122 */ - "l'homme", /* \370\123 */ - "l-point�", /* \370\124 */ - "lac", /* \370\125 */ - "lagu", /* \370\126 */ - "lakkhangyao", /* \370\127 */ - "lance", /* \370\130 */ - "langue", /* \370\131 */ - "laotiens", /* \370\132 */ - "lap", /* \370\133 */ - "lat", /* \370\134 */ - "lat�ral", /* \370\135 */ - "laukaz", /* \370\136 */ - "lax", /* \370\137 */ - "lce", /* \370\140 */ - "lci", /* \370\141 */ - "ldan", /* \370\142 */ - "ledit", /* \370\143 */ - "lej", /* \370\144 */ - "lek", /* \370\145 */ - "lep", /* \370\146 */ - "lettr�", /* \370\147 */ - "lex", /* \370\150 */ - "lh", /* \370\151 */ - "lhag", /* \370\152 */ - "lhaviyani", /* \370\153 */ - "lhe", /* \370\154 */ - "lhou", /* \370\155 */ - "lh�", /* \370\156 */ - "lh�", /* \370\157 */ - "lh�", /* \370\160 */ - "lh�", /* \370\161 */ - "liaison", /* \370\162 */ - "lib�ral", /* \370\163 */ - "liep", /* \370\164 */ - "liet", /* \370\165 */ - "liex", /* \370\166 */ - "lignes", /* \370\167 */ - "limite", /* \370\170 */ - "lion", /* \370\171 */ - "lip", /* \370\172 */ - "lire", /* \370\173 */ - "lit", /* \370\174 */ - "lix", /* \370\175 */ - "lm", /* \370\176 */ - "ln", /* \370\177 */ - "locatif", /* \370\200 */ - "log", /* \370\201 */ - "logicielle", /* \370\202 */ - "logr", /* \370\203 */ - "lop", /* \370\204 */ - "lorraine", /* \370\205 */ - "lot", /* \370\206 */ - "lout", /* \370\207 */ - "lox", /* \370\210 */ - "ls", /* \370\211 */ - "lu", /* \370\212 */ - "luis", /* \370\213 */ - "lunaire", /* \370\214 */ - "luo", /* \370\215 */ - "luop", /* \370\216 */ - "luot", /* \370\217 */ - "luox", /* \370\220 */ - "lup", /* \370\221 */ - "lur", /* \370\222 */ - "lurx", /* \370\223 */ - "lut", /* \370\224 */ - "lux", /* \370\225 */ - "lwa", /* \370\226 */ - "lx", /* \370\227 */ - "ly", /* \370\230 */ - "lyp", /* \370\231 */ - "lyrx", /* \370\232 */ - "lyt", /* \370\233 */ - "lyx", /* \370\234 */ - "lz", /* \370\235 */ - "l�", /* \370\236 */ - "l�n", /* \370\237 */ - "l�", /* \370\240 */ - "l��", /* \370\241 */ - "l�", /* \370\242 */ - "l�madh", /* \370\243 */ - "l�mou", /* \370\244 */ - "l��", /* \370\245 */ - "l�g�re", /* \370\246 */ - "l�", /* \370\247 */ - "madr-�-longue-branche", /* \370\250 */ - "madr-�-ramille", /* \370\251 */ - "mahha", /* \370\252 */ - "maille", /* \370\253 */ - "mains", /* \370\254 */ - "maison", /* \370\255 */ - "makku", /* \370\256 */ - "maladie", /* \370\257 */ - "malte", /* \370\260 */ - "mandchoue", /* \370\261 */ - "mannaz", /* \370\262 */ - "manque", /* \370\263 */ - "mansyon", /* \370\264 */ - "map", /* \370\265 */ - "maqaf", /* \370\266 */ - "mar", /* \370\267 */ - "marqu�", /* \370\270 */ - "mars", /* \370\271 */ - "marteau", /* \370\272 */ - "masculin", /* \370\273 */ - "massor�tique", /* \370\274 */ - "mat", /* \370\275 */ - "matin", /* \370\276 */ - "matrice", /* \370\277 */ - "mauvais", /* \370\300 */ - "max", /* \370\301 */ - "mayakru", /* \370\302 */ - "mayakuro", /* \370\303 */ - "mayanna", /* \370\304 */ - "ma�mala�", /* \370\305 */ - "ma�mouan", /* \370\306 */ - "ma�ta�khou", /* \370\307 */ - "ma�yamok", /* \370\310 */ - "mchu", /* \370\311 */ - "mdun", /* \370\312 */ - "med", /* \370\313 */ - "mehouppakh", /* \370\314 */ - "melon", /* \370\315 */ - "men", /* \370\316 */ - "mercure", /* \370\317 */ - "mesure", /* \370\320 */ - "meteg", /* \370\321 */ - "mex", /* \370\322 */ - "me�ji", /* \370\323 */ - "mg", /* \370\324 */ - "mga", /* \370\325 */ - "mgap", /* \370\326 */ - "mgat", /* \370\327 */ - "mgax", /* \370\330 */ - "mge", /* \370\331 */ - "mgep", /* \370\332 */ - "mgex", /* \370\333 */ - "mgie", /* \370\334 */ - "mgiex", /* \370\335 */ - "mgop", /* \370\336 */ - "mgot", /* \370\337 */ - "mgox", /* \370\340 */ - "mgu", /* \370\341 */ - "mguo", /* \370\342 */ - "mguop", /* \370\343 */ - "mguox", /* \370\344 */ - "mgup", /* \370\345 */ - "mgur", /* \370\346 */ - "mgurx", /* \370\347 */ - "mgut", /* \370\350 */ - "mgux", /* \370\351 */ - "mh", /* \370\352 */ - "mhz", /* \370\353 */ - "micro", /* \370\354 */ - "mie", /* \370\355 */ - "miep", /* \370\356 */ - "miex", /* \370\357 */ - "mikuron", /* \370\360 */ - "mil", /* \370\361 */ - "millet", /* \370\362 */ - "millions", /* \370\363 */ - "milli�me", /* \370\364 */ - "ministre", /* \370\365 */ - "minnie", /* \370\366 */ - "mip", /* \370\367 */ - "miri", /* \370\370 */ - "mirib�ru", /* \370\371 */ - "mise", /* \370\372 */ - "mit", /* \370\373 */ - "mix", /* \370\374 */ - "mi�m-hi�h", /* \370\375 */ - "mi�m-kiyok", /* \370\376 */ - "mi�m-ri�l", /* \370\377 */ - "mi�m-ssangsi�s", /* \371\001 */ - "mi�m-tch'i�tch'", /* \371\002 */ - "ml", /* \371\003 */ - "moan", /* \371\004 */ - "mode", /* \371\005 */ - "mod�lise", /* \371\006 */ - "mohammad", /* \371\007 */ - "moineau", /* \371\010 */ - "moins-ou-plus", /* \371\011 */ - "mol", /* \371\012 */ - "mongols", /* \371\013 */ - "monostable", /* \371\014 */ - "montant", /* \371\015 */ - "monter", /* \371\016 */ - "montre", /* \371\017 */ - "moose", /* \371\020 */ - "mouette", /* \371\021 */ - "mouqdam", /* \371\022 */ - "mox", /* \371\023 */ - "moyen", /* \371\024 */ - "mo�sikatoan", /* \371\025 */ - "mpa", /* \371\026 */ - "ms", /* \371\027 */ - "muin", /* \371\030 */ - "multijection", /* \371\031 */ - "multiple", /* \371\032 */ - "muo", /* \371\033 */ - "muop", /* \371\034 */ - "muot", /* \371\035 */ - "muox", /* \371\036 */ - "mup", /* \371\037 */ - "murx", /* \371\040 */ - "musique", /* \371\041 */ - "mut", /* \371\042 */ - "mux", /* \371\043 */ - "mwa", /* \371\044 */ - "my", /* \371\045 */ - "myp", /* \371\046 */ - "myst�rieux", /* \371\047 */ - "myt", /* \371\050 */ - "myx", /* \371\051 */ - "my�", /* \371\052 */ - "m�", /* \371\053 */ - "m�", /* \371\054 */ - "m�rikh", /* \371\055 */ - "m��", /* \371\056 */ - "m�re", /* \371\057 */ - "m�decine", /* \371\060 */ - "m�diane", /* \371\061 */ - "m�dians", /* \371\062 */ - "m�gatonne", /* \371\063 */ - "m�tob�le", /* \371\064 */ - "m�toru", /* \371\065 */ - "m�", /* \371\066 */ - "m�mou", /* \371\067 */ - "n'appartient", /* \371\070 */ - "n'est", /* \371\071 */ - "n'existe", /* \371\072 */ - "n'oblige", /* \371\073 */ - "n'y", /* \371\074 */ - "n-point�", /* \371\075 */ - "nabla", /* \371\076 */ - "nah", /* \371\077 */ - "naira", /* \371\100 */ - "nangmontho", /* \371\101 */ - "nano", /* \371\102 */ - "nap", /* \371\103 */ - "nationales", /* \371\104 */ - "naud", /* \371\105 */ - "naud-�-ramille", /* \371\106 */ - "naudiz", /* \371\107 */ - "nax", /* \371\110 */ - "na�tre", /* \371\111 */ - "nba", /* \371\112 */ - "nbap", /* \371\113 */ - "nbat", /* \371\114 */ - "nbax", /* \371\115 */ - "nbi", /* \371\116 */ - "nbiep", /* \371\117 */ - "nbiex", /* \371\120 */ - "nbip", /* \371\121 */ - "nbit", /* \371\122 */ - "nbix", /* \371\123 */ - "nbo", /* \371\124 */ - "nbop", /* \371\125 */ - "nbot", /* \371\126 */ - "nbox", /* \371\127 */ - "nbu", /* \371\130 */ - "nbup", /* \371\131 */ - "nbur", /* \371\132 */ - "nburx", /* \371\133 */ - "nbut", /* \371\134 */ - "nbux", /* \371\135 */ - "nby", /* \371\136 */ - "nbyp", /* \371\137 */ - "nbyr", /* \371\140 */ - "nbyrx", /* \371\141 */ - "nbyt", /* \371\142 */ - "nbyx", /* \371\143 */ - "nda", /* \371\144 */ - "ndap", /* \371\145 */ - "ndat", /* \371\146 */ - "ndax", /* \371\147 */ - "nde", /* \371\150 */ - "ndep", /* \371\151 */ - "ndex", /* \371\152 */ - "ndi", /* \371\153 */ - "ndie", /* \371\154 */ - "ndiex", /* \371\155 */ - "ndip", /* \371\156 */ - "ndit", /* \371\157 */ - "ndix", /* \371\160 */ - "ndo", /* \371\161 */ - "ndop", /* \371\162 */ - "ndot", /* \371\163 */ - "ndox", /* \371\164 */ - "ndu", /* \371\165 */ - "ndup", /* \371\166 */ - "ndur", /* \371\167 */ - "ndurx", /* \371\170 */ - "ndut", /* \371\171 */ - "ndux", /* \371\172 */ - "nen", /* \371\173 */ - "nep", /* \371\174 */ - "neptune", /* \371\175 */ - "nettoyer", /* \371\176 */ - "nex", /* \371\177 */ - "nez", /* \371\200 */ - "nf", /* \371\201 */ - "ngap", /* \371\202 */ - "ngat", /* \371\203 */ - "ngax", /* \371\204 */ - "nga�", /* \371\205 */ - "nge", /* \371\206 */ - "ngep", /* \371\207 */ - "ngex", /* \371\210 */ - "ngg", /* \371\211 */ - "ngi", /* \371\212 */ - "ngie", /* \371\213 */ - "ngiep", /* \371\214 */ - "ngiex", /* \371\215 */ - "ngop", /* \371\216 */ - "ngot", /* \371\217 */ - "ngou", /* \371\220 */ - "ngox", /* \371\221 */ - "nguo", /* \371\222 */ - "nguot", /* \371\223 */ - "nguox", /* \371\224 */ - "ng�", /* \371\225 */ - "ng��", /* \371\226 */ - "ng�adal", /* \371\227 */ - "ng�", /* \371\230 */ - "ng�", /* \371\231 */ - "nh", /* \371\232 */ - "nia", /* \371\233 */ - "nie", /* \371\234 */ - "niep", /* \371\235 */ - "niex", /* \371\236 */ - "niggahita", /* \371\237 */ - "nikahit", /* \371\240 */ - "nikhahit", /* \371\241 */ - "nion", /* \371\242 */ - "nip", /* \371\243 */ - "nirougou", /* \371\244 */ - "nit", /* \371\245 */ - "nix", /* \371\246 */ - "ni�n-pi�p", /* \371\247 */ - "ni�n-t'i�t'", /* \371\250 */ - "nji", /* \371\251 */ - "njie", /* \371\252 */ - "njiep", /* \371\253 */ - "njiet", /* \371\254 */ - "njiex", /* \371\255 */ - "njip", /* \371\256 */ - "njit", /* \371\257 */ - "njix", /* \371\260 */ - "njo", /* \371\261 */ - "njop", /* \371\262 */ - "njot", /* \371\263 */ - "njox", /* \371\264 */ - "nju", /* \371\265 */ - "njuo", /* \371\266 */ - "njuox", /* \371\267 */ - "njup", /* \371\270 */ - "njur", /* \371\271 */ - "njurx", /* \371\272 */ - "njux", /* \371\273 */ - "njy", /* \371\274 */ - "njyp", /* \371\275 */ - "njyr", /* \371\276 */ - "njyrx", /* \371\277 */ - "njyt", /* \371\300 */ - "njyx", /* \371\301 */ - "nm", /* \371\302 */ - "nng", /* \371\303 */ - "nnga", /* \371\304 */ - "nngi", /* \371\305 */ - "nngo", /* \371\306 */ - "nng�", /* \371\307 */ - "nng�", /* \371\310 */ - "nng�", /* \371\311 */ - "nno", /* \371\312 */ - "nno�n", /* \371\313 */ - "noirs", /* \371\314 */ - "nokhouk", /* \371\315 */ - "nominales", /* \371\316 */ - "non-barre", /* \371\317 */ - "non-et", /* \371\320 */ - "non-ou", /* \371\321 */ - "non-v�rification", /* \371\322 */ - "nop", /* \371\323 */ - "not", /* \371\324 */ - "notto", /* \371\325 */ - "nouveau", /* \371\326 */ - "nouvelle", /* \371\327 */ - "novembre", /* \371\330 */ - "nox", /* \371\331 */ - "no�nou", /* \371\332 */ - "nra", /* \371\333 */ - "nrap", /* \371\334 */ - "nrat", /* \371\335 */ - "nrax", /* \371\336 */ - "nre", /* \371\337 */ - "nrep", /* \371\340 */ - "nret", /* \371\341 */ - "nrex", /* \371\342 */ - "nro", /* \371\343 */ - "nrop", /* \371\344 */ - "nrox", /* \371\345 */ - "nru", /* \371\346 */ - "nrup", /* \371\347 */ - "nrur", /* \371\350 */ - "nrurx", /* \371\351 */ - "nrut", /* \371\352 */ - "nrux", /* \371\353 */ - "nry", /* \371\354 */ - "nryp", /* \371\355 */ - "nryr", /* \371\356 */ - "nryrx", /* \371\357 */ - "nryt", /* \371\360 */ - "nryx", /* \371\361 */ - "ns", /* \371\362 */ - "nuage", /* \371\363 */ - "nuit", /* \371\364 */ - "nunavut", /* \371\365 */ - "nuo", /* \371\366 */ - "nuop", /* \371\367 */ - "nuox", /* \371\370 */ - "nup", /* \371\371 */ - "nur", /* \371\372 */ - "nurx", /* \371\373 */ - "nut", /* \371\374 */ - "nux", /* \371\375 */ - "nv", /* \371\376 */ - "nw", /* \371\377 */ - "nwa", /* \372\001 */ - "nyd", /* \372\002 */ - "nyi", /* \372\003 */ - "nyie", /* \372\004 */ - "nyiep", /* \372\005 */ - "nyiet", /* \372\006 */ - "nyiex", /* \372\007 */ - "nyit", /* \372\010 */ - "nyix", /* \372\011 */ - "nyo", /* \372\012 */ - "nyot", /* \372\013 */ - "nyox", /* \372\014 */ - "nyu", /* \372\015 */ - "nyuo", /* \372\016 */ - "nyuop", /* \372\017 */ - "nyuox", /* \372\020 */ - "nyup", /* \372\021 */ - "nyut", /* \372\022 */ - "nyux", /* \372\023 */ - "nza", /* \372\024 */ - "nzap", /* \372\025 */ - "nzat", /* \372\026 */ - "nzax", /* \372\027 */ - "nze", /* \372\030 */ - "nzex", /* \372\031 */ - "nzi", /* \372\032 */ - "nzie", /* \372\033 */ - "nziep", /* \372\034 */ - "nziex", /* \372\035 */ - "nzip", /* \372\036 */ - "nzit", /* \372\037 */ - "nzix", /* \372\040 */ - "nzop", /* \372\041 */ - "nzox", /* \372\042 */ - "nzu", /* \372\043 */ - "nzuo", /* \372\044 */ - "nzuox", /* \372\045 */ - "nzup", /* \372\046 */ - "nzurx", /* \372\047 */ - "nzux", /* \372\050 */ - "nzy", /* \372\051 */ - "nzyp", /* \372\052 */ - "nzyr", /* \372\053 */ - "nzyrx", /* \372\054 */ - "nzyt", /* \372\055 */ - "nzyx", /* \372\056 */ - "n�", /* \372\057 */ - "n�n", /* \372\060 */ - "n�ksikyaya", /* \372\061 */ - "n��", /* \372\062 */ - "n�", /* \372\063 */ - "o-ou", /* \372\064 */ - "o-�", /* \372\065 */ - "o-�", /* \372\066 */ - "oblige", /* \372\067 */ - "obofili", /* \372\070 */ - "occidentale", /* \372\071 */ - "octet", /* \372\072 */ - "octobre", /* \372\073 */ - "oleh", /* \372\074 */ - "once", /* \372\075 */ - "one", /* \372\076 */ - "ong", /* \372\077 */ - "onkar", /* \372\100 */ - "onne", /* \372\101 */ - "onsu", /* \372\102 */ - "opposition", /* \372\103 */ - "option", /* \372\104 */ - "orage", /* \372\105 */ - "ordonnances", /* \372\106 */ - "oreille", /* \372\107 */ - "orientale", /* \372\110 */ - "origine", /* \372\111 */ - "orthodoxe", /* \372\112 */ - "oss-�-branche-longue", /* \372\113 */ - "oss-�-ramille", /* \372\114 */ - "ot", /* \372\115 */ - "othalan", /* \372\116 */ - "ou-a", /* \372\117 */ - "ou-o-�", /* \372\120 */ - "ou-ou", /* \372\121 */ - "ou-y�", /* \372\122 */ - "ou-�", /* \372\123 */ - "ouboufili", /* \372\124 */ - "oudatta", /* \372\125 */ - "oue", /* \372\126 */ - "ounn", /* \372\127 */ - "ouou", /* \372\130 */ - "oura", /* \372\131 */ - "ouvrant", /* \372\132 */ - "ouyanna", /* \372\133 */ - "ou�", /* \372\134 */ - "ov", /* \372\135 */ - "ox", /* \372\136 */ - "oyanna", /* \372\137 */ - "o�bo�fili", /* \372\140 */ - "o�yanna", /* \372\141 */ - "p'", /* \372\142 */ - "p'ar", /* \372\143 */ - "p-ouvert", /* \372\144 */ - "p-point�", /* \372\145 */ - "padma", /* \372\146 */ - "paix", /* \372\147 */ - "palatalisation", /* \372\150 */ - "palotchka", /* \372\151 */ - "paluta", /* \372\152 */ - "pap", /* \372\153 */ - "parapluie", /* \372\154 */ - "parce", /* \372\155 */ - "parfum", /* \372\156 */ - "partie", /* \372\157 */ - "partielle", /* \372\160 */ - "paseq", /* \372\161 */ - "pasouq", /* \372\162 */ - "pastille", /* \372\163 */ - "pat", /* \372\164 */ - "patak", /* \372\165 */ - "paviyani", /* \372\166 */ - "pax", /* \372\167 */ - "pazer", /* \372\170 */ - "pa�yanno�", /* \372\171 */ - "pc", /* \372\172 */ - "peau", /* \372\173 */ - "peith", /* \372\174 */ - "penihi", /* \372\175 */ - "pensu", /* \372\176 */ - "pente", /* \372\177 */ - "peorth", /* \372\200 */ - "permis", /* \372\201 */ - "personnellement", /* \372\202 */ - "perspective", /* \372\203 */ - "perthro", /* \372\204 */ - "peseta", /* \372\205 */ - "peso", /* \372\206 */ - "pf", /* \372\207 */ - "ph", /* \372\210 */ - "phan", /* \372\211 */ - "phe", /* \372\212 */ - "phinthou", /* \372\213 */ - "phn�k", /* \372\214 */ - "phonogramme", /* \372\215 */ - "phou", /* \372\216 */ - "phoung", /* \372\217 */ - "phouthao", /* \372\220 */ - "phwa", /* \372\221 */ - "ph�", /* \372\222 */ - "ph�", /* \372\223 */ - "piasutoru", /* \372\224 */ - "pie", /* \372\225 */ - "piep", /* \372\226 */ - "pierre", /* \372\227 */ - "piex", /* \372\230 */ - "piko", /* \372\231 */ - "pikuru", /* \372\232 */ - "pip", /* \372\233 */ - "pit", /* \372\234 */ - "pix", /* \372\235 */ - "pi�p-hi�h", /* \372\236 */ - "pi�p-ni�n", /* \372\237 */ - "pi�p-ri�l", /* \372\240 */ - "pi�p-si�s-pi�p", /* \372\241 */ - "pi�p-si�s-tchi�tch", /* \372\242 */ - "pi�p-ssangsi�s", /* \372\243 */ - "pi�p-tch'i�tch'", /* \372\244 */ - "pla", /* \372\245 */ - "plus-ou-moins", /* \372\246 */ - "pluton", /* \372\247 */ - "pm", /* \372\250 */ - "pointo", /* \372\251 */ - "points-1", /* \372\252 */ - "points-12", /* \372\253 */ - "points-123", /* \372\254 */ - "points-1234", /* \372\255 */ - "points-12345", /* \372\256 */ - "points-123456", /* \372\257 */ - "points-1234567", /* \372\260 */ - "points-12345678", /* \372\261 */ - "points-1234568", /* \372\262 */ - "points-123457", /* \372\263 */ - "points-1234578", /* \372\264 */ - "points-123458", /* \372\265 */ - "points-12346", /* \372\266 */ - "points-123467", /* \372\267 */ - "points-1234678", /* \372\270 */ - "points-123468", /* \372\271 */ - "points-12347", /* \372\272 */ - "points-123478", /* \372\273 */ - "points-12348", /* \372\274 */ - "points-1235", /* \372\275 */ - "points-12356", /* \372\276 */ - "points-123567", /* \372\277 */ - "points-1235678", /* \372\300 */ - "points-123568", /* \372\301 */ - "points-12357", /* \372\302 */ - "points-123578", /* \372\303 */ - "points-12358", /* \372\304 */ - "points-1236", /* \372\305 */ - "points-12367", /* \372\306 */ - "points-123678", /* \372\307 */ - "points-12368", /* \372\310 */ - "points-1237", /* \372\311 */ - "points-12378", /* \372\312 */ - "points-1238", /* \372\313 */ - "points-124", /* \372\314 */ - "points-1245", /* \372\315 */ - "points-12456", /* \372\316 */ - "points-124567", /* \372\317 */ - "points-1245678", /* \372\320 */ - "points-124568", /* \372\321 */ - "points-12457", /* \372\322 */ - "points-124578", /* \372\323 */ - "points-12458", /* \372\324 */ - "points-1246", /* \372\325 */ - "points-12467", /* \372\326 */ - "points-124678", /* \372\327 */ - "points-12468", /* \372\330 */ - "points-1247", /* \372\331 */ - "points-12478", /* \372\332 */ - "points-1248", /* \372\333 */ - "points-125", /* \372\334 */ - "points-1256", /* \372\335 */ - "points-12567", /* \372\336 */ - "points-125678", /* \372\337 */ - "points-12568", /* \372\340 */ - "points-1257", /* \372\341 */ - "points-12578", /* \372\342 */ - "points-1258", /* \372\343 */ - "points-126", /* \372\344 */ - "points-1267", /* \372\345 */ - "points-12678", /* \372\346 */ - "points-1268", /* \372\347 */ - "points-127", /* \372\350 */ - "points-1278", /* \372\351 */ - "points-128", /* \372\352 */ - "points-13", /* \372\353 */ - "points-134", /* \372\354 */ - "points-1345", /* \372\355 */ - "points-13456", /* \372\356 */ - "points-134567", /* \372\357 */ - "points-1345678", /* \372\360 */ - "points-134568", /* \372\361 */ - "points-13457", /* \372\362 */ - "points-134578", /* \372\363 */ - "points-13458", /* \372\364 */ - "points-1346", /* \372\365 */ - "points-13467", /* \372\366 */ - "points-134678", /* \372\367 */ - "points-13468", /* \372\370 */ - "points-1347", /* \372\371 */ - "points-13478", /* \372\372 */ - "points-1348", /* \372\373 */ - "points-135", /* \372\374 */ - "points-1356", /* \372\375 */ - "points-13567", /* \372\376 */ - "points-135678", /* \372\377 */ - "points-13568", /* \373\001 */ - "points-1357", /* \373\002 */ - "points-13578", /* \373\003 */ - "points-1358", /* \373\004 */ - "points-136", /* \373\005 */ - "points-1367", /* \373\006 */ - "points-13678", /* \373\007 */ - "points-1368", /* \373\010 */ - "points-137", /* \373\011 */ - "points-1378", /* \373\012 */ - "points-138", /* \373\013 */ - "points-14", /* \373\014 */ - "points-145", /* \373\015 */ - "points-1456", /* \373\016 */ - "points-14567", /* \373\017 */ - "points-145678", /* \373\020 */ - "points-14568", /* \373\021 */ - "points-1457", /* \373\022 */ - "points-14578", /* \373\023 */ - "points-1458", /* \373\024 */ - "points-146", /* \373\025 */ - "points-1467", /* \373\026 */ - "points-14678", /* \373\027 */ - "points-1468", /* \373\030 */ - "points-147", /* \373\031 */ - "points-1478", /* \373\032 */ - "points-148", /* \373\033 */ - "points-15", /* \373\034 */ - "points-156", /* \373\035 */ - "points-1567", /* \373\036 */ - "points-15678", /* \373\037 */ - "points-1568", /* \373\040 */ - "points-157", /* \373\041 */ - "points-1578", /* \373\042 */ - "points-158", /* \373\043 */ - "points-16", /* \373\044 */ - "points-167", /* \373\045 */ - "points-1678", /* \373\046 */ - "points-168", /* \373\047 */ - "points-17", /* \373\050 */ - "points-178", /* \373\051 */ - "points-18", /* \373\052 */ - "points-2", /* \373\053 */ - "points-23", /* \373\054 */ - "points-234", /* \373\055 */ - "points-2345", /* \373\056 */ - "points-23456", /* \373\057 */ - "points-234567", /* \373\060 */ - "points-2345678", /* \373\061 */ - "points-234568", /* \373\062 */ - "points-23457", /* \373\063 */ - "points-234578", /* \373\064 */ - "points-23458", /* \373\065 */ - "points-2346", /* \373\066 */ - "points-23467", /* \373\067 */ - "points-234678", /* \373\070 */ - "points-23468", /* \373\071 */ - "points-2347", /* \373\072 */ - "points-23478", /* \373\073 */ - "points-2348", /* \373\074 */ - "points-235", /* \373\075 */ - "points-2356", /* \373\076 */ - "points-23567", /* \373\077 */ - "points-235678", /* \373\100 */ - "points-23568", /* \373\101 */ - "points-2357", /* \373\102 */ - "points-23578", /* \373\103 */ - "points-2358", /* \373\104 */ - "points-236", /* \373\105 */ - "points-2367", /* \373\106 */ - "points-23678", /* \373\107 */ - "points-2368", /* \373\110 */ - "points-237", /* \373\111 */ - "points-2378", /* \373\112 */ - "points-238", /* \373\113 */ - "points-24", /* \373\114 */ - "points-245", /* \373\115 */ - "points-2456", /* \373\116 */ - "points-24567", /* \373\117 */ - "points-245678", /* \373\120 */ - "points-24568", /* \373\121 */ - "points-2457", /* \373\122 */ - "points-24578", /* \373\123 */ - "points-2458", /* \373\124 */ - "points-246", /* \373\125 */ - "points-2467", /* \373\126 */ - "points-24678", /* \373\127 */ - "points-2468", /* \373\130 */ - "points-247", /* \373\131 */ - "points-2478", /* \373\132 */ - "points-248", /* \373\133 */ - "points-25", /* \373\134 */ - "points-256", /* \373\135 */ - "points-2567", /* \373\136 */ - "points-25678", /* \373\137 */ - "points-2568", /* \373\140 */ - "points-257", /* \373\141 */ - "points-2578", /* \373\142 */ - "points-258", /* \373\143 */ - "points-26", /* \373\144 */ - "points-267", /* \373\145 */ - "points-2678", /* \373\146 */ - "points-268", /* \373\147 */ - "points-27", /* \373\150 */ - "points-278", /* \373\151 */ - "points-28", /* \373\152 */ - "points-3", /* \373\153 */ - "points-34", /* \373\154 */ - "points-345", /* \373\155 */ - "points-3456", /* \373\156 */ - "points-34567", /* \373\157 */ - "points-345678", /* \373\160 */ - "points-34568", /* \373\161 */ - "points-3457", /* \373\162 */ - "points-34578", /* \373\163 */ - "points-3458", /* \373\164 */ - "points-346", /* \373\165 */ - "points-3467", /* \373\166 */ - "points-34678", /* \373\167 */ - "points-3468", /* \373\170 */ - "points-347", /* \373\171 */ - "points-3478", /* \373\172 */ - "points-348", /* \373\173 */ - "points-35", /* \373\174 */ - "points-356", /* \373\175 */ - "points-3567", /* \373\176 */ - "points-35678", /* \373\177 */ - "points-3568", /* \373\200 */ - "points-357", /* \373\201 */ - "points-3578", /* \373\202 */ - "points-358", /* \373\203 */ - "points-36", /* \373\204 */ - "points-367", /* \373\205 */ - "points-3678", /* \373\206 */ - "points-368", /* \373\207 */ - "points-37", /* \373\210 */ - "points-378", /* \373\211 */ - "points-38", /* \373\212 */ - "points-4", /* \373\213 */ - "points-45", /* \373\214 */ - "points-456", /* \373\215 */ - "points-4567", /* \373\216 */ - "points-45678", /* \373\217 */ - "points-4568", /* \373\220 */ - "points-457", /* \373\221 */ - "points-4578", /* \373\222 */ - "points-458", /* \373\223 */ - "points-46", /* \373\224 */ - "points-467", /* \373\225 */ - "points-4678", /* \373\226 */ - "points-468", /* \373\227 */ - "points-47", /* \373\230 */ - "points-478", /* \373\231 */ - "points-48", /* \373\232 */ - "points-5", /* \373\233 */ - "points-56", /* \373\234 */ - "points-567", /* \373\235 */ - "points-5678", /* \373\236 */ - "points-568", /* \373\237 */ - "points-57", /* \373\240 */ - "points-578", /* \373\241 */ - "points-58", /* \373\242 */ - "points-6", /* \373\243 */ - "points-67", /* \373\244 */ - "points-678", /* \373\245 */ - "points-68", /* \373\246 */ - "points-7", /* \373\247 */ - "points-78", /* \373\250 */ - "points-8", /* \373\251 */ - "poissons", /* \373\252 */ - "pommet�", /* \373\253 */ - "pondo", /* \373\254 */ - "pop", /* \373\255 */ - "postposition", /* \373\256 */ - "pot", /* \373\257 */ - "poterie", /* \373\260 */ - "pouce", /* \373\261 */ - "pox", /* \373\262 */ - "ppm", /* \373\263 */ - "pr", /* \373\264 */ - "prec�de", /* \373\265 */ - "profil", /* \373\266 */ - "progiciel", /* \373\267 */ - "projective", /* \373\270 */ - "proportionnel", /* \373\271 */ - "prosternation", /* \373\272 */ - "prouve", /* \373\273 */ - "pr�c�dent", /* \373\274 */ - "pr�c�dente", /* \373\275 */ - "pr�c�d�e", /* \373\276 */ - "pr�d�fini", /* \373\277 */ - "pr�face", /* \373\300 */ - "ps", /* \373\301 */ - "psili", /* \373\302 */ - "puo", /* \373\303 */ - "puop", /* \373\304 */ - "puox", /* \373\305 */ - "pup", /* \373\306 */ - "pur", /* \373\307 */ - "purx", /* \373\310 */ - "pux", /* \373\311 */ - "pv", /* \373\312 */ - "pw", /* \373\313 */ - "pwa", /* \373\314 */ - "py", /* \373\315 */ - "pyp", /* \373\316 */ - "pyr", /* \373\317 */ - "pyrx", /* \373\320 */ - "pyx", /* \373\321 */ - "p�", /* \373\322 */ - "p�", /* \373\323 */ - "p�sento", /* \373\324 */ - "p�tu", /* \373\325 */ - "p��", /* \373\326 */ - "p�re", /* \373\327 */ - "p�zi", /* \373\330 */ - "qala", /* \373\331 */ - "qaton", /* \373\332 */ - "qa�", /* \373\333 */ - "qe", /* \373\334 */ - "qha", /* \373\335 */ - "qhe", /* \373\336 */ - "qhi", /* \373\337 */ - "qho", /* \373\340 */ - "qhou", /* \373\341 */ - "qhwa", /* \373\342 */ - "qhwe", /* \373\343 */ - "qhwi", /* \373\344 */ - "qhw�", /* \373\345 */ - "qhw�", /* \373\346 */ - "qh�", /* \373\347 */ - "qh�", /* \373\350 */ - "qie", /* \373\351 */ - "qiep", /* \373\352 */ - "qiet", /* \373\353 */ - "qiex", /* \373\354 */ - "qip", /* \373\355 */ - "qit", /* \373\356 */ - "qix", /* \373\357 */ - "qof", /* \373\360 */ - "qop", /* \373\361 */ - "qou", /* \373\362 */ - "qouchch�i", /* \373\363 */ - "qouf", /* \373\364 */ - "qox", /* \373\365 */ - "qo�ph", /* \373\366 */ - "qu", /* \373\367 */ - "qu'il", /* \373\370 */ - "quarante", /* \373\371 */ - "quartefeuille", /* \373\372 */ - "quatre-points", /* \373\373 */ - "quatre-vingt-dix", /* \373\374 */ - "quatre-vingts", /* \373\375 */ - "quo", /* \373\376 */ - "quop", /* \373\377 */ - "quot", /* \374\001 */ - "quox", /* \374\002 */ - "qup", /* \374\003 */ - "qur", /* \374\004 */ - "qurx", /* \374\005 */ - "qut", /* \374\006 */ - "qux", /* \374\007 */ - "qwa", /* \374\010 */ - "qwe", /* \374\011 */ - "qwi", /* \374\012 */ - "qw�", /* \374\013 */ - "qw�", /* \374\014 */ - "qy", /* \374\015 */ - "qyp", /* \374\016 */ - "qyr", /* \374\017 */ - "qyrx", /* \374\020 */ - "qyt", /* \374\021 */ - "qyx", /* \374\022 */ - "q�", /* \374\023 */ - "q�", /* \374\024 */ - "q�fou", /* \374\025 */ - "q��", /* \374\026 */ - "q�", /* \374\027 */ - "q�", /* \374\030 */ - "q�", /* \374\031 */ - "radioactivivit�", /* \374\032 */ - "rae", /* \374\033 */ - "raido", /* \374\034 */ - "rail", /* \374\035 */ - "rakhang", /* \374\036 */ - "rap", /* \374\037 */ - "rapport", /* \374\040 */ - "rasoul", /* \374\041 */ - "ravia", /* \374\042 */ - "rax", /* \374\043 */ - "rayanna", /* \374\044 */ - "rayonnant", /* \374\045 */ - "ray�", /* \374\046 */ - "ra�", /* \374\047 */ - "rectangulaire", /* \374\050 */ - "reid", /* \374\051 */ - "religion", /* \374\052 */ - "remu", /* \374\053 */ - "rentogen", /* \374\054 */ - "rep", /* \374\055 */ - "repr�sente", /* \374\056 */ - "rew�hh�", /* \374\057 */ - "rex", /* \374\060 */ - "rhotacisme", /* \374\061 */ - "rh�ostat", /* \374\062 */ - "rideaux", /* \374\063 */ - "riel", /* \374\064 */ - "rin", /* \374\065 */ - "rira", /* \374\066 */ - "rittoru", /* \374\067 */ - "rivi�re", /* \374\070 */ - "rixe", /* \374\071 */ - "riz", /* \374\072 */ - "ri�l-k'i�k'", /* \374\073 */ - "ri�l-kapyo-ounpi�p", /* \374\074 */ - "ri�l-mi�m-kiyok", /* \374\075 */ - "ri�l-mi�m-si�s", /* \374\076 */ - "ri�l-pi�p-hi�h", /* \374\077 */ - "ri�l-ssangsi�s", /* \374\100 */ - "ri�l-tik�t-hi�h", /* \374\101 */ - "rjes", /* \374\102 */ - "robat", /* \374\103 */ - "rop", /* \374\104 */ - "rot", /* \374\105 */ - "roua", /* \374\106 */ - "roub", /* \374\107 */ - "rouge", /* \374\110 */ - "roukk�kh", /* \374\111 */ - "rousi", /* \374\112 */ - "rox", /* \374\113 */ - "rrax", /* \374\114 */ - "rre", /* \374\115 */ - "rrep", /* \374\116 */ - "rret", /* \374\117 */ - "rrex", /* \374\120 */ - "rro", /* \374\121 */ - "rrop", /* \374\122 */ - "rrot", /* \374\123 */ - "rrox", /* \374\124 */ - "rru", /* \374\125 */ - "rruo", /* \374\126 */ - "rruox", /* \374\127 */ - "rrup", /* \374\130 */ - "rrur", /* \374\131 */ - "rrurx", /* \374\132 */ - "rrut", /* \374\133 */ - "rrux", /* \374\134 */ - "rry", /* \374\135 */ - "rryp", /* \374\136 */ - "rryr", /* \374\137 */ - "rryrx", /* \374\140 */ - "rryt", /* \374\141 */ - "rryx", /* \374\142 */ - "ruban", /* \374\143 */ - "ruis", /* \374\144 */ - "ruo", /* \374\145 */ - "ruop", /* \374\146 */ - "ruox", /* \374\147 */ - "rup", /* \374\150 */ - "rup�", /* \374\151 */ - "rur", /* \374\152 */ - "rurx", /* \374\153 */ - "rut", /* \374\154 */ - "rux", /* \374\155 */ - "rwa", /* \374\156 */ - "ry", /* \374\157 */ - "ryp", /* \374\160 */ - "ryr", /* \374\161 */ - "ryrx", /* \374\162 */ - "ryt", /* \374\163 */ - "ryx", /* \374\164 */ - "ry�", /* \374\165 */ - "r�", /* \374\166 */ - "r�", /* \374\167 */ - "r��", /* \374\170 */ - "r��", /* \374\171 */ - "r�ahmouk", /* \374\172 */ - "r�f�rence", /* \374\173 */ - "r�gion", /* \374\174 */ - "r�ponse", /* \374\175 */ - "r�sister", /* \374\176 */ - "r�tr�cissement", /* \374\177 */ - "r�union", /* \374\200 */ - "r�", /* \374\201 */ - "r�", /* \374\202 */ - "r�buru", /* \374\203 */ - "s'opposer", /* \374\204 */ - "s-ou", /* \374\205 */ - "sablier", /* \374\206 */ - "sacrificiel", /* \374\207 */ - "sagittaire", /* \374\210 */ - "saikuru", /* \374\211 */ - "sail", /* \374\212 */ - "sala", /* \374\213 */ - "salam", /* \374\214 */ - "sallallahou", /* \374\215 */ - "samphao", /* \374\216 */ - "sang", /* \374\217 */ - "sangl�", /* \374\220 */ - "sant�mu", /* \374\221 */ - "sany�ga", /* \374\222 */ - "sap", /* \374\223 */ - "sapin", /* \374\224 */ - "sat", /* \374\225 */ - "saut", /* \374\226 */ - "sax", /* \374\227 */ - "sayanna", /* \374\230 */ - "sa��a", /* \374\231 */ - "sa��ok", /* \374\232 */ - "sbroul", /* \374\233 */ - "sbub", /* \374\234 */ - "scorpion", /* \374\235 */ - "scrupule", /* \374\236 */ - "sdong", /* \374\237 */ - "sec", /* \374\240 */ - "seconde", /* \374\241 */ - "secret", /* \374\242 */ - "secteur", /* \374\243 */ - "segment", /* \374\244 */ - "segol", /* \374\245 */ - "segolta", /* \374\246 */ - "senti", /* \374\247 */ - "sento", /* \374\250 */ - "sep", /* \374\251 */ - "septembre", /* \374\252 */ - "serpent", /* \374\253 */ - "service", /* \374\254 */ - "serviette", /* \374\255 */ - "sex", /* \374\256 */ - "sgab", /* \374\257 */ - "sgor", /* \374\260 */ - "sgra", /* \374\261 */ - "shap", /* \374\262 */ - "shax", /* \374\263 */ - "she", /* \374\264 */ - "shep", /* \374\265 */ - "shet", /* \374\266 */ - "shex", /* \374\267 */ - "sho", /* \374\270 */ - "shog", /* \374\271 */ - "shot", /* \374\272 */ - "shox", /* \374\273 */ - "shu", /* \374\274 */ - "shuo", /* \374\275 */ - "shuop", /* \374\276 */ - "shuox", /* \374\277 */ - "shup", /* \374\300 */ - "shurx", /* \374\301 */ - "shut", /* \374\302 */ - "shux", /* \374\303 */ - "shyp", /* \374\304 */ - "shyr", /* \374\305 */ - "shyrx", /* \374\306 */ - "shyt", /* \374\307 */ - "shyx", /* \374\310 */ - "sie", /* \374\311 */ - "siep", /* \374\312 */ - "siex", /* \374\313 */ - "sigel", /* \374\314 */ - "sign", /* \374\315 */ - "sin", /* \374\316 */ - "sinuso�de", /* \374\317 */ - "sip", /* \374\320 */ - "siringu", /* \374\321 */ - "sit", /* \374\322 */ - "sixi�mes", /* \374\323 */ - "sixtefeuille", /* \374\324 */ - "si�s-hi�h", /* \374\325 */ - "si�s-i�ng", /* \374\326 */ - "si�s-k'i�k'", /* \374\327 */ - "si�s-mi�m", /* \374\330 */ - "si�s-p'i�p'", /* \374\331 */ - "si�s-pi�p-kiyok", /* \374\332 */ - "si�s-ssangsi�s", /* \374\333 */ - "si�s-t'i�t'", /* \374\334 */ - "si�s-tch'i�tch'", /* \374\335 */ - "sk", /* \374\336 */ - "skou", /* \374\337 */ - "skoua", /* \374\340 */ - "sna", /* \374\341 */ - "sof", /* \374\342 */ - "soi", /* \374\343 */ - "soi-m�me", /* \374\344 */ - "soins", /* \374\345 */ - "soir", /* \374\346 */ - "soixante", /* \374\347 */ - "soixante-dix", /* \374\350 */ - "sol-�-longue-branche", /* \374\351 */ - "sol-�-ramille", /* \374\352 */ - "sommation", /* \374\353 */ - "sonnette", /* \374\354 */ - "sop", /* \374\355 */ - "sortant", /* \374\356 */ - "sot", /* \374\357 */ - "sources", /* \374\360 */ - "sourire", /* \374\361 */ - "sous-article", /* \374\362 */ - "sowilo", /* \374\363 */ - "sox", /* \374\364 */ - "sph�rique", /* \374\365 */ - "spoua", /* \374\366 */ - "spungs", /* \374\367 */ - "sr", /* \374\370 */ - "ssangar�a", /* \374\371 */ - "ssap", /* \374\372 */ - "ssat", /* \374\373 */ - "ssax", /* \374\374 */ - "sse", /* \374\375 */ - "ssep", /* \374\376 */ - "ssex", /* \374\377 */ - "ssie", /* \375\001 */ - "ssiep", /* \375\002 */ - "ssiex", /* \375\003 */ - "ssip", /* \375\004 */ - "ssit", /* \375\005 */ - "ssix", /* \375\006 */ - "sso", /* \375\007 */ - "ssop", /* \375\010 */ - "ssot", /* \375\011 */ - "ssox", /* \375\012 */ - "ssu", /* \375\013 */ - "ssup", /* \375\014 */ - "ssut", /* \375\015 */ - "ssux", /* \375\016 */ - "ssy", /* \375\017 */ - "ssyp", /* \375\020 */ - "ssyr", /* \375\021 */ - "ssyrx", /* \375\022 */ - "ssyt", /* \375\023 */ - "ssyx", /* \375\024 */ - "ss�dh�", /* \375\025 */ - "st", /* \375\026 */ - "stan", /* \375\027 */ - "stchoua", /* \375\030 */ - "stoua", /* \375\031 */ - "straif", /* \375\032 */ - "succursale", /* \375\033 */ - "suo", /* \375\034 */ - "suop", /* \375\035 */ - "suox", /* \375\036 */ - "sup", /* \375\037 */ - "supervise", /* \375\040 */ - "superviser", /* \375\041 */ - "supression", /* \375\042 */ - "surface", /* \375\043 */ - "surx", /* \375\044 */ - "suspendus", /* \375\045 */ - "sut", /* \375\046 */ - "sux", /* \375\047 */ - "sv", /* \375\050 */ - "swa", /* \375\051 */ - "sy", /* \375\052 */ - "syllabes", /* \375\053 */ - "sym�trie", /* \375\054 */ - "syp", /* \375\055 */ - "syr", /* \375\056 */ - "syrx", /* \375\057 */ - "syst�me", /* \375\060 */ - "syt", /* \375\061 */ - "syx", /* \375\062 */ - "s�", /* \375\063 */ - "s�n", /* \375\064 */ - "s�", /* \375\065 */ - "s�dhou", /* \375\066 */ - "s��", /* \375\067 */ - "s�gol", /* \375\070 */ - "s�quence", /* \375\071 */ - "s�rieux", /* \375\072 */ - "s�", /* \375\073 */ - "s�nou", /* \375\074 */ - "s�r", /* \375\075 */ - "t'", /* \375\076 */ - "tah", /* \375\077 */ - "talchah", /* \375\100 */ - "tambour", /* \375\101 */ - "tao", /* \375\102 */ - "tap", /* \375\103 */ - "tarha", /* \375\104 */ - "tarsa", /* \375\105 */ - "tat", /* \375\106 */ - "taureau", /* \375\107 */ - "taviyani", /* \375\110 */ - "taw", /* \375\111 */ - "tax", /* \375\112 */ - "ta�ch�", /* \375\113 */ - "tc", /* \375\114 */ - "tch'", /* \375\115 */ - "tch'e", /* \375\116 */ - "tch'itou�msi�s", /* \375\117 */ - "tch'itou�mssangsi�s", /* \375\120 */ - "tch'itou�mssangtchi�tch", /* \375\121 */ - "tch'itou�mtch'i�tch'", /* \375\122 */ - "tch'itou�mtchi�tch", /* \375\123 */ - "tch'i�tch'-hi�h", /* \375\124 */ - "tch'i�tch'-k'i�k'", /* \375\125 */ - "tchada", /* \375\126 */ - "tchamnotch", /* \375\127 */ - "tchang", /* \375\130 */ - "tchatawa", /* \375\131 */ - "tchattawa", /* \375\132 */ - "tchaviyani", /* \375\133 */ - "tchho", /* \375\134 */ - "tching", /* \375\135 */ - "tchi�tch-i�ng", /* \375\136 */ - "tchoeng", /* \375\137 */ - "tchongtch'i�msi�s", /* \375\140 */ - "tchongtch'i�mssangsi�s", /* \375\141 */ - "tchongtch'i�mssangtchi�tch",/* \375\142 */ - "tchongtch'i�mtch'i�tch'", /* \375\143 */ - "tchongtch'i�mtchi�tch", /* \375\144 */ - "tchoula", /* \375\145 */ - "tcho�", /* \375\146 */ - "tchwa", /* \375\147 */ - "tchya", /* \375\150 */ - "tch�", /* \375\151 */ - "tch�", /* \375\152 */ - "tch��", /* \375\153 */ - "tch�", /* \375\154 */ - "te'u", /* \375\155 */ - "tech", /* \375\156 */ - "teleia", /* \375\157 */ - "tend", /* \375\160 */ - "tep", /* \375\161 */ - "terminateur", /* \375\162 */ - "ter�", /* \375\163 */ - "tevir", /* \375\164 */ - "tex", /* \375\165 */ - "thahan", /* \375\166 */ - "thanthakhat", /* \375\167 */ - "thong", /* \375\170 */ - "thorn,", /* \375\171 */ - "thoung", /* \375\172 */ - "thurisaz,", /* \375\173 */ - "thurs,", /* \375\174 */ - "thwa", /* \375\175 */ - "thz", /* \375\176 */ - "th�", /* \375\177 */ - "th�lu", /* \375\200 */ - "tibetain", /* \375\201 */ - "tie", /* \375\202 */ - "tiep", /* \375\203 */ - "tiex", /* \375\204 */ - "tik�t-ri�l", /* \375\205 */ - "tinne", /* \375\206 */ - "tip", /* \375\207 */ - "tippi", /* \375\210 */ - "tir", /* \375\211 */ - "tirer", /* \375\212 */ - "tironnienne", /* \375\213 */ - "tit", /* \375\214 */ - "tiwaz", /* \375\215 */ - "tix", /* \375\216 */ - "tja", /* \375\217 */ - "tle", /* \375\220 */ - "tlhe", /* \375\221 */ - "tlhou", /* \375\222 */ - "tl�n", /* \375\223 */ - "toandakhiat", /* \375\224 */ - "toit", /* \375\225 */ - "tonne", /* \375\226 */ - "tonnerre", /* \375\227 */ - "top", /* \375\230 */ - "tort", /* \375\231 */ - "tot", /* \375\232 */ - "totale", /* \375\233 */ - "tou", /* \375\234 */ - "touffe", /* \375\235 */ - "tougrik", /* \375\236 */ - "tous", /* \375\237 */ - "tout", /* \375\240 */ - "tox", /* \375\241 */ - "traces", /* \375\242 */ - "train", /* \375\243 */ - "trait-d'union", /* \375\244 */ - "tranche", /* \375\245 */ - "transperc�s", /* \375\246 */ - "trappu", /* \375\247 */ - "trappue", /* \375\250 */ - "travers�", /* \375\251 */ - "tra�age", /* \375\252 */ - "trente-et-un", /* \375\253 */ - "tri", /* \375\254 */ - "triangulaires", /* \375\255 */ - "tripode", /* \375\256 */ - "troisi�me", /* \375\257 */ - "tronqu�", /* \375\260 */ - "tr�fl�e", /* \375\261 */ - "tr�sap", /* \375\262 */ - "ts'", /* \375\263 */ - "tshugs", /* \375\264 */ - "tsinor", /* \375\265 */ - "tswa", /* \375\266 */ - "ts�", /* \375\267 */ - "ts�n", /* \375\270 */ - "ts�r�", /* \375\271 */ - "ttcha", /* \375\272 */ - "ttche", /* \375\273 */ - "ttchi", /* \375\274 */ - "ttcho", /* \375\275 */ - "ttchou", /* \375\276 */ - "ttchwa", /* \375\277 */ - "ttch�", /* \375\300 */ - "ttch�", /* \375\301 */ - "tte", /* \375\302 */ - "tth", /* \375\303 */ - "tthi", /* \375\304 */ - "tth�", /* \375\305 */ - "ttou", /* \375\306 */ - "ttsa", /* \375\307 */ - "ttse", /* \375\310 */ - "ttsi", /* \375\311 */ - "ttso", /* \375\312 */ - "ttsou", /* \375\313 */ - "tts�", /* \375\314 */ - "tt�", /* \375\315 */ - "tuile", /* \375\316 */ - "tuo", /* \375\317 */ - "tuop", /* \375\320 */ - "tuot", /* \375\321 */ - "tuox", /* \375\322 */ - "tup", /* \375\323 */ - "tur", /* \375\324 */ - "turx", /* \375\325 */ - "tut", /* \375\326 */ - "tux", /* \375\327 */ - "tvimadur", /* \375\330 */ - "twa", /* \375\331 */ - "tya", /* \375\332 */ - "tyi", /* \375\333 */ - "tyo", /* \375\334 */ - "type-h", /* \375\335 */ - "type-l", /* \375\336 */ - "tyr", /* \375\337 */ - "tyr-�-ramille", /* \375\340 */ - "ty�", /* \375\341 */ - "tz", /* \375\342 */ - "tz'", /* \375\343 */ - "tza", /* \375\344 */ - "tze", /* \375\345 */ - "tzi", /* \375\346 */ - "tzo", /* \375\347 */ - "tzou", /* \375\350 */ - "tz�", /* \375\351 */ - "tz�", /* \375\352 */ - "t�", /* \375\353 */ - "t�", /* \375\354 */ - "t�m�", /* \375\355 */ - "t��", /* \375\356 */ - "t�l�phonique", /* \375\357 */ - "t�tard", /* \375\360 */ - "t�", /* \375\361 */ - "uath", /* \375\362 */ - "ubjointe", /* \375\363 */ - "uilleann", /* \375\364 */ - "ukrainien", /* \375\365 */ - "ukrainienne", /* \375\366 */ - "ultra-fine", /* \375\367 */ - "una", /* \375\370 */ - "une", /* \375\371 */ - "uo", /* \375\372 */ - "uon", /* \375\373 */ - "uop", /* \375\374 */ - "uox", /* \375\375 */ - "ur", /* \375\376 */ - "uranus", /* \375\377 */ - "uruz", /* \376\001 */ - "utiliser", /* \376\002 */ - "uu", /* \376\003 */ - "vaisselle", /* \376\004 */ - "vall�e", /* \376\005 */ - "vap", /* \376\006 */ - "vapeur", /* \376\007 */ - "variant", /* \376\010 */ - "varika", /* \376\011 */ - "vat", /* \376\012 */ - "vax", /* \376\013 */ - "vayanna", /* \376\014 */ - "verrou", /* \376\015 */ - "verseau", /* \376\016 */ - "versicule", /* \376\017 */ - "vex", /* \376\020 */ - "victoire", /* \376\021 */ - "vide", /* \376\022 */ - "vid�e", /* \376\023 */ - "vie", /* \376\024 */ - "viep", /* \376\025 */ - "vierge", /* \376\026 */ - "viet", /* \376\027 */ - "viex", /* \376\030 */ - "ville", /* \376\031 */ - "vingt-cinq", /* \376\032 */ - "vingt-huit", /* \376\033 */ - "vingt-neuf", /* \376\034 */ - "vingt-sept", /* \376\035 */ - "vingt-six", /* \376\036 */ - "vip", /* \376\037 */ - "virages", /* \376\040 */ - "viriam", /* \376\041 */ - "virtuelle", /* \376\042 */ - "visargaya", /* \376\043 */ - "visualisation", /* \376\044 */ - "visuel", /* \376\045 */ - "vit", /* \376\046 */ - "vix", /* \376\047 */ - "volume", /* \376\050 */ - "vop", /* \376\051 */ - "vot", /* \376\052 */ - "vou", /* \376\053 */ - "vox", /* \376\054 */ - "voyelles", /* \376\055 */ - "vup", /* \376\056 */ - "vurx", /* \376\057 */ - "vut", /* \376\060 */ - "vux", /* \376\061 */ - "vwa", /* \376\062 */ - "vy", /* \376\063 */ - "vyp", /* \376\064 */ - "vyr", /* \376\065 */ - "vyrx", /* \376\066 */ - "vyt", /* \376\067 */ - "vyx", /* \376\070 */ - "v�", /* \376\071 */ - "v�vou", /* \376\072 */ - "wap", /* \376\073 */ - "wat", /* \376\074 */ - "watto", /* \376\075 */ - "wax", /* \376\076 */ - "wb", /* \376\077 */ - "weierstrass", /* \376\100 */ - "wep", /* \376\101 */ - "wex", /* \376\102 */ - "wop", /* \376\103 */ - "wox", /* \376\104 */ - "wu", /* \376\105 */ - "wunjo", /* \376\106 */ - "wuo", /* \376\107 */ - "wuop", /* \376\110 */ - "wuox", /* \376\111 */ - "w�", /* \376\112 */ - "w�vou", /* \376\113 */ - "xa", /* \376\114 */ - "xe", /* \376\115 */ - "xie", /* \376\116 */ - "xiep", /* \376\117 */ - "xiet", /* \376\120 */ - "xiex", /* \376\121 */ - "xip", /* \376\122 */ - "xit", /* \376\123 */ - "xix", /* \376\124 */ - "xop", /* \376\125 */ - "xot", /* \376\126 */ - "xou", /* \376\127 */ - "xox", /* \376\130 */ - "xuo", /* \376\131 */ - "xuox", /* \376\132 */ - "xwa", /* \376\133 */ - "xwe", /* \376\134 */ - "xwi", /* \376\135 */ - "xw�", /* \376\136 */ - "xw�", /* \376\137 */ - "xy", /* \376\140 */ - "xyp", /* \376\141 */ - "xyr", /* \376\142 */ - "xyrx", /* \376\143 */ - "xyt", /* \376\144 */ - "xyx", /* \376\145 */ - "x�", /* \376\146 */ - "x�", /* \376\147 */ - "ya-y�", /* \376\150 */ - "ya-�", /* \376\151 */ - "yak", /* \376\152 */ - "yamakkan", /* \376\153 */ - "yar", /* \376\154 */ - "yar�ah", /* \376\155 */ - "yayanna", /* \376\156 */ - "yetiv", /* \376\157 */ - "yie", /* \376\160 */ - "yiep", /* \376\161 */ - "yiet", /* \376\162 */ - "yiex", /* \376\163 */ - "ying", /* \376\164 */ - "yip", /* \376\165 */ - "yix", /* \376\166 */ - "yo-ou", /* \376\167 */ - "yo-�", /* \376\170 */ - "yomo", /* \376\171 */ - "yop", /* \376\172 */ - "you-a", /* \376\173 */ - "you-o", /* \376\174 */ - "you-ou", /* \376\175 */ - "you-�", /* \376\176 */ - "yox", /* \376\177 */ - "yo�kal�apintou", /* \376\200 */ - "yr-islandais", /* \376\201 */ - "yr-�-longue-branche", /* \376\202 */ - "yr-�-ramille", /* \376\203 */ - "yuan", /* \376\204 */ - "yuo", /* \376\205 */ - "yuop", /* \376\206 */ - "yuot", /* \376\207 */ - "yuox", /* \376\210 */ - "yup", /* \376\211 */ - "yur", /* \376\212 */ - "yurx", /* \376\213 */ - "yut", /* \376\214 */ - "yux", /* \376\215 */ - "yy", /* \376\216 */ - "yyp", /* \376\217 */ - "yyr", /* \376\220 */ - "yyrx", /* \376\221 */ - "yyt", /* \376\222 */ - "yyx", /* \376\223 */ - "y�", /* \376\224 */ - "y�n", /* \376\225 */ - "y�do", /* \376\226 */ - "y�ru", /* \376\227 */ - "y��", /* \376\230 */ - "y�", /* \376\231 */ - "y�-yo", /* \376\232 */ - "y�-�", /* \376\233 */ - "zap", /* \376\234 */ - "zarqa", /* \376\235 */ - "zat", /* \376\236 */ - "zaviyani", /* \376\237 */ - "zax", /* \376\240 */ - "zep", /* \376\241 */ - "zex", /* \376\242 */ - "zhap", /* \376\243 */ - "zhat", /* \376\244 */ - "zhax", /* \376\245 */ - "zhe", /* \376\246 */ - "zhep", /* \376\247 */ - "zhet", /* \376\250 */ - "zhex", /* \376\251 */ - "zho", /* \376\252 */ - "zhop", /* \376\253 */ - "zhot", /* \376\254 */ - "zhox", /* \376\255 */ - "zhu", /* \376\256 */ - "zhuo", /* \376\257 */ - "zhuop", /* \376\260 */ - "zhuox", /* \376\261 */ - "zhup", /* \376\262 */ - "zhur", /* \376\263 */ - "zhurx", /* \376\264 */ - "zhut", /* \376\265 */ - "zhux", /* \376\266 */ - "zhy", /* \376\267 */ - "zhyp", /* \376\270 */ - "zhyr", /* \376\271 */ - "zhyrx", /* \376\272 */ - "zhyt", /* \376\273 */ - "zhyx", /* \376\274 */ - "zie", /* \376\275 */ - "ziep", /* \376\276 */ - "ziex", /* \376\277 */ - "zigzag", /* \376\300 */ - "zilde", /* \376\301 */ - "zip", /* \376\302 */ - "zit", /* \376\303 */ - "zix", /* \376\304 */ - "zop", /* \376\305 */ - "zox", /* \376\306 */ - "zra", /* \376\307 */ - "zuo", /* \376\310 */ - "zuop", /* \376\311 */ - "zuox", /* \376\312 */ - "zup", /* \376\313 */ - "zurx", /* \376\314 */ - "zut", /* \376\315 */ - "zux", /* \376\316 */ - "zwa", /* \376\317 */ - "zy", /* \376\320 */ - "zyp", /* \376\321 */ - "zyr", /* \376\322 */ - "zyrx", /* \376\323 */ - "zyt", /* \376\324 */ - "zyx", /* \376\325 */ - "zza", /* \376\326 */ - "zzap", /* \376\327 */ - "zzat", /* \376\330 */ - "zzax", /* \376\331 */ - "zze", /* \376\332 */ - "zzep", /* \376\333 */ - "zzex", /* \376\334 */ - "zzi", /* \376\335 */ - "zzie", /* \376\336 */ - "zziep", /* \376\337 */ - "zziex", /* \376\340 */ - "zzit", /* \376\341 */ - "zzix", /* \376\342 */ - "zzo", /* \376\343 */ - "zzop", /* \376\344 */ - "zzox", /* \376\345 */ - "zzu", /* \376\346 */ - "zzup", /* \376\347 */ - "zzur", /* \376\350 */ - "zzurx", /* \376\351 */ - "zzux", /* \376\352 */ - "zzy", /* \376\353 */ - "zzyp", /* \376\354 */ - "zzyr", /* \376\355 */ - "zzyrx", /* \376\356 */ - "zzyt", /* \376\357 */ - "zzyx", /* \376\360 */ - "z�", /* \376\361 */ - "z�", /* \376\362 */ - "�sc", /* \376\363 */ - "�yanna", /* \376\364 */ - "��yanna", /* \376\365 */ - "�", /* \376\366 */ - "�n", /* \376\367 */ - "�r", /* \376\370 */ - "�r", /* \376\371 */ - "�", /* \376\372 */ - "܌", /* \376\373 */ - "��", /* \376\374 */ - "�b�fili", /* \376\375 */ - "�cre", /* \376\376 */ - "�di", /* \376\377 */ - "�ru", /* \377\001 */ - "�yanna", /* \377\002 */ - "��", /* \377\003 */ - "�ad", /* \377\004 */ - "�akti", /* \377\005 */ - "�ayanna", /* \377\006 */ - "�e", /* \377\007 */ - "�i", /* \377\010 */ - "�o", /* \377\011 */ - "�ou", /* \377\012 */ - "�wa", /* \377\013 */ - "��", /* \377\014 */ - "��", /* \377\015 */ - "�n", /* \377\016 */ - "�ni", /* \377\017 */ - "�abhadh", /* \377\020 */ - "�b�fili", /* \377\021 */ - "�clair", /* \377\022 */ - "�cras�", /* \377\023 */ - "�criture", /* \377\024 */ - "�cu", /* \377\025 */ - "�galit�", /* \377\026 */ - "�k", /* \377\027 */ - "�lectrique", /* \377\030 */ - "�leveuse", /* \377\031 */ - "�paisse", /* \377\032 */ - "�paulement", /* \377\033 */ - "�quiangulaire", /* \377\034 */ - "�tag�re", /* \377\035 */ - "�tir�", /* \377\036 */ - "�trangler", /* \377\037 */ - "�troite", /* \377\040 */ - "�yanna", /* \377\041 */ - "�b�fili", /* \377\042 */ - "�k�", /* \377\043 */ - "�yanna", /* \377\044 */ - "�b�fili", /* \377\045 */ - "�l", /* \377\046 */ - "�yanna", /* \377\047 */ - "�asubjointe", /* \377\050 */ - "�e", /* \377\051 */ - "�ou", /* \377\052 */ - "�wa", /* \377\053 */ - "��", /* \377\054 */ - "��a", /* \377\055 */ - "�-o", /* \377\056 */ - "�-ou", /* \377\057 */ - "�-y�", /* \377\060 */ - "�-�", /* \377\061 */ - "�-�", /* \377\062 */ - "�b�fili", /* \377\063 */ - "�mu", /* \377\064 */ - "�yanna", /* \377\065 */ - "�-ou", /* \377\066 */ - "�-�", /* \377\067 */ - "�i-ou", /* \377\070 */ - }; - -struct charname - { - recode_ucs2 code; - const char *crypted; - }; - -static const struct charname charname[NUMBER_OF_CHARNAMES] = - { - {0x0000, "\361\122\362\233"}, - {0x0001, "\355\320\360\155\362\252"}, - {0x0002, "\355\320\007\357\046\362\261"}, - {0x0003, "\116\007\357\046\362\215"}, - {0x0004, "\116\007\356\045\362\211"}, - {0x0005, "\360\167\362\210"}, - {0x0006, "\360\042\007\357\025\356\105\362\166"}, - {0x0007, "\361\323\362\170"}, - {0x0008, "\355\073\360\052\362\172"}, - {0x0009, "\357\045\356\335\362\222"}, - {0x000A, "\357\202\362\226"}, - {0x000B, "\357\045\256\362\265"}, - {0x000C, "\356\372\361\342\362\216"}, - {0x000D, "\361\257\007\360\114\362\175"}, - {0x000E, "\360\331\356\313\362\251"}, - {0x000F, "\013\356\313\362\250"}, - {0x0010, "\360\025\356\045\362\205"}, - {0x0011, "\355\155\356\155\110\362\177"}, - {0x0012, "\355\155\356\155\127\362\200"}, - {0x0013, "\355\155\356\155\136\362\201"}, - {0x0014, "\355\155\356\155\220\362\202"}, - {0x0015, "\360\042\007\357\025\300\362\230"}, - {0x0016, "\361\346\362\263"}, - {0x0017, "\116\007\356\045\007\355\016\362\214"}, - {0x0018, "\360\050\362\173"}, - {0x0019, "\116\007\361\343\362\207"}, - {0x001A, "\335\007\357\343\362\262"}, - {0x001B, "\360\025\362\213"}, - {0x001C, "\355\045\007\366\064\362\217"}, - {0x001D, "\355\045\007\366\247\362\220"}, - {0x001E, "\355\045\365\145\362\244"}, - {0x001F, "\355\045\007\374\362\362\264"}, - {0x0020, "\355\073"}, - {0x0021, "\037\355\312"}, - {0x0022, "\355\135\356\300"}, - {0x0023, "\357\112"}, - {0x0024, "\022\357\141"}, - {0x0025, "\022\355\057\355\245"}, - {0x0026, "\356\377"}, - {0x0027, "\355\306"}, - {0x0028, "\355\123\052"}, - {0x0029, "\355\123\053"}, - {0x002A, "\355\115"}, - {0x002B, "\057\214"}, - {0x002C, "\330"}, - {0x002D, "\355\007"}, - {0x002E, "\037"}, - {0x002F, "\246\355\044"}, - {0x0030, "\024\331"}, - {0x0031, "\024\110"}, - {0x0032, "\024\127"}, - {0x0033, "\024\136"}, - {0x0034, "\024\220"}, - {0x0035, "\024\230"}, - {0x0036, "\024\255"}, - {0x0037, "\024\252"}, - {0x0038, "\024\226"}, - {0x0039, "\024\257"}, - {0x003A, "\355\103"}, - {0x003B, "\356\104"}, - {0x003C, "\057\320\044"}, - {0x003D, "\057\173\044"}, - {0x003E, "\057\344\044"}, - {0x003F, "\037\355\313"}, - {0x0040, "\357\065"}, - {0x0041, "\001\010\006\063"}, - {0x0042, "\001\010\006\334"}, - {0x0043, "\001\010\006\313"}, - {0x0044, "\001\010\006\275"}, - {0x0045, "\001\010\006\130"}, - {0x0046, "\001\010\006\355\062"}, - {0x0047, "\001\010\006\266"}, - {0x0048, "\001\010\006\237"}, - {0x0049, "\001\010\006\103"}, - {0x004A, "\001\010\006\355\053"}, - {0x004B, "\001\010\006\352"}, - {0x004C, "\001\010\006\211"}, - {0x004D, "\001\010\006\276"}, - {0x004E, "\001\010\006\241"}, - {0x004F, "\001\010\006\064"}, - {0x0050, "\001\010\006\355\021"}, - {0x0051, "\001\010\006\355\173"}, - {0x0052, "\001\010\006\167"}, - {0x0053, "\001\010\006\223"}, - {0x0054, "\001\010\006\261"}, - {0x0055, "\001\010\006\132"}, - {0x0056, "\001\010\006\355\025"}, - {0x0057, "\001\010\006\347"}, - {0x0058, "\001\010\006\355\026"}, - {0x0059, "\001\010\006\265"}, - {0x005A, "\001\010\006\271"}, - {0x005B, "\122\052"}, - {0x005C, "\246\355\044\356\073"}, - {0x005D, "\122\221"}, - {0x005E, "\021\072"}, - {0x005F, "\355\007\101"}, - {0x0060, "\021\067"}, - {0x0061, "\001\005\006\063"}, - {0x0062, "\001\005\006\334"}, - {0x0063, "\001\005\006\313"}, - {0x0064, "\001\005\006\275"}, - {0x0065, "\001\005\006\130"}, - {0x0066, "\001\005\006\355\062"}, - {0x0067, "\001\005\006\266"}, - {0x0068, "\001\005\006\237"}, - {0x0069, "\001\005\006\103"}, - {0x006A, "\001\005\006\355\053"}, - {0x006B, "\001\005\006\352"}, - {0x006C, "\001\005\006\211"}, - {0x006D, "\001\005\006\276"}, - {0x006E, "\001\005\006\241"}, - {0x006F, "\001\005\006\064"}, - {0x0070, "\001\005\006\355\021"}, - {0x0071, "\001\005\006\355\173"}, - {0x0072, "\001\005\006\167"}, - {0x0073, "\001\005\006\223"}, - {0x0074, "\001\005\006\261"}, - {0x0075, "\001\005\006\132"}, - {0x0076, "\001\005\006\355\025"}, - {0x0077, "\001\005\006\347"}, - {0x0078, "\001\005\006\355\026"}, - {0x0079, "\001\005\006\265"}, - {0x007A, "\001\005\006\271"}, - {0x007B, "\356\051\052"}, - {0x007C, "\246\256"}, - {0x007D, "\356\051\053"}, - {0x007E, "\172"}, - {0x007F, "\361\344\362\204"}, - {0x0080, "\335\007\356\145\362\235"}, - {0x0081, "\372\072\344\373\277\362\221"}, - {0x0082, "\356\141\372\201\360\342\362\171"}, - {0x0083, "\360\060\356\141\360\342\362\231"}, - {0x0084, "\355\326\362\225"}, - {0x0085, "\044\033\243\362\232"}, - {0x0086, "\355\320\007\357\061\361\347\362\256"}, - {0x0087, "\116\007\357\061\361\347\362\212"}, - {0x0088, "\356\141\007\357\346\242\362\224"}, - {0x0089, "\357\346\242\164\367\340\362\223"}, - {0x008A, "\356\141\007\357\346\202\362\266"}, - {0x008B, "\357\202\361\156\015\360\041\101\362\236"}, - {0x008C, "\357\202\361\156\015\360\041\102\362\237"}, - {0x008D, "\355\326\367\223\362\243"}, - {0x008E, "\357\022\357\051\127\362\254"}, - {0x008F, "\357\022\357\051\136\362\255"}, - {0x0090, "\357\076\007\355\155\356\155\362\203"}, - {0x0091, "\362\057\357\012\110\362\241"}, - {0x0092, "\362\057\357\012\127\362\242"}, - {0x0093, "\370\372\013\371\005\356\045\362\260"}, - {0x0094, "\360\050\212\335\373\274\362\174"}, - {0x0095, "\361\052\013\363\003\362\227"}, - {0x0096, "\355\320\007\357\061\361\225\362\246"}, - {0x0097, "\116\007\357\061\361\225\362\206"}, - {0x0098, "\355\320\007\357\076\362\253"}, - {0x0099, "\357\205\007\335\366\242\357\051\362\247"}, - {0x009A, "\357\205\007\335\357\051\362\245"}, - {0x009B, "\357\205\007\375\071\007\355\155\362\176"}, - {0x009C, "\116\007\357\076\362\257"}, - {0x009D, "\355\155\007\375\060\365\154\362\234"}, - {0x009E, "\361\052\357\012\362\240"}, - {0x009F, "\355\155\007\373\267\362\167"}, - {0x00A0, "\355\073\357\201"}, - {0x00A1, "\037\355\312\355\143"}, - {0x00A2, "\022\357\074"}, - {0x00A3, "\022\361\032"}, - {0x00A4, "\022\355\272"}, - {0x00A5, "\022\362\111"}, - {0x00A6, "\246\256\360\100"}, - {0x00A7, "\361\153"}, - {0x00A8, "\165"}, - {0x00A9, "\022\360\137"}, - {0x00AA, "\357\176\361\142\360\255"}, - {0x00AB, "\355\135\052"}, - {0x00AC, "\057\356\364"}, - {0x00AD, "\355\126\355\315\362\071"}, - {0x00AE, "\022\204\365\361"}, - {0x00AF, "\174"}, - {0x00B0, "\022\357\130"}, - {0x00B1, "\057\372\246"}, - {0x00B2, "\355\074\127"}, - {0x00B3, "\355\074\136"}, - {0x00B4, "\021\062"}, - {0x00B5, "\022\370\354"}, - {0x00B6, "\356\242\007\357\237"}, - {0x00B7, "\037\355\137"}, - {0x00B8, "\274"}, - {0x00B9, "\355\074\110"}, - {0x00BA, "\357\176\361\142\370\273"}, - {0x00BB, "\355\135\221"}, - {0x00BC, "\355\105\110\357\017"}, - {0x00BD, "\355\105\110\355\133"}, - {0x00BE, "\355\105\136\357\303"}, - {0x00BF, "\037\355\313\355\143"}, - {0x00C0, "\001\010\006\063\021\067"}, - {0x00C1, "\001\010\006\063\021\062"}, - {0x00C2, "\001\010\006\063\021\072"}, - {0x00C3, "\001\010\006\063\172"}, - {0x00C4, "\001\010\006\063\165"}, - {0x00C5, "\001\010\006\063\302\013\040"}, - {0x00C6, "\001\010\006\355\305"}, - {0x00C7, "\001\010\006\313\274"}, - {0x00C8, "\001\010\006\130\021\067"}, - {0x00C9, "\001\010\006\130\021\062"}, - {0x00CA, "\001\010\006\130\021\072"}, - {0x00CB, "\001\010\006\130\165"}, - {0x00CC, "\001\010\006\103\021\067"}, - {0x00CD, "\001\010\006\103\021\062"}, - {0x00CE, "\001\010\006\103\021\072"}, - {0x00CF, "\001\010\006\103\165"}, - {0x00D0, "\001\010\006\360\225"}, - {0x00D1, "\001\010\006\241\172"}, - {0x00D2, "\001\010\006\064\021\067"}, - {0x00D3, "\001\010\006\064\021\062"}, - {0x00D4, "\001\010\006\064\021\072"}, - {0x00D5, "\001\010\006\064\172"}, - {0x00D6, "\001\010\006\064\165"}, - {0x00D7, "\057\356\355"}, - {0x00D8, "\001\010\006\064\232\361\134"}, - {0x00D9, "\001\010\006\132\021\067"}, - {0x00DA, "\001\010\006\132\021\062"}, - {0x00DB, "\001\010\006\132\021\072"}, - {0x00DC, "\001\010\006\132\165"}, - {0x00DD, "\001\010\006\265\021\062"}, - {0x00DE, "\001\010\006\362\001"}, - {0x00DF, "\001\005\006\223\356\324"}, - {0x00E0, "\001\005\006\063\021\067"}, - {0x00E1, "\001\005\006\063\021\062"}, - {0x00E2, "\001\005\006\063\021\072"}, - {0x00E3, "\001\005\006\063\172"}, - {0x00E4, "\001\005\006\063\165"}, - {0x00E5, "\001\005\006\063\302\013\040"}, - {0x00E6, "\001\005\006\355\305"}, - {0x00E7, "\001\005\006\313\274"}, - {0x00E8, "\001\005\006\130\021\067"}, - {0x00E9, "\001\005\006\130\021\062"}, - {0x00EA, "\001\005\006\130\021\072"}, - {0x00EB, "\001\005\006\130\165"}, - {0x00EC, "\001\005\006\103\021\067"}, - {0x00ED, "\001\005\006\103\021\062"}, - {0x00EE, "\001\005\006\103\021\072"}, - {0x00EF, "\001\005\006\103\165"}, - {0x00F0, "\001\005\006\360\225"}, - {0x00F1, "\001\005\006\241\172"}, - {0x00F2, "\001\005\006\064\021\067"}, - {0x00F3, "\001\005\006\064\021\062"}, - {0x00F4, "\001\005\006\064\021\072"}, - {0x00F5, "\001\005\006\064\172"}, - {0x00F6, "\001\005\006\064\165"}, - {0x00F7, "\057\357\135"}, - {0x00F8, "\001\005\006\064\232\361\134"}, - {0x00F9, "\001\005\006\132\021\067"}, - {0x00FA, "\001\005\006\132\021\062"}, - {0x00FB, "\001\005\006\132\021\072"}, - {0x00FC, "\001\005\006\132\165"}, - {0x00FD, "\001\005\006\265\021\062"}, - {0x00FE, "\001\005\006\362\001"}, - {0x00FF, "\001\005\006\265\165"}, - {0x0100, "\001\010\006\063\174"}, - {0x0101, "\001\005\006\063\174"}, - {0x0102, "\001\010\006\063\213"}, - {0x0103, "\001\005\006\063\213"}, - {0x0104, "\001\010\006\063\355\055"}, - {0x0105, "\001\005\006\063\355\055"}, - {0x0106, "\001\010\006\313\021\062"}, - {0x0107, "\001\005\006\313\021\062"}, - {0x0108, "\001\010\006\313\021\072"}, - {0x0109, "\001\005\006\313\021\072"}, - {0x010A, "\001\010\006\313\037\013\040"}, - {0x010B, "\001\005\006\313\037\013\040"}, - {0x010C, "\001\010\006\313\225"}, - {0x010D, "\001\005\006\313\225"}, - {0x010E, "\001\010\006\275\225"}, - {0x010F, "\001\005\006\275\225"}, - {0x0110, "\001\010\006\275\232"}, - {0x0111, "\001\005\006\275\232"}, - {0x0112, "\001\010\006\130\174"}, - {0x0113, "\001\005\006\130\174"}, - {0x0114, "\001\010\006\130\213"}, - {0x0115, "\001\005\006\130\213"}, - {0x0116, "\001\010\006\130\037\013\040"}, - {0x0117, "\001\005\006\130\037\013\040"}, - {0x0118, "\001\010\006\130\355\055"}, - {0x0119, "\001\005\006\130\355\055"}, - {0x011A, "\001\010\006\130\225"}, - {0x011B, "\001\005\006\130\225"}, - {0x011C, "\001\010\006\266\021\072"}, - {0x011D, "\001\005\006\266\021\072"}, - {0x011E, "\001\010\006\266\213"}, - {0x011F, "\001\005\006\266\213"}, - {0x0120, "\001\010\006\266\037\013\040"}, - {0x0121, "\001\005\006\266\037\013\040"}, - {0x0122, "\001\010\006\266\274"}, - {0x0123, "\001\005\006\266\274"}, - {0x0124, "\001\010\006\237\021\072"}, - {0x0125, "\001\005\006\237\021\072"}, - {0x0126, "\001\010\006\237\232"}, - {0x0127, "\001\005\006\237\232"}, - {0x0128, "\001\010\006\103\172"}, - {0x0129, "\001\005\006\103\172"}, - {0x012A, "\001\010\006\103\174"}, - {0x012B, "\001\005\006\103\174"}, - {0x012C, "\001\010\006\103\213"}, - {0x012D, "\001\005\006\103\213"}, - {0x012E, "\001\010\006\103\355\055"}, - {0x012F, "\001\005\006\103\355\055"}, - {0x0130, "\001\010\006\103\037\013\040"}, - {0x0131, "\001\005\006\103\270\037"}, - {0x0132, "\355\134\357\035\010\356\351\360\344"}, - {0x0133, "\355\134\357\035\005\356\351\360\344"}, - {0x0134, "\001\010\006\355\053\021\072"}, - {0x0135, "\001\005\006\355\053\021\072"}, - {0x0136, "\001\010\006\352\274"}, - {0x0137, "\001\005\006\352\274"}, - {0x0138, "\001\005\006\370\050"}, - {0x0139, "\001\010\006\211\021\062"}, - {0x013A, "\001\005\006\211\021\062"}, - {0x013B, "\001\010\006\211\274"}, - {0x013C, "\001\005\006\211\274"}, - {0x013D, "\001\010\006\211\225"}, - {0x013E, "\001\005\006\211\225"}, - {0x013F, "\001\010\006\211\037\355\137"}, - {0x0140, "\001\005\006\211\037\355\137"}, - {0x0141, "\001\010\006\211\232"}, - {0x0142, "\001\005\006\211\232"}, - {0x0143, "\001\010\006\241\021\062"}, - {0x0144, "\001\005\006\241\021\062"}, - {0x0145, "\001\010\006\241\274"}, - {0x0146, "\001\005\006\241\274"}, - {0x0147, "\001\010\006\241\225"}, - {0x0148, "\001\005\006\241\225"}, - {0x0149, "\001\005\006\241\373\276\357\120\355\306"}, - {0x014A, "\001\010\006\356\007"}, - {0x014B, "\001\005\006\356\007"}, - {0x014C, "\001\010\006\064\174"}, - {0x014D, "\001\005\006\064\174"}, - {0x014E, "\001\010\006\064\213"}, - {0x014F, "\001\005\006\064\213"}, - {0x0150, "\001\010\006\064\070\021\062"}, - {0x0151, "\001\005\006\064\070\021\062"}, - {0x0152, "\355\134\357\035\010\356\351\355\210"}, - {0x0153, "\355\134\357\035\005\356\351\355\210"}, - {0x0154, "\001\010\006\167\021\062"}, - {0x0155, "\001\005\006\167\021\062"}, - {0x0156, "\001\010\006\167\274"}, - {0x0157, "\001\005\006\167\274"}, - {0x0158, "\001\010\006\167\225"}, - {0x0159, "\001\005\006\167\225"}, - {0x015A, "\001\010\006\223\021\062"}, - {0x015B, "\001\005\006\223\021\062"}, - {0x015C, "\001\010\006\223\021\072"}, - {0x015D, "\001\005\006\223\021\072"}, - {0x015E, "\001\010\006\223\274"}, - {0x015F, "\001\005\006\223\274"}, - {0x0160, "\001\010\006\223\225"}, - {0x0161, "\001\005\006\223\225"}, - {0x0162, "\001\010\006\261\274"}, - {0x0163, "\001\005\006\261\274"}, - {0x0164, "\001\010\006\261\225"}, - {0x0165, "\001\005\006\261\225"}, - {0x0166, "\001\010\006\261\232"}, - {0x0167, "\001\005\006\261\232"}, - {0x0168, "\001\010\006\132\172"}, - {0x0169, "\001\005\006\132\172"}, - {0x016A, "\001\010\006\132\174"}, - {0x016B, "\001\005\006\132\174"}, - {0x016C, "\001\010\006\132\213"}, - {0x016D, "\001\005\006\132\213"}, - {0x016E, "\001\010\006\132\302\013\040"}, - {0x016F, "\001\005\006\132\302\013\040"}, - {0x0170, "\001\010\006\132\070\021\062"}, - {0x0171, "\001\005\006\132\070\021\062"}, - {0x0172, "\001\010\006\132\355\055"}, - {0x0173, "\001\005\006\132\355\055"}, - {0x0174, "\001\010\006\347\021\072"}, - {0x0175, "\001\005\006\347\021\072"}, - {0x0176, "\001\010\006\265\021\072"}, - {0x0177, "\001\005\006\265\021\072"}, - {0x0178, "\001\010\006\265\165"}, - {0x0179, "\001\010\006\271\021\062"}, - {0x017A, "\001\005\006\271\021\062"}, - {0x017B, "\001\010\006\271\037\013\040"}, - {0x017C, "\001\005\006\271\037\013\040"}, - {0x017D, "\001\010\006\271\225"}, - {0x017E, "\001\005\006\271\225"}, - {0x017F, "\001\005\006\223\355\264"}, - {0x0180, "\001\005\006\334\232"}, - {0x0181, "\001\010\006\334\337"}, - {0x0182, "\001\010\006\334\357\010"}, - {0x0183, "\001\005\006\334\357\010"}, - {0x0184, "\001\010\006\357\031\345"}, - {0x0185, "\001\005\006\357\031\345"}, - {0x0186, "\001\010\006\064\355\343"}, - {0x0187, "\001\010\006\313\337"}, - {0x0188, "\001\005\006\313\337"}, - {0x0189, "\001\010\006\275\362\302"}, - {0x018A, "\001\010\006\275\337"}, - {0x018B, "\001\010\006\275\357\010"}, - {0x018C, "\001\005\006\275\357\010"}, - {0x018D, "\001\005\006\356\060\356\154"}, - {0x018E, "\001\010\006\130\355\013"}, - {0x018F, "\001\010\006\356\041"}, - {0x0190, "\001\010\006\130\355\343"}, - {0x0191, "\001\010\006\355\062\355\064"}, - {0x0192, "\001\005\006\355\062\355\064"}, - {0x0193, "\001\010\006\266\337"}, - {0x0194, "\001\010\006\356\070"}, - {0x0195, "\001\005\006\367\127"}, - {0x0196, "\001\010\006\104"}, - {0x0197, "\001\010\006\103\232"}, - {0x0198, "\001\010\006\352\337"}, - {0x0199, "\001\005\006\352\337"}, - {0x019A, "\001\005\006\211\374\046"}, - {0x019B, "\001\005\006\356\346\232"}, - {0x019C, "\001\010\006\276\325"}, - {0x019D, "\001\010\006\241\355\064"}, - {0x019E, "\001\005\006\241\044\355\264\357\210\221"}, - {0x019F, "\001\010\006\064\172\355\137"}, - {0x01A0, "\001\010\006\064\336"}, - {0x01A1, "\001\005\006\064\336"}, - {0x01A2, "\001\010\006\355\106"}, - {0x01A3, "\001\005\006\355\106"}, - {0x01A4, "\001\010\006\355\021\337"}, - {0x01A5, "\001\005\006\355\021\337"}, - {0x01A6, "\001\006\362\133"}, - {0x01A7, "\001\010\006\360\174\345"}, - {0x01A8, "\001\005\006\360\174\345"}, - {0x01A9, "\001\010\006\356\167"}, - {0x01AA, "\001\006\356\167\355\013\356\002"}, - {0x01AB, "\001\005\006\261\355\064\357\264"}, - {0x01AC, "\001\010\006\261\337"}, - {0x01AD, "\001\005\006\261\337"}, - {0x01AE, "\001\010\006\261\355\064\355\214"}, - {0x01AF, "\001\010\006\132\336"}, - {0x01B0, "\001\005\006\132\336"}, - {0x01B1, "\001\010\006\262"}, - {0x01B2, "\001\010\006\355\025\337"}, - {0x01B3, "\001\010\006\265\337"}, - {0x01B4, "\001\005\006\265\337"}, - {0x01B5, "\001\010\006\271\232"}, - {0x01B6, "\001\005\006\271\232"}, - {0x01B7, "\001\010\006\355\321"}, - {0x01B8, "\001\010\006\355\321\355\013"}, - {0x01B9, "\001\005\006\355\321\355\013"}, - {0x01BA, "\001\005\006\355\321\355\064"}, - {0x01BB, "\001\006\127\232"}, - {0x01BC, "\001\010\006\357\102\345"}, - {0x01BD, "\001\005\006\357\102\345"}, - {0x01BE, "\001\006\355\224\007\355\226\232\355\143"}, - {0x01BF, "\001\006\360\007"}, - {0x01C0, "\001\006\356\152\365\250"}, - {0x01C1, "\001\006\356\152\370\135"}, - {0x01C2, "\001\006\356\152\362\320"}, - {0x01C3, "\001\006\356\152\355\214"}, - {0x01C4, "\001\010\006\356\064\225"}, - {0x01C5, "\001\010\006\275\164\001\005\271\225"}, - {0x01C6, "\001\005\006\356\064\225"}, - {0x01C7, "\001\010\006\361\034"}, - {0x01C8, "\001\010\006\211\164\001\005\355\053"}, - {0x01C9, "\001\005\006\361\034"}, - {0x01CA, "\001\010\006\361\114"}, - {0x01CB, "\001\010\006\241\164\001\005\355\053"}, - {0x01CC, "\001\005\006\361\114"}, - {0x01CD, "\001\010\006\063\225"}, - {0x01CE, "\001\005\006\063\225"}, - {0x01CF, "\001\010\006\103\225"}, - {0x01D0, "\001\005\006\103\225"}, - {0x01D1, "\001\010\006\064\225"}, - {0x01D2, "\001\005\006\064\225"}, - {0x01D3, "\001\010\006\132\225"}, - {0x01D4, "\001\005\006\132\225"}, - {0x01D5, "\001\010\006\132\165\020\174"}, - {0x01D6, "\001\005\006\132\165\020\174"}, - {0x01D7, "\001\010\006\132\165\020\021\062"}, - {0x01D8, "\001\005\006\132\165\020\021\062"}, - {0x01D9, "\001\010\006\132\165\020\225"}, - {0x01DA, "\001\005\006\132\165\020\225"}, - {0x01DB, "\001\010\006\132\165\020\021\067"}, - {0x01DC, "\001\005\006\132\165\020\021\067"}, - {0x01DD, "\001\005\006\130\325"}, - {0x01DE, "\001\010\006\063\165\020\174"}, - {0x01DF, "\001\005\006\063\165\020\174"}, - {0x01E0, "\001\010\006\063\037\013\040\020\174"}, - {0x01E1, "\001\005\006\063\037\013\040\020\174"}, - {0x01E2, "\001\010\006\355\305\174"}, - {0x01E3, "\001\005\006\355\305\174"}, - {0x01E4, "\001\010\006\266\232"}, - {0x01E5, "\001\005\006\266\232"}, - {0x01E6, "\001\010\006\266\225"}, - {0x01E7, "\001\005\006\266\225"}, - {0x01E8, "\001\010\006\352\225"}, - {0x01E9, "\001\005\006\352\225"}, - {0x01EA, "\001\010\006\064\355\055"}, - {0x01EB, "\001\005\006\064\355\055"}, - {0x01EC, "\001\010\006\064\355\055\020\174"}, - {0x01ED, "\001\005\006\064\355\055\020\174"}, - {0x01EE, "\001\010\006\355\321\225"}, - {0x01EF, "\001\005\006\355\321\225"}, - {0x01F0, "\001\005\006\355\053\225"}, - {0x01F1, "\001\010\006\356\064"}, - {0x01F2, "\001\010\006\275\164\001\005\271"}, - {0x01F3, "\001\005\006\356\064"}, - {0x01F4, "\001\010\006\266\021\062"}, - {0x01F5, "\001\005\006\266\021\062"}, - {0x01F6, "\001\010\006\367\130"}, - {0x01F7, "\001\010\006\360\007"}, - {0x01F8, "\001\010\006\241\067"}, - {0x01F9, "\001\005\006\241\067"}, - {0x01FA, "\001\010\006\063\302\013\040\020\021\062"}, - {0x01FB, "\001\005\006\063\302\013\040\020\021\062"}, - {0x01FC, "\001\010\006\355\305\021\062"}, - {0x01FD, "\001\005\006\355\305\021\062"}, - {0x01FE, "\001\010\006\064\232\021\062"}, - {0x01FF, "\001\005\006\064\232\021\062"}, - {0x0200, "\001\010\006\063\070\021\067"}, - {0x0201, "\001\005\006\063\070\021\067"}, - {0x0202, "\001\010\006\063\213\355\076"}, - {0x0203, "\001\005\006\063\213\355\076"}, - {0x0204, "\001\010\006\130\070\021\067"}, - {0x0205, "\001\005\006\130\070\021\067"}, - {0x0206, "\001\010\006\130\213\355\076"}, - {0x0207, "\001\005\006\130\213\355\076"}, - {0x0208, "\001\010\006\103\070\021\067"}, - {0x0209, "\001\005\006\103\070\021\067"}, - {0x020A, "\001\010\006\103\213\355\076"}, - {0x020B, "\001\005\006\103\213\355\076"}, - {0x020C, "\001\010\006\064\070\021\067"}, - {0x020D, "\001\005\006\064\070\021\067"}, - {0x020E, "\001\010\006\064\213\355\076"}, - {0x020F, "\001\005\006\064\213\355\076"}, - {0x0210, "\001\010\006\167\070\021\067"}, - {0x0211, "\001\005\006\167\070\021\067"}, - {0x0212, "\001\010\006\167\213\355\076"}, - {0x0213, "\001\005\006\167\213\355\076"}, - {0x0214, "\001\010\006\132\070\021\067"}, - {0x0215, "\001\005\006\132\070\021\067"}, - {0x0216, "\001\010\006\132\213\355\076"}, - {0x0217, "\001\005\006\132\213\355\076"}, - {0x0218, "\001\010\006\223\330\301"}, - {0x0219, "\001\005\006\223\330\301"}, - {0x021A, "\001\010\006\261\330\301"}, - {0x021B, "\001\005\006\261\330\301"}, - {0x021C, "\001\010\006\362\116"}, - {0x021D, "\001\005\006\362\116"}, - {0x021E, "\001\010\006\237\225"}, - {0x021F, "\001\005\006\237\225"}, - {0x0222, "\001\010\006\113"}, - {0x0223, "\001\005\006\113"}, - {0x0224, "\001\010\006\271\122"}, - {0x0225, "\001\005\006\271\122"}, - {0x0226, "\001\010\006\063\037\013\040"}, - {0x0227, "\001\005\006\063\037\013\040"}, - {0x0228, "\001\010\006\130\274"}, - {0x0229, "\001\005\006\130\274"}, - {0x022A, "\001\010\006\064\165\020\174"}, - {0x022B, "\001\005\006\064\165\020\174"}, - {0x022C, "\001\010\006\064\172\020\174"}, - {0x022D, "\001\005\006\064\172\020\174"}, - {0x022E, "\001\010\006\064\037\013\040"}, - {0x022F, "\001\005\006\064\037\013\040"}, - {0x0230, "\001\010\006\064\037\013\040\020\174"}, - {0x0231, "\001\005\006\064\037\013\040\020\174"}, - {0x0232, "\001\010\006\265\174"}, - {0x0233, "\001\005\006\265\174"}, - {0x0250, "\001\005\006\063\325"}, - {0x0251, "\001\005\006\203"}, - {0x0252, "\001\005\006\203\325"}, - {0x0253, "\001\005\006\334\337"}, - {0x0254, "\001\005\006\064\355\343"}, - {0x0255, "\001\005\006\313\356\002"}, - {0x0256, "\001\005\006\275\355\064\355\214"}, - {0x0257, "\001\005\006\275\337"}, - {0x0258, "\001\005\006\130\355\013"}, - {0x0259, "\001\005\006\356\041"}, - {0x025A, "\001\005\006\356\041\122"}, - {0x025B, "\001\005\006\326"}, - {0x025C, "\001\005\006\326\355\013"}, - {0x025D, "\001\005\006\326\355\013\122"}, - {0x025E, "\001\005\006\326\355\013\357\146"}, - {0x025F, "\001\005\006\355\053\270\037\232"}, - {0x0260, "\001\005\006\266\337"}, - {0x0261, "\001\005\006\266\365\133"}, - {0x0262, "\001\006\355\142\010\266"}, - {0x0263, "\001\005\006\356\070"}, - {0x0264, "\001\005\006\175\356\070"}, - {0x0265, "\001\005\006\237\325"}, - {0x0266, "\001\005\006\237\337"}, - {0x0267, "\001\005\006\356\007\337"}, - {0x0268, "\001\005\006\103\232"}, - {0x0269, "\001\005\006\104"}, - {0x026A, "\001\006\355\142\010\103"}, - {0x026B, "\001\005\006\211\172\355\137"}, - {0x026C, "\001\005\006\211\374\220"}, - {0x026D, "\001\005\006\211\355\064\355\214"}, - {0x026E, "\001\005\006\370\144"}, - {0x026F, "\001\005\006\276\325"}, - {0x0270, "\001\005\006\276\357\163\325"}, - {0x0271, "\001\005\006\276\355\064\357\264"}, - {0x0272, "\001\005\006\241\355\064\044\052"}, - {0x0273, "\001\005\006\241\355\064\355\214"}, - {0x0274, "\001\006\355\142\010\241"}, - {0x0275, "\001\005\006\064\232"}, - {0x0276, "\001\006\355\142\010\355\210"}, - {0x0277, "\001\005\006\201\357\146"}, - {0x0278, "\001\005\006\356\241"}, - {0x0279, "\001\005\006\167\325"}, - {0x027A, "\001\005\006\167\357\013\325"}, - {0x027B, "\001\005\006\167\337\325"}, - {0x027C, "\001\005\006\167\357\013"}, - {0x027D, "\001\005\006\167\355\064\355\214"}, - {0x027E, "\001\005\006\167\270\357\162"}, - {0x027F, "\001\005\006\167\270\357\162\355\013"}, - {0x0280, "\001\006\355\142\010\167"}, - {0x0281, "\001\006\355\142\010\167\355\143"}, - {0x0282, "\001\005\006\223\355\064\355\214"}, - {0x0283, "\001\005\006\356\167"}, - {0x0284, "\001\005\006\355\053\270\037\232\337"}, - {0x0285, "\001\005\006\356\167\375\247\355\143"}, - {0x0286, "\001\005\006\356\167\356\002"}, - {0x0287, "\001\005\006\261\325"}, - {0x0288, "\001\005\006\261\355\064\355\214"}, - {0x0289, "\001\005\006\132\232"}, - {0x028A, "\001\005\006\262"}, - {0x028B, "\001\005\006\355\025\007\355\144"}, - {0x028C, "\001\005\006\355\025\325"}, - {0x028D, "\001\005\006\347\325"}, - {0x028E, "\001\005\006\265\325"}, - {0x028F, "\001\006\355\142\010\265"}, - {0x0290, "\001\005\006\271\355\064\355\214"}, - {0x0291, "\001\005\006\271\356\002"}, - {0x0292, "\001\005\006\355\321"}, - {0x0293, "\001\005\006\355\321\356\002"}, - {0x0294, "\001\006\355\224\007\355\226"}, - {0x0295, "\001\006\355\224\007\355\226\355\013"}, - {0x0296, "\001\006\355\224\007\355\226\355\143"}, - {0x0297, "\001\006\313\377\036"}, - {0x0298, "\001\006\356\152\363\127"}, - {0x0299, "\001\006\355\142\010\334"}, - {0x029A, "\001\005\006\326\357\146"}, - {0x029B, "\001\006\355\142\010\266\337"}, - {0x029C, "\001\006\355\142\010\237"}, - {0x029D, "\001\005\006\355\053\356\247\365\121"}, - {0x029E, "\001\005\006\352\325"}, - {0x029F, "\001\006\355\142\010\211"}, - {0x02A0, "\001\005\006\355\173\337"}, - {0x02A1, "\001\006\355\224\007\355\226\232"}, - {0x02A2, "\001\006\355\224\007\355\226\232\355\013"}, - {0x02A3, "\001\005\006\355\134\356\064"}, - {0x02A4, "\001\005\006\355\134\365\241"}, - {0x02A5, "\001\005\006\355\134\356\064\356\002"}, - {0x02A6, "\001\005\006\355\134\362\040"}, - {0x02A7, "\001\005\006\355\134\375\156"}, - {0x02A8, "\001\005\006\355\134\375\114\356\002"}, - {0x02A9, "\001\005\006\355\134\366\055"}, - {0x02AA, "\001\005\006\355\134\370\211"}, - {0x02AB, "\001\005\006\355\134\370\235"}, - {0x02AC, "\001\006\361\163\363\130"}, - {0x02AD, "\001\006\361\163\363\122"}, - {0x02B0, "\001\200\005\237"}, - {0x02B1, "\001\200\005\237\337"}, - {0x02B2, "\001\200\005\355\053"}, - {0x02B3, "\001\200\005\167"}, - {0x02B4, "\001\200\005\167\325"}, - {0x02B5, "\001\200\005\167\337\325"}, - {0x02B6, "\001\200\355\142\010\167\355\143"}, - {0x02B7, "\001\200\005\347"}, - {0x02B8, "\001\200\005\265"}, - {0x02B9, "\001\200\355\235"}, - {0x02BA, "\001\200\374\241"}, - {0x02BB, "\001\200\330\356\154"}, - {0x02BC, "\001\200\355\306"}, - {0x02BD, "\001\200\330\357\322"}, - {0x02BE, "\001\200\360\170\044\053"}, - {0x02BF, "\001\200\360\170\044\052"}, - {0x02C0, "\001\200\355\224\007\355\226"}, - {0x02C1, "\001\200\355\224\007\355\226\355\013"}, - {0x02C2, "\001\200\355\003\007\061\015\033\052"}, - {0x02C3, "\001\200\355\003\007\061\015\033\053"}, - {0x02C4, "\001\200\355\003\007\061\015\050\102"}, - {0x02C5, "\001\200\355\003\007\061\015\050\101"}, - {0x02C6, "\001\200\021\072"}, - {0x02C7, "\225"}, - {0x02C8, "\001\200\243\256"}, - {0x02C9, "\001\200\174"}, - {0x02CA, "\001\200\021\062"}, - {0x02CB, "\001\200\021\067"}, - {0x02CC, "\001\200\243\256\101"}, - {0x02CD, "\001\200\174\101"}, - {0x02CE, "\001\200\021\067\101"}, - {0x02CF, "\001\200\021\062\101"}, - {0x02D0, "\001\200\127\251\375\255"}, - {0x02D1, "\001\200\037\356\131"}, - {0x02D2, "\001\200\356\061\044\053\360\111"}, - {0x02D3, "\001\200\356\061\044\052\360\111"}, - {0x02D4, "\001\200\355\014\102"}, - {0x02D5, "\001\200\355\014\101"}, - {0x02D6, "\001\200\057\214"}, - {0x02D7, "\001\200\057\355\020"}, - {0x02D8, "\213"}, - {0x02D9, "\037\013\040"}, - {0x02DA, "\302\013\040"}, - {0x02DB, "\355\055"}, - {0x02DC, "\175\172"}, - {0x02DD, "\070\021\062"}, - {0x02DE, "\001\200\122\007\374\061"}, - {0x02DF, "\001\200\021\013\355\033"}, - {0x02E0, "\001\200\356\070\005"}, - {0x02E1, "\001\200\211\005"}, - {0x02E2, "\001\200\223\005"}, - {0x02E3, "\001\200\355\026\005"}, - {0x02E4, "\001\200\355\224\007\355\226\355\013\005"}, - {0x02E5, "\001\200\246\007\345\362\037\102"}, - {0x02E6, "\001\200\246\007\345\102"}, - {0x02E7, "\001\200\246\007\345\371\024"}, - {0x02E8, "\001\200\246\007\345\101"}, - {0x02E9, "\001\200\246\007\345\362\037\101"}, - {0x02EA, "\001\200\057\007\345\007\360\224\362\114"}, - {0x02EB, "\001\200\057\007\345\007\360\224\360\011"}, - {0x02EC, "\001\200\360\003"}, - {0x02ED, "\001\200\355\043\362\373"}, - {0x02EE, "\001\200\070\355\306"}, - {0x0300, "\026\021\067"}, - {0x0301, "\026\021\062"}, - {0x0302, "\026\021\072"}, - {0x0303, "\026\172"}, - {0x0304, "\026\174"}, - {0x0305, "\026\355\007\102"}, - {0x0306, "\026\213"}, - {0x0307, "\026\037\013\040"}, - {0x0308, "\026\165"}, - {0x0309, "\026\122\013\040"}, - {0x030A, "\026\302\013\040"}, - {0x030B, "\026\070\021\062"}, - {0x030C, "\026\225"}, - {0x030D, "\026\243\256\013\040"}, - {0x030E, "\026\070\243\256\013\040"}, - {0x030F, "\026\070\021\067"}, - {0x0310, "\026\356\123"}, - {0x0311, "\026\213\355\076"}, - {0x0312, "\026\330\356\154\013\040"}, - {0x0313, "\026\330\013\040"}, - {0x0314, "\026\330\357\322\013\040"}, - {0x0315, "\026\330\013\040\044\053"}, - {0x0316, "\026\021\067\043"}, - {0x0317, "\026\021\062\043"}, - {0x0318, "\026\355\014\052\043"}, - {0x0319, "\026\355\014\221\043"}, - {0x031A, "\026\355\374\052\013\040"}, - {0x031B, "\026\336"}, - {0x031C, "\026\356\061\052\043"}, - {0x031D, "\026\355\014\102\043"}, - {0x031E, "\026\355\014\101\043"}, - {0x031F, "\026\057\214\043"}, - {0x0320, "\026\057\355\020\043"}, - {0x0321, "\026\355\064\357\264\043"}, - {0x0322, "\026\355\064\355\214\043"}, - {0x0323, "\026\037\043"}, - {0x0324, "\026\165\043"}, - {0x0325, "\026\302\043"}, - {0x0326, "\026\330\301"}, - {0x0327, "\026\274"}, - {0x0328, "\026\355\055"}, - {0x0329, "\026\243\256\301"}, - {0x032A, "\026\357\273\043"}, - {0x032B, "\026\201\043"}, - {0x032C, "\026\225\043"}, - {0x032D, "\026\021\072\043"}, - {0x032E, "\026\213\301"}, - {0x032F, "\026\213\355\076\301"}, - {0x0330, "\026\172\043"}, - {0x0331, "\026\174\043"}, - {0x0332, "\026\355\126\043"}, - {0x0333, "\026\070\355\126\043"}, - {0x0334, "\026\172\356\315"}, - {0x0335, "\026\246\356\314\356\056"}, - {0x0336, "\026\246\356\221\356\056"}, - {0x0337, "\026\246\355\044\356\314\356\056"}, - {0x0338, "\026\246\355\044\356\221\356\056"}, - {0x0339, "\026\356\061\044\053\043"}, - {0x033A, "\026\357\273\355\143\043"}, - {0x033B, "\026\035\043"}, - {0x033C, "\026\371\021\301"}, - {0x033D, "\026\355\026\013\040"}, - {0x033E, "\026\172\202"}, - {0x033F, "\026\070\355\126\013\040"}, - {0x0340, "\026\204\007\345\067"}, - {0x0341, "\026\204\007\345\062"}, - {0x0342, "\026\317\021\072"}, - {0x0343, "\026\317\360\142"}, - {0x0344, "\026\317\355\061\355\047"}, - {0x0345, "\026\317\104\043"}, - {0x0346, "\026\357\273\013\040"}, - {0x0347, "\026\057\173\043"}, - {0x0348, "\026\070\243\256\301"}, - {0x0349, "\026\355\374\052\043"}, - {0x034A, "\026\172\232\013\040"}, - {0x034B, "\026\360\327\013\040"}, - {0x034C, "\026\357\011\173\044\013\040"}, - {0x034D, "\026\366\073\052\020\053\301"}, - {0x034E, "\026\061\015\050\102\301"}, - {0x0360, "\026\070\172"}, - {0x0361, "\026\070\213\355\076"}, - {0x0362, "\026\070\061\015\033\053\301"}, - {0x0374, "\057\361\123\317"}, - {0x0375, "\057\361\123\043\317"}, - {0x037A, "\335\317\104\043"}, - {0x037E, "\037\355\313\317"}, - {0x0384, "\335\317\355\047"}, - {0x0385, "\335\317\355\061\355\047"}, - {0x0386, "\001\010\027\203\355\047"}, - {0x0387, "\335\317\362\334\375\157"}, - {0x0388, "\001\010\027\326\355\047"}, - {0x0389, "\001\010\027\224\355\047"}, - {0x038A, "\001\010\027\104\355\047"}, - {0x038C, "\001\010\027\355\036\355\047"}, - {0x038E, "\001\010\027\262\355\047"}, - {0x038F, "\001\010\027\201\355\047"}, - {0x0390, "\001\005\027\104\355\061\020\355\047"}, - {0x0391, "\001\010\027\203"}, - {0x0392, "\001\010\027\356\305"}, - {0x0393, "\001\010\027\356\070"}, - {0x0394, "\001\010\027\356\060"}, - {0x0395, "\001\010\027\326"}, - {0x0396, "\001\010\027\360\217"}, - {0x0397, "\001\010\027\224"}, - {0x0398, "\001\010\027\357\356"}, - {0x0399, "\001\010\027\104"}, - {0x039A, "\001\010\027\357\212"}, - {0x039B, "\001\010\027\356\346"}, - {0x039C, "\001\010\027\355\111"}, - {0x039D, "\001\010\027\356\025"}, - {0x039E, "\001\010\027\357\055"}, - {0x039F, "\001\010\027\355\036"}, - {0x03A0, "\001\010\027\355\233"}, - {0x03A1, "\001\010\027\356\036"}, - {0x03A3, "\001\010\027\357\030"}, - {0x03A4, "\001\010\027\361\356"}, - {0x03A5, "\001\010\027\262"}, - {0x03A6, "\001\010\027\356\241"}, - {0x03A7, "\001\010\027\356\341"}, - {0x03A8, "\001\010\027\357\015"}, - {0x03A9, "\001\010\027\201"}, - {0x03AA, "\001\010\027\104\355\061"}, - {0x03AB, "\001\010\027\262\355\061"}, - {0x03AC, "\001\005\027\203\355\047"}, - {0x03AD, "\001\005\027\326\355\047"}, - {0x03AE, "\001\005\027\224\355\047"}, - {0x03AF, "\001\005\027\104\355\047"}, - {0x03B0, "\001\005\027\262\355\061\020\355\047"}, - {0x03B1, "\001\005\027\203"}, - {0x03B2, "\001\005\027\356\305"}, - {0x03B3, "\001\005\027\356\070"}, - {0x03B4, "\001\005\027\356\060"}, - {0x03B5, "\001\005\027\326"}, - {0x03B6, "\001\005\027\360\217"}, - {0x03B7, "\001\005\027\224"}, - {0x03B8, "\001\005\027\357\356"}, - {0x03B9, "\001\005\027\104"}, - {0x03BA, "\001\005\027\357\212"}, - {0x03BB, "\001\005\027\356\346"}, - {0x03BC, "\001\005\027\355\111"}, - {0x03BD, "\001\005\027\356\025"}, - {0x03BE, "\001\005\027\357\055"}, - {0x03BF, "\001\005\027\355\036"}, - {0x03C0, "\001\005\027\355\233"}, - {0x03C1, "\001\005\027\356\036"}, - {0x03C2, "\001\005\027\357\030\032"}, - {0x03C3, "\001\005\027\357\030"}, - {0x03C4, "\001\005\027\361\356"}, - {0x03C5, "\001\005\027\262"}, - {0x03C6, "\001\005\027\356\241"}, - {0x03C7, "\001\005\027\356\341"}, - {0x03C8, "\001\005\027\357\015"}, - {0x03C9, "\001\005\027\201"}, - {0x03CA, "\001\005\027\104\355\061"}, - {0x03CB, "\001\005\027\262\355\061"}, - {0x03CC, "\001\005\027\355\036\355\047"}, - {0x03CD, "\001\005\027\262\355\047"}, - {0x03CE, "\001\005\027\201\355\047"}, - {0x03D0, "\022\317\356\305"}, - {0x03D1, "\022\317\357\356"}, - {0x03D2, "\022\317\262\122"}, - {0x03D3, "\022\317\262\021\062\020\122"}, - {0x03D4, "\022\317\262\165\020\122"}, - {0x03D5, "\022\317\356\241"}, - {0x03D6, "\022\317\355\233"}, - {0x03D7, "\022\317\367\355"}, - {0x03DA, "\001\027\361\340"}, - {0x03DB, "\001\005\027\361\340"}, - {0x03DC, "\001\027\360\177"}, - {0x03DD, "\001\005\027\360\177"}, - {0x03DE, "\001\027\356\344"}, - {0x03DF, "\001\005\027\356\344"}, - {0x03E0, "\001\027\361\300"}, - {0x03E1, "\001\005\027\361\300"}, - {0x03E2, "\001\010\355\117\363\273"}, - {0x03E3, "\001\005\355\117\363\272"}, - {0x03E4, "\001\010\355\117\360\236"}, - {0x03E5, "\001\005\355\117\360\236"}, - {0x03E6, "\001\010\355\117\357\220"}, - {0x03E7, "\001\005\355\117\357\220"}, - {0x03E8, "\001\010\355\117\360\330"}, - {0x03E9, "\001\005\355\117\360\330"}, - {0x03EA, "\001\010\355\117\360\205"}, - {0x03EB, "\001\005\355\117\360\205"}, - {0x03EC, "\001\010\355\117\361\364"}, - {0x03ED, "\001\005\355\117\361\364"}, - {0x03EE, "\001\010\355\117\355\217"}, - {0x03EF, "\001\005\355\117\355\217"}, - {0x03F0, "\022\317\357\212"}, - {0x03F1, "\022\317\356\036"}, - {0x03F2, "\022\317\370\214\357\030"}, - {0x03F3, "\001\027\362\117"}, - {0x0400, "\001\010\034\355\260\067"}, - {0x0401, "\001\010\034\360\350"}, - {0x0402, "\001\010\034\356\063"}, - {0x0403, "\001\010\034\360\304"}, - {0x0404, "\001\010\034\355\260\375\365"}, - {0x0405, "\001\010\034\356\165"}, - {0x0406, "\001\010\034\103\360\074"}, - {0x0407, "\001\010\034\003"}, - {0x0408, "\001\010\034\355\303"}, - {0x0409, "\001\010\034\361\033"}, - {0x040A, "\001\010\034\360\032"}, - {0x040B, "\001\010\034\362\011"}, - {0x040C, "\001\010\034\361\001"}, - {0x040D, "\001\010\034\103\067"}, - {0x040E, "\001\010\034\113\355\223"}, - {0x040F, "\001\010\034\356\320"}, - {0x0410, "\001\010\034\063"}, - {0x0411, "\001\010\034\356\147"}, - {0x0412, "\001\010\034\357\054"}, - {0x0413, "\001\010\034\355\254"}, - {0x0414, "\001\010\034\356\166"}, - {0x0415, "\001\010\034\355\260"}, - {0x0416, "\001\010\034\355\204"}, - {0x0417, "\001\010\034\355\367"}, - {0x0418, "\001\010\034\103"}, - {0x0419, "\001\010\034\103\355\223"}, - {0x041A, "\001\010\034\240"}, - {0x041B, "\001\010\034\356\325"}, - {0x041C, "\001\010\034\356\326"}, - {0x041D, "\001\010\034\356\010"}, - {0x041E, "\001\010\034\064"}, - {0x041F, "\001\010\034\355\172"}, - {0x0420, "\001\010\034\356\327"}, - {0x0421, "\001\010\034\356\173"}, - {0x0422, "\001\010\034\355\301"}, - {0x0423, "\001\010\034\113"}, - {0x0424, "\001\010\034\360\226"}, - {0x0425, "\001\010\034\355\054"}, - {0x0426, "\001\010\034\356\047"}, - {0x0427, "\001\010\034\355\071"}, - {0x0428, "\001\010\034\355\032"}, - {0x0429, "\001\010\034\360\130"}, - {0x042A, "\001\010\034\057\356\324"}, - {0x042B, "\001\010\034\357\060"}, - {0x042C, "\001\010\034\057\356\224"}, - {0x042D, "\001\010\034\217"}, - {0x042E, "\001\010\034\360\351"}, - {0x042F, "\001\010\034\360\341"}, - {0x0430, "\001\005\034\063"}, - {0x0431, "\001\005\034\356\147"}, - {0x0432, "\001\005\034\357\054"}, - {0x0433, "\001\005\034\355\254"}, - {0x0434, "\001\005\034\356\166"}, - {0x0435, "\001\005\034\355\260"}, - {0x0436, "\001\005\034\355\204"}, - {0x0437, "\001\005\034\355\367"}, - {0x0438, "\001\005\034\103"}, - {0x0439, "\001\005\034\103\355\223"}, - {0x043A, "\001\005\034\240"}, - {0x043B, "\001\005\034\356\325"}, - {0x043C, "\001\005\034\356\326"}, - {0x043D, "\001\005\034\356\010"}, - {0x043E, "\001\005\034\064"}, - {0x043F, "\001\005\034\355\172"}, - {0x0440, "\001\005\034\356\327"}, - {0x0441, "\001\005\034\356\173"}, - {0x0442, "\001\005\034\355\301"}, - {0x0443, "\001\005\034\113"}, - {0x0444, "\001\005\034\360\226"}, - {0x0445, "\001\005\034\355\054"}, - {0x0446, "\001\005\034\356\047"}, - {0x0447, "\001\005\034\355\071"}, - {0x0448, "\001\005\034\355\032"}, - {0x0449, "\001\005\034\360\130"}, - {0x044A, "\001\005\034\057\356\324"}, - {0x044B, "\001\005\034\357\060"}, - {0x044C, "\001\005\034\057\356\224"}, - {0x044D, "\001\005\034\217"}, - {0x044E, "\001\005\034\360\351"}, - {0x044F, "\001\005\034\360\341"}, - {0x0450, "\001\005\034\355\260\067"}, - {0x0451, "\001\005\034\360\350"}, - {0x0452, "\001\005\034\356\063"}, - {0x0453, "\001\005\034\360\304"}, - {0x0454, "\001\005\034\375\366\355\260"}, - {0x0455, "\001\005\034\356\165"}, - {0x0456, "\001\005\034\103\360\074"}, - {0x0457, "\001\005\034\003"}, - {0x0458, "\001\005\034\355\303"}, - {0x0459, "\001\005\034\361\033"}, - {0x045A, "\001\005\034\360\032"}, - {0x045B, "\001\005\034\362\011"}, - {0x045C, "\001\005\034\361\001"}, - {0x045D, "\001\005\034\103\067"}, - {0x045E, "\001\005\034\113\355\223"}, - {0x045F, "\001\005\034\356\320"}, - {0x0460, "\001\010\034\201"}, - {0x0461, "\001\005\034\201"}, - {0x0462, "\001\010\034\362\107"}, - {0x0463, "\001\005\034\362\107"}, - {0x0464, "\001\010\034\217\356\074"}, - {0x0465, "\001\005\034\217\356\074"}, - {0x0466, "\001\010\034\175\355\363"}, - {0x0467, "\001\005\034\175\355\363"}, - {0x0468, "\001\010\034\175\355\363\356\074"}, - {0x0469, "\001\005\034\175\355\363\356\074"}, - {0x046A, "\001\010\034\340\355\363"}, - {0x046B, "\001\005\034\340\355\363"}, - {0x046C, "\001\010\034\340\355\363\356\074"}, - {0x046D, "\001\005\034\340\355\363\356\074"}, - {0x046E, "\001\010\034\361\012"}, - {0x046F, "\001\005\034\361\012"}, - {0x0470, "\001\010\034\357\015"}, - {0x0471, "\001\005\034\357\015"}, - {0x0472, "\001\010\034\360\243"}, - {0x0473, "\001\005\034\360\243"}, - {0x0474, "\001\010\034\356\337"}, - {0x0475, "\001\005\034\356\337"}, - {0x0476, "\001\010\034\356\337\070\021\067"}, - {0x0477, "\001\005\034\356\337\070\021\067"}, - {0x0478, "\001\010\034\357\261"}, - {0x0479, "\001\005\034\357\261"}, - {0x047A, "\001\010\034\201\302"}, - {0x047B, "\001\005\034\201\302"}, - {0x047C, "\001\010\034\201\357\361"}, - {0x047D, "\001\005\034\201\357\361"}, - {0x047E, "\001\010\034\361\144"}, - {0x047F, "\001\005\034\361\144"}, - {0x0480, "\001\010\034\356\344"}, - {0x0481, "\001\005\034\356\344"}, - {0x0482, "\057\034\357\233"}, - {0x0483, "\026\034\357\361"}, - {0x0484, "\026\034\007\372\150"}, - {0x0485, "\026\034\365\176\361\207"}, - {0x0486, "\026\034\373\302\361\207"}, - {0x0488, "\057\034\363\250\007\357\233"}, - {0x0489, "\057\034\370\363"}, - {0x048C, "\001\010\034\057\361\310"}, - {0x048D, "\001\005\034\057\361\310"}, - {0x048E, "\001\010\034\356\327\360\044"}, - {0x048F, "\001\005\034\356\327\360\044"}, - {0x0490, "\001\010\034\355\254\357\163"}, - {0x0491, "\001\005\034\355\254\357\163"}, - {0x0492, "\001\010\034\355\254\232"}, - {0x0493, "\001\005\034\355\254\232"}, - {0x0494, "\001\010\034\355\254\122\355\137"}, - {0x0495, "\001\005\034\355\254\122\355\137"}, - {0x0496, "\001\010\034\355\204\355\102"}, - {0x0497, "\001\005\034\355\204\355\102"}, - {0x0498, "\001\010\034\355\367\274"}, - {0x0499, "\001\005\034\355\367\274"}, - {0x049A, "\001\010\034\240\357\210"}, - {0x049B, "\001\005\034\240\355\102"}, - {0x049C, "\001\010\034\240\246\256"}, - {0x049D, "\001\005\034\240\246\256"}, - {0x049E, "\001\010\034\240\232"}, - {0x049F, "\001\005\034\240\232"}, - {0x04A0, "\001\010\034\240\360\064"}, - {0x04A1, "\001\005\034\240\360\064"}, - {0x04A2, "\001\010\034\356\010\355\102"}, - {0x04A3, "\001\005\034\356\010\355\102"}, - {0x04A4, "\012\034\010\356\007"}, - {0x04A5, "\012\034\005\356\007"}, - {0x04A6, "\001\010\034\355\172\122\355\137"}, - {0x04A7, "\001\005\034\355\172\122\355\137"}, - {0x04A8, "\001\010\034\314\355\304"}, - {0x04A9, "\001\005\034\314\355\304"}, - {0x04AA, "\001\010\034\356\173\274"}, - {0x04AB, "\001\005\034\356\173\274"}, - {0x04AC, "\001\010\034\355\301\355\102"}, - {0x04AD, "\001\005\034\355\301\355\102"}, - {0x04AE, "\001\010\034\113\221"}, - {0x04AF, "\001\005\034\113\221"}, - {0x04B0, "\001\010\034\113\221\232"}, - {0x04B1, "\001\005\034\113\221\232"}, - {0x04B2, "\001\010\034\314\355\055"}, - {0x04B3, "\001\005\034\314\355\055"}, - {0x04B4, "\012\010\034\355\301\356\047"}, - {0x04B5, "\012\005\034\355\301\356\047"}, - {0x04B6, "\001\010\034\355\071\355\102"}, - {0x04B7, "\001\005\034\355\071\355\102"}, - {0x04B8, "\001\010\034\355\071\246\256"}, - {0x04B9, "\001\005\034\355\071\246\256"}, - {0x04BA, "\001\010\034\356\016"}, - {0x04BB, "\001\005\034\356\016"}, - {0x04BC, "\001\010\034\355\071\355\304"}, - {0x04BD, "\001\005\034\355\071\355\304"}, - {0x04BE, "\001\010\034\355\071\355\304\355\055"}, - {0x04BF, "\001\005\034\355\071\355\304\355\055"}, - {0x04C0, "\001\034\372\151"}, - {0x04C1, "\001\010\034\355\204\213"}, - {0x04C2, "\001\005\034\355\204\213"}, - {0x04C3, "\001\010\034\240\122"}, - {0x04C4, "\001\005\034\240\122"}, - {0x04C5, "\001\010\034\356\325\355\102"}, - {0x04C6, "\001\005\034\356\325\355\102"}, - {0x04C7, "\001\010\034\356\010\122"}, - {0x04C8, "\001\005\034\356\010\122"}, - {0x04C9, "\001\010\034\103\355\223\355\102"}, - {0x04CA, "\001\005\034\103\355\223\355\102"}, - {0x04CB, "\001\010\034\355\071\360\371"}, - {0x04CC, "\001\005\034\355\071\360\371"}, - {0x04CD, "\001\010\034\356\326\355\102"}, - {0x04CE, "\001\005\034\356\326\355\102"}, - {0x04D0, "\001\010\034\063\213"}, - {0x04D1, "\001\005\034\063\213"}, - {0x04D2, "\001\010\034\063\165"}, - {0x04D3, "\001\005\034\063\165"}, - {0x04D4, "\001\010\034\360\023"}, - {0x04D5, "\001\005\034\360\023"}, - {0x04D6, "\001\010\034\355\260\213"}, - {0x04D7, "\001\005\034\355\260\213"}, - {0x04D8, "\001\010\034\356\041"}, - {0x04D9, "\001\005\034\356\041"}, - {0x04DA, "\001\010\034\356\041\165"}, - {0x04DB, "\001\005\034\356\041\165"}, - {0x04DC, "\001\010\034\355\204\165"}, - {0x04DD, "\001\005\034\355\204\165"}, - {0x04DE, "\001\010\034\355\367\165"}, - {0x04DF, "\001\005\034\355\367\165"}, - {0x04E0, "\001\010\034\356\165\355\304"}, - {0x04E1, "\001\005\034\356\165\355\304"}, - {0x04E2, "\001\010\034\103\174"}, - {0x04E3, "\001\005\034\103\174"}, - {0x04E4, "\001\010\034\103\165"}, - {0x04E5, "\001\005\034\103\165"}, - {0x04E6, "\001\010\034\064\165"}, - {0x04E7, "\001\005\034\064\165"}, - {0x04E8, "\001\010\034\064\232"}, - {0x04E9, "\001\005\034\064\232"}, - {0x04EA, "\001\010\034\064\232\165"}, - {0x04EB, "\001\005\034\064\232\165"}, - {0x04EC, "\001\010\034\217\165"}, - {0x04ED, "\001\005\034\217\165"}, - {0x04EE, "\001\010\034\113\174"}, - {0x04EF, "\001\005\034\113\174"}, - {0x04F0, "\001\010\034\113\165"}, - {0x04F1, "\001\005\034\113\165"}, - {0x04F2, "\001\010\034\113\070\021\062"}, - {0x04F3, "\001\005\034\113\070\021\062"}, - {0x04F4, "\001\010\034\355\071\165"}, - {0x04F5, "\001\005\034\355\071\165"}, - {0x04F8, "\001\010\034\357\060\165"}, - {0x04F9, "\001\005\034\357\060\165"}, - {0x0531, "\001\010\125\360\063"}, - {0x0532, "\001\010\125\361\233"}, - {0x0533, "\001\010\125\360\375"}, - {0x0534, "\001\010\125\311"}, - {0x0535, "\001\010\125\357\057"}, - {0x0536, "\001\010\125\355\101"}, - {0x0537, "\001\010\125\217"}, - {0x0538, "\001\010\125\360\233"}, - {0x0539, "\001\010\125\356\263"}, - {0x053A, "\001\010\125\355\204"}, - {0x053B, "\001\010\125\357\177"}, - {0x053C, "\001\010\125\361\031"}, - {0x053D, "\001\010\125\356\342"}, - {0x053E, "\001\010\125\356\065"}, - {0x053F, "\001\010\125\360\305"}, - {0x0540, "\001\010\125\357\173"}, - {0x0541, "\001\010\125\355\177"}, - {0x0542, "\001\010\125\360\273"}, - {0x0543, "\001\010\125\356\063"}, - {0x0544, "\001\010\125\356\102"}, - {0x0545, "\001\010\125\357\172"}, - {0x0546, "\001\010\125\355\340"}, - {0x0547, "\001\010\125\355\032"}, - {0x0548, "\001\010\125\356\132"}, - {0x0549, "\001\010\125\355\024"}, - {0x054A, "\001\010\125\356\147"}, - {0x054B, "\001\010\125\356\320"}, - {0x054C, "\001\010\125\355\212"}, - {0x054D, "\001\010\125\356\121"}, - {0x054E, "\001\010\125\360\005"}, - {0x054F, "\001\010\125\360\200"}, - {0x0550, "\001\010\125\356\040"}, - {0x0551, "\001\010\125\362\046"}, - {0x0552, "\001\010\125\357\167"}, - {0x0553, "\001\010\125\361\170"}, - {0x0554, "\001\010\125\356\220"}, - {0x0555, "\001\010\125\306"}, - {0x0556, "\001\010\125\356\202"}, - {0x0559, "\001\200\125\356\061\052"}, - {0x055A, "\355\306\125"}, - {0x055B, "\057\357\115\356\052"}, - {0x055C, "\037\355\312\356\052"}, - {0x055D, "\330\125"}, - {0x055E, "\037\355\313\356\052"}, - {0x055F, "\022\357\114\356\052"}, - {0x0561, "\001\005\125\360\063"}, - {0x0562, "\001\005\125\361\233"}, - {0x0563, "\001\005\125\360\375"}, - {0x0564, "\001\005\125\311"}, - {0x0565, "\001\005\125\357\057"}, - {0x0566, "\001\005\125\355\101"}, - {0x0567, "\001\005\125\217"}, - {0x0568, "\001\005\125\360\233"}, - {0x0569, "\001\005\125\356\263"}, - {0x056A, "\001\005\125\355\204"}, - {0x056B, "\001\005\125\357\177"}, - {0x056C, "\001\005\125\361\031"}, - {0x056D, "\001\005\125\356\342"}, - {0x056E, "\001\005\125\356\065"}, - {0x056F, "\001\005\125\360\305"}, - {0x0570, "\001\005\125\357\173"}, - {0x0571, "\001\005\125\355\177"}, - {0x0572, "\001\005\125\360\273"}, - {0x0573, "\001\005\125\356\063"}, - {0x0574, "\001\005\125\356\102"}, - {0x0575, "\001\005\125\357\172"}, - {0x0576, "\001\005\125\355\340"}, - {0x0577, "\001\005\125\355\032"}, - {0x0578, "\001\005\125\356\132"}, - {0x0579, "\001\005\125\355\024"}, - {0x057A, "\001\005\125\356\147"}, - {0x057B, "\001\005\125\356\320"}, - {0x057C, "\001\005\125\355\212"}, - {0x057D, "\001\005\125\356\121"}, - {0x057E, "\001\005\125\360\005"}, - {0x057F, "\001\005\125\360\200"}, - {0x0580, "\001\005\125\356\040"}, - {0x0581, "\001\005\125\362\046"}, - {0x0582, "\001\005\125\357\167"}, - {0x0583, "\001\005\125\361\170"}, - {0x0584, "\001\005\125\356\220"}, - {0x0585, "\001\005\125\306"}, - {0x0586, "\001\005\125\356\202"}, - {0x0587, "\012\005\125\357\057\357\167"}, - {0x0589, "\037\356\052"}, - {0x058A, "\375\244\356\052"}, - {0x0591, "\021\222\363\001"}, - {0x0592, "\021\222\374\246"}, - {0x0593, "\021\222\363\256"}, - {0x0594, "\021\222\362\140\373\332"}, - {0x0595, "\021\222\362\140\360\256"}, - {0x0596, "\021\222\375\104"}, - {0x0597, "\021\222\374\042"}, - {0x0598, "\021\222\376\235"}, - {0x0599, "\021\222\361\240"}, - {0x059A, "\021\222\376\157"}, - {0x059B, "\021\222\375\164"}, - {0x059C, "\021\222\360\264"}, - {0x059D, "\021\222\360\264\371\022"}, - {0x059E, "\021\222\363\276\366\244"}, - {0x059F, "\021\222\367\365\366\045"}, - {0x05A0, "\021\222\375\100"}, - {0x05A1, "\021\222\372\170\360\256"}, - {0x05A3, "\021\222\360\117\367\077"}, - {0x05A4, "\021\222\360\117\370\314"}, - {0x05A5, "\021\222\371\055"}, - {0x05A6, "\021\222\375\163\375\355"}, - {0x05A7, "\021\222\365\175"}, - {0x05A8, "\021\222\361\240"}, - {0x05A9, "\021\222\375\105"}, - {0x05AA, "\021\222\376\155\363\107\376\171"}, - {0x05AB, "\021\222\372\074"}, - {0x05AC, "\021\222\367\202"}, - {0x05AD, "\021\222\365\240"}, - {0x05AE, "\021\222\375\265"}, - {0x05AF, "\272\370\274"}, - {0x05B0, "\037\222\363\301"}, - {0x05B1, "\037\222\357\165\374\245"}, - {0x05B2, "\037\222\357\165\356\374"}, - {0x05B3, "\037\222\357\165\357\300"}, - {0x05B4, "\037\222\360\322"}, - {0x05B5, "\037\222\375\271"}, - {0x05B6, "\037\222\375\070"}, - {0x05B7, "\037\222\356\374"}, - {0x05B8, "\037\222\357\300"}, - {0x05B9, "\037\222\360\325"}, - {0x05BB, "\037\222\370\043"}, - {0x05BC, "\037\222\355\011\113\357\232"}, - {0x05BD, "\037\222\370\321"}, - {0x05BE, "\355\234\137\370\266"}, - {0x05BF, "\037\222\357\021"}, - {0x05C0, "\355\234\137\372\161"}, - {0x05C1, "\037\222\357\077"}, - {0x05C2, "\037\222\374\316"}, - {0x05C3, "\355\234\137\374\342\372\162"}, - {0x05C4, "\057\222\037\344"}, - {0x05D0, "\001\137\355\372"}, - {0x05D1, "\001\137\357\072"}, - {0x05D2, "\001\137\360\303"}, - {0x05D3, "\001\137\356\317"}, - {0x05D4, "\001\137\357\170"}, - {0x05D5, "\001\137\355\051"}, - {0x05D6, "\001\137\360\020"}, - {0x05D7, "\001\137\367\161"}, - {0x05D8, "\001\137\362\056"}, - {0x05D9, "\001\137\362\124"}, - {0x05DA, "\001\137\254\032"}, - {0x05DB, "\001\137\254"}, - {0x05DC, "\001\137\356\347"}, - {0x05DD, "\001\137\356\357\032"}, - {0x05DE, "\001\137\356\357"}, - {0x05DF, "\001\137\357\251\032"}, - {0x05E0, "\001\137\357\251"}, - {0x05E1, "\001\137\361\301"}, - {0x05E2, "\001\137\360\062"}, - {0x05E3, "\001\137\355\172\032"}, - {0x05E4, "\001\137\355\172"}, - {0x05E5, "\001\137\357\366\032"}, - {0x05E6, "\001\137\357\366"}, - {0x05E7, "\001\137\373\364"}, - {0x05E8, "\001\137\357\321"}, - {0x05E9, "\001\137\355\310"}, - {0x05EA, "\001\137\357\347"}, - {0x05F0, "\012\137\357\056\070\355\051"}, - {0x05F1, "\012\137\357\056\355\051\356\272"}, - {0x05F2, "\012\137\357\056\070\362\124"}, - {0x05F3, "\355\234\137\366\154"}, - {0x05F4, "\355\234\137\366\153"}, - {0x060C, "\330\004"}, - {0x061B, "\356\104\004"}, - {0x061F, "\037\355\313\004"}, - {0x0621, "\001\004\156"}, - {0x0622, "\001\004\100\356\022\013\040"}, - {0x0623, "\001\004\100\156\013\040"}, - {0x0624, "\001\004\355\051\156\013\040"}, - {0x0625, "\001\004\100\156\043"}, - {0x0626, "\001\004\056\156\013\040"}, - {0x0627, "\001\004\100"}, - {0x0628, "\001\004\324"}, - {0x0629, "\001\004\233\356\354"}, - {0x062A, "\001\004\233"}, - {0x062B, "\001\004\355\060"}, - {0x062C, "\001\004\115"}, - {0x062D, "\001\004\111"}, - {0x062E, "\001\004\170"}, - {0x062F, "\001\004\355\316"}, - {0x0630, "\001\004\356\321"}, - {0x0631, "\001\004\343"}, - {0x0632, "\001\004\360\017"}, - {0x0633, "\001\004\245"}, - {0x0634, "\001\004\247"}, - {0x0635, "\001\004\377\004"}, - {0x0636, "\001\004\350"}, - {0x0637, "\001\004\355\046"}, - {0x0638, "\001\004\355\366"}, - {0x0639, "\001\004\355\027"}, - {0x063A, "\001\004\355\063"}, - {0x0640, "\361\355\004"}, - {0x0641, "\001\004\351"}, - {0x0642, "\001\004\355\037"}, - {0x0643, "\001\004\254"}, - {0x0644, "\001\004\206"}, - {0x0645, "\001\004\047"}, - {0x0646, "\001\004\215"}, - {0x0647, "\001\004\231"}, - {0x0648, "\001\004\355\051"}, - {0x0649, "\001\004\100\160"}, - {0x064A, "\001\004\056"}, - {0x064B, "\356\176\004"}, - {0x064C, "\357\122\004"}, - {0x064D, "\357\216\004"}, - {0x064E, "\356\175\004"}, - {0x064F, "\356\157\004"}, - {0x0650, "\356\215\004"}, - {0x0651, "\355\154\004"}, - {0x0652, "\357\036\004"}, - {0x0653, "\356\022\004\013\040"}, - {0x0654, "\156\004\013\040"}, - {0x0655, "\156\004\043"}, - {0x0660, "\024\355\030\331"}, - {0x0661, "\024\355\030\110"}, - {0x0662, "\024\355\030\127"}, - {0x0663, "\024\355\030\136"}, - {0x0664, "\024\355\030\220"}, - {0x0665, "\024\355\030\230"}, - {0x0666, "\024\355\030\255"}, - {0x0667, "\024\355\030\252"}, - {0x0668, "\024\355\030\226"}, - {0x0669, "\024\355\030\257"}, - {0x066A, "\022\355\057\355\245\004"}, - {0x066B, "\355\045\360\221\004"}, - {0x066C, "\355\045\357\233\004"}, - {0x066D, "\355\015\044\230\355\116\004"}, - {0x0670, "\001\004\100\013\040"}, - {0x0671, "\001\004\100\360\006"}, - {0x0672, "\001\004\100\156\361\136\013\040"}, - {0x0673, "\001\004\100\156\361\136\043"}, - {0x0674, "\001\004\156\356\276"}, - {0x0675, "\001\004\100\156\356\276"}, - {0x0676, "\001\004\355\051\156\356\276"}, - {0x0677, "\001\004\113\156\356\276"}, - {0x0678, "\001\004\056\156\356\276"}, - {0x0679, "\001\004\356\261"}, - {0x067A, "\001\004\356\262"}, - {0x067B, "\001\004\356\143"}, - {0x067C, "\001\004\233\302"}, - {0x067D, "\001\004\233\136\251\013\040\321\015\050\101"}, - {0x067E, "\001\004\356\237"}, - {0x067F, "\001\004\356\256"}, - {0x0680, "\001\004\356\144"}, - {0x0681, "\001\004\111\156\013\040"}, - {0x0682, "\001\004\111\127\251\362\313\357\376\355\307\357\132"}, - {0x0683, "\001\004\356\230"}, - {0x0684, "\001\004\356\164"}, - {0x0685, "\001\004\111\136\251\013\040"}, - {0x0686, "\001\004\356\124"}, - {0x0687, "\001\004\356\255"}, - {0x0688, "\001\004\357\126"}, - {0x0689, "\001\004\355\316\302"}, - {0x068A, "\001\004\355\316\037\043"}, - {0x068B, "\001\004\355\316\037\043\020\175\375\077"}, - {0x068C, "\001\004\357\121"}, - {0x068D, "\001\004\357\125"}, - {0x068E, "\001\004\357\144"}, - {0x068F, "\001\004\355\316\136\251\013\040\321\015\050\101"}, - {0x0690, "\001\004\355\316\220\251\013\040"}, - {0x0691, "\001\004\357\317"}, - {0x0692, "\001\004\343\175\355\025"}, - {0x0693, "\001\004\343\302"}, - {0x0694, "\001\004\343\037\043"}, - {0x0695, "\001\004\343\175\355\025\043"}, - {0x0696, "\001\004\343\037\043\020\037\013\040"}, - {0x0697, "\001\004\343\127\251\013\040"}, - {0x0698, "\001\004\357\207"}, - {0x0699, "\001\004\343\220\251\013\040"}, - {0x069A, "\001\004\245\037\043\020\037\013\040"}, - {0x069B, "\001\004\245\136\251\355\237"}, - {0x069C, "\001\004\245\136\251\355\237\020\136\251\013\040"}, - {0x069D, "\001\004\355\005\127\251\355\237"}, - {0x069E, "\001\004\355\005\136\251\013\040"}, - {0x069F, "\001\004\355\046\136\251\013\040"}, - {0x06A0, "\001\004\355\027\136\251\013\040"}, - {0x06A1, "\001\004\351\270\037"}, - {0x06A2, "\001\004\351\037\365\254"}, - {0x06A3, "\001\004\351\037\043"}, - {0x06A4, "\001\004\356\264"}, - {0x06A5, "\001\004\351\136\251\355\237"}, - {0x06A6, "\001\004\356\240"}, - {0x06A7, "\001\004\355\037\037\013\040"}, - {0x06A8, "\001\004\355\037\136\251\013\040"}, - {0x06A9, "\001\004\356\216"}, - {0x06AA, "\001\004\254\377\023"}, - {0x06AB, "\001\004\254\302"}, - {0x06AC, "\001\004\254\037\013\040"}, - {0x06AD, "\001\004\355\336"}, - {0x06AE, "\001\004\254\136\251\355\237"}, - {0x06AF, "\001\004\355\322"}, - {0x06B0, "\001\004\355\322\302"}, - {0x06B1, "\001\004\356\226"}, - {0x06B2, "\001\004\355\322\127\251\355\237"}, - {0x06B3, "\001\004\366\237"}, - {0x06B4, "\001\004\355\322\136\251\013\040"}, - {0x06B5, "\001\004\206\175\355\025"}, - {0x06B6, "\001\004\206\037\013\040"}, - {0x06B7, "\001\004\206\136\251\013\040"}, - {0x06B8, "\001\004\206\136\251\355\237"}, - {0x06B9, "\001\004\215\037\043"}, - {0x06BA, "\001\004\215\270\037"}, - {0x06BB, "\001\004\371\313\355\214"}, - {0x06BC, "\001\004\215\302"}, - {0x06BD, "\001\004\215\136\251\013\040"}, - {0x06BE, "\001\004\231\356\163"}, - {0x06BF, "\001\004\356\124\037\013\040"}, - {0x06C0, "\001\004\231\056\013\040"}, - {0x06C1, "\001\004\231\356\015"}, - {0x06C2, "\001\004\231\356\015\156\013\040"}, - {0x06C3, "\356\354\356\015"}, - {0x06C4, "\001\004\355\051\302"}, - {0x06C5, "\001\004\355\205\356\011"}, - {0x06C6, "\001\004\356\011"}, - {0x06C7, "\001\004\113"}, - {0x06C8, "\001\004\132"}, - {0x06C9, "\001\004\355\205\355\151"}, - {0x06CA, "\001\004\355\051\127\251\013\040"}, - {0x06CB, "\001\004\357\054"}, - {0x06CC, "\001\004\356\067\056"}, - {0x06CD, "\001\004\056\356\247"}, - {0x06CE, "\001\004\056\175\355\025"}, - {0x06CF, "\001\004\355\051\037\013\040"}, - {0x06D0, "\001\004\217"}, - {0x06D1, "\001\004\056\136\251\355\237"}, - {0x06D2, "\001\004\056\232"}, - {0x06D3, "\001\004\056\232\156\013\040"}, - {0x06D4, "\037\004"}, - {0x06D5, "\001\004\130"}, - {0x06D6, "\012\004\005\355\005\013\040\206\100\160"}, - {0x06D7, "\012\004\005\355\037\013\040\206\100\160"}, - {0x06D8, "\001\004\005\047\013\040\055"}, - {0x06D9, "\001\004\005\100\206\013\040"}, - {0x06DA, "\001\004\005\115\013\040"}, - {0x06DB, "\136\251\013\040\004"}, - {0x06DC, "\001\004\005\245\013\040"}, - {0x06DD, "\116\007\363\013\004"}, - {0x06DE, "\355\320\007\374\107\365\374\366\350\004"}, - {0x06DF, "\331\362\361\013\040\004"}, - {0x06E0, "\331\374\050\013\040\004"}, - {0x06E1, "\372\157\366\320\007\170\270\037\013\040\004"}, - {0x06E2, "\001\004\005\047\013\040\036"}, - {0x06E3, "\001\004\005\245\043"}, - {0x06E4, "\001\004\005\356\022\013\040"}, - {0x06E5, "\001\004\005\355\051"}, - {0x06E6, "\001\004\005\056"}, - {0x06E7, "\001\004\005\056\013\040"}, - {0x06E8, "\001\004\005\215\013\040"}, - {0x06E9, "\057\007\373\272\004"}, - {0x06EA, "\037\355\132\043\004"}, - {0x06EB, "\037\355\132\013\040\004"}, - {0x06EC, "\037\361\205\043\004"}, - {0x06ED, "\001\004\005\047\043"}, - {0x06F0, "\024\355\030\355\244\331"}, - {0x06F1, "\024\355\030\355\244\110"}, - {0x06F2, "\024\355\030\355\244\127"}, - {0x06F3, "\024\355\030\355\244\136"}, - {0x06F4, "\024\355\030\355\244\220"}, - {0x06F5, "\024\355\030\355\244\230"}, - {0x06F6, "\024\355\030\355\244\255"}, - {0x06F7, "\024\355\030\355\244\252"}, - {0x06F8, "\024\355\030\355\244\226"}, - {0x06F9, "\024\355\030\355\244\257"}, - {0x06FA, "\001\004\247\037\043"}, - {0x06FB, "\001\004\350\037\043"}, - {0x06FC, "\001\004\355\063\037\043"}, - {0x06FD, "\057\004\361\316\356\377"}, - {0x06FE, "\057\004\361\316\373\256\370\316"}, - {0x0700, "\116\007\361\153\161"}, - {0x0701, "\037\161\357\344"}, - {0x0702, "\037\161\357\342"}, - {0x0703, "\355\103\161\357\344"}, - {0x0704, "\355\103\161\357\342"}, - {0x0705, "\355\103\161\242"}, - {0x0706, "\355\103\161\356\376\044\052"}, - {0x0707, "\355\103\161\356\376\044\053"}, - {0x0708, "\355\103\161\357\344\356\376\044\052"}, - {0x0709, "\355\103\161\357\342\356\376\044\053"}, - {0x070A, "\365\064\161"}, - {0x070B, "\357\253\161\357\171"}, - {0x070C, "\371\064\161\357\171"}, - {0x070D, "\355\115\161\357\171"}, - {0x070F, "\022\357\114\161"}, - {0x0710, "\001\161\362\154"}, - {0x0711, "\001\161\362\154\013\040"}, - {0x0712, "\001\161\363\214"}, - {0x0713, "\001\161\360\312"}, - {0x0714, "\001\161\360\312\360\260"}, - {0x0715, "\001\161\360\220"}, - {0x0716, "\001\161\360\220\361\276\270\037"}, - {0x0717, "\001\161\360\340"}, - {0x0718, "\001\161\355\051"}, - {0x0719, "\001\161\360\020"}, - {0x071A, "\001\161\366\343"}, - {0x071B, "\001\161\362\054"}, - {0x071C, "\001\161\362\054\360\260"}, - {0x071D, "\001\161\362\132"}, - {0x071E, "\001\161\362\132\360\340"}, - {0x071F, "\001\161\370\113"}, - {0x0720, "\001\161\370\243"}, - {0x0721, "\001\161\047"}, - {0x0722, "\001\161\215"}, - {0x0723, "\001\161\361\311"}, - {0x0724, "\001\161\361\311\032"}, - {0x0725, "\001\161\362\165"}, - {0x0726, "\001\161\361\234"}, - {0x0727, "\001\161\361\234\355\013"}, - {0x0728, "\001\161\375\025"}, - {0x0729, "\001\161\373\366"}, - {0x072A, "\001\161\361\276"}, - {0x072B, "\001\161\247"}, - {0x072C, "\001\161\375\111"}, - {0x0730, "\357\271\161\013\040"}, - {0x0731, "\357\271\161\043"}, - {0x0732, "\357\271\161\356\034"}, - {0x0733, "\360\021\161\013\040"}, - {0x0734, "\360\021\161\043"}, - {0x0735, "\360\021\161\357\005"}, - {0x0736, "\361\260\161\013\040"}, - {0x0737, "\361\260\161\043"}, - {0x0738, "\362\141\161\357\005\242"}, - {0x0739, "\362\141\161\357\005\355\044"}, - {0x073A, "\360\321\161\013\040"}, - {0x073B, "\360\321\161\043"}, - {0x073C, "\366\333\161\356\034"}, - {0x073D, "\360\036\161\013\040"}, - {0x073E, "\360\036\161\043"}, - {0x073F, "\374\057\161"}, - {0x0740, "\037\360\255\161"}, - {0x0741, "\373\363\161"}, - {0x0742, "\374\111\161"}, - {0x0743, "\127\251\357\377\357\044\013\040"}, - {0x0744, "\127\251\357\377\357\044\355\237"}, - {0x0745, "\136\251\357\044\013\040"}, - {0x0746, "\136\251\357\044\355\237"}, - {0x0747, "\243\355\044\161\013\040"}, - {0x0748, "\243\355\044\161\301"}, - {0x0749, "\371\041\161"}, - {0x074A, "\363\034\161"}, - {0x0780, "\001\216\356\211"}, - {0x0781, "\001\216\363\267"}, - {0x0782, "\001\216\371\332"}, - {0x0783, "\001\216\357\320"}, - {0x0784, "\001\216\363\210"}, - {0x0785, "\001\216\370\153"}, - {0x0786, "\001\216\370\112"}, - {0x0787, "\001\216\362\312"}, - {0x0788, "\001\216\376\072"}, - {0x0789, "\001\216\371\067"}, - {0x078A, "\001\216\366\130"}, - {0x078B, "\001\216\365\261"}, - {0x078C, "\001\216\357\355"}, - {0x078D, "\001\216\370\244"}, - {0x078E, "\001\216\366\276"}, - {0x078F, "\001\216\366\234"}, - {0x0790, "\001\216\375\074"}, - {0x0791, "\001\216\365\201"}, - {0x0792, "\001\216\376\237"}, - {0x0793, "\001\216\375\110"}, - {0x0794, "\001\216\362\134"}, - {0x0795, "\001\216\372\166"}, - {0x0796, "\001\216\365\301"}, - {0x0797, "\001\216\375\133"}, - {0x0798, "\001\216\375\315"}, - {0x0799, "\001\216\366\341"}, - {0x079A, "\001\216\370\012"}, - {0x079B, "\001\216\375\200"}, - {0x079C, "\001\216\376\362"}, - {0x079D, "\001\216\363\341"}, - {0x079E, "\001\216\375\066"}, - {0x079F, "\001\216\365\350"}, - {0x07A0, "\001\216\355\176"}, - {0x07A1, "\001\216\356\135"}, - {0x07A2, "\001\216\363\016"}, - {0x07A3, "\001\216\366\210"}, - {0x07A4, "\001\216\374\025"}, - {0x07A5, "\001\216\376\113"}, - {0x07A6, "\216\362\271"}, - {0x07A7, "\216\376\375"}, - {0x07A8, "\216\367\172"}, - {0x07A9, "\216\377\045"}, - {0x07AA, "\216\372\124"}, - {0x07AB, "\216\372\140"}, - {0x07AC, "\216\377\021"}, - {0x07AD, "\216\377\042"}, - {0x07AE, "\216\372\070"}, - {0x07AF, "\216\377\063"}, - {0x07B0, "\216\357\036"}, - {0x0901, "\022\106\356\123"}, - {0x0902, "\022\106\355\222"}, - {0x0903, "\022\106\355\243"}, - {0x0905, "\001\106\063"}, - {0x0906, "\001\106\323"}, - {0x0907, "\001\106\103"}, - {0x0908, "\001\106\315"}, - {0x0909, "\001\106\113"}, - {0x090A, "\001\106\342"}, - {0x090B, "\001\106\167\205"}, - {0x090C, "\001\106\211\205"}, - {0x090D, "\001\106\217\355\357"}, - {0x090E, "\001\106\217\355\223"}, - {0x090F, "\001\106\217"}, - {0x0910, "\001\106\307"}, - {0x0911, "\001\106\064\355\357"}, - {0x0912, "\001\106\064\355\223"}, - {0x0913, "\001\106\306"}, - {0x0914, "\001\106\333"}, - {0x0915, "\001\106\240"}, - {0x0916, "\001\106\355\054"}, - {0x0917, "\001\106\355\017"}, - {0x0918, "\001\106\355\106"}, - {0x0919, "\001\106\355\066"}, - {0x091A, "\001\106\355\024"}, - {0x091B, "\001\106\355\240"}, - {0x091C, "\001\106\355\104"}, - {0x091D, "\001\106\355\251"}, - {0x091E, "\001\106\355\201"}, - {0x091F, "\001\106\355\100"}, - {0x0920, "\001\106\355\127"}, - {0x0921, "\001\106\355\120"}, - {0x0922, "\001\106\355\160"}, - {0x0923, "\001\106\355\141"}, - {0x0924, "\001\106\311"}, - {0x0925, "\001\106\355\072"}, - {0x0926, "\001\106\355\002"}, - {0x0927, "\001\106\355\162"}, - {0x0928, "\001\106\354"}, - {0x0929, "\001\106\361\115"}, - {0x092A, "\001\106\327"}, - {0x092B, "\001\106\355\124"}, - {0x092C, "\001\106\355\052"}, - {0x092D, "\001\106\355\153"}, - {0x092E, "\001\106\277"}, - {0x092F, "\001\106\305"}, - {0x0930, "\001\106\322"}, - {0x0931, "\001\106\355\212"}, - {0x0932, "\001\106\033"}, - {0x0933, "\001\106\355\263"}, - {0x0934, "\001\106\357\230"}, - {0x0935, "\001\106\355\241"}, - {0x0936, "\001\106\355\152"}, - {0x0937, "\001\106\355\032"}, - {0x0938, "\001\106\355\004"}, - {0x0939, "\001\106\314"}, - {0x093C, "\022\106\356\227"}, - {0x093D, "\022\106\357\067"}, - {0x093E, "\042\026\106\323"}, - {0x093F, "\042\026\106\103"}, - {0x0940, "\042\026\106\315"}, - {0x0941, "\042\026\106\113"}, - {0x0942, "\042\026\106\342"}, - {0x0943, "\042\026\106\167\205"}, - {0x0944, "\042\026\106\355\114\205"}, - {0x0945, "\042\026\106\217\355\357"}, - {0x0946, "\042\026\106\217\355\223"}, - {0x0947, "\042\026\106\217"}, - {0x0948, "\042\026\106\307"}, - {0x0949, "\042\026\106\064\355\357"}, - {0x094A, "\042\026\106\064\355\223"}, - {0x094B, "\042\026\106\306"}, - {0x094C, "\042\026\106\333"}, - {0x094D, "\022\106\355\242"}, - {0x0950, "\356\366\106"}, - {0x0951, "\057\357\115\106\372\125"}, - {0x0952, "\057\357\115\106\362\335"}, - {0x0953, "\021\067\106"}, - {0x0954, "\021\062\106"}, - {0x0958, "\001\106\356\245"}, - {0x0959, "\001\106\360\374"}, - {0x095A, "\001\106\360\275"}, - {0x095B, "\001\106\355\101"}, - {0x095C, "\001\106\365\207"}, - {0x095D, "\001\106\357\305"}, - {0x095E, "\001\106\355\225"}, - {0x095F, "\001\106\360\015"}, - {0x0960, "\001\106\355\114\205"}, - {0x0961, "\001\106\355\206\205"}, - {0x0962, "\042\026\106\211\205"}, - {0x0963, "\042\026\106\355\206\205"}, - {0x0964, "\360\162\106"}, - {0x0965, "\070\360\162\106"}, - {0x0966, "\024\106\331"}, - {0x0967, "\024\106\110"}, - {0x0968, "\024\106\127"}, - {0x0969, "\024\106\136"}, - {0x096A, "\024\106\220"}, - {0x096B, "\024\106\230"}, - {0x096C, "\024\106\255"}, - {0x096D, "\024\106\252"}, - {0x096E, "\024\106\226"}, - {0x096F, "\024\106\257"}, - {0x0970, "\022\106\357\114"}, - {0x0981, "\022\121\356\123"}, - {0x0982, "\022\121\355\222"}, - {0x0983, "\022\121\355\243"}, - {0x0985, "\001\121\063"}, - {0x0986, "\001\121\323"}, - {0x0987, "\001\121\103"}, - {0x0988, "\001\121\315"}, - {0x0989, "\001\121\113"}, - {0x098A, "\001\121\342"}, - {0x098B, "\001\121\167\205"}, - {0x098C, "\001\121\211\205"}, - {0x098F, "\001\121\217"}, - {0x0990, "\001\121\307"}, - {0x0993, "\001\121\306"}, - {0x0994, "\001\121\333"}, - {0x0995, "\001\121\240"}, - {0x0996, "\001\121\355\054"}, - {0x0997, "\001\121\355\017"}, - {0x0998, "\001\121\355\106"}, - {0x0999, "\001\121\355\066"}, - {0x099A, "\001\121\355\024"}, - {0x099B, "\001\121\355\240"}, - {0x099C, "\001\121\355\104"}, - {0x099D, "\001\121\355\251"}, - {0x099E, "\001\121\355\201"}, - {0x099F, "\001\121\355\100"}, - {0x09A0, "\001\121\355\127"}, - {0x09A1, "\001\121\355\120"}, - {0x09A2, "\001\121\355\160"}, - {0x09A3, "\001\121\355\141"}, - {0x09A4, "\001\121\311"}, - {0x09A5, "\001\121\355\072"}, - {0x09A6, "\001\121\355\002"}, - {0x09A7, "\001\121\355\162"}, - {0x09A8, "\001\121\354"}, - {0x09AA, "\001\121\327"}, - {0x09AB, "\001\121\355\124"}, - {0x09AC, "\001\121\355\052"}, - {0x09AD, "\001\121\355\153"}, - {0x09AE, "\001\121\277"}, - {0x09AF, "\001\121\305"}, - {0x09B0, "\001\121\322"}, - {0x09B2, "\001\121\033"}, - {0x09B6, "\001\121\355\152"}, - {0x09B7, "\001\121\355\032"}, - {0x09B8, "\001\121\355\004"}, - {0x09B9, "\001\121\314"}, - {0x09BC, "\022\121\356\227"}, - {0x09BE, "\042\026\121\323"}, - {0x09BF, "\042\026\121\103"}, - {0x09C0, "\042\026\121\315"}, - {0x09C1, "\042\026\121\113"}, - {0x09C2, "\042\026\121\342"}, - {0x09C3, "\042\026\121\167\205"}, - {0x09C4, "\042\026\121\355\114\205"}, - {0x09C7, "\042\026\121\217"}, - {0x09C8, "\042\026\121\307"}, - {0x09CB, "\042\026\121\306"}, - {0x09CC, "\042\026\121\333"}, - {0x09CD, "\022\121\355\242"}, - {0x09D7, "\057\007\355\265\121\333"}, - {0x09DC, "\001\121\355\212"}, - {0x09DD, "\001\121\357\305"}, - {0x09DF, "\001\121\360\015"}, - {0x09E0, "\001\121\355\114\205"}, - {0x09E1, "\001\121\355\206\205"}, - {0x09E2, "\042\026\121\211\205"}, - {0x09E3, "\042\026\121\355\206\205"}, - {0x09E6, "\024\121\331"}, - {0x09E7, "\024\121\110"}, - {0x09E8, "\024\121\127"}, - {0x09E9, "\024\121\136"}, - {0x09EA, "\024\121\220"}, - {0x09EB, "\024\121\230"}, - {0x09EC, "\024\121\255"}, - {0x09ED, "\024\121\252"}, - {0x09EE, "\024\121\226"}, - {0x09EF, "\024\121\257"}, - {0x09F0, "\001\121\322\164\246\355\044\371\061"}, - {0x09F1, "\001\121\322\164\246\355\044\301"}, - {0x09F2, "\057\121\357\316"}, - {0x09F3, "\022\121\357\316"}, - {0x09F4, "\356\103\355\272\121\110"}, - {0x09F5, "\356\103\355\272\121\127"}, - {0x09F6, "\356\103\355\272\121\136"}, - {0x09F7, "\356\103\355\272\121\220"}, - {0x09F8, "\356\103\355\272\121\360\223\355\020\110"}, - {0x09F9, "\360\223\355\272\121\356\043"}, - {0x09FA, "\362\160\121"}, - {0x0A02, "\022\150\363\131"}, - {0x0A05, "\001\150\063"}, - {0x0A06, "\001\150\323"}, - {0x0A07, "\001\150\103"}, - {0x0A08, "\001\150\315"}, - {0x0A09, "\001\150\113"}, - {0x0A0A, "\001\150\342"}, - {0x0A0F, "\001\150\355\200"}, - {0x0A10, "\001\150\307"}, - {0x0A13, "\001\150\306"}, - {0x0A14, "\001\150\333"}, - {0x0A15, "\001\150\240"}, - {0x0A16, "\001\150\355\054"}, - {0x0A17, "\001\150\355\017"}, - {0x0A18, "\001\150\355\106"}, - {0x0A19, "\001\150\355\066"}, - {0x0A1A, "\001\150\355\024"}, - {0x0A1B, "\001\150\355\240"}, - {0x0A1C, "\001\150\355\104"}, - {0x0A1D, "\001\150\375\217"}, - {0x0A1E, "\001\150\355\201"}, - {0x0A1F, "\001\150\355\100"}, - {0x0A20, "\001\150\355\127"}, - {0x0A21, "\001\150\355\120"}, - {0x0A22, "\001\150\355\160"}, - {0x0A23, "\001\150\355\141"}, - {0x0A24, "\001\150\311"}, - {0x0A25, "\001\150\355\072"}, - {0x0A26, "\001\150\355\002"}, - {0x0A27, "\001\150\355\162"}, - {0x0A28, "\001\150\354"}, - {0x0A2A, "\001\150\327"}, - {0x0A2B, "\001\150\355\124"}, - {0x0A2C, "\001\150\355\052"}, - {0x0A2D, "\001\150\355\153"}, - {0x0A2E, "\001\150\277"}, - {0x0A2F, "\001\150\305"}, - {0x0A30, "\001\150\322"}, - {0x0A32, "\001\150\033"}, - {0x0A33, "\001\150\355\263"}, - {0x0A35, "\001\150\355\241"}, - {0x0A36, "\001\150\355\152"}, - {0x0A38, "\001\150\355\004"}, - {0x0A39, "\001\150\314"}, - {0x0A3C, "\022\150\356\227"}, - {0x0A3E, "\042\026\150\323"}, - {0x0A3F, "\042\026\150\103"}, - {0x0A40, "\042\026\150\315"}, - {0x0A41, "\042\026\150\113"}, - {0x0A42, "\042\026\150\342"}, - {0x0A47, "\042\026\150\355\200"}, - {0x0A48, "\042\026\150\307"}, - {0x0A4B, "\042\026\150\306"}, - {0x0A4C, "\042\026\150\333"}, - {0x0A4D, "\022\150\355\242"}, - {0x0A59, "\001\150\360\374"}, - {0x0A5A, "\001\150\360\275"}, - {0x0A5B, "\001\150\355\101"}, - {0x0A5C, "\001\150\355\212"}, - {0x0A5E, "\001\150\355\225"}, - {0x0A66, "\024\150\331"}, - {0x0A67, "\024\150\110"}, - {0x0A68, "\024\150\127"}, - {0x0A69, "\024\150\136"}, - {0x0A6A, "\024\150\220"}, - {0x0A6B, "\024\150\230"}, - {0x0A6C, "\024\150\255"}, - {0x0A6D, "\024\150\252"}, - {0x0A6E, "\024\150\226"}, - {0x0A6F, "\024\150\257"}, - {0x0A70, "\375\210\150"}, - {0x0A71, "\362\301\150"}, - {0x0A72, "\367\227\150"}, - {0x0A73, "\372\131\150"}, - {0x0A74, "\360\227\372\100\150"}, - {0x0A81, "\022\144\356\123"}, - {0x0A82, "\022\144\355\222"}, - {0x0A83, "\022\144\355\243"}, - {0x0A85, "\001\144\063"}, - {0x0A86, "\001\144\323"}, - {0x0A87, "\001\144\103"}, - {0x0A88, "\001\144\315"}, - {0x0A89, "\001\144\113"}, - {0x0A8A, "\001\144\342"}, - {0x0A8B, "\001\144\167\205"}, - {0x0A8D, "\042\144\217\355\357"}, - {0x0A8F, "\001\144\217"}, - {0x0A90, "\001\144\307"}, - {0x0A91, "\042\144\064\355\357"}, - {0x0A93, "\001\144\306"}, - {0x0A94, "\001\144\333"}, - {0x0A95, "\001\144\240"}, - {0x0A96, "\001\144\355\054"}, - {0x0A97, "\001\144\355\017"}, - {0x0A98, "\001\144\355\106"}, - {0x0A99, "\001\144\355\066"}, - {0x0A9A, "\001\144\355\024"}, - {0x0A9B, "\001\144\355\240"}, - {0x0A9C, "\001\144\355\104"}, - {0x0A9D, "\001\144\355\251"}, - {0x0A9E, "\001\144\355\201"}, - {0x0A9F, "\001\144\355\100"}, - {0x0AA0, "\001\144\355\127"}, - {0x0AA1, "\001\144\355\120"}, - {0x0AA2, "\001\144\355\160"}, - {0x0AA3, "\001\144\355\141"}, - {0x0AA4, "\001\144\311"}, - {0x0AA5, "\001\144\355\072"}, - {0x0AA6, "\001\144\355\002"}, - {0x0AA7, "\001\144\355\162"}, - {0x0AA8, "\001\144\354"}, - {0x0AAA, "\001\144\327"}, - {0x0AAB, "\001\144\355\124"}, - {0x0AAC, "\001\144\355\052"}, - {0x0AAD, "\001\144\355\153"}, - {0x0AAE, "\001\144\277"}, - {0x0AAF, "\001\144\305"}, - {0x0AB0, "\001\144\322"}, - {0x0AB2, "\001\144\033"}, - {0x0AB3, "\001\144\355\263"}, - {0x0AB5, "\001\144\355\241"}, - {0x0AB6, "\001\144\355\152"}, - {0x0AB7, "\001\144\355\032"}, - {0x0AB8, "\001\144\355\004"}, - {0x0AB9, "\001\144\314"}, - {0x0ABC, "\022\144\356\227"}, - {0x0ABD, "\022\144\357\067"}, - {0x0ABE, "\042\026\144\323"}, - {0x0ABF, "\042\026\144\103"}, - {0x0AC0, "\042\026\144\315"}, - {0x0AC1, "\042\026\144\113"}, - {0x0AC2, "\042\026\144\342"}, - {0x0AC3, "\042\026\144\167\205"}, - {0x0AC4, "\042\026\144\355\114\205"}, - {0x0AC5, "\042\026\144\217\355\357"}, - {0x0AC7, "\042\026\144\217"}, - {0x0AC8, "\042\026\144\307"}, - {0x0AC9, "\042\026\144\064\355\357"}, - {0x0ACB, "\042\026\144\306"}, - {0x0ACC, "\042\026\144\333"}, - {0x0ACD, "\022\144\355\242"}, - {0x0AD0, "\356\366\144"}, - {0x0AE0, "\001\144\355\114\205"}, - {0x0AE6, "\363\307\144\331"}, - {0x0AE7, "\024\144\110"}, - {0x0AE8, "\024\144\127"}, - {0x0AE9, "\024\144\136"}, - {0x0AEA, "\024\144\220"}, - {0x0AEB, "\024\144\230"}, - {0x0AEC, "\024\144\255"}, - {0x0AED, "\024\144\252"}, - {0x0AEE, "\024\144\226"}, - {0x0AEF, "\024\144\257"}, - {0x0B01, "\022\142\356\123"}, - {0x0B02, "\022\142\355\222"}, - {0x0B03, "\022\142\355\243"}, - {0x0B05, "\001\142\063"}, - {0x0B06, "\001\142\323"}, - {0x0B07, "\001\142\103"}, - {0x0B08, "\001\142\315"}, - {0x0B09, "\001\142\113"}, - {0x0B0A, "\001\142\342"}, - {0x0B0B, "\001\142\167\205"}, - {0x0B0C, "\001\142\211\205"}, - {0x0B0F, "\001\142\217"}, - {0x0B10, "\001\142\307"}, - {0x0B13, "\001\142\306"}, - {0x0B14, "\001\142\333"}, - {0x0B15, "\001\142\240"}, - {0x0B16, "\001\142\355\054"}, - {0x0B17, "\001\142\355\017"}, - {0x0B18, "\001\142\355\106"}, - {0x0B19, "\001\142\355\066"}, - {0x0B1A, "\001\142\355\024"}, - {0x0B1B, "\001\142\355\240"}, - {0x0B1C, "\001\142\355\104"}, - {0x0B1D, "\001\142\355\251"}, - {0x0B1E, "\001\142\355\201"}, - {0x0B1F, "\001\142\355\100"}, - {0x0B20, "\001\142\355\127"}, - {0x0B21, "\001\142\355\120"}, - {0x0B22, "\001\142\355\160"}, - {0x0B23, "\001\142\355\141"}, - {0x0B24, "\001\142\311"}, - {0x0B25, "\001\142\355\072"}, - {0x0B26, "\001\142\355\002"}, - {0x0B27, "\001\142\355\162"}, - {0x0B28, "\001\142\354"}, - {0x0B2A, "\001\142\327"}, - {0x0B2B, "\001\142\355\124"}, - {0x0B2C, "\001\142\355\052"}, - {0x0B2D, "\001\142\355\153"}, - {0x0B2E, "\001\142\277"}, - {0x0B2F, "\001\142\305"}, - {0x0B30, "\001\142\322"}, - {0x0B32, "\001\142\033"}, - {0x0B33, "\001\142\355\263"}, - {0x0B36, "\001\142\355\152"}, - {0x0B37, "\001\142\356\252"}, - {0x0B38, "\001\142\355\004"}, - {0x0B39, "\001\142\314"}, - {0x0B3C, "\022\142\356\227"}, - {0x0B3D, "\022\142\357\067"}, - {0x0B3E, "\042\026\142\323"}, - {0x0B3F, "\042\026\142\103"}, - {0x0B40, "\042\026\142\315"}, - {0x0B41, "\042\026\142\113"}, - {0x0B42, "\042\026\142\342"}, - {0x0B43, "\042\026\142\167\205"}, - {0x0B47, "\042\026\142\217"}, - {0x0B48, "\042\026\142\307"}, - {0x0B4B, "\042\026\142\306"}, - {0x0B4C, "\042\026\142\333"}, - {0x0B4D, "\022\142\355\242"}, - {0x0B56, "\057\007\355\265\142\307"}, - {0x0B57, "\057\007\355\265\142\333"}, - {0x0B5C, "\001\142\355\212"}, - {0x0B5D, "\001\142\357\305"}, - {0x0B5F, "\001\142\360\015"}, - {0x0B60, "\001\142\355\114\205"}, - {0x0B61, "\001\142\355\206\205"}, - {0x0B66, "\024\142\331"}, - {0x0B67, "\024\142\110"}, - {0x0B68, "\024\142\127"}, - {0x0B69, "\024\142\136"}, - {0x0B6A, "\024\142\220"}, - {0x0B6B, "\024\142\230"}, - {0x0B6C, "\024\142\255"}, - {0x0B6D, "\024\142\252"}, - {0x0B6E, "\024\142\226"}, - {0x0B6F, "\024\142\257"}, - {0x0B70, "\362\160\142"}, - {0x0B82, "\022\171\355\222"}, - {0x0B83, "\022\171\355\243"}, - {0x0B85, "\001\171\063"}, - {0x0B86, "\001\171\323"}, - {0x0B87, "\001\171\103"}, - {0x0B88, "\001\171\315"}, - {0x0B89, "\001\171\113"}, - {0x0B8A, "\001\171\342"}, - {0x0B8E, "\001\171\217"}, - {0x0B8F, "\001\171\355\200"}, - {0x0B90, "\001\171\307"}, - {0x0B92, "\001\171\064"}, - {0x0B93, "\001\171\306"}, - {0x0B94, "\001\171\333"}, - {0x0B95, "\001\171\240"}, - {0x0B99, "\001\171\355\066"}, - {0x0B9A, "\001\171\355\024"}, - {0x0B9C, "\001\171\355\104"}, - {0x0B9E, "\001\171\355\201"}, - {0x0B9F, "\001\171\355\100"}, - {0x0BA3, "\001\171\355\141"}, - {0x0BA4, "\001\171\311"}, - {0x0BA8, "\001\171\354"}, - {0x0BA9, "\001\171\361\115"}, - {0x0BAA, "\001\171\327"}, - {0x0BAE, "\001\171\277"}, - {0x0BAF, "\001\171\305"}, - {0x0BB0, "\001\171\322"}, - {0x0BB1, "\001\171\355\212"}, - {0x0BB2, "\001\171\033"}, - {0x0BB3, "\001\171\355\263"}, - {0x0BB4, "\001\171\357\230"}, - {0x0BB5, "\001\171\355\241"}, - {0x0BB7, "\001\171\356\252"}, - {0x0BB8, "\001\171\355\004"}, - {0x0BB9, "\001\171\314"}, - {0x0BBE, "\042\026\171\323"}, - {0x0BBF, "\042\026\171\103"}, - {0x0BC0, "\042\026\171\315"}, - {0x0BC1, "\042\026\171\113"}, - {0x0BC2, "\042\026\171\342"}, - {0x0BC6, "\042\026\171\217"}, - {0x0BC7, "\042\026\171\355\200"}, - {0x0BC8, "\042\026\171\307"}, - {0x0BCA, "\042\026\171\064"}, - {0x0BCB, "\042\026\171\306"}, - {0x0BCC, "\042\026\171\333"}, - {0x0BCD, "\022\171\355\242"}, - {0x0BD7, "\057\007\355\265\171\333"}, - {0x0BE7, "\024\171\110"}, - {0x0BE8, "\024\171\127"}, - {0x0BE9, "\024\171\136"}, - {0x0BEA, "\024\171\220"}, - {0x0BEB, "\024\171\230"}, - {0x0BEC, "\024\171\255"}, - {0x0BED, "\024\171\252"}, - {0x0BEE, "\024\171\226"}, - {0x0BEF, "\024\171\257"}, - {0x0BF0, "\210\171\355\034"}, - {0x0BF1, "\210\171\355\245"}, - {0x0BF2, "\210\171\355\271"}, - {0x0C01, "\022\141\356\123"}, - {0x0C02, "\022\141\355\222"}, - {0x0C03, "\022\141\355\243"}, - {0x0C05, "\001\141\063"}, - {0x0C06, "\001\141\323"}, - {0x0C07, "\001\141\103"}, - {0x0C08, "\001\141\315"}, - {0x0C09, "\001\141\113"}, - {0x0C0A, "\001\141\342"}, - {0x0C0B, "\001\141\167\205"}, - {0x0C0C, "\001\141\211\205"}, - {0x0C0E, "\001\141\217"}, - {0x0C0F, "\001\141\355\200"}, - {0x0C10, "\001\141\307"}, - {0x0C12, "\001\141\064"}, - {0x0C13, "\001\141\306"}, - {0x0C14, "\001\141\333"}, - {0x0C15, "\001\141\240"}, - {0x0C16, "\001\141\355\054"}, - {0x0C17, "\001\141\355\017"}, - {0x0C18, "\001\141\355\106"}, - {0x0C19, "\001\141\355\066"}, - {0x0C1A, "\001\141\355\024"}, - {0x0C1B, "\001\141\355\240"}, - {0x0C1C, "\001\141\355\104"}, - {0x0C1D, "\001\141\355\251"}, - {0x0C1E, "\001\141\355\201"}, - {0x0C1F, "\001\141\355\100"}, - {0x0C20, "\001\141\355\127"}, - {0x0C21, "\001\141\355\120"}, - {0x0C22, "\001\141\355\160"}, - {0x0C23, "\001\141\355\141"}, - {0x0C24, "\001\141\311"}, - {0x0C25, "\001\141\355\072"}, - {0x0C26, "\001\141\355\002"}, - {0x0C27, "\001\141\355\162"}, - {0x0C28, "\001\141\354"}, - {0x0C2A, "\001\141\327"}, - {0x0C2B, "\001\141\355\124"}, - {0x0C2C, "\001\141\355\052"}, - {0x0C2D, "\001\141\355\153"}, - {0x0C2E, "\001\141\277"}, - {0x0C2F, "\001\141\305"}, - {0x0C30, "\001\141\322"}, - {0x0C31, "\001\141\355\212"}, - {0x0C32, "\001\141\033"}, - {0x0C33, "\001\141\355\263"}, - {0x0C35, "\001\141\355\241"}, - {0x0C36, "\001\141\355\152"}, - {0x0C37, "\001\141\355\032"}, - {0x0C38, "\001\141\355\004"}, - {0x0C39, "\001\141\314"}, - {0x0C3E, "\042\026\141\323"}, - {0x0C3F, "\042\026\141\103"}, - {0x0C40, "\042\026\141\315"}, - {0x0C41, "\042\026\141\113"}, - {0x0C42, "\042\026\141\342"}, - {0x0C43, "\042\026\141\167\205"}, - {0x0C44, "\042\026\141\355\114\205"}, - {0x0C46, "\042\026\141\130"}, - {0x0C47, "\042\026\141\355\200"}, - {0x0C48, "\042\026\141\307"}, - {0x0C4A, "\042\026\141\064"}, - {0x0C4B, "\042\026\141\306"}, - {0x0C4C, "\042\026\141\333"}, - {0x0C4D, "\022\141\355\242"}, - {0x0C55, "\057\007\355\265\141"}, - {0x0C56, "\057\007\355\265\141\307"}, - {0x0C60, "\001\141\355\114\205"}, - {0x0C61, "\001\141\355\206\205"}, - {0x0C66, "\024\141\331"}, - {0x0C67, "\024\141\110"}, - {0x0C68, "\024\141\127"}, - {0x0C69, "\024\141\136"}, - {0x0C6A, "\024\141\220"}, - {0x0C6B, "\024\141\230"}, - {0x0C6C, "\024\141\255"}, - {0x0C6D, "\024\141\252"}, - {0x0C6E, "\024\141\226"}, - {0x0C6F, "\024\141\257"}, - {0x0C82, "\022\140\355\222"}, - {0x0C83, "\022\140\355\243"}, - {0x0C85, "\001\140\063"}, - {0x0C86, "\001\140\323"}, - {0x0C87, "\001\140\103"}, - {0x0C88, "\001\140\315"}, - {0x0C89, "\001\140\113"}, - {0x0C8A, "\001\140\342"}, - {0x0C8B, "\001\140\167\205"}, - {0x0C8C, "\001\140\211\205"}, - {0x0C8E, "\001\140\217"}, - {0x0C8F, "\001\140\355\200"}, - {0x0C90, "\001\140\307"}, - {0x0C92, "\001\140\064"}, - {0x0C93, "\001\140\306"}, - {0x0C94, "\001\140\333"}, - {0x0C95, "\001\140\240"}, - {0x0C96, "\001\140\355\054"}, - {0x0C97, "\001\140\355\017"}, - {0x0C98, "\001\140\355\106"}, - {0x0C99, "\001\140\355\066"}, - {0x0C9A, "\001\140\355\024"}, - {0x0C9B, "\001\140\355\240"}, - {0x0C9C, "\001\140\355\104"}, - {0x0C9D, "\001\140\355\251"}, - {0x0C9E, "\001\140\355\201"}, - {0x0C9F, "\001\140\355\100"}, - {0x0CA0, "\001\140\355\127"}, - {0x0CA1, "\001\140\355\120"}, - {0x0CA2, "\001\140\355\160"}, - {0x0CA3, "\001\140\355\141"}, - {0x0CA4, "\001\140\311"}, - {0x0CA5, "\001\140\355\072"}, - {0x0CA6, "\001\140\355\002"}, - {0x0CA7, "\001\140\355\162"}, - {0x0CA8, "\001\140\354"}, - {0x0CAA, "\001\140\327"}, - {0x0CAB, "\001\140\355\124"}, - {0x0CAC, "\001\140\355\052"}, - {0x0CAD, "\001\140\355\153"}, - {0x0CAE, "\001\140\277"}, - {0x0CAF, "\001\140\305"}, - {0x0CB0, "\001\140\322"}, - {0x0CB1, "\001\140\355\212"}, - {0x0CB2, "\001\140\033"}, - {0x0CB3, "\001\140\355\263"}, - {0x0CB5, "\001\140\355\241"}, - {0x0CB6, "\001\140\355\152"}, - {0x0CB7, "\001\140\355\032"}, - {0x0CB8, "\001\140\355\004"}, - {0x0CB9, "\001\140\314"}, - {0x0CBE, "\042\026\140\323"}, - {0x0CBF, "\042\026\140\103"}, - {0x0CC0, "\042\026\140\315"}, - {0x0CC1, "\042\026\140\113"}, - {0x0CC2, "\042\026\140\342"}, - {0x0CC3, "\042\026\140\167\205"}, - {0x0CC4, "\042\026\140\355\114\205"}, - {0x0CC6, "\042\026\140\217"}, - {0x0CC7, "\042\026\140\355\200"}, - {0x0CC8, "\042\026\140\307"}, - {0x0CCA, "\042\026\140\064"}, - {0x0CCB, "\042\026\140\306"}, - {0x0CCC, "\042\026\140\333"}, - {0x0CCD, "\022\140\355\242"}, - {0x0CD5, "\057\007\355\265\140"}, - {0x0CD6, "\057\007\355\265\140\307"}, - {0x0CDE, "\001\140\355\225"}, - {0x0CE0, "\001\140\355\114\205"}, - {0x0CE1, "\001\140\355\206\205"}, - {0x0CE6, "\024\140\331"}, - {0x0CE7, "\024\140\110"}, - {0x0CE8, "\024\140\127"}, - {0x0CE9, "\024\140\136"}, - {0x0CEA, "\024\140\220"}, - {0x0CEB, "\024\140\230"}, - {0x0CEC, "\024\140\255"}, - {0x0CED, "\024\140\252"}, - {0x0CEE, "\024\140\226"}, - {0x0CEF, "\024\140\257"}, - {0x0D02, "\022\145\355\222"}, - {0x0D03, "\022\145\355\243"}, - {0x0D05, "\001\145\063"}, - {0x0D06, "\001\145\323"}, - {0x0D07, "\001\145\103"}, - {0x0D08, "\001\145\315"}, - {0x0D09, "\001\145\113"}, - {0x0D0A, "\001\145\342"}, - {0x0D0B, "\001\145\167\205"}, - {0x0D0C, "\001\145\211\205"}, - {0x0D0E, "\001\145\217"}, - {0x0D0F, "\001\145\355\200"}, - {0x0D10, "\001\145\307"}, - {0x0D12, "\001\145\064"}, - {0x0D13, "\001\145\306"}, - {0x0D14, "\001\145\333"}, - {0x0D15, "\001\145\240"}, - {0x0D16, "\001\145\355\054"}, - {0x0D17, "\001\145\355\017"}, - {0x0D18, "\001\145\355\106"}, - {0x0D19, "\001\145\355\066"}, - {0x0D1A, "\001\145\355\024"}, - {0x0D1B, "\001\145\355\240"}, - {0x0D1C, "\001\145\355\104"}, - {0x0D1D, "\001\145\355\251"}, - {0x0D1E, "\001\145\355\201"}, - {0x0D1F, "\001\145\355\100"}, - {0x0D20, "\001\145\355\127"}, - {0x0D21, "\001\145\355\120"}, - {0x0D22, "\001\145\355\160"}, - {0x0D23, "\001\145\355\141"}, - {0x0D24, "\001\145\311"}, - {0x0D25, "\001\145\355\072"}, - {0x0D26, "\001\145\355\002"}, - {0x0D27, "\001\145\355\162"}, - {0x0D28, "\001\145\354"}, - {0x0D2A, "\001\145\327"}, - {0x0D2B, "\001\145\355\124"}, - {0x0D2C, "\001\145\355\052"}, - {0x0D2D, "\001\145\355\153"}, - {0x0D2E, "\001\145\277"}, - {0x0D2F, "\001\145\305"}, - {0x0D30, "\001\145\322"}, - {0x0D31, "\001\145\355\212"}, - {0x0D32, "\001\145\033"}, - {0x0D33, "\001\145\355\263"}, - {0x0D34, "\001\145\357\230"}, - {0x0D35, "\001\145\355\241"}, - {0x0D36, "\001\145\355\152"}, - {0x0D37, "\001\145\355\032"}, - {0x0D38, "\001\145\355\004"}, - {0x0D39, "\001\145\314"}, - {0x0D3E, "\042\026\145\323"}, - {0x0D3F, "\042\026\145\103"}, - {0x0D40, "\042\026\145\315"}, - {0x0D41, "\042\026\145\113"}, - {0x0D42, "\042\026\145\342"}, - {0x0D43, "\042\026\145\167\205"}, - {0x0D46, "\042\026\145\217"}, - {0x0D47, "\042\026\145\355\200"}, - {0x0D48, "\042\026\145\307"}, - {0x0D4A, "\042\026\145\064"}, - {0x0D4B, "\042\026\145\306"}, - {0x0D4C, "\042\026\145\333"}, - {0x0D4D, "\022\145\355\242"}, - {0x0D57, "\057\007\355\265\145\333"}, - {0x0D60, "\001\145\355\114\205"}, - {0x0D61, "\001\145\355\206\205"}, - {0x0D66, "\024\145\331"}, - {0x0D67, "\024\145\110"}, - {0x0D68, "\024\145\127"}, - {0x0D69, "\024\145\136"}, - {0x0D6A, "\024\145\220"}, - {0x0D6B, "\024\145\230"}, - {0x0D6C, "\024\145\255"}, - {0x0D6D, "\024\145\252"}, - {0x0D6E, "\024\145\226"}, - {0x0D6F, "\024\145\257"}, - {0x0D82, "\022\356\114\362\336"}, - {0x0D83, "\022\356\114\376\043"}, - {0x0D85, "\001\152\363\014"}, - {0x0D86, "\001\152\377\002"}, - {0x0D87, "\001\152\376\364"}, - {0x0D88, "\001\152\376\365"}, - {0x0D89, "\001\152\367\241"}, - {0x0D8A, "\001\152\377\047"}, - {0x0D8B, "\001\152\372\133"}, - {0x0D8C, "\001\152\372\141"}, - {0x0D8D, "\001\152\367\230"}, - {0x0D8E, "\001\152\367\231"}, - {0x0D8F, "\001\152\367\201"}, - {0x0D90, "\001\152\367\203"}, - {0x0D91, "\001\152\377\041"}, - {0x0D92, "\001\152\377\044"}, - {0x0D93, "\001\152\363\020"}, - {0x0D94, "\001\152\372\137"}, - {0x0D95, "\001\152\377\065"}, - {0x0D96, "\001\152\362\344"}, - {0x0D9A, "\001\152\355\221\360\366"}, - {0x0D9B, "\001\152\355\227\360\366"}, - {0x0D9C, "\001\152\355\221\357\153"}, - {0x0D9D, "\001\152\355\227\357\153"}, - {0x0D9E, "\001\152\367\361\361\132"}, - {0x0D9F, "\001\152\357\026\357\153"}, - {0x0DA0, "\001\152\355\221\361\363"}, - {0x0DA1, "\001\152\355\227\361\363"}, - {0x0DA2, "\001\152\355\221\357\136"}, - {0x0DA3, "\001\152\355\227\357\136"}, - {0x0DA4, "\001\152\357\372\361\132"}, - {0x0DA5, "\001\152\357\372\374\222\372\061"}, - {0x0DA6, "\001\152\357\026\357\136"}, - {0x0DA7, "\001\152\355\221\362\047"}, - {0x0DA8, "\001\152\355\227\362\047"}, - {0x0DA9, "\001\152\355\221\357\127"}, - {0x0DAA, "\001\152\355\227\357\127"}, - {0x0DAB, "\001\152\357\241\361\106"}, - {0x0DAC, "\001\152\357\026\357\127"}, - {0x0DAD, "\001\152\355\221\361\357"}, - {0x0DAE, "\001\152\355\227\361\357"}, - {0x0DAF, "\001\152\355\221\357\124"}, - {0x0DB0, "\001\152\355\227\357\124"}, - {0x0DB1, "\001\152\357\123\361\106"}, - {0x0DB3, "\001\152\357\026\357\124"}, - {0x0DB4, "\001\152\355\221\361\161"}, - {0x0DB5, "\001\152\355\227\361\161"}, - {0x0DB6, "\001\152\355\221\357\070"}, - {0x0DB7, "\001\152\355\227\357\070"}, - {0x0DB8, "\001\152\370\304"}, - {0x0DB9, "\001\152\362\322\357\070"}, - {0x0DBA, "\001\152\376\156"}, - {0x0DBB, "\001\152\374\044"}, - {0x0DBD, "\001\152\357\123\361\023"}, - {0x0DC0, "\001\152\376\014"}, - {0x0DC1, "\001\152\357\372\377\006"}, - {0x0DC2, "\001\152\357\241\363\271"}, - {0x0DC3, "\001\152\357\123\374\230"}, - {0x0DC4, "\001\152\366\322"}, - {0x0DC5, "\001\152\357\241\361\023"}, - {0x0DC6, "\001\152\366\051"}, - {0x0DCA, "\022\356\114\362\310"}, - {0x0DCF, "\042\026\152\360\024"}, - {0x0DD0, "\042\026\152\357\224\362\152"}, - {0x0DD1, "\042\026\152\356\006\362\152"}, - {0x0DD2, "\042\026\152\357\224\360\352"}, - {0x0DD3, "\042\026\152\356\006\360\352"}, - {0x0DD4, "\042\026\152\357\224\361\232"}, - {0x0DD6, "\042\026\152\356\006\361\232"}, - {0x0DD8, "\042\026\152\360\310"}, - {0x0DD9, "\042\026\152\356\217"}, - {0x0DDA, "\042\026\356\114\356\006\356\217"}, - {0x0DDB, "\042\026\152\370\036\365\243"}, - {0x0DDC, "\042\026\356\114\356\217\357\161\360\024"}, - {0x0DDD, "\042\026\152\356\217\357\161\356\006\360\024"}, - {0x0DDE, "\042\026\152\356\217\357\161\357\154"}, - {0x0DDF, "\042\026\356\114\357\154"}, - {0x0DF2, "\042\026\152\356\006\360\310"}, - {0x0DF3, "\042\026\152\356\006\357\154"}, - {0x0DF4, "\355\234\152\370\044"}, - {0x0E01, "\001\153\355\167\367\373"}, - {0x0E02, "\001\153\355\261\357\220"}, - {0x0E03, "\001\153\355\261\370\007"}, - {0x0E04, "\001\153\355\261\370\010"}, - {0x0E05, "\001\153\355\261\370\005"}, - {0x0E06, "\001\153\355\261\374\036"}, - {0x0E07, "\001\153\356\225\371\220"}, - {0x0E08, "\001\153\355\277\361\362"}, - {0x0E09, "\001\153\355\277\375\135"}, - {0x0E0A, "\001\153\355\277\375\130"}, - {0x0E0B, "\001\153\355\070\355\070"}, - {0x0E0C, "\001\153\355\277\375\146"}, - {0x0E0D, "\001\153\355\040\376\164"}, - {0x0E0E, "\001\153\355\252\375\126"}, - {0x0E0F, "\001\153\355\176\372\165"}, - {0x0E10, "\001\153\355\077\357\354"}, - {0x0E11, "\001\153\355\077\371\101"}, - {0x0E12, "\001\153\355\077\372\220"}, - {0x0E13, "\001\153\355\113\371\173"}, - {0x0E14, "\001\153\355\252\365\242"}, - {0x0E15, "\001\153\355\176\375\102"}, - {0x0E16, "\001\153\355\077\375\172"}, - {0x0E17, "\001\153\355\077\375\166"}, - {0x0E18, "\001\153\355\077\375\170"}, - {0x0E19, "\001\153\355\113\355\340"}, - {0x0E1A, "\001\153\355\377\363\043"}, - {0x0E1B, "\001\153\355\273\372\245"}, - {0x0E1C, "\001\153\356\033\372\217"}, - {0x0E1D, "\001\153\356\014\355\225"}, - {0x0E1E, "\001\153\356\033\372\211"}, - {0x0E1F, "\001\153\356\014\366\043"}, - {0x0E20, "\001\153\356\033\374\216"}, - {0x0E21, "\001\153\355\136\277"}, - {0x0E22, "\001\153\355\040\376\152"}, - {0x0E23, "\001\153\355\174\374\106"}, - {0x0E24, "\001\153\357\315"}, - {0x0E25, "\001\153\355\170\361\030"}, - {0x0E26, "\001\153\356\352"}, - {0x0E27, "\001\153\355\150\362\105"}, - {0x0E28, "\001\153\355\070\374\213"}, - {0x0E29, "\001\153\355\070\374\112"}, - {0x0E2A, "\001\153\355\070\357\333"}, - {0x0E2B, "\001\153\355\107\366\346"}, - {0x0E2C, "\001\153\355\170\375\145"}, - {0x0E2D, "\001\153\064\355\373"}, - {0x0E2E, "\001\153\355\107\371\315"}, - {0x0E2F, "\001\153\372\171"}, - {0x0E30, "\001\153\355\125\063"}, - {0x0E31, "\001\153\361\047\366\314\362\306"}, - {0x0E32, "\001\153\355\125\323"}, - {0x0E33, "\001\153\355\125\356\277"}, - {0x0E34, "\001\153\355\125\103"}, - {0x0E35, "\001\153\355\125\315"}, - {0x0E36, "\001\153\355\125\356\235"}, - {0x0E37, "\001\153\355\125\372\134"}, - {0x0E38, "\001\153\355\125\113"}, - {0x0E39, "\001\153\355\125\342"}, - {0x0E3A, "\001\153\372\213"}, - {0x0E3F, "\022\355\272\355\147\363\022"}, - {0x0E40, "\001\153\355\125\217"}, - {0x0E41, "\001\153\355\125\376\366"}, - {0x0E42, "\001\153\355\125\064"}, - {0x0E43, "\001\153\355\125\307\370\306"}, - {0x0E44, "\001\153\355\125\307\370\305"}, - {0x0E45, "\001\153\370\127"}, - {0x0E46, "\001\153\370\310"}, - {0x0E47, "\001\153\370\307"}, - {0x0E48, "\001\153\355\270\360\227"}, - {0x0E49, "\001\153\355\270\355\077"}, - {0x0E4A, "\001\153\355\270\375\254"}, - {0x0E4B, "\001\153\355\270\375\132"}, - {0x0E4C, "\001\153\375\167"}, - {0x0E4D, "\001\153\371\241"}, - {0x0E4E, "\001\153\376\153"}, - {0x0E4F, "\001\153\366\100"}, - {0x0E50, "\024\355\147\331"}, - {0x0E51, "\024\355\147\110"}, - {0x0E52, "\024\355\147\127"}, - {0x0E53, "\024\355\147\136"}, - {0x0E54, "\024\355\147\220"}, - {0x0E55, "\024\355\147\230"}, - {0x0E56, "\024\355\147\255"}, - {0x0E57, "\024\355\147\252"}, - {0x0E58, "\024\355\147\226"}, - {0x0E59, "\024\355\147\257"}, - {0x0E5A, "\335\355\147\362\325"}, - {0x0E5B, "\335\355\147\370\004"}, - {0x0E81, "\001\227\355\167"}, - {0x0E82, "\001\227\355\261\356\115"}, - {0x0E84, "\001\227\355\261\356\122"}, - {0x0E87, "\001\227\356\225"}, - {0x0E88, "\001\227\355\277"}, - {0x0E8A, "\001\227\355\070\356\122"}, - {0x0E8D, "\001\227\357\063"}, - {0x0E94, "\001\227\355\252"}, - {0x0E95, "\001\227\355\176"}, - {0x0E96, "\001\227\355\077\356\115"}, - {0x0E97, "\001\227\355\077\356\122"}, - {0x0E99, "\001\227\355\113"}, - {0x0E9A, "\001\227\355\377"}, - {0x0E9B, "\001\227\355\273"}, - {0x0E9C, "\001\227\356\033\356\115"}, - {0x0E9D, "\001\227\356\014\356\122"}, - {0x0E9E, "\001\227\356\033\356\122"}, - {0x0E9F, "\001\227\356\014\356\115"}, - {0x0EA1, "\001\227\355\136"}, - {0x0EA2, "\001\227\355\040"}, - {0x0EA3, "\001\227\355\170\361\030"}, - {0x0EA5, "\001\227\355\170\370\207"}, - {0x0EA7, "\001\227\355\150"}, - {0x0EAA, "\001\227\355\070\356\115"}, - {0x0EAB, "\001\227\355\107\356\115"}, - {0x0EAD, "\001\227\064"}, - {0x0EAE, "\001\227\355\107\356\122"}, - {0x0EAF, "\251\007\357\345\370\132"}, - {0x0EB0, "\042\026\227\063"}, - {0x0EB1, "\042\026\227\355\270\367\360"}, - {0x0EB2, "\042\026\227\323"}, - {0x0EB3, "\042\026\227\356\277"}, - {0x0EB4, "\042\026\227\103"}, - {0x0EB5, "\042\026\227\315"}, - {0x0EB6, "\042\026\227\132"}, - {0x0EB7, "\042\026\227\376\003"}, - {0x0EB8, "\042\026\227\113"}, - {0x0EB9, "\042\026\227\342"}, - {0x0EBB, "\042\026\227\355\270\370\037"}, - {0x0EBC, "\360\172\026\227\355\170"}, - {0x0EBD, "\360\172\026\227\357\063"}, - {0x0EC0, "\042\026\227\217"}, - {0x0EC1, "\042\026\227\355\200"}, - {0x0EC2, "\042\026\227\064"}, - {0x0EC3, "\042\026\227\363\012"}, - {0x0EC4, "\042\026\227\307"}, - {0x0EC6, "\022\355\042\355\167\033"}, - {0x0EC8, "\204\007\345\355\042\355\270\377\027"}, - {0x0EC9, "\204\007\345\355\042\355\270\355\077"}, - {0x0ECA, "\204\007\345\355\042\355\270\355\217"}, - {0x0ECB, "\204\007\345\355\042\277\375\131"}, - {0x0ECC, "\057\360\153\355\042"}, - {0x0ECD, "\022\355\042\371\237"}, - {0x0ED0, "\024\355\042\331"}, - {0x0ED1, "\024\355\042\110"}, - {0x0ED2, "\024\355\042\127"}, - {0x0ED3, "\024\355\042\136"}, - {0x0ED4, "\024\355\042\220"}, - {0x0ED5, "\024\355\042\230"}, - {0x0ED6, "\024\355\042\255"}, - {0x0ED7, "\024\355\042\252"}, - {0x0ED8, "\024\355\042\226"}, - {0x0ED9, "\024\355\042\257"}, - {0x0EDC, "\022\355\042\355\107\355\113"}, - {0x0EDD, "\022\355\042\355\107\355\136"}, - {0x0F00, "\002\107\356\366"}, - {0x0F01, "\057\120\356\206\355\302\355\207\063\375\260"}, - {0x0F02, "\057\120\356\206\355\302\355\207\360\040\361\272\360\071\277"}, - {0x0F03, "\057\120\356\206\355\302\355\207\360\040\356\206\356\046\277"}, - {0x0F04, "\057\120\355\302\355\207\370\312\277\372\132"}, - {0x0F05, "\057\120\355\302\355\207\374\257\277\366\056"}, - {0x0F06, "\057\120\356\057\355\302\355\207\361\166\355\274\277"}, - {0x0F07, "\057\120\355\302\355\207\356\046\355\274\277"}, - {0x0F08, "\057\120\374\233\355\274"}, - {0x0F09, "\057\120\363\165\355\302\355\207"}, - {0x0F0A, "\057\120\363\142\374\271\355\302\355\207"}, - {0x0F0B, "\057\120\367\221\356\046"}, - {0x0F0C, "\057\365\356\120\356\046\363\166"}, - {0x0F0D, "\057\120\355\274"}, - {0x0F0E, "\057\120\360\031\355\274"}, - {0x0F0F, "\057\120\356\046\355\274"}, - {0x0F10, "\057\120\360\031\356\046\355\274"}, - {0x0F11, "\057\120\374\065\363\275\374\367\355\274"}, - {0x0F12, "\057\120\361\261\360\300\355\274"}, - {0x0F13, "\057\120\356\057\360\216\355\213\355\334\355\264\361\362"}, - {0x0F14, "\057\120\356\206\356\046"}, - {0x0F15, "\361\035\375\201\363\254\355\213"}, - {0x0F16, "\361\035\120\370\152\355\213"}, - {0x0F17, "\057\120\357\066\374\261\366\146\362\161\355\213"}, - {0x0F18, "\057\120\357\066\362\163\327"}, - {0x0F19, "\057\120\357\066\374\237\375\264"}, - {0x0F1A, "\057\120\355\346\356\323\360\262"}, - {0x0F1B, "\057\120\355\346\356\323\360\315"}, - {0x0F1C, "\057\120\355\346\356\323\357\157"}, - {0x0F1D, "\057\120\355\346\356\360\360\262"}, - {0x0F1E, "\057\120\355\346\356\360\360\315"}, - {0x0F1F, "\057\120\355\346\356\323\355\346\356\360"}, - {0x0F20, "\024\120\331"}, - {0x0F21, "\024\120\110"}, - {0x0F22, "\024\120\127"}, - {0x0F23, "\024\120\136"}, - {0x0F24, "\024\120\220"}, - {0x0F25, "\024\120\230"}, - {0x0F26, "\024\120\255"}, - {0x0F27, "\024\120\252"}, - {0x0F28, "\024\120\226"}, - {0x0F29, "\024\120\257"}, - {0x0F2A, "\024\120\110\355\020\110\355\133"}, - {0x0F2B, "\024\120\127\355\020\110\355\133"}, - {0x0F2C, "\024\120\136\355\020\110\355\133"}, - {0x0F2D, "\024\120\220\355\020\110\355\133"}, - {0x0F2E, "\024\120\230\355\020\110\355\133"}, - {0x0F2F, "\024\120\255\355\020\110\355\133"}, - {0x0F30, "\024\120\252\355\020\110\355\133"}, - {0x0F31, "\024\120\226\355\020\110\355\133"}, - {0x0F32, "\024\120\257\355\020\110\355\133"}, - {0x0F33, "\024\120\331\355\020\110\355\133"}, - {0x0F34, "\057\120\363\164\355\213"}, - {0x0F35, "\057\120\361\110\360\103\360\030\362\142"}, - {0x0F36, "\057\120\356\057\360\216\355\213\360\102\361\054\356\150"}, - {0x0F37, "\057\120\361\110\360\103\374\260\355\213"}, - {0x0F38, "\057\120\356\151\355\207"}, - {0x0F39, "\057\120\355\177\362\164"}, - {0x0F3A, "\057\120\360\302\355\213\360\307"}, - {0x0F3B, "\057\120\360\302\355\213\360\306"}, - {0x0F3C, "\057\120\355\373\360\372\360\307"}, - {0x0F3D, "\057\120\355\373\360\372\360\306"}, - {0x0F3E, "\057\120\376\154\362\044"}, - {0x0F3F, "\057\120\370\267\362\044"}, - {0x0F40, "\001\107\240"}, - {0x0F41, "\001\107\355\054"}, - {0x0F42, "\001\107\355\017"}, - {0x0F43, "\001\107\355\106"}, - {0x0F44, "\001\107\355\066"}, - {0x0F45, "\001\107\357\073"}, - {0x0F46, "\001\107\355\032"}, - {0x0F47, "\001\107\357\206"}, - {0x0F49, "\001\107\355\201"}, - {0x0F4A, "\001\107\355\100"}, - {0x0F4B, "\001\107\355\127"}, - {0x0F4C, "\001\107\355\120"}, - {0x0F4D, "\001\107\355\160"}, - {0x0F4E, "\001\107\355\141"}, - {0x0F4F, "\001\107\311"}, - {0x0F50, "\001\107\355\072"}, - {0x0F51, "\001\107\355\002"}, - {0x0F52, "\001\107\355\162"}, - {0x0F53, "\001\107\354"}, - {0x0F54, "\001\107\327"}, - {0x0F55, "\001\107\355\124"}, - {0x0F56, "\001\107\355\052"}, - {0x0F57, "\001\107\355\153"}, - {0x0F58, "\001\107\277"}, - {0x0F59, "\001\107\355\177"}, - {0x0F5A, "\001\107\362\043"}, - {0x0F5B, "\001\107\356\065"}, - {0x0F5C, "\001\107\360\214"}, - {0x0F5D, "\001\107\355\050"}, - {0x0F5E, "\001\107\355\365"}, - {0x0F5F, "\001\107\355\101"}, - {0x0F60, "\001\107\360\035"}, - {0x0F61, "\001\107\305"}, - {0x0F62, "\001\107\322"}, - {0x0F63, "\001\107\033"}, - {0x0F64, "\001\107\357\325"}, - {0x0F65, "\001\107\356\252"}, - {0x0F66, "\001\107\355\004"}, - {0x0F67, "\001\107\314"}, - {0x0F68, "\001\107\063"}, - {0x0F69, "\001\107\357\223"}, - {0x0F6A, "\001\107\322\044\263\356\201"}, - {0x0F71, "\042\026\107\323"}, - {0x0F72, "\042\026\107\103"}, - {0x0F73, "\042\026\107\315"}, - {0x0F74, "\042\026\107\113"}, - {0x0F75, "\042\026\107\342"}, - {0x0F76, "\042\026\107\167\205"}, - {0x0F77, "\042\026\107\355\114\205"}, - {0x0F78, "\042\026\107\211\205"}, - {0x0F79, "\042\026\107\355\206\205"}, - {0x0F7A, "\042\026\107\217"}, - {0x0F7B, "\042\026\107\355\200"}, - {0x0F7C, "\042\026\107\064"}, - {0x0F7D, "\042\026\107\306"}, - {0x0F7E, "\057\120\374\102\355\070\355\066\355\174"}, - {0x0F7F, "\057\120\361\272\360\071"}, - {0x0F80, "\042\026\103\355\013"}, - {0x0F81, "\042\026\315\355\013"}, - {0x0F82, "\057\120\360\030\362\142\361\131\355\002"}, - {0x0F83, "\057\120\374\341\370\142"}, - {0x0F84, "\057\120\366\311"}, - {0x0F85, "\057\120\372\152"}, - {0x0F86, "\057\120\370\141\355\213"}, - {0x0F87, "\057\120\360\011\355\213"}, - {0x0F88, "\057\120\370\140\355\177\356\150"}, - {0x0F89, "\057\120\370\311\356\150"}, - {0x0F8A, "\057\120\360\301\356\150\361\262"}, - {0x0F8B, "\057\120\360\301\370\313\361\262"}, - {0x0F90, "\001\107\240\236"}, - {0x0F91, "\001\107\355\054\236"}, - {0x0F92, "\001\107\355\017\236"}, - {0x0F93, "\001\107\355\106\236"}, - {0x0F94, "\001\107\355\066\236"}, - {0x0F95, "\001\107\357\073\236"}, - {0x0F96, "\001\107\355\032\236"}, - {0x0F97, "\001\107\357\206\236"}, - {0x0F99, "\001\107\377\050"}, - {0x0F9A, "\001\107\355\100\236"}, - {0x0F9B, "\001\107\355\127\236"}, - {0x0F9C, "\001\107\355\120\236"}, - {0x0F9D, "\001\107\355\160\236"}, - {0x0F9E, "\001\107\355\141\236"}, - {0x0F9F, "\001\107\311\236"}, - {0x0FA0, "\001\107\355\072\236"}, - {0x0FA1, "\001\107\355\002\236"}, - {0x0FA2, "\001\107\355\162\236"}, - {0x0FA3, "\001\107\354\236"}, - {0x0FA4, "\001\107\327\236"}, - {0x0FA5, "\001\107\355\124\236"}, - {0x0FA6, "\001\107\355\052\236"}, - {0x0FA7, "\001\107\355\153\236"}, - {0x0FA8, "\001\107\277\236"}, - {0x0FA9, "\001\107\355\177\236"}, - {0x0FAA, "\001\107\362\043\236"}, - {0x0FAB, "\001\107\356\065\236"}, - {0x0FAC, "\001\107\360\214\236"}, - {0x0FAD, "\001\107\355\050\236"}, - {0x0FAE, "\001\107\355\365\236"}, - {0x0FAF, "\001\107\355\101\236"}, - {0x0FB0, "\001\107\360\035\236"}, - {0x0FB1, "\001\107\305\236"}, - {0x0FB2, "\001\107\322\236"}, - {0x0FB3, "\001\107\033\236"}, - {0x0FB4, "\001\107\357\325\375\363"}, - {0x0FB5, "\001\107\356\252\236"}, - {0x0FB6, "\001\107\355\004\236"}, - {0x0FB7, "\001\107\314\236"}, - {0x0FB8, "\001\107\063\236"}, - {0x0FB9, "\001\107\357\223\236\357\223"}, - {0x0FBA, "\001\107\355\050\236\044\263\356\201"}, - {0x0FBB, "\001\107\236\305\044\263\356\201"}, - {0x0FBC, "\001\107\236\322\044\263\356\201"}, - {0x0FBE, "\057\120\356\021\356\037\355\054"}, - {0x0FBF, "\057\120\356\021\356\037\355\054\360\102\361\054\356\150"}, - {0x0FC0, "\057\120\007\356\306\361\376\366\103"}, - {0x0FC1, "\057\120\007\356\306\361\376\366\041"}, - {0x0FC2, "\057\120\007\356\306\363\231\375\155"}, - {0x0FC3, "\374\315\120\007\356\306\374\234\363\216"}, - {0x0FC4, "\022\120\365\331\356\003"}, - {0x0FC5, "\022\120\361\251\361\271"}, - {0x0FC6, "\022\120\372\146\366\147"}, - {0x0FC7, "\022\120\361\251\361\271\361\261\360\300"}, - {0x0FC8, "\022\120\361\166\327"}, - {0x0FC9, "\022\120\356\363\356\003"}, - {0x0FCA, "\022\120\356\363\356\003\360\031\362\162"}, - {0x0FCB, "\022\120\356\363\356\003\357\157\360\037"}, - {0x0FCC, "\022\120\356\363\355\377\363\103\360\037"}, - {0x0FCF, "\057\120\355\346\356\360\357\157"}, - {0x1000, "\001\176\240"}, - {0x1001, "\001\176\355\054"}, - {0x1002, "\001\176\355\017"}, - {0x1003, "\001\176\355\106"}, - {0x1004, "\001\176\355\066"}, - {0x1005, "\001\176\355\024"}, - {0x1006, "\001\176\355\240"}, - {0x1007, "\001\176\355\104"}, - {0x1008, "\001\176\355\251"}, - {0x1009, "\001\176\355\201"}, - {0x100A, "\001\176\377\055"}, - {0x100B, "\001\176\355\100"}, - {0x100C, "\001\176\355\127"}, - {0x100D, "\001\176\355\120"}, - {0x100E, "\001\176\355\160"}, - {0x100F, "\001\176\355\141"}, - {0x1010, "\001\176\311"}, - {0x1011, "\001\176\355\072"}, - {0x1012, "\001\176\355\002"}, - {0x1013, "\001\176\355\162"}, - {0x1014, "\001\176\354"}, - {0x1015, "\001\176\327"}, - {0x1016, "\001\176\355\124"}, - {0x1017, "\001\176\355\052"}, - {0x1018, "\001\176\355\153"}, - {0x1019, "\001\176\277"}, - {0x101A, "\001\176\305"}, - {0x101B, "\001\176\322"}, - {0x101C, "\001\176\033"}, - {0x101D, "\001\176\355\050"}, - {0x101E, "\001\176\355\004"}, - {0x101F, "\001\176\314"}, - {0x1020, "\001\176\355\263"}, - {0x1021, "\001\176\323"}, - {0x1023, "\001\176\103"}, - {0x1024, "\001\176\315"}, - {0x1025, "\001\176\113"}, - {0x1026, "\001\176\342"}, - {0x1027, "\001\176\217"}, - {0x1029, "\001\176\064"}, - {0x102A, "\001\176\333"}, - {0x102C, "\042\026\176\323"}, - {0x102D, "\042\026\176\103"}, - {0x102E, "\042\026\176\315"}, - {0x102F, "\042\026\176\113"}, - {0x1030, "\042\026\176\342"}, - {0x1031, "\042\026\176\217"}, - {0x1032, "\042\026\176\307"}, - {0x1036, "\022\355\031\355\222"}, - {0x1037, "\037\043\355\031"}, - {0x1038, "\355\243\355\031"}, - {0x1039, "\022\355\031\355\242"}, - {0x1040, "\024\355\031\331"}, - {0x1041, "\024\355\031\110"}, - {0x1042, "\024\355\031\127"}, - {0x1043, "\024\355\031\136"}, - {0x1044, "\024\355\031\220"}, - {0x1045, "\024\355\031\230"}, - {0x1046, "\024\355\031\255"}, - {0x1047, "\024\355\031\252"}, - {0x1048, "\024\355\031\226"}, - {0x1049, "\024\355\031\257"}, - {0x104A, "\057\355\031\355\142\361\305"}, - {0x104B, "\057\355\031\361\305"}, - {0x104C, "\022\355\031\370\200"}, - {0x104D, "\022\355\031\362\300"}, - {0x104E, "\022\355\031\370\143"}, - {0x104F, "\022\355\031\366\300"}, - {0x1050, "\001\176\355\152"}, - {0x1051, "\001\176\355\032"}, - {0x1052, "\001\176\167\205"}, - {0x1053, "\001\176\355\114\205"}, - {0x1054, "\001\176\211\205"}, - {0x1055, "\001\176\355\206\205"}, - {0x1056, "\042\026\176\167\205"}, - {0x1057, "\042\026\176\355\114\205"}, - {0x1058, "\042\026\176\211\205"}, - {0x1059, "\042\026\176\355\206\205"}, - {0x10A0, "\001\146\253\357\064"}, - {0x10A1, "\001\146\253\360\066"}, - {0x10A2, "\001\146\253\360\257"}, - {0x10A3, "\001\146\253\360\211"}, - {0x10A4, "\001\146\253\377\016"}, - {0x10A5, "\001\146\253\360\002"}, - {0x10A6, "\001\146\253\362\150"}, - {0x10A7, "\001\146\253\357\354"}, - {0x10A8, "\001\146\253\357\175"}, - {0x10A9, "\001\146\253\360\364"}, - {0x10AA, "\001\146\253\361\022"}, - {0x10AB, "\001\146\253\357\231"}, - {0x10AC, "\001\146\253\361\105"}, - {0x10AD, "\001\146\253\357\256"}, - {0x10AE, "\001\146\253\372\143"}, - {0x10AF, "\001\146\253\360\356"}, - {0x10B0, "\001\146\253\374\047"}, - {0x10B1, "\001\146\253\361\302"}, - {0x10B2, "\001\146\253\361\351"}, - {0x10B3, "\001\146\253\361\146"}, - {0x10B4, "\001\146\253\361\165"}, - {0x10B5, "\001\146\253\360\373"}, - {0x10B6, "\001\146\253\360\274"}, - {0x10B7, "\001\146\253\361\237"}, - {0x10B8, "\001\146\253\357\077"}, - {0x10B9, "\001\146\253\361\365"}, - {0x10BA, "\001\146\253\362\045"}, - {0x10BB, "\001\146\253\360\215"}, - {0x10BC, "\001\146\253\362\041"}, - {0x10BD, "\001\146\253\361\361"}, - {0x10BE, "\001\146\253\357\217"}, - {0x10BF, "\001\146\253\360\204"}, - {0x10C0, "\001\146\253\360\320"}, - {0x10C1, "\001\146\253\362\153"}, - {0x10C2, "\001\146\253\360\353"}, - {0x10C3, "\001\146\253\362\073"}, - {0x10C4, "\001\146\253\360\316"}, - {0x10C5, "\001\146\253\360\333"}, - {0x10D0, "\001\146\250\357\064"}, - {0x10D1, "\001\146\250\360\066"}, - {0x10D2, "\001\146\250\360\257"}, - {0x10D3, "\001\146\250\360\211"}, - {0x10D4, "\001\146\250\377\017"}, - {0x10D5, "\001\146\250\360\002"}, - {0x10D6, "\001\146\250\362\150"}, - {0x10D7, "\001\146\250\357\354"}, - {0x10D8, "\001\146\250\357\175"}, - {0x10D9, "\001\146\250\360\364"}, - {0x10DA, "\001\146\250\361\022"}, - {0x10DB, "\001\146\250\357\231"}, - {0x10DC, "\001\146\250\361\105"}, - {0x10DD, "\001\146\250\357\256"}, - {0x10DE, "\001\146\250\355\232"}, - {0x10DF, "\001\146\250\360\356"}, - {0x10E0, "\001\146\250\374\033"}, - {0x10E1, "\001\146\250\361\302"}, - {0x10E2, "\001\146\250\361\351"}, - {0x10E3, "\001\146\250\361\146"}, - {0x10E4, "\001\146\250\361\165"}, - {0x10E5, "\001\146\250\360\373"}, - {0x10E6, "\001\146\250\360\274"}, - {0x10E7, "\001\146\250\361\237"}, - {0x10E8, "\001\146\250\357\077"}, - {0x10E9, "\001\146\250\361\365"}, - {0x10EA, "\001\146\250\362\045"}, - {0x10EB, "\001\146\250\360\215"}, - {0x10EC, "\001\146\250\362\041"}, - {0x10ED, "\001\146\250\361\361"}, - {0x10EE, "\001\146\250\357\217"}, - {0x10EF, "\001\146\250\360\204"}, - {0x10F0, "\001\146\250\360\320"}, - {0x10F1, "\001\146\250\362\153"}, - {0x10F2, "\001\146\250\360\353"}, - {0x10F3, "\001\146\250\362\073"}, - {0x10F4, "\001\146\250\360\316"}, - {0x10F5, "\001\146\250\360\333"}, - {0x10F6, "\001\146\250\356\200"}, - {0x10FB, "\355\045\007\357\266\366\302"}, - {0x1100, "\014\117\355\333"}, - {0x1101, "\014\117\357\040"}, - {0x1102, "\014\117\355\337"}, - {0x1103, "\014\117\355\360"}, - {0x1104, "\014\117\357\340"}, - {0x1105, "\014\117\355\350"}, - {0x1106, "\014\117\355\335"}, - {0x1107, "\014\117\355\345"}, - {0x1108, "\014\117\357\336"}, - {0x1109, "\014\117\355\351"}, - {0x110A, "\014\117\357\041"}, - {0x110B, "\014\117\355\327"}, - {0x110C, "\014\117\355\276"}, - {0x110D, "\014\117\357\337"}, - {0x110E, "\014\117\355\356"}, - {0x110F, "\014\117\355\330"}, - {0x1110, "\014\117\355\355"}, - {0x1111, "\014\117\355\344"}, - {0x1112, "\014\117\355\325"}, - {0x1113, "\014\117\361\111"}, - {0x1114, "\014\117\361\335"}, - {0x1115, "\014\117\357\247"}, - {0x1116, "\014\117\371\247"}, - {0x1117, "\014\117\362\006"}, - {0x1118, "\014\117\361\264"}, - {0x1119, "\014\117\361\336"}, - {0x111A, "\014\117\357\023"}, - {0x111B, "\014\117\367\363"}, - {0x111C, "\014\117\357\235"}, - {0x111D, "\014\117\357\213"}, - {0x111E, "\014\117\361\172"}, - {0x111F, "\014\117\372\237"}, - {0x1120, "\014\117\361\200"}, - {0x1121, "\014\117\357\002"}, - {0x1122, "\014\117\361\174"}, - {0x1123, "\014\117\361\175"}, - {0x1124, "\014\117\372\241"}, - {0x1125, "\014\117\372\243"}, - {0x1126, "\014\117\372\242"}, - {0x1127, "\014\117\361\177"}, - {0x1128, "\014\117\372\244"}, - {0x1129, "\014\117\361\176"}, - {0x112A, "\014\117\361\173"}, - {0x112B, "\014\117\357\215"}, - {0x112C, "\014\117\360\365"}, - {0x112D, "\014\117\357\326"}, - {0x112E, "\014\117\361\320"}, - {0x112F, "\014\117\357\330"}, - {0x1130, "\014\117\361\321"}, - {0x1131, "\014\117\374\330"}, - {0x1132, "\014\117\357\327"}, - {0x1133, "\014\117\374\332"}, - {0x1134, "\014\117\374\333"}, - {0x1135, "\014\117\374\326"}, - {0x1136, "\014\117\361\322"}, - {0x1137, "\014\117\374\335"}, - {0x1138, "\014\117\374\327"}, - {0x1139, "\014\117\374\334"}, - {0x113A, "\014\117\374\331"}, - {0x113B, "\014\117\374\325"}, - {0x113C, "\014\117\375\117"}, - {0x113D, "\014\117\375\120"}, - {0x113E, "\014\117\375\140"}, - {0x113F, "\014\117\375\141"}, - {0x1140, "\014\117\357\265"}, - {0x1141, "\014\117\360\354"}, - {0x1142, "\014\117\367\254"}, - {0x1143, "\014\117\367\243"}, - {0x1144, "\014\117\367\246"}, - {0x1145, "\014\117\367\247"}, - {0x1146, "\014\117\367\245"}, - {0x1147, "\014\117\357\335"}, - {0x1148, "\014\117\367\253"}, - {0x1149, "\014\117\367\252"}, - {0x114A, "\014\117\367\251"}, - {0x114B, "\014\117\367\244"}, - {0x114C, "\014\117\360\012"}, - {0x114D, "\014\117\375\136"}, - {0x114E, "\014\117\375\123"}, - {0x114F, "\014\117\375\121"}, - {0x1150, "\014\117\375\144"}, - {0x1151, "\014\117\375\142"}, - {0x1152, "\014\117\375\125"}, - {0x1153, "\014\117\375\124"}, - {0x1154, "\014\117\375\122"}, - {0x1155, "\014\117\375\143"}, - {0x1156, "\014\117\361\151"}, - {0x1157, "\014\117\357\214"}, - {0x1158, "\014\117\361\334"}, - {0x1159, "\014\117\360\013"}, - {0x115F, "\356\145\014\117"}, - {0x1160, "\356\145\014\163"}, - {0x1161, "\014\163\063"}, - {0x1162, "\014\163\356\136"}, - {0x1163, "\014\163\305"}, - {0x1164, "\014\163\360\016"}, - {0x1165, "\014\163\064"}, - {0x1166, "\014\163\217"}, - {0x1167, "\014\163\355\040"}, - {0x1168, "\014\163\355\303"}, - {0x1169, "\014\163\306"}, - {0x116A, "\014\163\355\050"}, - {0x116B, "\014\163\360\010"}, - {0x116C, "\014\163\356\011"}, - {0x116D, "\014\163\356\273"}, - {0x116E, "\014\163\113"}, - {0x116F, "\014\163\355\150"}, - {0x1170, "\014\163\356\271"}, - {0x1171, "\014\163\355\362"}, - {0x1172, "\014\163\355\151"}, - {0x1173, "\014\163\360\033"}, - {0x1174, "\014\163\360\034"}, - {0x1175, "\014\163\103"}, - {0x1176, "\014\163\362\270"}, - {0x1177, "\014\163\362\267"}, - {0x1178, "\014\163\376\151"}, - {0x1179, "\014\163\376\150"}, - {0x117A, "\014\163\372\065"}, - {0x117B, "\014\163\372\064"}, - {0x117C, "\014\163\372\066"}, - {0x117D, "\014\163\376\170"}, - {0x117E, "\014\163\376\167"}, - {0x117F, "\014\163\377\056"}, - {0x1180, "\014\163\377\061"}, - {0x1181, "\014\163\377\060"}, - {0x1182, "\014\163\377\062"}, - {0x1183, "\014\163\377\057"}, - {0x1184, "\014\163\362\136"}, - {0x1185, "\014\163\362\137"}, - {0x1186, "\014\163\376\232"}, - {0x1187, "\014\163\376\233"}, - {0x1188, "\014\163\362\135"}, - {0x1189, "\014\163\372\117"}, - {0x118A, "\014\163\372\123"}, - {0x118B, "\014\163\372\120"}, - {0x118C, "\014\163\372\122"}, - {0x118D, "\014\163\372\121"}, - {0x118E, "\014\163\376\173"}, - {0x118F, "\014\163\376\174"}, - {0x1190, "\014\163\376\176"}, - {0x1191, "\014\163\362\121"}, - {0x1192, "\014\163\362\122"}, - {0x1193, "\014\163\376\175"}, - {0x1194, "\014\163\362\120"}, - {0x1195, "\014\163\377\066"}, - {0x1196, "\014\163\377\067"}, - {0x1197, "\014\163\377\070"}, - {0x1198, "\014\163\367\164"}, - {0x1199, "\014\163\367\167"}, - {0x119A, "\014\163\367\170"}, - {0x119B, "\014\163\367\166"}, - {0x119C, "\014\163\367\171"}, - {0x119D, "\014\163\367\165"}, - {0x119E, "\014\163\360\053"}, - {0x119F, "\014\163\362\367"}, - {0x11A0, "\014\163\362\370"}, - {0x11A1, "\014\163\362\366"}, - {0x11A2, "\014\163\374\371"}, - {0x11A8, "\014\133\355\333"}, - {0x11A9, "\014\133\357\040"}, - {0x11AA, "\014\133\357\221"}, - {0x11AB, "\014\133\355\337"}, - {0x11AC, "\014\133\357\246"}, - {0x11AD, "\014\133\357\245"}, - {0x11AE, "\014\133\355\360"}, - {0x11AF, "\014\133\355\350"}, - {0x11B0, "\014\133\357\307"}, - {0x11B1, "\014\133\357\310"}, - {0x11B2, "\014\133\357\312"}, - {0x11B3, "\014\133\357\313"}, - {0x11B4, "\014\133\357\314"}, - {0x11B5, "\014\133\357\311"}, - {0x11B6, "\014\133\357\023"}, - {0x11B7, "\014\133\355\335"}, - {0x11B8, "\014\133\355\345"}, - {0x11B9, "\014\133\357\002"}, - {0x11BA, "\014\133\355\351"}, - {0x11BB, "\014\133\357\041"}, - {0x11BC, "\014\133\355\327"}, - {0x11BD, "\014\133\355\276"}, - {0x11BE, "\014\133\355\356"}, - {0x11BF, "\014\133\355\330"}, - {0x11C0, "\014\133\355\355"}, - {0x11C1, "\014\133\355\344"}, - {0x11C2, "\014\133\355\325"}, - {0x11C3, "\014\133\370\024"}, - {0x11C4, "\014\133\370\025"}, - {0x11C5, "\014\133\361\111"}, - {0x11C6, "\014\133\357\247"}, - {0x11C7, "\014\133\361\113"}, - {0x11C8, "\014\133\361\112"}, - {0x11C9, "\014\133\371\250"}, - {0x11CA, "\014\133\362\006"}, - {0x11CB, "\014\133\375\205"}, - {0x11CC, "\014\133\361\263"}, - {0x11CD, "\014\133\361\264"}, - {0x11CE, "\014\133\361\267"}, - {0x11CF, "\014\133\374\101"}, - {0x11D0, "\014\133\361\336"}, - {0x11D1, "\014\133\374\075"}, - {0x11D2, "\014\133\374\076"}, - {0x11D3, "\014\133\361\266"}, - {0x11D4, "\014\133\374\077"}, - {0x11D5, "\014\133\374\074"}, - {0x11D6, "\014\133\374\100"}, - {0x11D7, "\014\133\361\265"}, - {0x11D8, "\014\133\374\073"}, - {0x11D9, "\014\133\361\270"}, - {0x11DA, "\014\133\370\376"}, - {0x11DB, "\014\133\370\377"}, - {0x11DC, "\014\133\357\235"}, - {0x11DD, "\014\133\361\057"}, - {0x11DE, "\014\133\371\001"}, - {0x11DF, "\014\133\361\056"}, - {0x11E0, "\014\133\371\002"}, - {0x11E1, "\014\133\370\375"}, - {0x11E2, "\014\133\357\213"}, - {0x11E3, "\014\133\372\240"}, - {0x11E4, "\014\133\361\173"}, - {0x11E5, "\014\133\372\236"}, - {0x11E6, "\014\133\357\215"}, - {0x11E7, "\014\133\357\326"}, - {0x11E8, "\014\133\357\330"}, - {0x11E9, "\014\133\361\321"}, - {0x11EA, "\014\133\357\327"}, - {0x11EB, "\014\133\357\265"}, - {0x11EC, "\014\133\360\354"}, - {0x11ED, "\014\133\367\250"}, - {0x11EE, "\014\133\357\335"}, - {0x11EF, "\014\133\367\242"}, - {0x11F0, "\014\133\360\012"}, - {0x11F1, "\014\133\362\113"}, - {0x11F2, "\014\133\362\112"}, - {0x11F3, "\014\133\361\151"}, - {0x11F4, "\014\133\357\214"}, - {0x11F5, "\014\133\366\352"}, - {0x11F6, "\014\133\366\354"}, - {0x11F7, "\014\133\366\351"}, - {0x11F8, "\014\133\366\353"}, - {0x11F9, "\014\133\360\013"}, - {0x1200, "\002\023\367\156"}, - {0x1201, "\002\023\360\332"}, - {0x1202, "\002\023\355\255"}, - {0x1203, "\002\023\314"}, - {0x1204, "\002\023\356\016"}, - {0x1205, "\002\023\356\072"}, - {0x1206, "\002\023\355\107"}, - {0x1208, "\002\023\370\236"}, - {0x1209, "\002\023\356\352"}, - {0x120A, "\002\023\356\077"}, - {0x120B, "\002\023\033"}, - {0x120C, "\002\023\356\222"}, - {0x120D, "\002\023\050"}, - {0x120E, "\002\023\355\170"}, - {0x120F, "\002\023\370\226"}, - {0x1210, "\002\023\366\340"}, - {0x1211, "\002\023\366\336"}, - {0x1212, "\002\023\366\334"}, - {0x1213, "\002\023\366\331"}, - {0x1214, "\002\023\366\342"}, - {0x1215, "\002\023\366\332"}, - {0x1216, "\002\023\366\335"}, - {0x1217, "\002\023\366\337"}, - {0x1218, "\002\023\371\053"}, - {0x1219, "\002\023\356\224"}, - {0x121A, "\002\023\355\230"}, - {0x121B, "\002\023\277"}, - {0x121C, "\002\023\356\356"}, - {0x121D, "\002\023\355\334"}, - {0x121E, "\002\023\355\136"}, - {0x121F, "\002\023\371\044"}, - {0x1220, "\002\023\377\014"}, - {0x1221, "\002\023\377\012"}, - {0x1222, "\002\023\377\010"}, - {0x1223, "\002\023\355\152"}, - {0x1224, "\002\023\377\015"}, - {0x1225, "\002\023\377\007"}, - {0x1226, "\002\023\377\011"}, - {0x1227, "\002\023\377\013"}, - {0x1228, "\002\023\374\166"}, - {0x1229, "\002\023\357\315"}, - {0x122A, "\002\023\355\347"}, - {0x122B, "\002\023\322"}, - {0x122C, "\002\023\356\040"}, - {0x122D, "\002\023\356\035"}, - {0x122E, "\002\023\355\174"}, - {0x122F, "\002\023\374\156"}, - {0x1230, "\002\023\375\063"}, - {0x1231, "\002\023\357\034"}, - {0x1232, "\002\023\355\275"}, - {0x1233, "\002\023\355\004"}, - {0x1234, "\002\023\356\121"}, - {0x1235, "\002\023\356\042"}, - {0x1236, "\002\023\355\070"}, - {0x1237, "\002\023\375\051"}, - {0x1238, "\002\023\363\334"}, - {0x1239, "\002\023\360\120"}, - {0x123A, "\002\023\356\310"}, - {0x123B, "\002\023\355\032"}, - {0x123C, "\002\023\356\311"}, - {0x123D, "\002\023\356\151"}, - {0x123E, "\002\023\356\054"}, - {0x123F, "\002\023\363\325"}, - {0x1240, "\002\023\374\023"}, - {0x1241, "\002\023\373\362"}, - {0x1242, "\002\023\357\301"}, - {0x1243, "\002\023\356\245"}, - {0x1244, "\002\023\374\027"}, - {0x1245, "\002\023\373\334"}, - {0x1246, "\002\023\357\302"}, - {0x1248, "\002\023\374\013"}, - {0x124A, "\002\023\374\012"}, - {0x124B, "\002\023\374\010"}, - {0x124C, "\002\023\374\014"}, - {0x124D, "\002\023\374\011"}, - {0x1250, "\002\023\373\347"}, - {0x1251, "\002\023\373\341"}, - {0x1252, "\002\023\373\337"}, - {0x1253, "\002\023\373\335"}, - {0x1254, "\002\023\373\350"}, - {0x1255, "\002\023\373\336"}, - {0x1256, "\002\023\373\340"}, - {0x1258, "\002\023\373\345"}, - {0x125A, "\002\023\373\344"}, - {0x125B, "\002\023\373\342"}, - {0x125C, "\002\023\373\346"}, - {0x125D, "\002\023\373\343"}, - {0x1260, "\002\023\363\207"}, - {0x1261, "\002\023\363\152"}, - {0x1262, "\002\023\356\304"}, - {0x1263, "\002\023\355\052"}, - {0x1264, "\002\023\356\147"}, - {0x1265, "\002\023\356\142"}, - {0x1266, "\002\023\355\377"}, - {0x1267, "\002\023\363\200"}, - {0x1268, "\002\023\376\071"}, - {0x1269, "\002\023\376\053"}, - {0x126A, "\002\023\360\001"}, - {0x126B, "\002\023\355\241"}, - {0x126C, "\002\023\357\054"}, - {0x126D, "\002\023\357\053"}, - {0x126E, "\002\023\356\132"}, - {0x126F, "\002\023\376\062"}, - {0x1270, "\002\023\375\353"}, - {0x1271, "\002\023\375\234"}, - {0x1272, "\002\023\355\217"}, - {0x1273, "\002\023\311"}, - {0x1274, "\002\023\355\301"}, - {0x1275, "\002\023\356\125"}, - {0x1276, "\002\023\355\176"}, - {0x1277, "\002\023\375\331"}, - {0x1278, "\002\023\375\151"}, - {0x1279, "\002\023\361\366"}, - {0x127A, "\002\023\357\351"}, - {0x127B, "\002\023\355\024"}, - {0x127C, "\002\023\355\071"}, - {0x127D, "\002\023\357\350"}, - {0x127E, "\002\023\355\277"}, - {0x127F, "\002\023\375\147"}, - {0x1280, "\002\023\376\146"}, - {0x1281, "\002\023\376\127"}, - {0x1282, "\002\023\357\055"}, - {0x1283, "\002\023\376\114"}, - {0x1284, "\002\023\376\147"}, - {0x1285, "\002\023\376\115"}, - {0x1286, "\002\023\362\106"}, - {0x1288, "\002\023\376\136"}, - {0x128A, "\002\023\376\135"}, - {0x128B, "\002\023\376\133"}, - {0x128C, "\002\023\376\137"}, - {0x128D, "\002\023\376\134"}, - {0x1290, "\002\023\372\057"}, - {0x1291, "\002\023\355\340"}, - {0x1292, "\002\023\244"}, - {0x1293, "\002\023\354"}, - {0x1294, "\002\023\356\231"}, - {0x1295, "\002\023\355\140"}, - {0x1296, "\002\023\355\113"}, - {0x1297, "\002\023\372\001"}, - {0x1298, "\002\023\377\054"}, - {0x1299, "\002\023\377\052"}, - {0x129A, "\002\023\360\030"}, - {0x129B, "\002\023\355\201"}, - {0x129C, "\002\023\360\032"}, - {0x129D, "\002\023\377\051"}, - {0x129E, "\002\023\357\063"}, - {0x129F, "\002\023\377\053"}, - {0x12A0, "\002\023\362\151\355\323"}, - {0x12A1, "\002\023\113\355\323"}, - {0x12A2, "\002\023\103\355\323"}, - {0x12A3, "\002\023\063\355\323"}, - {0x12A4, "\002\023\217\355\323"}, - {0x12A5, "\002\023\130\355\323"}, - {0x12A6, "\002\023\064\355\323"}, - {0x12A7, "\002\023\355\050\355\323"}, - {0x12A8, "\002\023\370\110"}, - {0x12A9, "\002\023\361\003"}, - {0x12AA, "\002\023\355\332"}, - {0x12AB, "\002\023\240"}, - {0x12AC, "\002\023\356\220"}, - {0x12AD, "\002\023\355\331"}, - {0x12AE, "\002\023\355\167"}, - {0x12B0, "\002\023\370\071"}, - {0x12B2, "\002\023\361\014"}, - {0x12B3, "\002\023\361\013"}, - {0x12B4, "\002\023\361\015"}, - {0x12B5, "\002\023\370\066"}, - {0x12B8, "\002\023\370\105"}, - {0x12B9, "\002\023\370\077"}, - {0x12BA, "\002\023\370\075"}, - {0x12BB, "\002\023\370\073"}, - {0x12BC, "\002\023\370\106"}, - {0x12BD, "\002\023\370\074"}, - {0x12BE, "\002\023\370\076"}, - {0x12C0, "\002\023\370\103"}, - {0x12C2, "\002\023\370\102"}, - {0x12C3, "\002\023\370\100"}, - {0x12C4, "\002\023\370\104"}, - {0x12C5, "\002\023\370\101"}, - {0x12C8, "\002\023\376\112"}, - {0x12C9, "\002\023\362\104"}, - {0x12CA, "\002\023\355\362"}, - {0x12CB, "\002\023\355\050"}, - {0x12CC, "\002\023\356\271"}, - {0x12CD, "\002\023\356\270"}, - {0x12CE, "\002\023\355\150"}, - {0x12D0, "\002\023\362\151\356\032"}, - {0x12D1, "\002\023\113\356\032"}, - {0x12D2, "\002\023\103\356\032"}, - {0x12D3, "\002\023\063\356\032"}, - {0x12D4, "\002\023\217\356\032"}, - {0x12D5, "\002\023\130\356\032"}, - {0x12D6, "\002\023\064\356\032"}, - {0x12D8, "\002\023\376\361"}, - {0x12D9, "\002\023\362\144"}, - {0x12DA, "\002\023\356\275"}, - {0x12DB, "\002\023\355\101"}, - {0x12DC, "\002\023\355\367"}, - {0x12DD, "\002\023\356\274"}, - {0x12DE, "\002\023\356\135"}, - {0x12DF, "\002\023\376\317"}, - {0x12E0, "\002\023\367\352"}, - {0x12E1, "\002\023\367\322"}, - {0x12E2, "\002\023\360\360"}, - {0x12E3, "\002\023\357\206"}, - {0x12E4, "\002\023\355\204"}, - {0x12E5, "\002\023\367\260"}, - {0x12E6, "\002\023\357\211"}, - {0x12E7, "\002\023\367\343"}, - {0x12E8, "\002\023\376\224"}, - {0x12E9, "\002\023\355\151"}, - {0x12EA, "\002\023\003"}, - {0x12EB, "\002\023\305"}, - {0x12EC, "\002\023\355\303"}, - {0x12ED, "\002\023\362\110"}, - {0x12EE, "\002\023\355\040"}, - {0x12F0, "\002\023\365\345"}, - {0x12F1, "\002\023\360\212"}, - {0x12F2, "\002\023\356\062"}, - {0x12F3, "\002\023\355\002"}, - {0x12F4, "\002\023\356\166"}, - {0x12F5, "\002\023\007"}, - {0x12F6, "\002\023\355\252"}, - {0x12F7, "\002\023\365\340"}, - {0x12F8, "\002\023\365\235"}, - {0x12F9, "\002\023\365\222"}, - {0x12FA, "\002\023\360\164"}, - {0x12FB, "\002\023\355\120"}, - {0x12FC, "\002\023\365\236"}, - {0x12FD, "\002\023\360\163"}, - {0x12FE, "\002\023\360\165"}, - {0x12FF, "\002\023\365\234"}, - {0x1300, "\002\023\365\312"}, - {0x1301, "\002\023\357\140"}, - {0x1302, "\002\023\357\137"}, - {0x1303, "\002\023\355\104"}, - {0x1304, "\002\023\356\063"}, - {0x1305, "\002\023\360\206"}, - {0x1306, "\002\023\360\207"}, - {0x1307, "\002\023\365\311"}, - {0x1308, "\002\023\366\275"}, - {0x1309, "\002\023\357\155"}, - {0x130A, "\002\023\356\204"}, - {0x130B, "\002\023\355\017"}, - {0x130C, "\002\023\360\313"}, - {0x130D, "\002\023\356\203"}, - {0x130E, "\002\023\356\071"}, - {0x1310, "\002\023\366\272"}, - {0x1312, "\002\023\366\271"}, - {0x1313, "\002\023\366\267"}, - {0x1314, "\002\023\366\273"}, - {0x1315, "\002\023\366\270"}, - {0x1318, "\002\023\366\206"}, - {0x1319, "\002\023\366\173"}, - {0x131A, "\002\023\360\267"}, - {0x131B, "\002\023\360\265"}, - {0x131C, "\002\023\366\207"}, - {0x131D, "\002\023\360\266"}, - {0x131E, "\002\023\360\270"}, - {0x1320, "\002\023\375\177"}, - {0x1321, "\002\023\362\002"}, - {0x1322, "\002\023\356\127"}, - {0x1323, "\002\023\355\072"}, - {0x1324, "\002\023\356\130"}, - {0x1325, "\002\023\361\377"}, - {0x1326, "\002\023\355\077"}, - {0x1327, "\002\023\375\175"}, - {0x1328, "\002\023\375\300"}, - {0x1329, "\002\023\375\276"}, - {0x132A, "\002\023\375\274"}, - {0x132B, "\002\023\375\272"}, - {0x132C, "\002\023\375\301"}, - {0x132D, "\002\023\375\273"}, - {0x132E, "\002\023\375\275"}, - {0x132F, "\002\023\375\277"}, - {0x1330, "\002\023\372\222"}, - {0x1331, "\002\023\372\216"}, - {0x1332, "\002\023\356\241"}, - {0x1333, "\002\023\355\124"}, - {0x1334, "\002\023\372\223"}, - {0x1335, "\002\023\372\212"}, - {0x1336, "\002\023\356\033"}, - {0x1337, "\002\023\372\221"}, - {0x1338, "\002\023\375\267"}, - {0x1339, "\002\023\357\371"}, - {0x133A, "\002\023\357\367"}, - {0x133B, "\002\023\355\177"}, - {0x133C, "\002\023\356\047"}, - {0x133D, "\002\023\362\042"}, - {0x133E, "\002\023\357\370"}, - {0x133F, "\002\023\375\266"}, - {0x1340, "\002\023\375\351"}, - {0x1341, "\002\023\375\350"}, - {0x1342, "\002\023\375\346"}, - {0x1343, "\002\023\375\344"}, - {0x1344, "\002\023\375\352"}, - {0x1345, "\002\023\375\345"}, - {0x1346, "\002\023\375\347"}, - {0x1348, "\002\023\366\126"}, - {0x1349, "\002\023\357\151"}, - {0x134A, "\002\023\356\200"}, - {0x134B, "\002\023\355\225"}, - {0x134C, "\002\023\356\202"}, - {0x134D, "\002\023\366\052"}, - {0x134E, "\002\023\356\014"}, - {0x134F, "\002\023\366\120"}, - {0x1350, "\002\023\373\322"}, - {0x1351, "\002\023\361\213"}, - {0x1352, "\002\023\355\233"}, - {0x1353, "\002\023\327"}, - {0x1354, "\002\023\355\172"}, - {0x1355, "\002\023\356\375"}, - {0x1356, "\002\023\355\273"}, - {0x1357, "\002\023\373\314"}, - {0x1358, "\002\023\374\165"}, - {0x1359, "\002\023\371\052"}, - {0x135A, "\002\023\366\125"}, - {0x1361, "\355\073\023"}, - {0x1362, "\037\332"}, - {0x1363, "\330\023"}, - {0x1364, "\356\104\332"}, - {0x1365, "\355\103\332"}, - {0x1366, "\355\103\007\373\300\332"}, - {0x1367, "\037\355\313\332"}, - {0x1368, "\355\045\007\357\266\332"}, - {0x1369, "\024\332\110"}, - {0x136A, "\024\332\127"}, - {0x136B, "\024\332\136"}, - {0x136C, "\024\332\220"}, - {0x136D, "\024\332\230"}, - {0x136E, "\024\332\255"}, - {0x136F, "\024\332\252"}, - {0x1370, "\024\332\226"}, - {0x1371, "\024\332\257"}, - {0x1372, "\210\332\355\034"}, - {0x1373, "\210\332\356\050"}, - {0x1374, "\210\332\357\365"}, - {0x1375, "\210\332\373\371"}, - {0x1376, "\210\332\357\101"}, - {0x1377, "\210\332\374\347"}, - {0x1378, "\210\332\374\350"}, - {0x1379, "\210\332\373\375"}, - {0x137A, "\210\332\373\374"}, - {0x137B, "\210\332\355\245"}, - {0x137C, "\210\332\355\034\355\271"}, - {0x13A0, "\002\126\063"}, - {0x13A1, "\002\126\217"}, - {0x13A2, "\002\126\103"}, - {0x13A3, "\002\126\064"}, - {0x13A4, "\002\126\113"}, - {0x13A5, "\002\126\376\367"}, - {0x13A6, "\002\126\355\017"}, - {0x13A7, "\002\126\240"}, - {0x13A8, "\002\126\355\254"}, - {0x13A9, "\002\126\366\251"}, - {0x13AA, "\002\126\356\071"}, - {0x13AB, "\002\126\357\155"}, - {0x13AC, "\002\126\366\266"}, - {0x13AD, "\002\126\314"}, - {0x13AE, "\002\126\356\016"}, - {0x13AF, "\002\126\355\255"}, - {0x13B0, "\002\126\355\107"}, - {0x13B1, "\002\126\360\332"}, - {0x13B2, "\002\126\367\160"}, - {0x13B3, "\002\126\033"}, - {0x13B4, "\002\126\356\222"}, - {0x13B5, "\002\126\356\077"}, - {0x13B6, "\002\126\355\170"}, - {0x13B7, "\002\126\356\352"}, - {0x13B8, "\002\126\370\237"}, - {0x13B9, "\002\126\277"}, - {0x13BA, "\002\126\356\356"}, - {0x13BB, "\002\126\355\230"}, - {0x13BC, "\002\126\355\136"}, - {0x13BD, "\002\126\356\224"}, - {0x13BE, "\002\126\354"}, - {0x13BF, "\002\126\360\324"}, - {0x13C0, "\002\126\371\077"}, - {0x13C1, "\002\126\356\231"}, - {0x13C2, "\002\126\244"}, - {0x13C3, "\002\126\355\113"}, - {0x13C4, "\002\126\355\340"}, - {0x13C5, "\002\126\372\060"}, - {0x13C6, "\002\126\361\013"}, - {0x13C7, "\002\126\361\015"}, - {0x13C8, "\002\126\361\014"}, - {0x13C9, "\002\126\370\067"}, - {0x13CA, "\002\126\370\070"}, - {0x13CB, "\002\126\370\072"}, - {0x13CC, "\002\126\355\004"}, - {0x13CD, "\002\126\223"}, - {0x13CE, "\002\126\356\121"}, - {0x13CF, "\002\126\355\275"}, - {0x13D0, "\002\126\355\070"}, - {0x13D1, "\002\126\357\034"}, - {0x13D2, "\002\126\375\064"}, - {0x13D3, "\002\126\355\002"}, - {0x13D4, "\002\126\311"}, - {0x13D5, "\002\126\356\166"}, - {0x13D6, "\002\126\355\301"}, - {0x13D7, "\002\126\356\062"}, - {0x13D8, "\002\126\355\217"}, - {0x13D9, "\002\126\355\252"}, - {0x13DA, "\002\126\360\212"}, - {0x13DB, "\002\126\365\347"}, - {0x13DC, "\002\126\360\210"}, - {0x13DD, "\002\126\362\012"}, - {0x13DE, "\002\126\362\022"}, - {0x13DF, "\002\126\362\017"}, - {0x13E0, "\002\126\362\020"}, - {0x13E1, "\002\126\362\021"}, - {0x13E2, "\002\126\375\223"}, - {0x13E3, "\002\126\355\177"}, - {0x13E4, "\002\126\356\047"}, - {0x13E5, "\002\126\357\367"}, - {0x13E6, "\002\126\357\370"}, - {0x13E7, "\002\126\357\371"}, - {0x13E8, "\002\126\375\270"}, - {0x13E9, "\002\126\355\050"}, - {0x13EA, "\002\126\356\271"}, - {0x13EB, "\002\126\355\362"}, - {0x13EC, "\002\126\355\150"}, - {0x13ED, "\002\126\362\104"}, - {0x13EE, "\002\126\362\105"}, - {0x13EF, "\002\126\305"}, - {0x13F0, "\002\126\355\303"}, - {0x13F1, "\002\126\003"}, - {0x13F2, "\002\126\355\040"}, - {0x13F3, "\002\126\355\151"}, - {0x13F4, "\002\126\376\225"}, - {0x1401, "\002\011\217"}, - {0x1402, "\002\011\377\003"}, - {0x1403, "\002\011\103"}, - {0x1404, "\002\011\315"}, - {0x1405, "\002\011\064"}, - {0x1406, "\002\011\306"}, - {0x1407, "\002\011\306\355\156"}, - {0x1408, "\002\011\217\054"}, - {0x1409, "\002\011\103\054"}, - {0x140A, "\002\011\063"}, - {0x140B, "\002\011\323"}, - {0x140C, "\002\011\356\235"}, - {0x140D, "\002\011\356\235\112\114\123"}, - {0x140E, "\002\011\356\370"}, - {0x140F, "\002\011\356\370\112\114\123"}, - {0x1410, "\002\011\361\150"}, - {0x1411, "\002\011\361\150\112\114\123"}, - {0x1412, "\002\011\356\371"}, - {0x1413, "\002\011\356\371\112\114\123"}, - {0x1414, "\002\011\357\263"}, - {0x1415, "\002\011\357\263\112\114\123"}, - {0x1416, "\002\011\357\263\355\112"}, - {0x1417, "\002\011\356\234"}, - {0x1418, "\002\011\356\234\112\114\123"}, - {0x1419, "\002\011\357\262"}, - {0x141A, "\002\011\357\262\112\114\123"}, - {0x141B, "\002\011\357\262\355\112"}, - {0x141C, "\002\011\307"}, - {0x141D, "\002\011\113\355\156"}, - {0x141E, "\002\011\355\224\007\355\226"}, - {0x141F, "\002\011\355\163\021\062"}, - {0x1420, "\002\011\355\163\021\067"}, - {0x1421, "\002\011\355\163\356\005\320"}, - {0x1422, "\002\011\355\163\356\005\344"}, - {0x1423, "\002\011\355\163\356\005\044\053"}, - {0x1424, "\002\011\355\163\272"}, - {0x1425, "\002\011\355\163\070\021\062"}, - {0x1426, "\002\011\355\163\360\213\362\033\357\377\365\112"}, - {0x1427, "\002\011\355\163\037\355\137"}, - {0x1428, "\002\011\355\163\355\126\242\365\111"}, - {0x1429, "\002\011\355\163\057\214"}, - {0x142A, "\002\011\355\163\355\014\015\050\101"}, - {0x142B, "\002\011\356\010"}, - {0x142C, "\002\011\367\215"}, - {0x142D, "\002\011\372\101"}, - {0x142E, "\002\011\362\332"}, - {0x142F, "\002\011\355\172"}, - {0x1430, "\002\011\373\326"}, - {0x1431, "\002\011\355\233"}, - {0x1432, "\002\011\361\235"}, - {0x1433, "\002\011\355\273"}, - {0x1434, "\002\011\361\236"}, - {0x1435, "\002\011\361\236\355\156"}, - {0x1436, "\002\011\356\016\054"}, - {0x1437, "\002\011\355\255\054"}, - {0x1438, "\002\011\327"}, - {0x1439, "\002\011\373\323"}, - {0x143A, "\002\011\361\217"}, - {0x143B, "\002\011\361\217\112\114\123"}, - {0x143C, "\002\011\361\215"}, - {0x143D, "\002\011\361\215\112\114\123"}, - {0x143E, "\002\011\361\220"}, - {0x143F, "\002\011\361\220\112\114\123"}, - {0x1440, "\002\011\361\216"}, - {0x1441, "\002\011\361\216\112\114\123"}, - {0x1442, "\002\011\361\221"}, - {0x1443, "\002\011\361\221\112\114\123"}, - {0x1444, "\002\011\361\214"}, - {0x1445, "\002\011\361\214\112\114\123"}, - {0x1446, "\002\011\357\276"}, - {0x1447, "\002\011\357\276\112\114\123"}, - {0x1448, "\002\011\357\276\355\156"}, - {0x1449, "\002\011\355\021"}, - {0x144A, "\002\011\355\021\112\114\123"}, - {0x144B, "\002\011\237\054"}, - {0x144C, "\002\011\355\301"}, - {0x144D, "\002\011\375\356"}, - {0x144E, "\002\011\355\217"}, - {0x144F, "\002\011\375\361"}, - {0x1450, "\002\011\355\176"}, - {0x1451, "\002\011\356\263"}, - {0x1452, "\002\011\356\263\355\156"}, - {0x1453, "\002\011\356\166\054"}, - {0x1454, "\002\011\356\062\054"}, - {0x1455, "\002\011\311"}, - {0x1456, "\002\011\375\354"}, - {0x1457, "\002\011\362\030"}, - {0x1458, "\002\011\362\030\112\114\123"}, - {0x1459, "\002\011\362\025"}, - {0x145A, "\002\011\362\025\112\114\123"}, - {0x145B, "\002\011\362\031"}, - {0x145C, "\002\011\362\031\112\114\123"}, - {0x145D, "\002\011\362\026"}, - {0x145E, "\002\011\362\026\112\114\123"}, - {0x145F, "\002\011\362\032"}, - {0x1460, "\002\011\362\032\112\114\123"}, - {0x1461, "\002\011\362\023"}, - {0x1462, "\002\011\362\023\112\114\123"}, - {0x1463, "\002\011\357\363"}, - {0x1464, "\002\011\357\363\112\114\123"}, - {0x1465, "\002\011\357\363\355\112"}, - {0x1466, "\002\011\261"}, - {0x1467, "\002\011\362\053"}, - {0x1468, "\002\011\362\051"}, - {0x1469, "\002\011\362\052"}, - {0x146A, "\002\011\355\100"}, - {0x146B, "\002\011\356\220"}, - {0x146C, "\002\011\370\114"}, - {0x146D, "\002\011\355\332"}, - {0x146E, "\002\011\370\117"}, - {0x146F, "\002\011\355\167"}, - {0x1470, "\002\011\361\016"}, - {0x1471, "\002\011\361\016\355\156"}, - {0x1472, "\002\011\240"}, - {0x1473, "\002\011\370\111"}, - {0x1474, "\002\011\361\007"}, - {0x1475, "\002\011\361\007\112\114\123"}, - {0x1476, "\002\011\361\005"}, - {0x1477, "\002\011\361\005\112\114\123"}, - {0x1478, "\002\011\361\010"}, - {0x1479, "\002\011\361\010\112\114\123"}, - {0x147A, "\002\011\361\006"}, - {0x147B, "\002\011\361\006\112\114\123"}, - {0x147C, "\002\011\361\011"}, - {0x147D, "\002\011\361\011\112\114\123"}, - {0x147E, "\002\011\361\004"}, - {0x147F, "\002\011\361\004\112\114\123"}, - {0x1480, "\002\011\357\222"}, - {0x1481, "\002\011\357\222\112\114\123"}, - {0x1482, "\002\011\357\222\355\112"}, - {0x1483, "\002\011\352"}, - {0x1484, "\002\011\361\003"}, - {0x1485, "\002\011\370\115\356\172\212\357\042"}, - {0x1486, "\002\011\370\016\356\172\212\357\042"}, - {0x1487, "\002\011\370\035\356\172\212\357\042"}, - {0x1488, "\002\011\367\354\356\172\212\357\042"}, - {0x1489, "\002\011\355\071"}, - {0x148A, "\002\011\375\153"}, - {0x148B, "\002\011\357\351"}, - {0x148C, "\002\011\375\154"}, - {0x148D, "\002\011\355\277"}, - {0x148E, "\002\011\361\375"}, - {0x148F, "\002\011\361\375\355\156"}, - {0x1490, "\002\011\355\024"}, - {0x1491, "\002\011\375\152"}, - {0x1492, "\002\011\361\372"}, - {0x1493, "\002\011\361\372\112\114\123"}, - {0x1494, "\002\011\361\370"}, - {0x1495, "\002\011\361\370\112\114\123"}, - {0x1496, "\002\011\361\373"}, - {0x1497, "\002\011\361\373\112\114\123"}, - {0x1498, "\002\011\361\371"}, - {0x1499, "\002\011\361\371\112\114\123"}, - {0x149A, "\002\011\361\374"}, - {0x149B, "\002\011\361\374\112\114\123"}, - {0x149C, "\002\011\361\367"}, - {0x149D, "\002\011\361\367\112\114\123"}, - {0x149E, "\002\011\357\352"}, - {0x149F, "\002\011\357\352\112\114\123"}, - {0x14A0, "\002\011\357\352\355\112"}, - {0x14A1, "\002\011\361\360"}, - {0x14A2, "\002\011\356\257\355\145"}, - {0x14A3, "\002\011\356\356"}, - {0x14A4, "\002\011\371\056"}, - {0x14A5, "\002\011\355\230"}, - {0x14A6, "\002\011\371\066"}, - {0x14A7, "\002\011\355\136"}, - {0x14A8, "\002\011\361\104"}, - {0x14A9, "\002\011\361\104\355\156"}, - {0x14AA, "\002\011\277"}, - {0x14AB, "\002\011\371\054"}, - {0x14AC, "\002\011\361\073"}, - {0x14AD, "\002\011\361\073\112\114\123"}, - {0x14AE, "\002\011\361\070"}, - {0x14AF, "\002\011\361\070\112\114\123"}, - {0x14B0, "\002\011\361\074"}, - {0x14B1, "\002\011\361\074\112\114\123"}, - {0x14B2, "\002\011\361\071"}, - {0x14B3, "\002\011\361\071\112\114\123"}, - {0x14B4, "\002\011\361\075"}, - {0x14B5, "\002\011\361\075\112\114\123"}, - {0x14B6, "\002\011\361\066"}, - {0x14B7, "\002\011\361\066\112\114\123"}, - {0x14B8, "\002\011\357\240"}, - {0x14B9, "\002\011\357\240\112\114\123"}, - {0x14BA, "\002\011\357\240\355\112"}, - {0x14BB, "\002\011\276"}, - {0x14BC, "\002\011\276\112\114\123"}, - {0x14BD, "\002\011\370\352"}, - {0x14BE, "\002\011\276\360\057"}, - {0x14BF, "\002\011\276\355\145"}, - {0x14C0, "\002\011\356\231"}, - {0x14C1, "\002\011\372\062"}, - {0x14C2, "\002\011\244"}, - {0x14C3, "\002\011\372\063"}, - {0x14C4, "\002\011\355\113"}, - {0x14C5, "\002\011\361\133"}, - {0x14C6, "\002\011\361\133\355\156"}, - {0x14C7, "\002\011\354"}, - {0x14C8, "\002\011\361\131"}, - {0x14C9, "\002\011\361\121"}, - {0x14CA, "\002\011\361\121\112\114\123"}, - {0x14CB, "\002\011\361\120"}, - {0x14CC, "\002\011\361\120\112\114\123"}, - {0x14CD, "\002\011\357\252"}, - {0x14CE, "\002\011\357\252\112\114\123"}, - {0x14CF, "\002\011\357\252\355\112"}, - {0x14D0, "\002\011\241"}, - {0x14D1, "\002\011\355\336\054"}, - {0x14D2, "\002\011\371\232"}, - {0x14D3, "\002\011\356\222"}, - {0x14D4, "\002\011\370\245"}, - {0x14D5, "\002\011\356\077"}, - {0x14D6, "\002\011\370\247"}, - {0x14D7, "\002\011\355\170"}, - {0x14D8, "\002\011\361\046"}, - {0x14D9, "\002\011\361\046\355\156"}, - {0x14DA, "\002\011\033"}, - {0x14DB, "\002\011\370\242"}, - {0x14DC, "\002\011\361\042"}, - {0x14DD, "\002\011\361\042\112\114\123"}, - {0x14DE, "\002\011\361\037"}, - {0x14DF, "\002\011\361\037\112\114\123"}, - {0x14E0, "\002\011\361\043"}, - {0x14E1, "\002\011\361\043\112\114\123"}, - {0x14E2, "\002\011\361\040"}, - {0x14E3, "\002\011\361\040\112\114\123"}, - {0x14E4, "\002\011\361\044"}, - {0x14E5, "\002\011\361\044\112\114\123"}, - {0x14E6, "\002\011\361\036"}, - {0x14E7, "\002\011\361\036\112\114\123"}, - {0x14E8, "\002\011\361\041"}, - {0x14E9, "\002\011\361\041\112\114\123"}, - {0x14EA, "\002\011\211"}, - {0x14EB, "\002\011\211\112\114\123"}, - {0x14EC, "\002\011\211\131"}, - {0x14ED, "\002\011\356\121"}, - {0x14EE, "\002\011\375\067"}, - {0x14EF, "\002\011\355\275"}, - {0x14F0, "\002\011\375\073"}, - {0x14F1, "\002\011\355\070"}, - {0x14F2, "\002\011\361\350"}, - {0x14F3, "\002\011\361\350\355\156"}, - {0x14F4, "\002\011\355\004"}, - {0x14F5, "\002\011\375\065"}, - {0x14F6, "\002\011\361\330"}, - {0x14F7, "\002\011\361\330\112\114\123"}, - {0x14F8, "\002\011\361\324"}, - {0x14F9, "\002\011\361\324\112\114\123"}, - {0x14FA, "\002\011\361\331"}, - {0x14FB, "\002\011\361\331\112\114\123"}, - {0x14FC, "\002\011\361\326"}, - {0x14FD, "\002\011\361\326\112\114\123"}, - {0x14FE, "\002\011\361\332"}, - {0x14FF, "\002\011\361\332\112\114\123"}, - {0x1500, "\002\011\357\333"}, - {0x1501, "\002\011\357\333\112\114\123"}, - {0x1502, "\002\011\357\334"}, - {0x1503, "\002\011\357\334\112\114\123"}, - {0x1504, "\002\011\357\334\355\112"}, - {0x1505, "\002\011\223"}, - {0x1506, "\002\011\223\360\057"}, - {0x1507, "\002\011\357\034"}, - {0x1508, "\002\011\223\355\067"}, - {0x1509, "\002\011\374\336\112\007\371\020"}, - {0x150A, "\002\011\374\337\355\112"}, - {0x150B, "\002\011\374\205\355\112"}, - {0x150C, "\002\011\374\366\355\112"}, - {0x150D, "\002\011\375\031\355\112"}, - {0x150E, "\002\011\374\340\355\112"}, - {0x150F, "\002\011\375\030\355\112"}, - {0x1510, "\002\011\356\311"}, - {0x1511, "\002\011\356\310"}, - {0x1512, "\002\011\363\340"}, - {0x1513, "\002\011\356\054"}, - {0x1514, "\002\011\363\342"}, - {0x1515, "\002\011\355\032"}, - {0x1516, "\002\011\363\335"}, - {0x1517, "\002\011\360\125"}, - {0x1518, "\002\011\360\125\112\114\123"}, - {0x1519, "\002\011\360\122"}, - {0x151A, "\002\011\360\122\112\114\123"}, - {0x151B, "\002\011\360\126"}, - {0x151C, "\002\011\360\126\112\114\123"}, - {0x151D, "\002\011\360\123"}, - {0x151E, "\002\011\360\123\112\114\123"}, - {0x151F, "\002\011\360\127"}, - {0x1520, "\002\011\360\127\112\114\123"}, - {0x1521, "\002\011\360\121"}, - {0x1522, "\002\011\360\121\112\114\123"}, - {0x1523, "\002\011\360\124"}, - {0x1524, "\002\011\360\124\112\114\123"}, - {0x1525, "\002\011\357\075"}, - {0x1526, "\002\011\355\303"}, - {0x1527, "\002\011\376\230"}, - {0x1528, "\002\011\003"}, - {0x1529, "\002\011\376\231"}, - {0x152A, "\002\011\355\040"}, - {0x152B, "\002\011\356\273"}, - {0x152C, "\002\011\356\273\355\156"}, - {0x152D, "\002\011\305"}, - {0x152E, "\002\011\362\134"}, - {0x152F, "\002\011\362\127"}, - {0x1530, "\002\011\362\127\112\114\123"}, - {0x1531, "\002\011\362\125"}, - {0x1532, "\002\011\362\125\112\114\123"}, - {0x1533, "\002\011\362\130"}, - {0x1534, "\002\011\362\130\112\114\123"}, - {0x1535, "\002\011\362\126"}, - {0x1536, "\002\011\362\126\112\114\123"}, - {0x1537, "\002\011\362\131"}, - {0x1538, "\002\011\362\131\112\114\123"}, - {0x1539, "\002\011\362\123"}, - {0x153A, "\002\011\362\123\112\114\123"}, - {0x153B, "\002\011\360\014"}, - {0x153C, "\002\011\360\014\112\114\123"}, - {0x153D, "\002\011\360\014\355\112"}, - {0x153E, "\002\011\265"}, - {0x153F, "\002\011\265\112\363\121"}, - {0x1540, "\002\011\265\112\114\123"}, - {0x1541, "\002\011\003\355\145"}, - {0x1542, "\002\011\356\040"}, - {0x1543, "\002\011\356\040\365\115"}, - {0x1544, "\002\011\356\222\112\114\123"}, - {0x1545, "\002\011\374\171"}, - {0x1546, "\002\011\355\347"}, - {0x1547, "\002\011\374\201"}, - {0x1548, "\002\011\355\174"}, - {0x1549, "\002\011\374\202"}, - {0x154A, "\002\011\355\170\112\114\123"}, - {0x154B, "\002\011\322"}, - {0x154C, "\002\011\357\320"}, - {0x154D, "\002\011\033\112\114\123"}, - {0x154E, "\002\011\361\275"}, - {0x154F, "\002\011\361\275\112\114\123"}, - {0x1550, "\002\011\167"}, - {0x1551, "\002\011\167\112\114\123"}, - {0x1552, "\002\011\167\131"}, - {0x1553, "\002\011\356\202"}, - {0x1554, "\002\011\366\131"}, - {0x1555, "\002\011\356\200"}, - {0x1556, "\002\011\366\135"}, - {0x1557, "\002\011\356\014"}, - {0x1558, "\002\011\366\136"}, - {0x1559, "\002\011\355\225"}, - {0x155A, "\002\011\366\127"}, - {0x155B, "\002\011\360\252"}, - {0x155C, "\002\011\360\252\112\114\123"}, - {0x155D, "\002\011\355\062"}, - {0x155E, "\002\011\356\130"}, - {0x155F, "\002\011\356\130\357\111"}, - {0x1560, "\002\011\356\127"}, - {0x1561, "\002\011\356\127\357\111"}, - {0x1562, "\002\011\357\357"}, - {0x1563, "\002\011\357\357\357\111"}, - {0x1564, "\002\011\355\077"}, - {0x1565, "\002\011\362\004"}, - {0x1566, "\002\011\355\072"}, - {0x1567, "\002\011\357\355"}, - {0x1568, "\002\011\362\003"}, - {0x1569, "\002\011\362\003\112\114\123"}, - {0x156A, "\002\011\356\257"}, - {0x156B, "\002\011\375\305"}, - {0x156C, "\002\011\375\304"}, - {0x156D, "\002\011\362\050"}, - {0x156E, "\002\011\355\127"}, - {0x156F, "\002\011\375\303"}, - {0x1570, "\002\011\375\341"}, - {0x1571, "\002\011\375\333"}, - {0x1572, "\002\011\375\334"}, - {0x1573, "\002\011\375\332"}, - {0x1574, "\002\011\356\016\212\355\341"}, - {0x1575, "\002\011\355\255\212\355\341"}, - {0x1576, "\002\011\357\172\212\355\341"}, - {0x1577, "\002\011\355\107\212\355\341"}, - {0x1578, "\002\011\357\173\212\355\341"}, - {0x1579, "\002\011\314\212\355\341"}, - {0x157A, "\002\011\356\211\212\355\341"}, - {0x157B, "\002\011\237\212\355\341"}, - {0x157C, "\002\011\237\212\371\365"}, - {0x157D, "\002\011\366\355"}, - {0x157E, "\002\011\374\026"}, - {0x157F, "\002\011\357\301"}, - {0x1580, "\002\011\374\030"}, - {0x1581, "\002\011\357\302"}, - {0x1582, "\002\011\374\031"}, - {0x1583, "\002\011\356\245"}, - {0x1584, "\002\011\374\024"}, - {0x1585, "\002\011\355\173"}, - {0x1586, "\002\011\362\016"}, - {0x1587, "\002\011\362\014"}, - {0x1588, "\002\011\362\015"}, - {0x1589, "\002\011\362\013"}, - {0x158A, "\002\011\356\040\112\114\123"}, - {0x158B, "\002\011\355\347\112\114\123"}, - {0x158C, "\002\011\355\174\112\114\123"}, - {0x158D, "\002\011\322\112\114\123"}, - {0x158E, "\002\011\371\226"}, - {0x158F, "\002\011\371\212"}, - {0x1590, "\002\011\371\230"}, - {0x1591, "\002\011\356\225"}, - {0x1592, "\002\011\371\231"}, - {0x1593, "\002\011\355\066"}, - {0x1594, "\002\011\371\225"}, - {0x1595, "\002\011\355\336"}, - {0x1596, "\002\011\371\303"}, - {0x1597, "\002\011\356\311\355\145"}, - {0x1598, "\002\011\356\310\355\145"}, - {0x1599, "\002\011\356\054\355\145"}, - {0x159A, "\002\011\355\032\355\145"}, - {0x159B, "\002\011\356\130\112\114\356\001"}, - {0x159C, "\002\011\356\127\112\114\356\001"}, - {0x159D, "\002\011\355\077\112\114\356\001"}, - {0x159E, "\002\011\355\072\112\114\356\001"}, - {0x159F, "\002\011\356\257\112\114\356\001"}, - {0x15A0, "\002\011\361\024"}, - {0x15A1, "\002\011\370\160"}, - {0x15A2, "\002\011\361\025"}, - {0x15A3, "\002\011\370\161"}, - {0x15A4, "\002\011\357\226"}, - {0x15A5, "\002\011\370\156"}, - {0x15A6, "\002\011\370\151"}, - {0x15A7, "\002\011\356\130\355\311"}, - {0x15A8, "\002\011\356\127\355\311"}, - {0x15A9, "\002\011\357\357\355\311"}, - {0x15AA, "\002\011\355\077\355\311"}, - {0x15AB, "\002\011\362\004\355\311"}, - {0x15AC, "\002\011\355\072\355\311"}, - {0x15AD, "\002\011\357\355\355\311"}, - {0x15AE, "\002\011\356\257\355\311"}, - {0x15AF, "\002\011\334\363\017"}, - {0x15B0, "\002\011\217\355\067"}, - {0x15B1, "\002\011\103\355\067"}, - {0x15B2, "\002\011\064\355\067"}, - {0x15B3, "\002\011\063\355\067"}, - {0x15B4, "\002\011\356\235\355\067"}, - {0x15B5, "\002\011\356\370\355\067"}, - {0x15B6, "\002\011\356\371\355\067"}, - {0x15B7, "\002\011\356\234\355\067"}, - {0x15B8, "\002\011\356\231\355\067"}, - {0x15B9, "\002\011\244\355\067"}, - {0x15BA, "\002\011\355\113\355\067"}, - {0x15BB, "\002\011\354\355\067"}, - {0x15BC, "\002\011\356\220\355\067"}, - {0x15BD, "\002\011\355\332\355\067"}, - {0x15BE, "\002\011\355\167\355\067"}, - {0x15BF, "\002\011\240\355\067"}, - {0x15C0, "\002\011\356\016\355\145"}, - {0x15C1, "\002\011\355\255\355\145"}, - {0x15C2, "\002\011\355\107\355\145"}, - {0x15C3, "\002\011\314\355\145"}, - {0x15C4, "\002\011\366\214\054"}, - {0x15C5, "\002\011\366\213\054"}, - {0x15C6, "\002\011\366\211\054"}, - {0x15C7, "\002\011\366\216\054"}, - {0x15C8, "\002\011\366\212\054"}, - {0x15C9, "\002\011\355\106\054"}, - {0x15CA, "\002\011\357\315\054"}, - {0x15CB, "\002\011\355\174\054"}, - {0x15CC, "\002\011\356\035\054"}, - {0x15CD, "\002\011\356\040\054"}, - {0x15CE, "\002\011\355\347\054"}, - {0x15CF, "\002\011\322\054"}, - {0x15D0, "\002\011\372\130\054"}, - {0x15D1, "\002\011\356\371\054"}, - {0x15D2, "\002\011\372\126\054"}, - {0x15D3, "\002\011\356\235\054"}, - {0x15D4, "\002\011\356\370\054"}, - {0x15D5, "\002\011\356\234\054"}, - {0x15D6, "\002\011\367\112\054"}, - {0x15D7, "\002\011\367\111\054"}, - {0x15D8, "\002\011\367\107\054"}, - {0x15D9, "\002\011\367\113\054"}, - {0x15DA, "\002\011\367\110\054"}, - {0x15DB, "\002\011\367\106\054"}, - {0x15DC, "\002\011\362\002\054"}, - {0x15DD, "\002\011\355\077\054"}, - {0x15DE, "\002\011\361\377\054"}, - {0x15DF, "\002\011\356\130\054"}, - {0x15E0, "\002\011\356\127\054"}, - {0x15E1, "\002\011\355\072\054"}, - {0x15E2, "\002\011\375\306\054"}, - {0x15E3, "\002\011\362\052\054"}, - {0x15E4, "\002\011\375\302\054"}, - {0x15E5, "\002\011\362\053\054"}, - {0x15E6, "\002\011\362\051\054"}, - {0x15E7, "\002\011\355\100\054"}, - {0x15E8, "\002\011\361\213\054"}, - {0x15E9, "\002\011\355\273\054"}, - {0x15EA, "\002\011\356\375\054"}, - {0x15EB, "\002\011\355\172\054"}, - {0x15EC, "\002\011\355\233\054"}, - {0x15ED, "\002\011\327\054"}, - {0x15EE, "\002\011\355\021\054"}, - {0x15EF, "\002\011\357\155\054"}, - {0x15F0, "\002\011\356\071\054"}, - {0x15F1, "\002\011\356\203\054"}, - {0x15F2, "\002\011\360\313\054"}, - {0x15F3, "\002\011\356\204\054"}, - {0x15F4, "\002\011\355\017\054"}, - {0x15F5, "\002\011\370\006\054"}, - {0x15F6, "\002\011\355\261\054"}, - {0x15F7, "\002\011\370\003\054"}, - {0x15F8, "\002\011\356\342\054"}, - {0x15F9, "\002\011\356\341\054"}, - {0x15FA, "\002\011\355\054\054"}, - {0x15FB, "\002\011\370\032\054"}, - {0x15FC, "\002\011\370\031\054"}, - {0x15FD, "\002\011\370\027\054"}, - {0x15FE, "\002\011\370\033\054"}, - {0x15FF, "\002\011\370\030\054"}, - {0x1600, "\002\011\370\026\054"}, - {0x1601, "\002\011\361\002\054"}, - {0x1602, "\002\011\355\340\054"}, - {0x1603, "\002\011\355\113\054"}, - {0x1604, "\002\011\355\140\054"}, - {0x1605, "\002\011\356\231\054"}, - {0x1606, "\002\011\244\054"}, - {0x1607, "\002\011\354\054"}, - {0x1608, "\002\011\356\224\054"}, - {0x1609, "\002\011\355\136\054"}, - {0x160A, "\002\011\355\334\054"}, - {0x160B, "\002\011\356\356\054"}, - {0x160C, "\002\011\355\230\054"}, - {0x160D, "\002\011\277\054"}, - {0x160E, "\002\011\355\151\054"}, - {0x160F, "\002\011\355\040\054"}, - {0x1610, "\002\011\362\110\054"}, - {0x1611, "\002\011\355\303\054"}, - {0x1612, "\002\011\003\054"}, - {0x1613, "\002\011\305\054"}, - {0x1614, "\002\011\357\140\054"}, - {0x1615, "\002\011\357\140\355\145"}, - {0x1616, "\002\011\360\207\054"}, - {0x1617, "\002\011\360\206\054"}, - {0x1618, "\002\011\356\063\054"}, - {0x1619, "\002\011\357\137\054"}, - {0x161A, "\002\011\357\137\355\145"}, - {0x161B, "\002\011\355\104\054"}, - {0x161C, "\002\011\365\307\054"}, - {0x161D, "\002\011\365\306\054"}, - {0x161E, "\002\011\365\304\054"}, - {0x161F, "\002\011\365\310\054"}, - {0x1620, "\002\011\365\305\054"}, - {0x1621, "\002\011\365\303\054"}, - {0x1622, "\002\011\356\352\054"}, - {0x1623, "\002\011\355\170\054"}, - {0x1624, "\002\011\050\054"}, - {0x1625, "\002\011\356\222\054"}, - {0x1626, "\002\011\356\077\054"}, - {0x1627, "\002\011\033\054"}, - {0x1628, "\002\011\365\317\054"}, - {0x1629, "\002\011\365\316\054"}, - {0x162A, "\002\011\365\314\054"}, - {0x162B, "\002\011\365\320\054"}, - {0x162C, "\002\011\365\315\054"}, - {0x162D, "\002\011\360\210\054"}, - {0x162E, "\002\011\370\155\054"}, - {0x162F, "\002\011\361\025\054"}, - {0x1630, "\002\011\370\154\054"}, - {0x1631, "\002\011\370\157\054"}, - {0x1632, "\002\011\361\024\054"}, - {0x1633, "\002\011\357\226\054"}, - {0x1634, "\002\011\375\222\054"}, - {0x1635, "\002\011\362\015\054"}, - {0x1636, "\002\011\375\221\054"}, - {0x1637, "\002\011\362\016\054"}, - {0x1638, "\002\011\362\014\054"}, - {0x1639, "\002\011\362\013\054"}, - {0x163A, "\002\011\362\021\054"}, - {0x163B, "\002\011\362\020\054"}, - {0x163C, "\002\011\375\220\054"}, - {0x163D, "\002\011\362\022\054"}, - {0x163E, "\002\011\362\017\054"}, - {0x163F, "\002\011\362\012\054"}, - {0x1640, "\002\011\362\144\054"}, - {0x1641, "\002\011\356\135\054"}, - {0x1642, "\002\011\356\274\054"}, - {0x1643, "\002\011\355\367\054"}, - {0x1644, "\002\011\356\275\054"}, - {0x1645, "\002\011\355\101\054"}, - {0x1646, "\002\011\271\054"}, - {0x1647, "\002\011\271\054\055"}, - {0x1648, "\002\011\365\344\054"}, - {0x1649, "\002\011\365\343\054"}, - {0x164A, "\002\011\365\341\054"}, - {0x164B, "\002\011\356\165\054"}, - {0x164C, "\002\011\365\342\054"}, - {0x164D, "\002\011\356\065\054"}, - {0x164E, "\002\011\357\034\054"}, - {0x164F, "\002\011\355\070\054"}, - {0x1650, "\002\011\356\042\054"}, - {0x1651, "\002\011\356\121\054"}, - {0x1652, "\002\011\355\275\054"}, - {0x1653, "\002\011\355\004\054"}, - {0x1654, "\002\011\360\120\054"}, - {0x1655, "\002\011\356\054\054"}, - {0x1656, "\002\011\356\151\054"}, - {0x1657, "\002\011\356\311\054"}, - {0x1658, "\002\011\356\310\054"}, - {0x1659, "\002\011\355\032\054"}, - {0x165A, "\002\011\357\075\054"}, - {0x165B, "\002\011\357\371\054"}, - {0x165C, "\002\011\357\370\054"}, - {0x165D, "\002\011\362\042\054"}, - {0x165E, "\002\011\356\047\054"}, - {0x165F, "\002\011\357\367\054"}, - {0x1660, "\002\011\355\177\054"}, - {0x1661, "\002\011\361\366\054"}, - {0x1662, "\002\011\355\277\054"}, - {0x1663, "\002\011\357\350\054"}, - {0x1664, "\002\011\355\071\054"}, - {0x1665, "\002\011\357\351\054"}, - {0x1666, "\002\011\355\024\054"}, - {0x1667, "\002\011\375\313\054"}, - {0x1668, "\002\011\375\312\054"}, - {0x1669, "\002\011\375\310\054"}, - {0x166A, "\002\011\375\314\054"}, - {0x166B, "\002\011\375\311\054"}, - {0x166C, "\002\011\375\307\054"}, - {0x166D, "\057\002\011\356\341"}, - {0x166E, "\037\002\011"}, - {0x166F, "\002\011\373\333"}, - {0x1670, "\002\011\371\205"}, - {0x1671, "\002\011\371\305"}, - {0x1672, "\002\011\371\310"}, - {0x1673, "\002\011\371\306"}, - {0x1674, "\002\011\371\311"}, - {0x1675, "\002\011\371\304"}, - {0x1676, "\002\011\371\307"}, - {0x1680, "\355\073\310"}, - {0x1681, "\001\310\363\105"}, - {0x1682, "\001\310\370\213"}, - {0x1683, "\001\310\366\053"}, - {0x1684, "\001\310\374\212"}, - {0x1685, "\001\310\371\242"}, - {0x1686, "\001\310\375\362"}, - {0x1687, "\001\310\365\171"}, - {0x1688, "\001\310\375\206"}, - {0x1689, "\001\310\365\045"}, - {0x168A, "\001\310\363\245"}, - {0x168B, "\001\310\371\030"}, - {0x168C, "\001\310\366\236"}, - {0x168D, "\001\310\371\227"}, - {0x168E, "\001\310\375\032"}, - {0x168F, "\001\310\374\144"}, - {0x1690, "\001\310\362\305"}, - {0x1691, "\001\310\361\137"}, - {0x1692, "\001\310\376\371"}, - {0x1693, "\001\310\365\364"}, - {0x1694, "\001\310\367\224"}, - {0x1695, "\001\310\377\020"}, - {0x1696, "\001\310\376\370"}, - {0x1697, "\001\310\375\364"}, - {0x1698, "\001\310\367\200"}, - {0x1699, "\001\310\365\365"}, - {0x169A, "\001\310\372\174"}, - {0x169B, "\356\243\310"}, - {0x169C, "\356\243\357\322\310"}, - {0x16A0, "\001\135\366\132\366\133\356\202\355\062"}, - {0x16A1, "\001\135\355\025"}, - {0x16A2, "\001\135\376\001\375\376\113"}, - {0x16A3, "\001\135\362\133"}, - {0x16A4, "\001\135\265"}, - {0x16A5, "\001\135\347"}, - {0x16A6, "\001\135\375\173\375\171\375\174\356\257"}, - {0x16A7, "\001\135\366\024"}, - {0x16A8, "\001\135\362\340\063"}, - {0x16A9, "\001\135\357\257\064"}, - {0x16AA, "\001\135\362\275\063"}, - {0x16AB, "\001\135\376\363"}, - {0x16AC, "\001\135\372\113\064"}, - {0x16AD, "\001\135\372\114\064"}, - {0x16AE, "\001\135\064"}, - {0x16AF, "\001\135\355\210"}, - {0x16B0, "\001\135\357\256"}, - {0x16B1, "\001\135\374\034\357\020\374\051\167"}, - {0x16B2, "\001\135\367\371"}, - {0x16B3, "\001\135\363\247"}, - {0x16B4, "\001\135\367\370\352"}, - {0x16B5, "\001\135\266"}, - {0x16B6, "\001\135\356\007"}, - {0x16B7, "\001\135\366\150\366\151\266"}, - {0x16B8, "\001\135\366\141"}, - {0x16B9, "\001\135\376\106\360\007\347"}, - {0x16BA, "\001\135\366\307\237"}, - {0x16BB, "\001\135\367\157\237"}, - {0x16BC, "\001\135\366\305\237"}, - {0x16BD, "\001\135\366\306\237"}, - {0x16BE, "\001\135\371\107\372\002\371\105\241"}, - {0x16BF, "\001\135\371\106\241"}, - {0x16C0, "\001\135\371\075"}, - {0x16C1, "\001\135\367\233\367\232\367\234\103"}, - {0x16C2, "\001\135\130"}, - {0x16C3, "\001\135\367\261\355\053"}, - {0x16C4, "\001\135\366\152"}, - {0x16C5, "\001\135\362\354\360\023"}, - {0x16C6, "\001\135\362\353\063"}, - {0x16C7, "\001\135\367\236\366\016"}, - {0x16C8, "\001\135\372\204\372\200\355\021"}, - {0x16C9, "\001\135\362\311\366\017"}, - {0x16CA, "\001\135\374\363\223"}, - {0x16CB, "\001\135\374\314\374\351\223"}, - {0x16CC, "\001\135\374\352\223"}, - {0x16CD, "\001\135\313"}, - {0x16CE, "\001\135\271"}, - {0x16CF, "\001\135\375\215\375\211\375\337\261"}, - {0x16D0, "\001\135\375\340\261"}, - {0x16D1, "\001\135\275"}, - {0x16D2, "\001\135\363\113\363\111\363\117\334"}, - {0x16D3, "\001\135\363\120\334"}, - {0x16D4, "\001\135\372\145"}, - {0x16D5, "\001\135\372\144"}, - {0x16D6, "\001\135\365\373\365\372\130"}, - {0x16D7, "\001\135\370\262\357\231\276"}, - {0x16D8, "\001\135\370\250\276"}, - {0x16D9, "\001\135\370\251\276"}, - {0x16DA, "\001\135\370\136\370\126\370\203\211"}, - {0x16DB, "\001\135\370\124"}, - {0x16DC, "\001\135\367\212"}, - {0x16DD, "\001\135\367\211"}, - {0x16DE, "\001\135\365\167\365\346\275"}, - {0x16DF, "\001\135\372\116\366\025\064"}, - {0x16E0, "\001\135\365\366"}, - {0x16E1, "\001\135\367\225"}, - {0x16E2, "\001\135\365\137"}, - {0x16E3, "\001\135\363\227"}, - {0x16E4, "\001\135\363\243"}, - {0x16E5, "\001\135\375\027"}, - {0x16E6, "\001\135\376\202"}, - {0x16E7, "\001\135\376\203"}, - {0x16E8, "\001\135\376\201"}, - {0x16E9, "\001\135\355\173"}, - {0x16EA, "\001\135\355\026"}, - {0x16EB, "\355\234\135\355\001"}, - {0x16EC, "\355\234\135\371\032"}, - {0x16ED, "\355\234\135\013\355\033"}, - {0x16EE, "\022\135\362\356"}, - {0x16EF, "\022\135\375\330"}, - {0x16F0, "\022\135\363\106"}, - {0x1780, "\001\157\240"}, - {0x1781, "\001\157\355\054"}, - {0x1782, "\001\157\355\167"}, - {0x1783, "\001\157\355\261"}, - {0x1784, "\001\157\356\225"}, - {0x1785, "\001\157\355\024"}, - {0x1786, "\001\157\355\240"}, - {0x1787, "\001\157\355\277"}, - {0x1788, "\001\157\375\134"}, - {0x1789, "\001\157\357\063"}, - {0x178A, "\001\157\355\002"}, - {0x178B, "\001\157\355\127"}, - {0x178C, "\001\157\355\252"}, - {0x178D, "\001\157\362\050"}, - {0x178E, "\001\157\371\312"}, - {0x178F, "\001\157\311"}, - {0x1790, "\001\157\355\072"}, - {0x1791, "\001\157\355\176"}, - {0x1792, "\001\157\355\077"}, - {0x1793, "\001\157\355\113"}, - {0x1794, "\001\157\355\052"}, - {0x1795, "\001\157\355\124"}, - {0x1796, "\001\157\355\273"}, - {0x1797, "\001\157\356\033"}, - {0x1798, "\001\157\355\136"}, - {0x1799, "\001\157\355\040"}, - {0x179A, "\001\157\355\174"}, - {0x179B, "\001\157\355\170"}, - {0x179C, "\001\157\356\132"}, - {0x179D, "\001\157\355\152"}, - {0x179E, "\001\157\356\054"}, - {0x179F, "\001\157\355\004"}, - {0x17A0, "\001\157\314"}, - {0x17A1, "\001\157\033"}, - {0x17A2, "\001\157\063"}, - {0x17A3, "\042\073\157\063"}, - {0x17A4, "\042\073\157\323"}, - {0x17A5, "\042\073\157\103"}, - {0x17A6, "\042\073\157\315"}, - {0x17A7, "\042\073\157\113"}, - {0x17A8, "\042\073\157\357\261"}, - {0x17A9, "\042\073\157\342"}, - {0x17AA, "\042\073\157\363\021"}, - {0x17AB, "\042\073\157\374\167"}, - {0x17AC, "\042\073\157\374\170"}, - {0x17AD, "\042\073\157\370\240"}, - {0x17AE, "\042\073\157\370\241"}, - {0x17AF, "\042\073\157\217"}, - {0x17B0, "\042\073\157\307"}, - {0x17B1, "\042\073\157\306\362\055\110"}, - {0x17B2, "\042\073\157\306\362\055\127"}, - {0x17B3, "\042\073\157\333"}, - {0x17B4, "\042\157\360\347\063"}, - {0x17B5, "\042\157\360\347\323"}, - {0x17B6, "\042\026\157\323"}, - {0x17B7, "\042\026\157\103"}, - {0x17B8, "\042\026\157\315"}, - {0x17B9, "\042\026\157\376\372"}, - {0x17BA, "\042\026\157\376\374"}, - {0x17BB, "\042\026\157\113"}, - {0x17BC, "\042\026\157\342"}, - {0x17BD, "\042\026\157\356\234"}, - {0x17BE, "\042\026\157\355\210"}, - {0x17BF, "\042\026\157\376\373"}, - {0x17C0, "\042\026\157\355\260"}, - {0x17C1, "\042\026\157\217"}, - {0x17C2, "\042\026\157\356\136"}, - {0x17C3, "\042\026\157\307"}, - {0x17C4, "\042\026\157\306"}, - {0x17C5, "\042\026\157\333"}, - {0x17C6, "\057\267\371\240"}, - {0x17C7, "\057\267\374\172"}, - {0x17C8, "\057\267\376\200"}, - {0x17C9, "\057\267\371\025"}, - {0x17CA, "\057\267\375\262"}, - {0x17CB, "\057\267\363\027"}, - {0x17CC, "\057\267\374\103"}, - {0x17CD, "\057\267\375\224"}, - {0x17CE, "\057\267\367\357"}, - {0x17CF, "\057\267\362\304"}, - {0x17D0, "\057\267\374\232\374\231"}, - {0x17D1, "\057\267\376\041"}, - {0x17D2, "\057\267\375\137"}, - {0x17D3, "\057\267\363\040"}, - {0x17D4, "\057\267\357\217"}, - {0x17D5, "\057\267\363\033"}, - {0x17D6, "\057\267\375\127\361\235\370\046"}, - {0x17D7, "\057\267\370\145\356\263"}, - {0x17D8, "\057\267\363\116"}, - {0x17D9, "\057\267\372\214\371\004"}, - {0x17DA, "\057\267\370\120"}, - {0x17DB, "\022\355\272\267\374\064"}, - {0x17DC, "\057\267\363\006"}, - {0x17E0, "\024\267\331"}, - {0x17E1, "\024\267\110"}, - {0x17E2, "\024\267\127"}, - {0x17E3, "\024\267\136"}, - {0x17E4, "\024\267\220"}, - {0x17E5, "\024\267\230"}, - {0x17E6, "\024\267\255"}, - {0x17E7, "\024\267\252"}, - {0x17E8, "\024\267\226"}, - {0x17E9, "\024\267\257"}, - {0x1800, "\363\134\355\012"}, - {0x1801, "\251\007\357\345\371\013"}, - {0x1802, "\330\066"}, - {0x1803, "\037\355\012"}, - {0x1804, "\355\103\355\012"}, - {0x1805, "\373\373\355\012"}, - {0x1806, "\355\126\355\315\362\071\355\012\312"}, - {0x1807, "\355\045\007\375\053\355\012\355\006"}, - {0x1808, "\330\066\370\261"}, - {0x1809, "\037\355\012\355\065"}, - {0x180A, "\371\244\355\012"}, - {0x180B, "\356\254\007\357\052\357\227\355\012\110"}, - {0x180C, "\356\254\007\357\052\357\227\355\012\127"}, - {0x180D, "\356\254\007\357\052\357\227\355\012\136"}, - {0x180E, "\355\045\007\376\055\355\012"}, - {0x1810, "\024\355\012\331"}, - {0x1811, "\024\355\012\110"}, - {0x1812, "\024\355\012\127"}, - {0x1813, "\024\355\012\136"}, - {0x1814, "\024\355\012\220"}, - {0x1815, "\024\355\012\230"}, - {0x1816, "\024\355\012\255"}, - {0x1817, "\024\355\012\252"}, - {0x1818, "\024\355\012\226"}, - {0x1819, "\024\355\012\257"}, - {0x1820, "\001\066\063"}, - {0x1821, "\001\066\356\136"}, - {0x1822, "\001\066\103"}, - {0x1823, "\001\066\064"}, - {0x1824, "\001\066\113"}, - {0x1825, "\001\066\356\011"}, - {0x1826, "\001\066\132"}, - {0x1827, "\001\066\315"}, - {0x1828, "\001\066\354"}, - {0x1829, "\001\066\355\373"}, - {0x182A, "\001\066\355\052"}, - {0x182B, "\001\066\327"}, - {0x182C, "\001\066\356\245"}, - {0x182D, "\001\066\355\017"}, - {0x182E, "\001\066\277"}, - {0x182F, "\001\066\033"}, - {0x1830, "\001\066\355\004"}, - {0x1831, "\001\066\355\032"}, - {0x1832, "\001\066\311"}, - {0x1833, "\001\066\355\002"}, - {0x1834, "\001\066\355\024"}, - {0x1835, "\001\066\355\104"}, - {0x1836, "\001\066\305"}, - {0x1837, "\001\066\322"}, - {0x1838, "\001\066\355\050"}, - {0x1839, "\001\066\355\225"}, - {0x183A, "\001\066\240"}, - {0x183B, "\001\066\355\054"}, - {0x183C, "\001\066\355\177"}, - {0x183D, "\001\066\355\101"}, - {0x183E, "\001\066\356\211"}, - {0x183F, "\001\066\376\307"}, - {0x1840, "\001\066\357\226"}, - {0x1841, "\001\066\357\350"}, - {0x1842, "\001\066\375\116"}, - {0x1843, "\001\066\026\356\221\042\312"}, - {0x1844, "\001\066\217\312"}, - {0x1845, "\001\066\103\312"}, - {0x1846, "\001\066\064\312"}, - {0x1847, "\001\066\113\312"}, - {0x1848, "\001\066\356\011\312"}, - {0x1849, "\001\066\132\312"}, - {0x184A, "\001\066\355\373\312"}, - {0x184B, "\001\066\355\052\312"}, - {0x184C, "\001\066\327\312"}, - {0x184D, "\001\066\356\245\312"}, - {0x184E, "\001\066\355\017\312"}, - {0x184F, "\001\066\277\312"}, - {0x1850, "\001\066\311\312"}, - {0x1851, "\001\066\355\002\312"}, - {0x1852, "\001\066\355\024\312"}, - {0x1853, "\001\066\355\104\312"}, - {0x1854, "\001\066\355\177\312"}, - {0x1855, "\001\066\305\312"}, - {0x1856, "\001\066\355\050\312"}, - {0x1857, "\001\066\240\312"}, - {0x1858, "\001\066\360\311\312"}, - {0x1859, "\001\066\356\211\312"}, - {0x185A, "\001\066\365\302\312"}, - {0x185B, "\001\066\371\233\312"}, - {0x185C, "\001\066\356\065\312"}, - {0x185D, "\001\066\217\355\006"}, - {0x185E, "\001\066\103\355\006"}, - {0x185F, "\001\066\367\240\355\006"}, - {0x1860, "\001\066\132\355\006"}, - {0x1861, "\001\066\113\355\006"}, - {0x1862, "\001\066\355\373\355\006"}, - {0x1863, "\001\066\240\355\006"}, - {0x1864, "\001\066\355\017\355\006"}, - {0x1865, "\001\066\314\355\006"}, - {0x1866, "\001\066\327\355\006"}, - {0x1867, "\001\066\355\032\355\006"}, - {0x1868, "\001\066\311\355\006"}, - {0x1869, "\001\066\355\002\355\006"}, - {0x186A, "\001\066\355\104\355\006"}, - {0x186B, "\001\066\355\225\355\006"}, - {0x186C, "\001\066\360\311\355\006"}, - {0x186D, "\001\066\356\211\355\006"}, - {0x186E, "\001\066\355\177\355\006"}, - {0x186F, "\001\066\355\101\355\006"}, - {0x1870, "\001\066\357\320\355\006"}, - {0x1871, "\001\066\355\024\355\006"}, - {0x1872, "\001\066\355\365\355\006"}, - {0x1873, "\001\066\103\355\065"}, - {0x1874, "\001\066\240\355\065"}, - {0x1875, "\001\066\322\355\065"}, - {0x1876, "\001\066\355\225\355\065"}, - {0x1877, "\001\066\355\365\355\065"}, - {0x1880, "\001\066\355\222\110\234\235"}, - {0x1881, "\001\066\355\243\110\234\235"}, - {0x1882, "\001\066\365\172\234\235"}, - {0x1883, "\001\066\361\145\234\235"}, - {0x1884, "\001\066\361\145\234\235\325"}, - {0x1885, "\001\066\363\024\234\235"}, - {0x1886, "\001\066\136\363\025\234\235"}, - {0x1887, "\001\066\063\234\235"}, - {0x1888, "\001\066\103\234\235"}, - {0x1889, "\001\066\240\234\235"}, - {0x188A, "\001\066\355\066\234\235"}, - {0x188B, "\001\066\355\024\234\235"}, - {0x188C, "\001\066\355\100\234\235"}, - {0x188D, "\001\066\355\127\234\235"}, - {0x188E, "\001\066\355\120\234\235"}, - {0x188F, "\001\066\355\141\234\235"}, - {0x1890, "\001\066\311\234\235"}, - {0x1891, "\001\066\355\002\234\235"}, - {0x1892, "\001\066\327\234\235"}, - {0x1893, "\001\066\355\124\234\235"}, - {0x1894, "\001\066\355\152\234\235"}, - {0x1895, "\001\066\355\365\234\235"}, - {0x1896, "\001\066\355\101\234\235"}, - {0x1897, "\001\066\362\303\234\235"}, - {0x1898, "\001\066\311\312\234\235"}, - {0x1899, "\001\066\355\365\312\234\235"}, - {0x189A, "\001\066\355\106\234\235"}, - {0x189B, "\001\066\355\066\355\065\234\235"}, - {0x189C, "\001\066\355\024\355\065\234\235"}, - {0x189D, "\001\066\355\251\355\065\234\235"}, - {0x189E, "\001\066\355\100\355\065\234\235"}, - {0x189F, "\001\066\355\160\355\065\234\235"}, - {0x18A0, "\001\066\311\355\065\234\235"}, - {0x18A1, "\001\066\355\162\355\065\234\235"}, - {0x18A2, "\001\066\355\152\355\065\234\235"}, - {0x18A3, "\001\066\375\150\355\065\234\235"}, - {0x18A4, "\001\066\355\365\355\065\234\235"}, - {0x18A5, "\001\066\355\101\355\065\234\235"}, - {0x18A6, "\001\066\355\133\113\234\235"}, - {0x18A7, "\001\066\355\133\305\234\235"}, - {0x18A8, "\001\066\355\153\234\235"}, - {0x18A9, "\001\066\365\166\234\235"}, - {0x1E00, "\001\010\006\063\302\043"}, - {0x1E01, "\001\005\006\063\302\043"}, - {0x1E02, "\001\010\006\334\037\013\040"}, - {0x1E03, "\001\005\006\334\037\013\040"}, - {0x1E04, "\001\010\006\334\037\043"}, - {0x1E05, "\001\005\006\334\037\043"}, - {0x1E06, "\001\010\006\334\243\301"}, - {0x1E07, "\001\005\006\334\243\301"}, - {0x1E08, "\001\010\006\313\274\020\021\062"}, - {0x1E09, "\001\005\006\313\274\020\021\062"}, - {0x1E0A, "\001\010\006\275\037\013\040"}, - {0x1E0B, "\001\005\006\275\037\013\040"}, - {0x1E0C, "\001\010\006\275\037\043"}, - {0x1E0D, "\001\005\006\275\037\043"}, - {0x1E0E, "\001\010\006\275\243\301"}, - {0x1E0F, "\001\005\006\275\243\301"}, - {0x1E10, "\001\010\006\275\274"}, - {0x1E11, "\001\005\006\275\274"}, - {0x1E12, "\001\010\006\275\021\072\043"}, - {0x1E13, "\001\005\006\275\021\072\043"}, - {0x1E14, "\001\010\006\130\174\020\021\067"}, - {0x1E15, "\001\005\006\130\174\020\021\067"}, - {0x1E16, "\001\010\006\130\174\020\021\062"}, - {0x1E17, "\001\005\006\130\174\020\021\062"}, - {0x1E18, "\001\010\006\130\021\072\043"}, - {0x1E19, "\001\005\006\130\021\072\043"}, - {0x1E1A, "\001\010\006\130\172\043"}, - {0x1E1B, "\001\005\006\130\172\043"}, - {0x1E1C, "\001\010\006\130\274\020\213"}, - {0x1E1D, "\001\005\006\130\274\020\213"}, - {0x1E1E, "\001\010\006\355\062\037\013\040"}, - {0x1E1F, "\001\005\006\355\062\037\013\040"}, - {0x1E20, "\001\010\006\266\174"}, - {0x1E21, "\001\005\006\266\174"}, - {0x1E22, "\001\010\006\237\037\013\040"}, - {0x1E23, "\001\005\006\237\037\013\040"}, - {0x1E24, "\001\010\006\237\037\043"}, - {0x1E25, "\001\005\006\237\037\043"}, - {0x1E26, "\001\010\006\237\165"}, - {0x1E27, "\001\005\006\237\165"}, - {0x1E28, "\001\010\006\237\274"}, - {0x1E29, "\001\005\006\237\274"}, - {0x1E2A, "\001\010\006\237\213\043"}, - {0x1E2B, "\001\005\006\237\213\043"}, - {0x1E2C, "\001\010\006\103\172\043"}, - {0x1E2D, "\001\005\006\103\172\043"}, - {0x1E2E, "\001\010\006\103\165\020\021\062"}, - {0x1E2F, "\001\005\006\103\165\020\021\062"}, - {0x1E30, "\001\010\006\352\021\062"}, - {0x1E31, "\001\005\006\352\021\062"}, - {0x1E32, "\001\010\006\352\037\043"}, - {0x1E33, "\001\005\006\352\037\043"}, - {0x1E34, "\001\010\006\352\243\301"}, - {0x1E35, "\001\005\006\352\243\301"}, - {0x1E36, "\001\010\006\211\037\043"}, - {0x1E37, "\001\005\006\211\037\043"}, - {0x1E38, "\001\010\006\211\037\043\020\174"}, - {0x1E39, "\001\005\006\211\037\043\020\174"}, - {0x1E3A, "\001\010\006\211\243\301"}, - {0x1E3B, "\001\005\006\211\243\301"}, - {0x1E3C, "\001\010\006\211\021\072\043"}, - {0x1E3D, "\001\005\006\211\021\072\043"}, - {0x1E3E, "\001\010\006\276\021\062"}, - {0x1E3F, "\001\005\006\276\021\062"}, - {0x1E40, "\001\010\006\276\037\013\040"}, - {0x1E41, "\001\005\006\276\037\013\040"}, - {0x1E42, "\001\010\006\276\037\043"}, - {0x1E43, "\001\005\006\276\037\043"}, - {0x1E44, "\001\010\006\241\037\013\040"}, - {0x1E45, "\001\005\006\241\037\013\040"}, - {0x1E46, "\001\010\006\241\037\043"}, - {0x1E47, "\001\005\006\241\037\043"}, - {0x1E48, "\001\010\006\241\243\301"}, - {0x1E49, "\001\005\006\241\243\301"}, - {0x1E4A, "\001\010\006\241\021\072\043"}, - {0x1E4B, "\001\005\006\241\021\072\043"}, - {0x1E4C, "\001\010\006\064\172\020\021\062"}, - {0x1E4D, "\001\005\006\064\172\020\021\062"}, - {0x1E4E, "\001\010\006\064\172\020\165"}, - {0x1E4F, "\001\005\006\064\172\020\165"}, - {0x1E50, "\001\010\006\064\174\020\021\067"}, - {0x1E51, "\001\005\006\064\174\020\021\067"}, - {0x1E52, "\001\010\006\064\174\020\021\062"}, - {0x1E53, "\001\005\006\064\174\020\021\062"}, - {0x1E54, "\001\010\006\355\021\021\062"}, - {0x1E55, "\001\005\006\355\021\021\062"}, - {0x1E56, "\001\010\006\355\021\037\013\040"}, - {0x1E57, "\001\005\006\355\021\037\013\040"}, - {0x1E58, "\001\010\006\167\037\013\040"}, - {0x1E59, "\001\005\006\167\037\013\040"}, - {0x1E5A, "\001\010\006\167\037\043"}, - {0x1E5B, "\001\005\006\167\037\043"}, - {0x1E5C, "\001\010\006\167\037\043\020\174"}, - {0x1E5D, "\001\005\006\167\037\043\020\174"}, - {0x1E5E, "\001\010\006\167\243\301"}, - {0x1E5F, "\001\005\006\167\243\301"}, - {0x1E60, "\001\010\006\223\037\013\040"}, - {0x1E61, "\001\005\006\223\037\013\040"}, - {0x1E62, "\001\010\006\223\037\043"}, - {0x1E63, "\001\005\006\223\037\043"}, - {0x1E64, "\001\010\006\223\021\062\020\037\013\040"}, - {0x1E65, "\001\005\006\223\021\062\020\037\013\040"}, - {0x1E66, "\001\010\006\223\225\020\037\013\040"}, - {0x1E67, "\001\005\006\223\225\020\037\013\040"}, - {0x1E68, "\001\010\006\223\037\043\020\037\013\040"}, - {0x1E69, "\001\005\006\223\037\043\020\037\013\040"}, - {0x1E6A, "\001\010\006\261\037\013\040"}, - {0x1E6B, "\001\005\006\261\037\013\040"}, - {0x1E6C, "\001\010\006\261\037\043"}, - {0x1E6D, "\001\005\006\261\037\043"}, - {0x1E6E, "\001\010\006\261\243\301"}, - {0x1E6F, "\001\005\006\261\243\301"}, - {0x1E70, "\001\010\006\261\021\072\043"}, - {0x1E71, "\001\005\006\261\021\072\043"}, - {0x1E72, "\001\010\006\132\165\043"}, - {0x1E73, "\001\005\006\132\165\043"}, - {0x1E74, "\001\010\006\132\172\043"}, - {0x1E75, "\001\005\006\132\172\043"}, - {0x1E76, "\001\010\006\132\021\072\043"}, - {0x1E77, "\001\005\006\132\021\072\043"}, - {0x1E78, "\001\010\006\132\172\020\021\062"}, - {0x1E79, "\001\005\006\132\172\020\021\062"}, - {0x1E7A, "\001\010\006\132\174\020\165"}, - {0x1E7B, "\001\005\006\132\174\020\165"}, - {0x1E7C, "\001\010\006\355\025\172"}, - {0x1E7D, "\001\005\006\355\025\172"}, - {0x1E7E, "\001\010\006\355\025\037\043"}, - {0x1E7F, "\001\005\006\355\025\037\043"}, - {0x1E80, "\001\010\006\347\021\067"}, - {0x1E81, "\001\005\006\347\021\067"}, - {0x1E82, "\001\010\006\347\021\062"}, - {0x1E83, "\001\005\006\347\021\062"}, - {0x1E84, "\001\010\006\347\165"}, - {0x1E85, "\001\005\006\347\165"}, - {0x1E86, "\001\010\006\347\037\013\040"}, - {0x1E87, "\001\005\006\347\037\013\040"}, - {0x1E88, "\001\010\006\347\037\043"}, - {0x1E89, "\001\005\006\347\037\043"}, - {0x1E8A, "\001\010\006\355\026\037\013\040"}, - {0x1E8B, "\001\005\006\355\026\037\013\040"}, - {0x1E8C, "\001\010\006\355\026\165"}, - {0x1E8D, "\001\005\006\355\026\165"}, - {0x1E8E, "\001\010\006\265\037\013\040"}, - {0x1E8F, "\001\005\006\265\037\013\040"}, - {0x1E90, "\001\010\006\271\021\072"}, - {0x1E91, "\001\005\006\271\021\072"}, - {0x1E92, "\001\010\006\271\037\043"}, - {0x1E93, "\001\005\006\271\037\043"}, - {0x1E94, "\001\010\006\271\243\301"}, - {0x1E95, "\001\005\006\271\243\301"}, - {0x1E96, "\001\005\006\237\243\301"}, - {0x1E97, "\001\005\006\261\165"}, - {0x1E98, "\001\005\006\347\302\013\040"}, - {0x1E99, "\001\005\006\265\302\013\040"}, - {0x1E9A, "\001\005\006\063\356\061\044\053"}, - {0x1E9B, "\001\005\006\355\264\223\037\013\040"}, - {0x1EA0, "\001\010\006\063\037\043"}, - {0x1EA1, "\001\005\006\063\037\043"}, - {0x1EA2, "\001\010\006\063\122\013\040"}, - {0x1EA3, "\001\005\006\063\122\013\040"}, - {0x1EA4, "\001\010\006\063\021\072\020\021\062"}, - {0x1EA5, "\001\005\006\063\021\072\020\021\062"}, - {0x1EA6, "\001\010\006\063\021\072\020\021\067"}, - {0x1EA7, "\001\005\006\063\021\072\020\021\067"}, - {0x1EA8, "\001\010\006\063\021\072\020\122\013\040"}, - {0x1EA9, "\001\005\006\063\021\072\020\122\013\040"}, - {0x1EAA, "\001\010\006\063\021\072\020\172"}, - {0x1EAB, "\001\005\006\063\021\072\020\172"}, - {0x1EAC, "\001\010\006\063\021\072\020\037\043"}, - {0x1EAD, "\001\005\006\063\021\072\020\037\043"}, - {0x1EAE, "\001\010\006\063\213\020\021\062"}, - {0x1EAF, "\001\005\006\063\213\020\021\062"}, - {0x1EB0, "\001\010\006\063\213\020\021\067"}, - {0x1EB1, "\001\005\006\063\213\020\021\067"}, - {0x1EB2, "\001\010\006\063\213\020\122\013\040"}, - {0x1EB3, "\001\005\006\063\213\020\122\013\040"}, - {0x1EB4, "\001\010\006\063\213\020\172"}, - {0x1EB5, "\001\005\006\063\213\020\172"}, - {0x1EB6, "\001\010\006\063\213\020\037\043"}, - {0x1EB7, "\001\005\006\063\213\020\037\043"}, - {0x1EB8, "\001\010\006\130\037\043"}, - {0x1EB9, "\001\005\006\130\037\043"}, - {0x1EBA, "\001\010\006\130\122\013\040"}, - {0x1EBB, "\001\005\006\130\122\013\040"}, - {0x1EBC, "\001\010\006\130\172"}, - {0x1EBD, "\001\005\006\130\172"}, - {0x1EBE, "\001\010\006\130\021\072\020\021\062"}, - {0x1EBF, "\001\005\006\130\021\072\020\021\062"}, - {0x1EC0, "\001\010\006\130\021\072\020\021\067"}, - {0x1EC1, "\001\005\006\130\021\072\020\021\067"}, - {0x1EC2, "\001\010\006\130\021\072\020\122\013\040"}, - {0x1EC3, "\001\005\006\130\021\072\020\122\013\040"}, - {0x1EC4, "\001\010\006\130\021\072\020\172"}, - {0x1EC5, "\001\005\006\130\021\072\020\172"}, - {0x1EC6, "\001\010\006\130\021\072\020\037\043"}, - {0x1EC7, "\001\005\006\130\021\072\020\037\043"}, - {0x1EC8, "\001\010\006\103\122\013\040"}, - {0x1EC9, "\001\005\006\103\122\013\040"}, - {0x1ECA, "\001\010\006\103\037\043"}, - {0x1ECB, "\001\005\006\103\037\043"}, - {0x1ECC, "\001\010\006\064\037\043"}, - {0x1ECD, "\001\005\006\064\037\043"}, - {0x1ECE, "\001\010\006\064\122\013\040"}, - {0x1ECF, "\001\005\006\064\122\013\040"}, - {0x1ED0, "\001\010\006\064\021\072\020\021\062"}, - {0x1ED1, "\001\005\006\064\021\072\020\021\062"}, - {0x1ED2, "\001\010\006\064\021\072\020\021\067"}, - {0x1ED3, "\001\005\006\064\021\072\020\021\067"}, - {0x1ED4, "\001\010\006\064\021\072\020\122\013\040"}, - {0x1ED5, "\001\005\006\064\021\072\020\122\013\040"}, - {0x1ED6, "\001\010\006\064\021\072\020\172"}, - {0x1ED7, "\001\005\006\064\021\072\020\172"}, - {0x1ED8, "\001\010\006\064\021\072\020\037\043"}, - {0x1ED9, "\001\005\006\064\021\072\020\037\043"}, - {0x1EDA, "\001\010\006\064\336\021\062"}, - {0x1EDB, "\001\005\006\064\336\021\062"}, - {0x1EDC, "\001\010\006\064\336\021\067"}, - {0x1EDD, "\001\005\006\064\336\021\067"}, - {0x1EDE, "\001\010\006\064\336\122\013\040"}, - {0x1EDF, "\001\005\006\064\336\122\013\040"}, - {0x1EE0, "\001\010\006\064\336\172"}, - {0x1EE1, "\001\005\006\064\336\172"}, - {0x1EE2, "\001\010\006\064\336\037\043"}, - {0x1EE3, "\001\005\006\064\336\037\043"}, - {0x1EE4, "\001\010\006\132\037\043"}, - {0x1EE5, "\001\005\006\132\037\043"}, - {0x1EE6, "\001\010\006\132\122\013\040"}, - {0x1EE7, "\001\005\006\132\122\013\040"}, - {0x1EE8, "\001\010\006\132\336\021\062"}, - {0x1EE9, "\001\005\006\132\336\021\062"}, - {0x1EEA, "\001\010\006\132\336\021\067"}, - {0x1EEB, "\001\005\006\132\336\021\067"}, - {0x1EEC, "\001\010\006\132\336\122\013\040"}, - {0x1EED, "\001\005\006\132\336\122\013\040"}, - {0x1EEE, "\001\010\006\132\336\172"}, - {0x1EEF, "\001\005\006\132\336\172"}, - {0x1EF0, "\001\010\006\132\336\037\043"}, - {0x1EF1, "\001\005\006\132\336\037\043"}, - {0x1EF2, "\001\010\006\265\021\067"}, - {0x1EF3, "\001\005\006\265\021\067"}, - {0x1EF4, "\001\010\006\265\037\043"}, - {0x1EF5, "\001\005\006\265\037\043"}, - {0x1EF6, "\001\010\006\265\122\013\040"}, - {0x1EF7, "\001\005\006\265\122\013\040"}, - {0x1EF8, "\001\010\006\265\172"}, - {0x1EF9, "\001\005\006\265\172"}, - {0x1F00, "\001\005\027\203\060\143"}, - {0x1F01, "\001\005\027\203\060\134"}, - {0x1F02, "\001\005\027\203\060\143\020\021\067"}, - {0x1F03, "\001\005\027\203\060\134\020\021\067"}, - {0x1F04, "\001\005\027\203\060\143\020\021\062"}, - {0x1F05, "\001\005\027\203\060\134\020\021\062"}, - {0x1F06, "\001\005\027\203\060\143\020\072"}, - {0x1F07, "\001\005\027\203\060\134\020\072"}, - {0x1F08, "\001\010\027\203\060\143"}, - {0x1F09, "\001\010\027\203\060\134"}, - {0x1F0A, "\001\010\027\203\060\143\020\021\067"}, - {0x1F0B, "\001\010\027\203\060\134\020\021\067"}, - {0x1F0C, "\001\010\027\203\060\143\020\021\062"}, - {0x1F0D, "\001\010\027\203\060\134\020\021\062"}, - {0x1F0E, "\001\010\027\203\060\143\020\072"}, - {0x1F0F, "\001\010\027\203\060\134\020\072"}, - {0x1F10, "\001\005\027\326\060\143"}, - {0x1F11, "\001\005\027\326\060\134"}, - {0x1F12, "\001\005\027\326\060\143\020\021\067"}, - {0x1F13, "\001\005\027\326\060\134\020\021\067"}, - {0x1F14, "\001\005\027\326\060\143\020\021\062"}, - {0x1F15, "\001\005\027\326\060\134\020\021\062"}, - {0x1F18, "\001\010\027\326\060\143"}, - {0x1F19, "\001\010\027\326\060\134"}, - {0x1F1A, "\001\010\027\326\060\143\020\021\067"}, - {0x1F1B, "\001\010\027\326\060\134\020\021\067"}, - {0x1F1C, "\001\010\027\326\060\143\020\021\062"}, - {0x1F1D, "\001\010\027\326\060\134\020\021\062"}, - {0x1F20, "\001\005\027\224\060\143"}, - {0x1F21, "\001\005\027\224\060\134"}, - {0x1F22, "\001\005\027\224\060\143\020\021\067"}, - {0x1F23, "\001\005\027\224\060\134\020\021\067"}, - {0x1F24, "\001\005\027\224\060\143\020\021\062"}, - {0x1F25, "\001\005\027\224\060\134\020\021\062"}, - {0x1F26, "\001\005\027\224\060\143\020\072"}, - {0x1F27, "\001\005\027\224\060\134\020\072"}, - {0x1F28, "\001\010\027\224\060\143"}, - {0x1F29, "\001\010\027\224\060\134"}, - {0x1F2A, "\001\010\027\224\060\143\020\021\067"}, - {0x1F2B, "\001\010\027\224\060\134\020\021\067"}, - {0x1F2C, "\001\010\027\224\060\143\020\021\062"}, - {0x1F2D, "\001\010\027\224\060\134\020\021\062"}, - {0x1F2E, "\001\010\027\224\060\143\020\072"}, - {0x1F2F, "\001\010\027\224\060\134\020\072"}, - {0x1F30, "\001\005\027\104\060\143"}, - {0x1F31, "\001\005\027\104\060\134"}, - {0x1F32, "\001\005\027\104\060\143\020\021\067"}, - {0x1F33, "\001\005\027\104\060\134\020\021\067"}, - {0x1F34, "\001\005\027\104\060\143\020\021\062"}, - {0x1F35, "\001\005\027\104\060\134\020\021\062"}, - {0x1F36, "\001\005\027\104\060\143\020\072"}, - {0x1F37, "\001\005\027\104\060\134\020\072"}, - {0x1F38, "\001\010\027\104\060\143"}, - {0x1F39, "\001\010\027\104\060\134"}, - {0x1F3A, "\001\010\027\104\060\143\020\021\067"}, - {0x1F3B, "\001\010\027\104\060\134\020\021\067"}, - {0x1F3C, "\001\010\027\104\060\143\020\021\062"}, - {0x1F3D, "\001\010\027\104\060\134\020\021\062"}, - {0x1F3E, "\001\010\027\104\060\143\020\072"}, - {0x1F3F, "\001\010\027\104\060\134\020\072"}, - {0x1F40, "\001\005\027\355\036\060\143"}, - {0x1F41, "\001\005\027\355\036\060\134"}, - {0x1F42, "\001\005\027\355\036\060\143\020\021\067"}, - {0x1F43, "\001\005\027\355\036\060\134\020\021\067"}, - {0x1F44, "\001\005\027\355\036\060\143\020\021\062"}, - {0x1F45, "\001\005\027\355\036\060\134\020\021\062"}, - {0x1F48, "\001\010\027\355\036\060\143"}, - {0x1F49, "\001\010\027\355\036\060\134"}, - {0x1F4A, "\001\010\027\355\036\060\143\020\021\067"}, - {0x1F4B, "\001\010\027\355\036\060\134\020\021\067"}, - {0x1F4C, "\001\010\027\355\036\060\143\020\021\062"}, - {0x1F4D, "\001\010\027\355\036\060\134\020\021\062"}, - {0x1F50, "\001\005\027\262\060\143"}, - {0x1F51, "\001\005\027\262\060\134"}, - {0x1F52, "\001\005\027\262\060\143\020\021\067"}, - {0x1F53, "\001\005\027\262\060\134\020\021\067"}, - {0x1F54, "\001\005\027\262\060\143\020\021\062"}, - {0x1F55, "\001\005\027\262\060\134\020\021\062"}, - {0x1F56, "\001\005\027\262\060\143\020\072"}, - {0x1F57, "\001\005\027\262\060\134\020\072"}, - {0x1F59, "\001\010\027\262\060\134"}, - {0x1F5B, "\001\010\027\262\060\134\020\021\067"}, - {0x1F5D, "\001\010\027\262\060\134\020\021\062"}, - {0x1F5F, "\001\010\027\262\060\134\020\072"}, - {0x1F60, "\001\005\027\201\060\143"}, - {0x1F61, "\001\005\027\201\060\134"}, - {0x1F62, "\001\005\027\201\060\143\020\021\067"}, - {0x1F63, "\001\005\027\201\060\134\020\021\067"}, - {0x1F64, "\001\005\027\201\060\143\020\021\062"}, - {0x1F65, "\001\005\027\201\060\134\020\021\062"}, - {0x1F66, "\001\005\027\201\060\143\020\072"}, - {0x1F67, "\001\005\027\201\060\134\020\072"}, - {0x1F68, "\001\010\027\201\060\143"}, - {0x1F69, "\001\010\027\201\060\134"}, - {0x1F6A, "\001\010\027\201\060\143\020\021\067"}, - {0x1F6B, "\001\010\027\201\060\134\020\021\067"}, - {0x1F6C, "\001\010\027\201\060\143\020\021\062"}, - {0x1F6D, "\001\010\027\201\060\134\020\021\062"}, - {0x1F6E, "\001\010\027\201\060\143\020\072"}, - {0x1F6F, "\001\010\027\201\060\134\020\072"}, - {0x1F70, "\001\005\027\203\021\067"}, - {0x1F71, "\001\005\027\203\021\062"}, - {0x1F72, "\001\005\027\326\021\067"}, - {0x1F73, "\001\005\027\326\021\062"}, - {0x1F74, "\001\005\027\224\021\067"}, - {0x1F75, "\001\005\027\224\021\062"}, - {0x1F76, "\001\005\027\104\021\067"}, - {0x1F77, "\001\005\027\104\021\062"}, - {0x1F78, "\001\005\027\355\036\021\067"}, - {0x1F79, "\001\005\027\355\036\021\062"}, - {0x1F7A, "\001\005\027\262\021\067"}, - {0x1F7B, "\001\005\027\262\021\062"}, - {0x1F7C, "\001\005\027\201\021\067"}, - {0x1F7D, "\001\005\027\201\021\062"}, - {0x1F80, "\001\005\027\203\060\143\104\043"}, - {0x1F81, "\001\005\027\203\060\134\104\043"}, - {0x1F82, "\001\005\027\203\060\143\021\067\020\104\043"}, - {0x1F83, "\001\005\027\203\060\134\021\067\020\104\043"}, - {0x1F84, "\001\005\027\203\060\143\021\062\020\104\043"}, - {0x1F85, "\001\005\027\203\060\134\021\062\020\104\043"}, - {0x1F86, "\001\005\027\203\060\143\072\020\104\043"}, - {0x1F87, "\001\005\027\203\060\134\072\020\104\043"}, - {0x1F88, "\001\010\027\203\060\143\104\043"}, - {0x1F89, "\001\010\027\203\060\134\104\043"}, - {0x1F8A, "\001\010\027\203\060\143\021\067\020\104\043"}, - {0x1F8B, "\001\010\027\203\060\134\021\067\020\104\043"}, - {0x1F8C, "\001\010\027\203\060\143\021\062\020\104\043"}, - {0x1F8D, "\001\010\027\203\060\134\021\062\020\104\043"}, - {0x1F8E, "\001\010\027\203\060\143\072\020\104\043"}, - {0x1F8F, "\001\010\027\203\060\134\072\020\104\043"}, - {0x1F90, "\001\005\027\224\060\143\104\043"}, - {0x1F91, "\001\005\027\224\060\134\104\043"}, - {0x1F92, "\001\005\027\224\060\143\021\067\020\104\043"}, - {0x1F93, "\001\005\027\224\060\134\021\067\020\104\043"}, - {0x1F94, "\001\005\027\224\060\143\021\062\020\104\043"}, - {0x1F95, "\001\005\027\224\060\134\021\062\020\104\043"}, - {0x1F96, "\001\005\027\224\060\143\072\020\104\043"}, - {0x1F97, "\001\005\027\224\060\134\072\020\104\043"}, - {0x1F98, "\001\010\027\224\060\143\104\043"}, - {0x1F99, "\001\010\027\224\060\134\104\043"}, - {0x1F9A, "\001\010\027\224\060\143\021\067\020\104\043"}, - {0x1F9B, "\001\010\027\224\060\134\021\067\020\104\043"}, - {0x1F9C, "\001\010\027\224\060\143\021\062\020\104\043"}, - {0x1F9D, "\001\010\027\224\060\134\021\062\020\104\043"}, - {0x1F9E, "\001\010\027\224\060\143\072\020\104\043"}, - {0x1F9F, "\001\010\027\224\060\134\072\020\104\043"}, - {0x1FA0, "\001\005\027\201\060\143\104\043"}, - {0x1FA1, "\001\005\027\201\060\134\104\043"}, - {0x1FA2, "\001\005\027\201\060\143\021\067\020\104\043"}, - {0x1FA3, "\001\005\027\201\060\134\021\067\020\104\043"}, - {0x1FA4, "\001\005\027\201\060\143\021\062\020\104\043"}, - {0x1FA5, "\001\005\027\201\060\134\021\062\020\104\043"}, - {0x1FA6, "\001\005\027\201\060\143\072\020\104\043"}, - {0x1FA7, "\001\005\027\201\060\134\072\020\104\043"}, - {0x1FA8, "\001\010\027\201\060\143\104\043"}, - {0x1FA9, "\001\010\027\201\060\134\104\043"}, - {0x1FAA, "\001\010\027\201\060\143\021\067\020\104\043"}, - {0x1FAB, "\001\010\027\201\060\134\021\067\020\104\043"}, - {0x1FAC, "\001\010\027\201\060\143\021\062\020\104\043"}, - {0x1FAD, "\001\010\027\201\060\134\021\062\020\104\043"}, - {0x1FAE, "\001\010\027\201\060\143\072\020\104\043"}, - {0x1FAF, "\001\010\027\201\060\134\072\020\104\043"}, - {0x1FB0, "\001\005\027\203\356\133"}, - {0x1FB1, "\001\005\027\203\174"}, - {0x1FB2, "\001\005\027\203\021\067\104\043"}, - {0x1FB3, "\001\005\027\203\104\043"}, - {0x1FB4, "\001\005\027\203\021\062\104\043"}, - {0x1FB6, "\001\005\027\203\072"}, - {0x1FB7, "\001\005\027\203\072\104\043"}, - {0x1FB8, "\001\010\027\203\356\133"}, - {0x1FB9, "\001\010\027\203\174"}, - {0x1FBA, "\001\010\027\203\021\067"}, - {0x1FBB, "\001\010\027\203\021\062"}, - {0x1FBC, "\001\010\027\203\104\043"}, - {0x1FBD, "\360\142"}, - {0x1FBE, "\104\043"}, - {0x1FBF, "\060\143"}, - {0x1FC0, "\072\317"}, - {0x1FC1, "\355\061\020\072"}, - {0x1FC2, "\001\005\027\224\021\067\104\043"}, - {0x1FC3, "\001\005\027\224\104\043"}, - {0x1FC4, "\001\005\027\224\021\062\104\043"}, - {0x1FC6, "\001\005\027\224\072"}, - {0x1FC7, "\001\005\027\224\072\104\043"}, - {0x1FC8, "\001\010\027\326\021\067"}, - {0x1FC9, "\001\010\027\326\021\062"}, - {0x1FCA, "\001\010\027\224\021\067"}, - {0x1FCB, "\001\010\027\224\021\062"}, - {0x1FCC, "\001\010\027\224\104\043"}, - {0x1FCD, "\060\143\020\021\067"}, - {0x1FCE, "\060\143\020\021\062"}, - {0x1FCF, "\060\143\020\072\317"}, - {0x1FD0, "\001\005\027\104\356\133"}, - {0x1FD1, "\001\005\027\104\174"}, - {0x1FD2, "\001\005\027\104\355\061\020\021\067"}, - {0x1FD3, "\001\005\027\104\355\061\020\021\062"}, - {0x1FD6, "\001\005\027\104\072"}, - {0x1FD7, "\001\005\027\104\355\061\020\072"}, - {0x1FD8, "\001\010\027\104\356\133"}, - {0x1FD9, "\001\010\027\104\174"}, - {0x1FDA, "\001\010\027\104\021\067"}, - {0x1FDB, "\001\010\027\104\021\062"}, - {0x1FDD, "\060\134\020\021\067"}, - {0x1FDE, "\060\134\020\021\062"}, - {0x1FDF, "\060\134\020\072\317"}, - {0x1FE0, "\001\005\027\262\356\133"}, - {0x1FE1, "\001\005\027\262\174"}, - {0x1FE2, "\001\005\027\262\355\061\020\021\067"}, - {0x1FE3, "\001\005\027\262\355\061\020\021\062"}, - {0x1FE4, "\001\005\027\356\036\060\143"}, - {0x1FE5, "\001\005\027\356\036\060\134"}, - {0x1FE6, "\001\005\027\262\072"}, - {0x1FE7, "\001\005\027\262\355\061\020\072"}, - {0x1FE8, "\001\010\027\262\356\133"}, - {0x1FE9, "\001\010\027\262\174"}, - {0x1FEA, "\001\010\027\262\021\067"}, - {0x1FEB, "\001\010\027\262\021\062"}, - {0x1FEC, "\001\010\027\356\036\060\134"}, - {0x1FED, "\355\061\020\021\067"}, - {0x1FEE, "\355\061\020\021\062"}, - {0x1FEF, "\021\067\317"}, - {0x1FF2, "\001\005\027\201\021\067\104\043"}, - {0x1FF3, "\001\005\027\201\104\043"}, - {0x1FF4, "\001\005\027\201\021\062\104\043"}, - {0x1FF6, "\001\005\027\201\072"}, - {0x1FF7, "\001\005\027\201\072\104\043"}, - {0x1FF8, "\001\010\027\355\036\021\067"}, - {0x1FF9, "\001\010\027\355\036\021\062"}, - {0x1FFA, "\001\010\027\201\021\067"}, - {0x1FFB, "\001\010\027\201\021\062"}, - {0x1FFC, "\001\010\027\201\104\043"}, - {0x1FFD, "\021\062\317"}, - {0x1FFE, "\060\134"}, - {0x2000, "\357\131"}, - {0x2001, "\356\004"}, - {0x2002, "\365\246"}, - {0x2003, "\363\222"}, - {0x2004, "\357\360\007\356\004"}, - {0x2005, "\357\017\007\356\004"}, - {0x2006, "\357\031\007\356\004"}, - {0x2007, "\355\073\361\124"}, - {0x2008, "\355\073\355\234"}, - {0x2009, "\355\073\360\242"}, - {0x200A, "\355\073\375\367"}, - {0x200B, "\355\073\270\105"}, - {0x200C, "\362\341\270\105"}, - {0x200D, "\361\026\270\105"}, - {0x200E, "\204\357\152"}, - {0x200F, "\204\357\143"}, - {0x2010, "\355\126\355\315"}, - {0x2011, "\355\126\355\315\361\026"}, - {0x2012, "\355\007\361\124"}, - {0x2013, "\355\007\357\131"}, - {0x2014, "\355\007\356\004"}, - {0x2015, "\246\356\335"}, - {0x2016, "\070\243\256"}, - {0x2017, "\070\355\126\043"}, - {0x2018, "\356\332\325"}, - {0x2019, "\356\332"}, - {0x201A, "\356\333\320"}, - {0x201B, "\356\333\344\325"}, - {0x201C, "\356\332\070\325"}, - {0x201D, "\356\332\070"}, - {0x201E, "\356\333\070\320"}, - {0x201F, "\356\333\070\344\325"}, - {0x2020, "\357\253"}, - {0x2021, "\070\357\253"}, - {0x2022, "\356\107"}, - {0x2023, "\356\107\356\131"}, - {0x2024, "\037\357\116\355\001"}, - {0x2025, "\037\357\116\070"}, - {0x2026, "\251\007\357\345"}, - {0x2027, "\037\007\365\103\007\361\065"}, - {0x2028, "\355\045\007\370\167"}, - {0x2029, "\355\045\007\357\266"}, - {0x202A, "\360\230\357\152"}, - {0x202B, "\360\230\357\143"}, - {0x202C, "\365\360\007\360\245\365\272"}, - {0x202D, "\360\247\357\152"}, - {0x202E, "\360\247\357\143"}, - {0x202F, "\355\073\357\201\377\040"}, - {0x2030, "\022\355\057\355\271"}, - {0x2031, "\022\355\057\355\034\355\271"}, - {0x2032, "\355\235"}, - {0x2033, "\070\355\235"}, - {0x2034, "\355\220\355\235"}, - {0x2035, "\355\235\355\013"}, - {0x2036, "\070\355\235\355\013"}, - {0x2037, "\355\220\355\235\355\013"}, - {0x2038, "\363\304\356\057"}, - {0x2039, "\355\135\355\001\015\033\052"}, - {0x203A, "\355\135\355\001\015\033\053"}, - {0x203B, "\204\007\374\173"}, - {0x203C, "\070\037\355\312"}, - {0x203D, "\037\366\032"}, - {0x203E, "\355\007\013\040"}, - {0x203F, "\362\007\043"}, - {0x2040, "\362\007\013\040"}, - {0x2041, "\356\346\356\057"}, - {0x2042, "\362\376"}, - {0x2043, "\356\107\355\126\355\315"}, - {0x2044, "\246\360\253"}, - {0x2045, "\122\052\164\357\001"}, - {0x2046, "\122\221\164\357\001"}, - {0x2048, "\037\365\157"}, - {0x2049, "\037\365\153"}, - {0x204A, "\357\250\375\213\020"}, - {0x204B, "\356\242\007\357\237\355\013"}, - {0x204C, "\356\107\264\362\035\044\053"}, - {0x204D, "\356\107\264\362\035\044\052"}, - {0x204F, "\355\073\376\042"}, - {0x206A, "\360\346\360\157\361\345"}, - {0x206B, "\360\043\360\157\361\345"}, - {0x206C, "\360\346\007\360\244\004"}, - {0x206D, "\360\043\007\360\244\004"}, - {0x206E, "\356\254\007\360\246\007\024\371\104"}, - {0x206F, "\356\254\007\360\246\007\024\371\316"}, - {0x2070, "\355\074\331"}, - {0x2074, "\355\074\220"}, - {0x2075, "\355\074\230"}, - {0x2076, "\355\074\255"}, - {0x2077, "\355\074\252"}, - {0x2078, "\355\074\226"}, - {0x2079, "\355\074\257"}, - {0x207A, "\355\074\057\214"}, - {0x207B, "\355\074\057\355\020"}, - {0x207C, "\355\074\057\173"}, - {0x207D, "\355\074\355\123\052"}, - {0x207E, "\355\074\355\123\053"}, - {0x207F, "\355\074\001\005\006\241"}, - {0x2080, "\355\110\331"}, - {0x2081, "\355\110\110"}, - {0x2082, "\355\110\127"}, - {0x2083, "\355\110\136"}, - {0x2084, "\355\110\220"}, - {0x2085, "\355\110\230"}, - {0x2086, "\355\110\255"}, - {0x2087, "\355\110\252"}, - {0x2088, "\355\110\226"}, - {0x2089, "\355\110\257"}, - {0x208A, "\355\110\057\214"}, - {0x208B, "\355\110\057\355\020"}, - {0x208C, "\355\110\057\173"}, - {0x208D, "\355\110\355\123\052"}, - {0x208E, "\355\110\355\123\053"}, - {0x20A0, "\022\377\025"}, - {0x20A1, "\022\360\134"}, - {0x20A2, "\022\365\122"}, - {0x20A3, "\022\366\107\366\110"}, - {0x20A4, "\022\370\173"}, - {0x20A5, "\022\370\364"}, - {0x20A6, "\022\371\100"}, - {0x20A7, "\022\372\205"}, - {0x20A8, "\022\357\316"}, - {0x20A9, "\022\362\103"}, - {0x20AA, "\022\371\326\363\337"}, - {0x20AB, "\022\365\322"}, - {0x20AC, "\022\366\027"}, - {0x20AD, "\022\360\376"}, - {0x20AE, "\022\375\236"}, - {0x20AF, "\022\365\330"}, - {0x20D0, "\026\362\061\015\033\052\013\040"}, - {0x20D1, "\026\362\061\015\033\053\013\040"}, - {0x20D2, "\026\243\256\356\221\356\056"}, - {0x20D3, "\026\243\256\356\314\356\056"}, - {0x20D4, "\026\061\013\355\215\356\105\013\040"}, - {0x20D5, "\026\061\013\355\215\300\013\040"}, - {0x20D6, "\026\061\015\033\052\013\040"}, - {0x20D7, "\026\061\015\033\053\013\040"}, - {0x20D8, "\026\302\356\315"}, - {0x20D9, "\026\302\013\355\215\300\356\315"}, - {0x20DA, "\026\302\013\355\215\356\105\356\315"}, - {0x20DB, "\026\136\251\013\040"}, - {0x20DC, "\026\220\251\013\040"}, - {0x20DD, "\026\272\356\171"}, - {0x20DE, "\026\035\356\171"}, - {0x20DF, "\026\355\266\356\171"}, - {0x20E0, "\026\272\356\171\020\246\355\044\356\073"}, - {0x20E1, "\026\061\052\020\053\013\040"}, - {0x20E2, "\026\360\026\356\171"}, - {0x20E3, "\026\362\024\366\004\355\021"}, - {0x2100, "\022\355\307\365\052\007"}, - {0x2101, "\022\363\005\363\146\374\345\007"}, - {0x2102, "\313\010\355\371"}, - {0x2103, "\357\130\363\246"}, - {0x2104, "\022\243\007\356\307"}, - {0x2105, "\022\356\300\363\234"}, - {0x2106, "\022\363\220\375\370"}, - {0x2107, "\357\105\365\152"}, - {0x2108, "\374\236"}, - {0x2109, "\357\130\366\040"}, - {0x210A, "\005\266\007\355\144"}, - {0x210B, "\010\237\007\355\144"}, - {0x210C, "\010\237\356\205"}, - {0x210D, "\237\010\355\371"}, - {0x210E, "\357\105\007\361\204"}, - {0x210F, "\357\105\007\361\204\355\146\127\355\233"}, - {0x2110, "\010\103\007\355\144"}, - {0x2111, "\010\103\356\205"}, - {0x2112, "\010\211\007\355\144"}, - {0x2113, "\005\211\007\355\144"}, - {0x2114, "\022\211\334\232"}, - {0x2115, "\241\010\355\371"}, - {0x2116, "\022\361\125"}, - {0x2117, "\360\137\007\372\215"}, - {0x2118, "\154\365\375\007\376\100"}, - {0x2119, "\355\021\010\355\371"}, - {0x211A, "\355\173\010\355\371"}, - {0x211B, "\010\167\007\355\144"}, - {0x211C, "\010\167\356\205"}, - {0x211D, "\167\010\355\371"}, - {0x211E, "\372\106"}, - {0x211F, "\374\175"}, - {0x2120, "\022\356\300\204\007\374\254"}, - {0x2121, "\022\357\050"}, - {0x2122, "\022\356\300\204\007\365\046"}, - {0x2123, "\376\017"}, - {0x2124, "\271\010\355\371"}, - {0x2125, "\022\372\075"}, - {0x2126, "\022\356\365"}, - {0x2127, "\022\356\365\355\143"}, - {0x2128, "\010\271\356\205"}, - {0x2129, "\005\027\104\325"}, - {0x212A, "\022\367\376"}, - {0x212B, "\022\362\326"}, - {0x212C, "\010\334\007\355\144"}, - {0x212D, "\010\313\356\205"}, - {0x212E, "\022\366\022"}, - {0x212F, "\005\130\007\355\144"}, - {0x2130, "\010\130\007\355\144"}, - {0x2131, "\010\355\062\007\355\144"}, - {0x2132, "\010\355\062\325"}, - {0x2133, "\010\276\007\355\144"}, - {0x2134, "\005\064\007\355\144"}, - {0x2135, "\022\355\372"}, - {0x2136, "\022\357\072"}, - {0x2137, "\022\366\224"}, - {0x2138, "\022\356\317"}, - {0x2139, "\103\363\173\365\155"}, - {0x213A, "\355\173\010\356\153"}, - {0x2153, "\355\105\110\357\360"}, - {0x2154, "\355\105\127\357\360"}, - {0x2155, "\355\105\110\357\102"}, - {0x2156, "\355\105\127\357\103"}, - {0x2157, "\355\105\136\357\103"}, - {0x2158, "\355\105\220\357\103"}, - {0x2159, "\355\105\110\357\031"}, - {0x215A, "\355\105\230\374\323"}, - {0x215B, "\355\105\110\356\210"}, - {0x215C, "\355\105\136\355\256"}, - {0x215D, "\355\105\230\355\256"}, - {0x215E, "\355\105\252\355\256"}, - {0x215F, "\356\103\360\253\110"}, - {0x2160, "\024\260\110"}, - {0x2161, "\024\260\127"}, - {0x2162, "\024\260\136"}, - {0x2163, "\024\260\220"}, - {0x2164, "\024\260\230"}, - {0x2165, "\024\260\255"}, - {0x2166, "\024\260\252"}, - {0x2167, "\024\260\226"}, - {0x2168, "\024\260\257"}, - {0x2169, "\024\260\355\034"}, - {0x216A, "\024\260\356\027"}, - {0x216B, "\024\260\355\317"}, - {0x216C, "\024\260\357\101"}, - {0x216D, "\024\260\355\245"}, - {0x216E, "\024\260\230\360\112"}, - {0x216F, "\024\260\355\271"}, - {0x2170, "\024\260\005\110"}, - {0x2171, "\024\260\005\127"}, - {0x2172, "\024\260\005\136"}, - {0x2173, "\024\260\005\220"}, - {0x2174, "\024\260\005\230"}, - {0x2175, "\024\260\005\255"}, - {0x2176, "\024\260\005\252"}, - {0x2177, "\024\260\005\226"}, - {0x2178, "\024\260\005\257"}, - {0x2179, "\024\260\005\355\034"}, - {0x217A, "\024\260\005\356\027"}, - {0x217B, "\024\260\005\355\317"}, - {0x217C, "\024\260\005\357\101"}, - {0x217D, "\024\260\005\355\245"}, - {0x217E, "\024\260\005\230\360\112"}, - {0x217F, "\024\260\005\355\271"}, - {0x2180, "\024\260\355\271\313\275"}, - {0x2181, "\024\260\230\355\271"}, - {0x2182, "\024\260\355\034\355\271"}, - {0x2183, "\024\260\355\245\325"}, - {0x2190, "\061\015\033\052"}, - {0x2191, "\061\015\050\102"}, - {0x2192, "\061\015\033\053"}, - {0x2193, "\061\015\050\101"}, - {0x2194, "\061\052\020\053"}, - {0x2195, "\061\357\166"}, - {0x2196, "\061\356\024"}, - {0x2197, "\061\356\023"}, - {0x2198, "\061\355\353"}, - {0x2199, "\061\357\043"}, - {0x219A, "\061\015\033\052\355\376"}, - {0x219B, "\061\015\033\053\355\376"}, - {0x219C, "\061\015\033\052\356\367"}, - {0x219D, "\061\015\033\053\356\367"}, - {0x219E, "\061\015\033\052\044\127\357\003"}, - {0x219F, "\061\015\050\102\044\127\357\003"}, - {0x21A0, "\061\015\033\053\044\127\357\003"}, - {0x21A1, "\061\015\050\101\044\127\357\003"}, - {0x21A2, "\061\015\033\052\044\355\253"}, - {0x21A3, "\061\015\033\053\044\355\253"}, - {0x21A4, "\061\355\314\355\014\015\033\052"}, - {0x21A5, "\061\355\314\355\014\015\050\102"}, - {0x21A6, "\061\355\314\355\014\015\033\053"}, - {0x21A7, "\061\355\314\355\014\015\050\101"}, - {0x21A8, "\061\357\166\355\146\363\036"}, - {0x21A9, "\061\015\033\052\164\122"}, - {0x21AA, "\061\015\033\053\164\122"}, - {0x21AB, "\061\015\033\052\164\357\071"}, - {0x21AC, "\061\015\033\053\164\357\071"}, - {0x21AD, "\061\360\261\356\367"}, - {0x21AE, "\061\360\261\355\376"}, - {0x21AF, "\061\015\050\101\013\376\300"}, - {0x21B0, "\061\015\050\102\164\355\003\015\033\052"}, - {0x21B1, "\061\015\050\102\164\355\003\015\033\053"}, - {0x21B2, "\061\015\050\101\164\355\003\015\033\052"}, - {0x21B3, "\061\015\050\101\164\355\003\015\033\053"}, - {0x21B4, "\061\015\033\053\164\273\015\050\101"}, - {0x21B5, "\061\015\050\101\164\273\015\033\052"}, - {0x21B6, "\061\361\307\013\355\215\356\105\013\040"}, - {0x21B7, "\061\361\307\013\355\215\300\013\040"}, - {0x21B8, "\061\356\024\356\213\375\371\246\356\221"}, - {0x21B9, "\061\015\033\052\356\213\110\355\014\356\030\061\015\033\053\356\213\110\355\014"}, - {0x21BA, "\061\013\355\215\356\105\044\272\355\343"}, - {0x21BB, "\061\013\355\215\300\044\272\355\343"}, - {0x21BC, "\355\165\015\033\052\164\355\250\015\050\102"}, - {0x21BD, "\355\165\015\033\052\164\355\250\015\050\101"}, - {0x21BE, "\355\165\015\050\102\164\355\250\015\033\053"}, - {0x21BF, "\355\165\015\050\102\164\355\250\015\033\052"}, - {0x21C0, "\355\165\015\033\053\164\355\250\015\050\102"}, - {0x21C1, "\355\165\015\033\053\164\355\250\015\050\101"}, - {0x21C2, "\355\165\015\050\101\164\355\250\015\033\053"}, - {0x21C3, "\355\165\015\050\101\164\355\250\015\033\052"}, - {0x21C4, "\061\015\033\053\356\030\061\015\033\052"}, - {0x21C5, "\061\015\050\102\044\052\357\120\061\015\050\101"}, - {0x21C6, "\061\015\033\052\356\030\061\015\033\053"}, - {0x21C7, "\356\373\007\356\330\015\033\052"}, - {0x21C8, "\356\373\007\356\330\015\050\102"}, - {0x21C9, "\356\373\007\356\330\015\033\053"}, - {0x21CA, "\356\373\007\356\330\015\050\101"}, - {0x21CB, "\355\165\015\033\052\356\030\355\165\015\033\053"}, - {0x21CC, "\355\165\015\033\053\356\030\355\165\015\033\052"}, - {0x21CD, "\070\061\015\033\052\355\376"}, - {0x21CE, "\070\061\052\020\053\355\376"}, - {0x21CF, "\070\061\015\033\053\355\376"}, - {0x21D0, "\070\061\015\033\052"}, - {0x21D1, "\070\061\015\050\102"}, - {0x21D2, "\070\061\015\033\053"}, - {0x21D3, "\070\061\015\050\101"}, - {0x21D4, "\070\061\052\020\053"}, - {0x21D5, "\070\061\357\166"}, - {0x21D6, "\070\061\356\024"}, - {0x21D7, "\070\061\356\023"}, - {0x21D8, "\070\061\355\353"}, - {0x21D9, "\070\061\357\043"}, - {0x21DA, "\355\220\061\015\033\052"}, - {0x21DB, "\355\220\061\015\033\053"}, - {0x21DC, "\061\015\033\052\013\362\010"}, - {0x21DD, "\061\015\033\053\013\362\010"}, - {0x21DE, "\061\015\050\102\164\070\246"}, - {0x21DF, "\061\015\050\101\164\070\246"}, - {0x21E0, "\061\357\006\015\033\052"}, - {0x21E1, "\061\357\006\015\050\102"}, - {0x21E2, "\061\357\006\015\033\053"}, - {0x21E3, "\061\357\006\015\050\101"}, - {0x21E4, "\061\015\033\052\356\213\110\355\014"}, - {0x21E5, "\061\015\033\053\356\213\110\355\014"}, - {0x21E6, "\061\356\137\015\033\052"}, - {0x21E7, "\061\356\137\015\050\102"}, - {0x21E8, "\061\356\137\015\033\053"}, - {0x21E9, "\061\356\137\015\050\101"}, - {0x21EA, "\061\356\137\015\050\102\044\356\031\355\314\355\014"}, - {0x21EB, "\061\316\015\050\102\355\146\357\032"}, - {0x21EC, "\061\316\015\050\102\355\146\357\032\020\355\126\242"}, - {0x21ED, "\061\316\015\050\102\355\146\357\032\020\246\256"}, - {0x21EE, "\070\061\316\015\050\102"}, - {0x21EF, "\070\061\316\015\050\102\355\146\357\032"}, - {0x21F0, "\061\316\015\033\053\362\351\355\146\361\077"}, - {0x21F1, "\061\356\024\013\360\231"}, - {0x21F2, "\061\355\353\013\360\231"}, - {0x21F3, "\061\316\015\050\102\020\050\101"}, - {0x2200, "\355\057\375\237"}, - {0x2201, "\365\050"}, - {0x2202, "\365\362\372\160"}, - {0x2203, "\357\174\366\035"}, - {0x2204, "\357\174\371\072\355\056"}, - {0x2205, "\366\007\376\022"}, - {0x2206, "\367\205"}, - {0x2207, "\371\076"}, - {0x2208, "\360\051\044"}, - {0x2209, "\371\070\355\056\044"}, - {0x220A, "\175\360\051\044"}, - {0x220B, "\356\055\355\246\360\027"}, - {0x220C, "\355\140\356\055\355\056\355\246\360\027"}, - {0x220D, "\175\356\055\355\246\360\027"}, - {0x220E, "\360\107\373\370\366\042\365\357"}, - {0x220F, "\356\106\007\033\356\012"}, - {0x2210, "\365\070\007\033\356\012"}, - {0x2211, "\374\353\007\033\356\012"}, - {0x2212, "\057\355\020"}, - {0x2213, "\057\371\011"}, - {0x2214, "\214\356\034"}, - {0x2215, "\246\355\044\007\357\135"}, - {0x2216, "\360\176\365\150"}, - {0x2217, "\355\171\355\115"}, - {0x2218, "\355\171\302"}, - {0x2219, "\355\171\356\107"}, - {0x221A, "\357\304\356\053"}, - {0x221B, "\357\304\365\124"}, - {0x221C, "\357\304\361\243"}, - {0x221D, "\373\271\044"}, - {0x221E, "\367\207"}, - {0x221F, "\355\374\221"}, - {0x2220, "\355\374"}, - {0x2221, "\355\374\361\053"}, - {0x2222, "\355\374\374\365"}, - {0x2223, "\356\174\110\360\203\007"}, - {0x2224, "\371\071\355\056\110\360\203\007"}, - {0x2225, "\357\267\044"}, - {0x2226, "\355\043\357\267\044"}, - {0x2227, "\020\356\100"}, - {0x2228, "\113\356\100"}, - {0x2229, "\357\204"}, - {0x222A, "\357\374"}, - {0x222B, "\355\257"}, - {0x222C, "\355\257\070"}, - {0x222D, "\355\257\355\220"}, - {0x222E, "\355\257\007\355\132"}, - {0x222F, "\355\257\007\375\043"}, - {0x2230, "\355\257\007\376\050"}, - {0x2231, "\355\257\013\355\215\300"}, - {0x2232, "\355\257\007\355\132\013\355\215\300"}, - {0x2233, "\355\257\007\355\132\013\355\215\356\105"}, - {0x2234, "\355\232\365\062"}, - {0x2235, "\372\155\355\023"}, - {0x2236, "\374\040"}, - {0x2237, "\361\224"}, - {0x2238, "\355\020\356\034"}, - {0x2239, "\366\034"}, - {0x223A, "\361\224\366\301"}, - {0x223B, "\360\327"}, - {0x223C, "\355\171\172"}, - {0x223D, "\355\171\172\355\143"}, - {0x223E, "\223\356\153\355\143"}, - {0x223F, "\374\317"}, - {0x2240, "\356\106\365\107"}, - {0x2241, "\355\043\172"}, - {0x2242, "\355\020\172"}, - {0x2243, "\360\056\173\044"}, - {0x2244, "\355\043\360\056\173\044"}, - {0x2245, "\356\140\173\044"}, - {0x2246, "\356\140\355\267\355\043\357\341\173\044"}, - {0x2247, "\244\356\140\244\357\341\173\044"}, - {0x2248, "\357\011\173\044"}, - {0x2249, "\355\043\357\011\173\044"}, - {0x224A, "\357\011\173\113\173\044"}, - {0x224B, "\355\220\172"}, - {0x224C, "\366\010\173\044"}, - {0x224D, "\355\130\044"}, - {0x224E, "\360\314\355\130\044"}, - {0x224F, "\360\176\075"}, - {0x2250, "\375\160\015\033\370\170"}, - {0x2251, "\360\314\173\044"}, - {0x2252, "\356\140\173\044\113\356\017\007"}, - {0x2253, "\356\017\007\113\356\140\173\044"}, - {0x2254, "\355\103\173"}, - {0x2255, "\173\355\103"}, - {0x2256, "\302\355\247\173"}, - {0x2257, "\173\164\302\013\040"}, - {0x2258, "\365\075\044"}, - {0x2259, "\366\021"}, - {0x225A, "\377\034\044"}, - {0x225B, "\173\164\355\015\013\040"}, - {0x225C, "\173\356\060"}, - {0x225D, "\173\355\232\365\355\044"}, - {0x225E, "\361\053\355\232"}, - {0x225F, "\377\026\013\365\326"}, - {0x2260, "\355\043\173\044"}, - {0x2261, "\360\343\044"}, - {0x2262, "\355\043\360\343\044"}, - {0x2263, "\357\341\355\130\044"}, - {0x2264, "\214\175\113\173\044"}, - {0x2265, "\214\340\113\173\044"}, - {0x2266, "\214\175\355\023\356\030\173\044"}, - {0x2267, "\214\340\355\023\356\030\173\044"}, - {0x2268, "\214\175\355\267\355\043\173\044"}, - {0x2269, "\214\340\355\267\355\043\173\044"}, - {0x226A, "\360\072\214\175\355\023"}, - {0x226B, "\360\072\214\340\355\023"}, - {0x226C, "\075"}, - {0x226D, "\355\043\355\130\044"}, - {0x226E, "\355\056\214\175\355\023"}, - {0x226F, "\355\056\214\340\355\023"}, - {0x2270, "\244\214\175\244\173\044"}, - {0x2271, "\244\214\340\244\173\044"}, - {0x2272, "\214\175\113\355\130\044"}, - {0x2273, "\214\340\113\355\130\044"}, - {0x2274, "\244\214\175\244\355\130\044"}, - {0x2275, "\244\214\340\244\355\130\044"}, - {0x2276, "\214\175\113\214\340\355\023"}, - {0x2277, "\214\340\113\214\175\355\023"}, - {0x2278, "\244\214\175\244\214\340\355\023"}, - {0x2279, "\244\214\340\244\214\175\355\023"}, - {0x227A, "\356\244"}, - {0x227B, "\356\117"}, - {0x227C, "\356\244\113\356\174\173\044"}, - {0x227D, "\356\117\113\356\174\173\044"}, - {0x227E, "\356\244\113\356\174\355\130\044"}, - {0x227F, "\356\117\113\356\174\355\130\044"}, - {0x2280, "\355\140\356\244\355\056"}, - {0x2281, "\355\140\356\117\355\056"}, - {0x2282, "\356\116\007"}, - {0x2283, "\356\120\007"}, - {0x2284, "\355\056\110\356\116\007"}, - {0x2285, "\355\056\110\356\120\007"}, - {0x2286, "\356\116\113\173\044"}, - {0x2287, "\356\120\113\173\044"}, - {0x2288, "\244\110\356\116\244\173\044"}, - {0x2289, "\244\110\356\120\244\173\044"}, - {0x228A, "\356\116\355\267\355\043\173\044"}, - {0x228B, "\356\120\355\267\355\043\173\044"}, - {0x228C, "\357\242"}, - {0x228D, "\356\355\007\357\242"}, - {0x228E, "\357\374\007\357\242"}, - {0x228F, "\356\017\356\053\007"}, - {0x2290, "\356\233\035\007"}, - {0x2291, "\356\017\356\053\113\173\044"}, - {0x2292, "\356\233\035\113\173\044"}, - {0x2293, "\363\262\035"}, - {0x2294, "\365\102\356\053"}, - {0x2295, "\214\051"}, - {0x2296, "\355\020\051"}, - {0x2297, "\357\243\355\232\051"}, - {0x2298, "\246\355\044\007\357\135\177"}, - {0x2299, "\355\171\037\051"}, - {0x229A, "\355\171\302\051"}, - {0x229B, "\355\171\355\115\051"}, - {0x229C, "\173\051"}, - {0x229D, "\355\007\051"}, - {0x229E, "\214\356\170"}, - {0x229F, "\355\020\356\170"}, - {0x22A0, "\357\243\355\232\356\170"}, - {0x22A1, "\355\171\037\356\170"}, - {0x22A2, "\355\014\221"}, - {0x22A3, "\355\014\052"}, - {0x22A4, "\355\014\015\050\101"}, - {0x22A5, "\355\014\015\050\102"}, - {0x22A6, "\362\374"}, - {0x22A7, "\371\006"}, - {0x22A8, "\362\076"}, - {0x22A9, "\372\067"}, - {0x22AA, "\246\256\355\220\164\357\362\044\053"}, - {0x22AB, "\246\256\070\164\357\362\044\053\070"}, - {0x22AC, "\355\140\373\273\355\056"}, - {0x22AD, "\355\056\362\076"}, - {0x22AE, "\371\073\355\056"}, - {0x22AF, "\371\317\256\070\164\357\362\044\053\070"}, - {0x22B0, "\373\265\357\037\361\254"}, - {0x22B1, "\356\117\357\037\361\254"}, - {0x22B2, "\355\352\355\231\007"}, - {0x22B3, "\356\055\355\246\355\352\355\231"}, - {0x22B4, "\355\352\355\231\113\173\044"}, - {0x22B5, "\356\055\355\246\355\352\355\231\113\173\044"}, - {0x22B6, "\356\233\007"}, - {0x22B7, "\356\017\007"}, - {0x22B8, "\371\031"}, - {0x22B9, "\370\277\366\325\365\060"}, - {0x22BA, "\367\220"}, - {0x22BB, "\113\366\033"}, - {0x22BC, "\355\043\020"}, - {0x22BD, "\355\043\113"}, - {0x22BE, "\355\374\221\164\355\202"}, - {0x22BF, "\346\356\111"}, - {0x22C0, "\020\356\100\007\033\356\012"}, - {0x22C1, "\113\356\100\007\033\356\012"}, - {0x22C2, "\357\204\007\033\356\012"}, - {0x22C3, "\374\200\007\033\356\012"}, - {0x22C4, "\355\171\355\266"}, - {0x22C5, "\355\171\037"}, - {0x22C6, "\355\171\355\015"}, - {0x22C7, "\365\275\357\243"}, - {0x22C8, "\356\362\361\152"}, - {0x22C9, "\356\106\357\027\044\052\007\360\234\355\231"}, - {0x22CA, "\356\106\357\027\044\053\007\360\234\355\231"}, - {0x22CB, "\356\106\357\027\044\052"}, - {0x22CC, "\356\106\357\027\044\053"}, - {0x22CD, "\355\020\172\355\143"}, - {0x22CE, "\113\356\100\361\252"}, - {0x22CF, "\020\356\100\361\252"}, - {0x22D0, "\356\116\070"}, - {0x22D1, "\356\120\070"}, - {0x22D2, "\357\204\070"}, - {0x22D3, "\357\374\070"}, - {0x22D4, "\360\250"}, - {0x22D5, "\173\020\357\267\044"}, - {0x22D6, "\214\175\355\023\356\034"}, - {0x22D7, "\214\340\355\023\356\034"}, - {0x22D8, "\360\135\214\175\355\023"}, - {0x22D9, "\360\135\214\340\355\023"}, - {0x22DA, "\214\175\113\173\113\214\340\355\023"}, - {0x22DB, "\214\340\113\173\113\214\175\355\023"}, - {0x22DC, "\173\113\214\175\355\023"}, - {0x22DD, "\173\113\214\340\355\023"}, - {0x22DE, "\173\113\356\244"}, - {0x22DF, "\365\371\113\356\117"}, - {0x22E0, "\244\361\226\244\173\044"}, - {0x22E1, "\244\361\341\244\173\044"}, - {0x22E2, "\244\356\017\356\053\244\173\044"}, - {0x22E3, "\244\356\233\035\244\173\044"}, - {0x22E4, "\356\017\035\113\357\134\007"}, - {0x22E5, "\356\233\035\113\357\134\007"}, - {0x22E6, "\214\175\355\267\355\043\355\130\044"}, - {0x22E7, "\214\340\355\267\355\043\355\130\044"}, - {0x22E8, "\361\226\355\267\355\043\355\130\044"}, - {0x22E9, "\361\341\355\267\355\043\355\130\044"}, - {0x22EA, "\355\056\110\355\352\355\231\007"}, - {0x22EB, "\355\140\356\055\355\056\355\246\355\352\355\231"}, - {0x22EC, "\244\355\352\355\231\244\173\044"}, - {0x22ED, "\244\173\244\365\063\355\246\355\352\355\231"}, - {0x22EE, "\136\251\375\045"}, - {0x22EF, "\136\251\371\062"}, - {0x22F0, "\136\251\360\175\015\050\273\102\044\053"}, - {0x22F1, "\136\251\360\175\015\050\273\101\044\053"}, - {0x2300, "\022\365\263"}, - {0x2301, "\061\377\030"}, - {0x2302, "\370\255"}, - {0x2303, "\355\003\007\061\015\050\102"}, - {0x2304, "\355\003\007\061\015\050\101"}, - {0x2305, "\373\270"}, - {0x2306, "\372\203"}, - {0x2307, "\243\356\367"}, - {0x2308, "\361\202\044\052"}, - {0x2309, "\361\202\044\053"}, - {0x230A, "\361\203\044\052"}, - {0x230B, "\361\203\044\053"}, - {0x230C, "\356\251\355\353"}, - {0x230D, "\356\251\357\043"}, - {0x230E, "\356\251\356\023"}, - {0x230F, "\356\251\356\024"}, - {0x2310, "\057\356\364\355\013"}, - {0x2311, "\372\163\356\053"}, - {0x2312, "\355\202"}, - {0x2313, "\374\244"}, - {0x2314, "\374\243"}, - {0x2315, "\366\006\375\357"}, - {0x2316, "\356\251\007\363\226"}, - {0x2317, "\035\007\376\044"}, - {0x2318, "\022\007\037\365\160"}, - {0x2319, "\057\356\364\325"}, - {0x231A, "\371\017"}, - {0x231B, "\374\206"}, - {0x231C, "\273\356\024"}, - {0x231D, "\273\356\023"}, - {0x231E, "\273\357\043"}, - {0x231F, "\273\355\353"}, - {0x2320, "\353\355\354\360\156"}, - {0x2321, "\353\356\020\360\156"}, - {0x2322, "\361\067"}, - {0x2323, "\374\361"}, - {0x2324, "\355\003\007\061\015\050\102\075\127\362\033\367\103"}, - {0x2325, "\362\024\372\104"}, - {0x2326, "\365\370\044\053"}, - {0x2327, "\355\026\355\247\356\111"}, - {0x2328, "\365\040"}, - {0x2329, "\122\015\033\052"}, - {0x232A, "\122\015\033\053"}, - {0x232B, "\365\367\044\052"}, - {0x232C, "\362\333\007\363\110"}, - {0x232D, "\365\140"}, - {0x232E, "\373\266\367\104"}, - {0x232F, "\375\054"}, - {0x2330, "\365\110\375\233"}, - {0x2331, "\372\111\007\370\320"}, - {0x2332, "\374\177\365\056"}, - {0x2333, "\372\177"}, - {0x2334, "\362\321"}, - {0x2335, "\366\106"}, - {0x2336, "\022\007\154\155\374\035"}, - {0x2337, "\022\007\154\155\355\075\357\234"}, - {0x2338, "\022\007\154\155\377\035"}, - {0x2339, "\022\007\154\155\365\321"}, - {0x233A, "\022\007\154\155\374\063"}, - {0x233B, "\022\007\154\155\362\372"}, - {0x233C, "\022\007\154\155\374\062"}, - {0x233D, "\022\007\154\155\366\115"}, - {0x233E, "\022\007\154\155\363\104"}, - {0x233F, "\022\007\154\155\365\100\232"}, - {0x2340, "\022\007\154\155\365\065\355\376"}, - {0x2341, "\022\007\154\155\355\075\355\044"}, - {0x2342, "\022\007\154\155\355\075\355\044\356\073"}, - {0x2343, "\022\007\154\155\355\075\214\175\355\023"}, - {0x2344, "\022\007\154\155\355\075\214\340\355\023"}, - {0x2345, "\022\007\154\155\356\302\015\033\052"}, - {0x2346, "\022\007\154\155\356\302\015\033\053"}, - {0x2347, "\022\007\154\155\355\075\370\163"}, - {0x2348, "\022\007\154\155\355\075\365\061"}, - {0x2349, "\022\007\154\155\361\303"}, - {0x234A, "\022\007\154\155\355\014\015\050\101\355\216"}, - {0x234B, "\022\007\154\155\374\224"}, - {0x234C, "\022\007\154\155\355\075\072\355\143"}, - {0x234D, "\022\007\154\155\355\075\356\060"}, - {0x234E, "\022\007\154\155\360\245"}, - {0x234F, "\022\007\154\155\356\302\015\050\102"}, - {0x2350, "\022\007\154\155\355\075\357\100"}, - {0x2351, "\022\007\154\155\355\014\015\050\102"}, - {0x2352, "\022\007\154\155\363\235"}, - {0x2353, "\022\007\154\155\355\075\072"}, - {0x2354, "\022\007\154\155\355\075\365\244"}, - {0x2355, "\022\007\154\155\366\036"}, - {0x2356, "\022\007\154\155\356\302\015\050\101"}, - {0x2357, "\022\007\154\155\355\075\366\003"}, - {0x2358, "\022\007\154\155\355\306\355\216"}, - {0x2359, "\022\007\154\155\356\060\355\216"}, - {0x235A, "\022\007\154\155\355\266\355\216"}, - {0x235B, "\022\007\154\155\175\302\355\216"}, - {0x235C, "\022\007\154\155\302\355\216"}, - {0x235D, "\022\007\154\155\362\273"}, - {0x235E, "\022\007\154\155\355\306\356\170"}, - {0x235F, "\022\007\154\155\363\354"}, - {0x2360, "\022\007\154\155\363\155\035"}, - {0x2361, "\022\007\154\155\375\072"}, - {0x2362, "\022\007\154\155\365\072"}, - {0x2363, "\022\007\154\155\375\075"}, - {0x2364, "\022\007\154\155\370\366"}, - {0x2365, "\022\007\154\155\365\267"}, - {0x2366, "\022\007\154\155\360\250"}, - {0x2367, "\022\007\154\155\357\074"}, - {0x2368, "\022\007\154\155\361\067"}, - {0x2369, "\022\007\154\155\371\010"}, - {0x236A, "\022\007\154\155\363\032"}, - {0x236B, "\022\007\154\155\376\015"}, - {0x236C, "\022\007\154\155\376\301"}, - {0x236D, "\022\007\154\155\362\316"}, - {0x236E, "\022\007\154\155\356\104\355\216"}, - {0x236F, "\022\007\154\155\355\075\357\134\007"}, - {0x2370, "\022\007\154\155\355\075\367\210"}, - {0x2371, "\022\007\154\155\371\320"}, - {0x2372, "\022\007\154\155\371\321"}, - {0x2373, "\022\007\154\155\104"}, - {0x2374, "\022\007\154\155\356\036"}, - {0x2375, "\022\007\154\155\201"}, - {0x2376, "\022\007\154\155\203\355\216"}, - {0x2377, "\022\007\154\155\326\355\216"}, - {0x2378, "\022\007\154\155\104\355\216"}, - {0x2379, "\022\007\154\155\201\355\216"}, - {0x237A, "\022\007\154\155\203"}, - {0x237B, "\057\007\371\322"}, - {0x237D, "\363\224\361\147\044\377\033"}, - {0x237E, "\022\374\354"}, - {0x237F, "\243\256\044\037\355\137"}, - {0x2380, "\022\356\057"}, - {0x2381, "\022\007\361\325\360\136"}, - {0x2382, "\022\007\361\325\365\273"}, - {0x2383, "\022\365\156"}, - {0x2384, "\022\007\365\051"}, - {0x2385, "\035\147\375\251\013\355\175\356\307\357\120\243\256"}, - {0x2386, "\022\365\151"}, - {0x2387, "\022\360\047"}, - {0x2388, "\022\361\274\007\360\067"}, - {0x2389, "\246\356\335\357\145\177"}, - {0x238A, "\346\355\003\015\050\101\051"}, - {0x238B, "\272\355\131\044\061\356\024"}, - {0x238C, "\022\365\353"}, - {0x238D, "\022\371\014"}, - {0x238E, "\022\367\154"}, - {0x238F, "\022\357\033\013\360\132\355\343\007\375\335"}, - {0x2390, "\022\357\033\013\360\132\355\343\007\375\336"}, - {0x2391, "\022\357\033\361\157\362\272"}, - {0x2392, "\022\357\033\361\157\377\031"}, - {0x2393, "\022\365\104\360\136\263\127"}, - {0x2394, "\022\154\370\202"}, - {0x2395, "\022\007\154\155\355\075"}, - {0x2396, "\022\007\017\007\355\045\360\221"}, - {0x2397, "\356\372\373\275"}, - {0x2398, "\356\372\361\342"}, - {0x2399, "\022\360\345\360\026"}, - {0x239A, "\022\371\176\360\026"}, - {0x2400, "\022\355\057\361\122"}, - {0x2401, "\022\355\320\360\155"}, - {0x2402, "\022\355\320\007\357\046"}, - {0x2403, "\022\116\007\357\046"}, - {0x2404, "\022\116\007\356\045"}, - {0x2405, "\022\360\167"}, - {0x2406, "\022\360\152\007\357\025"}, - {0x2407, "\022\007\361\323"}, - {0x2408, "\022\355\073\360\052"}, - {0x2409, "\022\007\357\045\356\335"}, - {0x240A, "\022\007\360\113\007\243"}, - {0x240B, "\022\007\357\045\256"}, - {0x240C, "\022\007\374\226\007\356\372"}, - {0x240D, "\022\007\361\257\007\360\114"}, - {0x240E, "\022\360\331\356\313"}, - {0x240F, "\022\013\356\313"}, - {0x2410, "\022\360\025\356\045"}, - {0x2411, "\022\007\355\155\007\356\322\110"}, - {0x2412, "\022\007\355\155\007\356\322\127"}, - {0x2413, "\022\007\355\155\007\356\322\136"}, - {0x2414, "\022\007\355\155\007\356\322\220"}, - {0x2415, "\022\360\152\007\357\025\300"}, - {0x2416, "\022\007\361\346"}, - {0x2417, "\022\007\116\007\355\016\007\356\045"}, - {0x2418, "\022\360\153"}, - {0x2419, "\022\007\116\007\361\343"}, - {0x241A, "\022\007\357\343"}, - {0x241B, "\022\365\164"}, - {0x241C, "\022\355\045\007\366\065"}, - {0x241D, "\022\355\045\007\366\250"}, - {0x241E, "\022\355\045\365\147"}, - {0x241F, "\022\355\045\365\163"}, - {0x2420, "\022\355\057\355\073"}, - {0x2421, "\022\007\361\344"}, - {0x2422, "\022\376\045\355\057\370\122"}, - {0x2423, "\363\157\361\147"}, - {0x2424, "\022\007\371\327\243"}, - {0x2425, "\022\007\375\042\263\127"}, - {0x2426, "\022\007\357\343\263\127"}, - {0x2440, "\122\355\211"}, - {0x2441, "\363\255\355\211"}, - {0x2442, "\360\251\355\211"}, - {0x2443, "\360\251\355\076\355\211"}, - {0x2444, "\357\071\007\363\244\355\211"}, - {0x2445, "\356\362\361\152\355\211"}, - {0x2446, "\367\173\007\375\033\363\026\355\211"}, - {0x2447, "\371\015\212\363\336\355\211"}, - {0x2448, "\355\007\355\211"}, - {0x2449, "\361\125\007\365\053\355\211"}, - {0x244A, "\070\246\355\044\356\073\355\211"}, - {0x2460, "\024\110\051"}, - {0x2461, "\024\127\051"}, - {0x2462, "\024\136\051"}, - {0x2463, "\024\220\051"}, - {0x2464, "\024\230\051"}, - {0x2465, "\024\255\051"}, - {0x2466, "\024\252\051"}, - {0x2467, "\024\226\051"}, - {0x2468, "\024\257\051"}, - {0x2469, "\210\355\034\051"}, - {0x246A, "\210\356\027\051"}, - {0x246B, "\210\355\317\051"}, - {0x246C, "\210\356\260\051"}, - {0x246D, "\210\356\246\051"}, - {0x246E, "\210\356\250\051"}, - {0x246F, "\210\356\043\051"}, - {0x2470, "\210\356\162\051"}, - {0x2471, "\210\356\160\051"}, - {0x2472, "\210\356\161\051"}, - {0x2473, "\210\356\050\051"}, - {0x2474, "\024\110\075\077"}, - {0x2475, "\024\127\075\077"}, - {0x2476, "\024\136\075\077"}, - {0x2477, "\024\220\075\077"}, - {0x2478, "\024\230\075\077"}, - {0x2479, "\024\255\075\077"}, - {0x247A, "\024\252\075\077"}, - {0x247B, "\024\226\075\077"}, - {0x247C, "\024\257\075\077"}, - {0x247D, "\210\355\034\075\077"}, - {0x247E, "\210\356\027\075\077"}, - {0x247F, "\210\355\317\075\077"}, - {0x2480, "\210\356\260\075\077"}, - {0x2481, "\210\356\246\075\077"}, - {0x2482, "\210\356\250\075\077"}, - {0x2483, "\210\356\043\075\077"}, - {0x2484, "\210\356\162\075\077"}, - {0x2485, "\210\356\160\075\077"}, - {0x2486, "\210\356\161\075\077"}, - {0x2487, "\210\356\050\075\077"}, - {0x2488, "\024\110\037"}, - {0x2489, "\024\127\037"}, - {0x248A, "\024\136\037"}, - {0x248B, "\024\220\037"}, - {0x248C, "\024\230\037"}, - {0x248D, "\024\255\037"}, - {0x248E, "\024\252\037"}, - {0x248F, "\024\226\037"}, - {0x2490, "\024\257\037"}, - {0x2491, "\210\355\034\037"}, - {0x2492, "\210\356\027\037"}, - {0x2493, "\210\355\317\037"}, - {0x2494, "\210\356\260\037"}, - {0x2495, "\210\356\246\037"}, - {0x2496, "\210\356\250\037"}, - {0x2497, "\210\356\043\037"}, - {0x2498, "\210\356\162\037"}, - {0x2499, "\210\356\160\037"}, - {0x249A, "\210\356\161\037"}, - {0x249B, "\210\356\050\037"}, - {0x249C, "\001\005\006\063\075\077"}, - {0x249D, "\001\005\006\334\075\077"}, - {0x249E, "\001\005\006\313\075\077"}, - {0x249F, "\001\005\006\275\075\077"}, - {0x24A0, "\001\005\006\130\075\077"}, - {0x24A1, "\001\005\006\355\062\075\077"}, - {0x24A2, "\001\005\006\266\075\077"}, - {0x24A3, "\001\005\006\237\075\077"}, - {0x24A4, "\001\005\006\103\075\077"}, - {0x24A5, "\001\005\006\355\053\075\077"}, - {0x24A6, "\001\005\006\352\075\077"}, - {0x24A7, "\001\005\006\211\075\077"}, - {0x24A8, "\001\005\006\276\075\077"}, - {0x24A9, "\001\005\006\241\075\077"}, - {0x24AA, "\001\005\006\064\075\077"}, - {0x24AB, "\001\005\006\355\021\075\077"}, - {0x24AC, "\001\005\006\355\173\075\077"}, - {0x24AD, "\001\005\006\167\075\077"}, - {0x24AE, "\001\005\006\223\075\077"}, - {0x24AF, "\001\005\006\261\075\077"}, - {0x24B0, "\001\005\006\132\075\077"}, - {0x24B1, "\001\005\006\355\025\075\077"}, - {0x24B2, "\001\005\006\347\075\077"}, - {0x24B3, "\001\005\006\355\026\075\077"}, - {0x24B4, "\001\005\006\265\075\077"}, - {0x24B5, "\001\005\006\271\075\077"}, - {0x24B6, "\001\010\006\063\177"}, - {0x24B7, "\001\010\006\334\177"}, - {0x24B8, "\001\010\006\313\177"}, - {0x24B9, "\001\010\006\275\177"}, - {0x24BA, "\001\010\006\130\177"}, - {0x24BB, "\001\010\006\355\062\177"}, - {0x24BC, "\001\010\006\266\177"}, - {0x24BD, "\001\010\006\237\177"}, - {0x24BE, "\001\010\006\103\177"}, - {0x24BF, "\001\010\006\355\053\177"}, - {0x24C0, "\001\010\006\352\177"}, - {0x24C1, "\001\010\006\211\177"}, - {0x24C2, "\001\010\006\276\177"}, - {0x24C3, "\001\010\006\241\177"}, - {0x24C4, "\001\010\006\064\177"}, - {0x24C5, "\001\010\006\355\021\177"}, - {0x24C6, "\001\010\006\355\173\177"}, - {0x24C7, "\001\010\006\167\177"}, - {0x24C8, "\001\010\006\223\177"}, - {0x24C9, "\001\010\006\261\177"}, - {0x24CA, "\001\010\006\132\177"}, - {0x24CB, "\001\010\006\355\025\177"}, - {0x24CC, "\001\010\006\347\177"}, - {0x24CD, "\001\010\006\355\026\177"}, - {0x24CE, "\001\010\006\265\177"}, - {0x24CF, "\001\010\006\271\177"}, - {0x24D0, "\001\005\006\063\177"}, - {0x24D1, "\001\005\006\334\177"}, - {0x24D2, "\001\005\006\313\177"}, - {0x24D3, "\001\005\006\275\177"}, - {0x24D4, "\001\005\006\130\177"}, - {0x24D5, "\001\005\006\355\062\177"}, - {0x24D6, "\001\005\006\266\177"}, - {0x24D7, "\001\005\006\237\177"}, - {0x24D8, "\001\005\006\103\177"}, - {0x24D9, "\001\005\006\355\053\177"}, - {0x24DA, "\001\005\006\352\177"}, - {0x24DB, "\001\005\006\211\177"}, - {0x24DC, "\001\005\006\276\177"}, - {0x24DD, "\001\005\006\241\177"}, - {0x24DE, "\001\005\006\064\177"}, - {0x24DF, "\001\005\006\355\021\177"}, - {0x24E0, "\001\005\006\355\173\177"}, - {0x24E1, "\001\005\006\167\177"}, - {0x24E2, "\001\005\006\223\177"}, - {0x24E3, "\001\005\006\261\177"}, - {0x24E4, "\001\005\006\132\177"}, - {0x24E5, "\001\005\006\355\025\177"}, - {0x24E6, "\001\005\006\347\177"}, - {0x24E7, "\001\005\006\355\026\177"}, - {0x24E8, "\001\005\006\265\177"}, - {0x24E9, "\001\005\006\271\177"}, - {0x24EA, "\024\331\051"}, - {0x2500, "\065\242\116"}, - {0x2501, "\065\242\151"}, - {0x2502, "\065\202\116"}, - {0x2503, "\065\202\151"}, - {0x2504, "\065\355\131\355\220\242\116"}, - {0x2505, "\065\355\131\355\220\242\151"}, - {0x2506, "\065\355\131\355\220\202\116"}, - {0x2507, "\065\355\131\355\220\202\151"}, - {0x2508, "\065\355\131\357\016\242\116"}, - {0x2509, "\065\355\131\357\016\242\151"}, - {0x250A, "\065\355\131\357\016\202\116"}, - {0x250B, "\065\355\131\357\016\202\151"}, - {0x250C, "\065\116\015\050\101\020\015\033\053"}, - {0x250D, "\065\116\015\050\101\020\151\015\033\053"}, - {0x250E, "\065\151\015\050\101\020\116\015\033\053"}, - {0x250F, "\065\151\015\050\101\020\015\033\053"}, - {0x2510, "\065\116\015\050\101\020\015\033\052"}, - {0x2511, "\065\116\015\050\101\020\151\015\033\052"}, - {0x2512, "\065\151\015\050\101\020\116\015\033\052"}, - {0x2513, "\065\151\015\050\101\020\015\033\052"}, - {0x2514, "\065\116\015\050\102\020\015\033\053"}, - {0x2515, "\065\116\015\050\102\020\151\015\033\053"}, - {0x2516, "\065\151\015\050\102\020\116\015\033\053"}, - {0x2517, "\065\151\015\050\102\020\015\033\053"}, - {0x2518, "\065\116\015\050\102\020\015\033\052"}, - {0x2519, "\065\116\015\050\102\020\151\015\033\052"}, - {0x251A, "\065\151\015\050\102\020\116\015\033\052"}, - {0x251B, "\065\151\015\050\102\020\015\033\052"}, - {0x251C, "\065\116\202\020\015\033\053"}, - {0x251D, "\065\116\202\020\151\015\033\053"}, - {0x251E, "\065\151\015\050\102\020\116\015\033\053\020\015\050\101"}, - {0x251F, "\065\151\015\050\101\020\116\015\033\053\020\015\050\102"}, - {0x2520, "\065\151\202\020\116\015\033\053"}, - {0x2521, "\065\116\015\050\101\020\151\015\033\053\020\015\050\102"}, - {0x2522, "\065\116\015\050\102\020\151\015\033\053\020\015\050\101"}, - {0x2523, "\065\151\202\020\015\033\053"}, - {0x2524, "\065\116\202\020\015\033\052"}, - {0x2525, "\065\116\202\020\151\015\033\052"}, - {0x2526, "\065\151\015\050\102\020\116\015\033\052\020\015\050\101"}, - {0x2527, "\065\151\015\050\101\020\116\015\033\052\020\015\050\102"}, - {0x2528, "\065\151\202\020\116\015\033\052"}, - {0x2529, "\065\116\015\050\101\020\151\015\033\052\020\015\050\102"}, - {0x252A, "\065\116\015\050\102\020\151\015\033\052\020\015\050\101"}, - {0x252B, "\065\151\202\020\015\033\052"}, - {0x252C, "\065\116\015\050\101\020\242"}, - {0x252D, "\065\151\015\033\052\020\116\015\033\053\020\015\050\101"}, - {0x252E, "\065\151\015\033\053\020\116\015\033\052\020\015\050\101"}, - {0x252F, "\065\116\015\050\101\020\151\242"}, - {0x2530, "\065\151\015\050\101\020\116\242"}, - {0x2531, "\065\116\015\033\053\020\151\015\033\052\020\015\050\101"}, - {0x2532, "\065\116\015\033\052\020\151\015\033\053\020\015\050\101"}, - {0x2533, "\065\151\015\050\101\020\242"}, - {0x2534, "\065\116\015\050\102\020\242"}, - {0x2535, "\065\151\015\033\052\020\116\015\033\053\020\015\050\102"}, - {0x2536, "\065\151\015\033\053\020\116\015\033\052\020\015\050\102"}, - {0x2537, "\065\116\015\050\102\020\151\242"}, - {0x2538, "\065\151\015\050\102\020\116\242"}, - {0x2539, "\065\116\015\033\053\020\151\015\033\052\020\015\050\102"}, - {0x253A, "\065\116\015\033\052\020\151\015\033\053\020\015\050\102"}, - {0x253B, "\065\151\015\050\102\020\242"}, - {0x253C, "\065\116\202\020\242"}, - {0x253D, "\065\151\015\033\052\020\116\015\033\053\020\202"}, - {0x253E, "\065\151\015\033\053\020\116\015\033\052\020\202"}, - {0x253F, "\065\202\116\020\242\151"}, - {0x2540, "\065\151\015\050\102\020\116\015\050\101\020\242"}, - {0x2541, "\065\151\015\050\101\020\116\015\050\102\020\242"}, - {0x2542, "\065\202\151\020\242\116"}, - {0x2543, "\065\151\015\033\052\020\015\050\102\020\116\015\033\053\020\015\050\101"}, - {0x2544, "\065\151\015\033\053\020\015\050\102\020\116\015\033\052\020\015\050\101"}, - {0x2545, "\065\151\015\033\052\020\015\050\101\020\116\015\033\053\020\015\050\102"}, - {0x2546, "\065\151\015\033\053\020\015\050\101\020\116\015\033\052\020\015\050\102"}, - {0x2547, "\065\116\015\050\101\020\151\015\050\102\020\242"}, - {0x2548, "\065\116\015\050\102\020\151\015\050\101\020\242"}, - {0x2549, "\065\116\015\033\053\020\151\015\033\052\020\202"}, - {0x254A, "\065\116\015\033\052\020\151\015\033\053\020\202"}, - {0x254B, "\065\202\020\242\151"}, - {0x254C, "\065\355\131\070\242\116"}, - {0x254D, "\065\355\131\070\242\151"}, - {0x254E, "\065\355\131\070\202\116"}, - {0x254F, "\065\355\131\070\202\151"}, - {0x2550, "\065\070\242"}, - {0x2551, "\065\070\202"}, - {0x2552, "\065\355\001\050\101\020\070\015\033\053"}, - {0x2553, "\065\070\015\050\101\020\355\001\015\033\053"}, - {0x2554, "\065\070\015\050\101\020\015\033\053"}, - {0x2555, "\065\355\001\015\050\101\020\070\015\033\052"}, - {0x2556, "\065\070\015\050\101\020\355\001\015\033\052"}, - {0x2557, "\065\070\015\050\101\020\015\033\052"}, - {0x2558, "\065\355\001\015\050\102\020\070\015\033\053"}, - {0x2559, "\065\070\015\050\102\020\355\001\015\033\053"}, - {0x255A, "\065\070\015\050\102\020\015\033\053"}, - {0x255B, "\065\355\001\015\050\102\020\070\015\033\052"}, - {0x255C, "\065\070\015\050\102\020\355\001\015\033\052"}, - {0x255D, "\065\070\015\050\102\020\015\033\052"}, - {0x255E, "\065\202\355\001\020\221\070"}, - {0x255F, "\065\202\070\020\221\355\001"}, - {0x2560, "\065\070\202\020\015\033\053"}, - {0x2561, "\065\202\355\001\020\052\070"}, - {0x2562, "\065\202\070\020\052\355\001"}, - {0x2563, "\065\070\202\020\015\033\052"}, - {0x2564, "\065\015\050\101\355\001\020\242\070"}, - {0x2565, "\065\015\050\101\070\020\242\355\001"}, - {0x2566, "\065\070\015\050\101\020\242"}, - {0x2567, "\065\015\050\102\355\001\020\242\070"}, - {0x2568, "\065\015\050\102\070\020\242\355\001"}, - {0x2569, "\065\070\015\050\102\020\242"}, - {0x256A, "\065\202\355\001\020\242\070"}, - {0x256B, "\065\202\070\020\242\355\001"}, - {0x256C, "\065\070\202\020\242"}, - {0x256D, "\065\116\355\202\015\050\101\020\015\033\053"}, - {0x256E, "\065\116\355\202\015\050\101\020\015\033\052"}, - {0x256F, "\065\116\355\202\015\050\102\020\015\033\052"}, - {0x2570, "\065\116\355\202\015\050\102\020\015\033\053"}, - {0x2571, "\065\357\133\116\212\273\344\221\355\307\273\320\052"}, - {0x2572, "\065\357\133\116\212\273\344\052\015\050\273\320\221"}, - {0x2573, "\065\357\133\116\013\355\033"}, - {0x2574, "\065\116\015\033\052"}, - {0x2575, "\065\116\015\050\102"}, - {0x2576, "\065\116\015\033\053"}, - {0x2577, "\065\116\015\050\101"}, - {0x2578, "\065\151\015\033\052"}, - {0x2579, "\065\151\015\050\102"}, - {0x257A, "\065\151\015\033\053"}, - {0x257B, "\065\151\015\050\101"}, - {0x257C, "\065\116\015\033\052\020\151\015\033\053"}, - {0x257D, "\065\116\015\050\102\020\151\015\050\101"}, - {0x257E, "\065\151\015\033\052\020\116\015\033\053"}, - {0x257F, "\065\151\015\050\102\020\116\015\050\101"}, - {0x2580, "\355\016\353\355\354"}, - {0x2581, "\355\016\110\356\210\320"}, - {0x2582, "\355\016\110\357\017\320"}, - {0x2583, "\355\016\136\355\256\320"}, - {0x2584, "\355\016\353\356\020"}, - {0x2585, "\355\016\230\355\256\320"}, - {0x2586, "\355\016\136\357\303\320"}, - {0x2587, "\355\016\252\355\256\320"}, - {0x2588, "\355\016\361\205"}, - {0x2589, "\355\016\252\355\256\052"}, - {0x258A, "\355\016\136\357\303\052"}, - {0x258B, "\355\016\230\355\256\052"}, - {0x258C, "\355\016\353\052"}, - {0x258D, "\355\016\136\355\256\052"}, - {0x258E, "\355\016\110\357\017\052"}, - {0x258F, "\355\016\110\356\210\052"}, - {0x2590, "\355\016\353\053"}, - {0x2591, "\356\026\370\246"}, - {0x2592, "\356\026\361\076"}, - {0x2593, "\356\026\366\077"}, - {0x2594, "\355\016\110\356\210\344"}, - {0x2595, "\355\016\110\356\210\221"}, - {0x25A0, "\035\207"}, - {0x25A1, "\035\147"}, - {0x25A2, "\035\147\164\365\044\362\363"}, - {0x25A3, "\175\035\207\357\200\355\247\110\035\147"}, - {0x25A4, "\035\356\207\367\102"}, - {0x25A5, "\035\356\207\357\376"}, - {0x25A6, "\035\361\242"}, - {0x25A7, "\035\356\207\212\102\044\052\015\050\101\044\053"}, - {0x25A8, "\035\356\207\212\102\044\053\015\050\101\044\052"}, - {0x25A9, "\035\361\242\013\365\262"}, - {0x25AA, "\175\035\207"}, - {0x25AB, "\175\035\147"}, - {0x25AC, "\356\111\207"}, - {0x25AD, "\356\111\147"}, - {0x25AE, "\356\111\202\207"}, - {0x25AF, "\356\111\202\147"}, - {0x25B0, "\361\154\207"}, - {0x25B1, "\361\154\147"}, - {0x25B2, "\346\207\321\015\050\102"}, - {0x25B3, "\346\147\321\015\050\102"}, - {0x25B4, "\175\346\207\321\015\050\102"}, - {0x25B5, "\175\346\147\321\015\050\102"}, - {0x25B6, "\346\207\321\015\033\053"}, - {0x25B7, "\346\147\321\015\033\053"}, - {0x25B8, "\175\346\207\321\015\033\053"}, - {0x25B9, "\175\346\147\321\015\033\053"}, - {0x25BA, "\357\004\207\015\033\053"}, - {0x25BB, "\357\004\147\015\033\053"}, - {0x25BC, "\346\207\321\015\050\101"}, - {0x25BD, "\346\147\321\015\050\101"}, - {0x25BE, "\175\346\207\321\015\050\101"}, - {0x25BF, "\175\346\147\321\015\050\101"}, - {0x25C0, "\346\207\321\015\033\052"}, - {0x25C1, "\346\147\321\015\033\052"}, - {0x25C2, "\175\346\207\321\015\033\052"}, - {0x25C3, "\175\346\147\321\015\033\052"}, - {0x25C4, "\357\004\207\015\033\052"}, - {0x25C5, "\357\004\147\015\033\052"}, - {0x25C6, "\355\266\207"}, - {0x25C7, "\355\266\147"}, - {0x25C8, "\355\266\147\164\175\355\266\207\013\362\274"}, - {0x25C9, "\175\272\207\357\200\355\247\110\272\147"}, - {0x25CA, "\355\266"}, - {0x25CB, "\272\147"}, - {0x25CC, "\272\013\357\005"}, - {0x25CD, "\272\356\207\357\376"}, - {0x25CE, "\175\272\147\357\200\355\247\110\272\147"}, - {0x25CF, "\360\201\207"}, - {0x25D0, "\272\164\353\052\264"}, - {0x25D1, "\272\164\353\053\264"}, - {0x25D2, "\272\164\353\356\020\264"}, - {0x25D3, "\272\164\353\355\354\264"}, - {0x25D4, "\272\164\356\110\344\221\207"}, - {0x25D5, "\360\201\164\356\110\344\052\147"}, - {0x25D6, "\360\171\052\207"}, - {0x25D7, "\360\171\053\207"}, - {0x25D8, "\037\013\300"}, - {0x25D9, "\272\147\013\300"}, - {0x25DA, "\356\005\344\147\013\300"}, - {0x25DB, "\356\005\320\147\013\300"}, - {0x25DC, "\355\202\007\272\355\247\050\356\110\344\052"}, - {0x25DD, "\355\202\007\272\355\247\050\356\110\344\221"}, - {0x25DE, "\355\202\007\272\355\247\050\356\110\320\221"}, - {0x25DF, "\355\202\007\272\355\247\050\356\110\320\052"}, - {0x25E0, "\356\005\344"}, - {0x25E1, "\356\005\320"}, - {0x25E2, "\273\356\131\207\320\221"}, - {0x25E3, "\273\356\131\207\320\052"}, - {0x25E4, "\273\356\131\207\344\052"}, - {0x25E5, "\273\356\131\207\344\221"}, - {0x25E6, "\175\272\147"}, - {0x25E7, "\035\164\353\052\264"}, - {0x25E8, "\035\164\353\053\264"}, - {0x25E9, "\035\164\353\355\354\052\264"}, - {0x25EA, "\035\164\353\356\020\053\264"}, - {0x25EB, "\035\147\164\243\363\137\256"}, - {0x25EC, "\346\147\321\015\050\102\356\034"}, - {0x25ED, "\346\321\015\050\102\164\353\052\264"}, - {0x25EE, "\346\321\015\050\102\164\353\053\264"}, - {0x25EF, "\340\272"}, - {0x25F0, "\035\147\044\355\236\344\052"}, - {0x25F1, "\035\147\044\355\236\320\052"}, - {0x25F2, "\035\147\044\355\236\320\221"}, - {0x25F3, "\035\147\044\355\236\344\221"}, - {0x25F4, "\272\147\044\355\236\344\052"}, - {0x25F5, "\272\147\044\355\236\320\052"}, - {0x25F6, "\272\147\044\355\236\320\221"}, - {0x25F7, "\272\147\044\355\236\344\221"}, - {0x2600, "\356\044\207\164\361\250"}, - {0x2601, "\371\363"}, - {0x2602, "\372\154"}, - {0x2603, "\363\145\007\356\361"}, - {0x2604, "\365\054"}, - {0x2605, "\355\015\264"}, - {0x2606, "\355\015\316"}, - {0x2607, "\377\022"}, - {0x2608, "\372\105"}, - {0x2609, "\356\044"}, - {0x260A, "\356\362\360\054"}, - {0x260B, "\356\362\365\253"}, - {0x260C, "\365\057"}, - {0x260D, "\372\103"}, - {0x260E, "\357\050\207"}, - {0x260F, "\357\050\147"}, - {0x2610, "\356\146\007\356\267"}, - {0x2611, "\356\146\007\356\267\365\042"}, - {0x2612, "\356\146\007\356\267\164\355\026"}, - {0x2613, "\363\035"}, - {0x2619, "\355\203\357\150\356\153\044\053"}, - {0x261A, "\355\326\207\321\015\033\052"}, - {0x261B, "\355\326\207\321\015\033\053"}, - {0x261C, "\355\326\147\321\015\033\052"}, - {0x261D, "\355\326\147\321\015\050\102"}, - {0x261E, "\355\326\147\321\015\033\053"}, - {0x261F, "\355\326\147\321\015\050\101"}, - {0x2620, "\357\373\007\361\063"}, - {0x2621, "\376\040"}, - {0x2622, "\057\007\374\032"}, - {0x2623, "\057\007\365\173\363\132"}, - {0x2624, "\363\223"}, - {0x2625, "\362\330"}, - {0x2626, "\355\033\372\112"}, - {0x2627, "\363\313"}, - {0x2628, "\355\033\007\370\205"}, - {0x2629, "\355\033\007\367\353"}, - {0x262A, "\355\015\020\365\120"}, - {0x262B, "\022\356\067"}, - {0x262C, "\376\377\377\005"}, - {0x262D, "\366\047\020\370\272"}, - {0x262E, "\022\007\372\147"}, - {0x262F, "\022\212\362\114\020\212\360\011"}, - {0x2630, "\355\361\355\057\357\100"}, - {0x2631, "\355\361\355\057\370\125"}, - {0x2632, "\355\361\355\057\356\177"}, - {0x2633, "\355\361\355\057\375\227"}, - {0x2634, "\355\361\355\057\357\375"}, - {0x2635, "\355\361\355\057\356\066"}, - {0x2636, "\355\361\355\057\361\061"}, - {0x2637, "\355\361\355\057\356\126"}, - {0x2638, "\361\274\007\365\260"}, - {0x2639, "\356\265\147\366\246"}, - {0x263A, "\356\265\147\361\327"}, - {0x263B, "\356\265\207\361\327"}, - {0x263C, "\356\044\147\164\361\250"}, - {0x263D, "\361\222\355\236\007\356\101"}, - {0x263E, "\365\252\355\236\007\356\101"}, - {0x263F, "\370\317"}, - {0x2640, "\057\360\237"}, - {0x2641, "\356\126"}, - {0x2642, "\057\361\102"}, - {0x2643, "\367\335"}, - {0x2644, "\361\303"}, - {0x2645, "\375\377"}, - {0x2646, "\371\175"}, - {0x2647, "\372\247"}, - {0x2648, "\360\104"}, - {0x2649, "\375\107"}, - {0x264A, "\366\277"}, - {0x264B, "\363\230"}, - {0x264C, "\370\171"}, - {0x264D, "\376\026"}, - {0x264E, "\363\023"}, - {0x264F, "\374\235"}, - {0x2650, "\374\210"}, - {0x2651, "\363\233"}, - {0x2652, "\376\016"}, - {0x2653, "\373\252"}, - {0x2654, "\361\273\147\212\355\166\355\157"}, - {0x2655, "\360\161\316\212\355\166\355\157"}, - {0x2656, "\362\027\316\212\355\166\355\157"}, - {0x2657, "\357\151\147\212\355\166\355\157"}, - {0x2658, "\360\106\147\212\355\166\355\157"}, - {0x2659, "\361\167\147\212\355\166\355\157"}, - {0x265A, "\361\273\207\212\355\166\355\157"}, - {0x265B, "\360\161\264\212\355\166\355\157"}, - {0x265C, "\362\027\264\212\355\166\355\157"}, - {0x265D, "\357\151\207\212\355\166\355\157"}, - {0x265E, "\360\106\207\212\355\166\355\157"}, - {0x265F, "\361\167\207\212\355\166\355\157"}, - {0x2660, "\357\001\207"}, - {0x2661, "\355\203\147"}, - {0x2662, "\360\105\147"}, - {0x2663, "\362\036\207"}, - {0x2664, "\357\001\147"}, - {0x2665, "\355\203\207"}, - {0x2666, "\360\105\207"}, - {0x2667, "\362\036\147"}, - {0x2668, "\374\360\363\265"}, - {0x2669, "\357\250\264"}, - {0x266A, "\357\250\365\117"}, - {0x266B, "\127\360\144\361\245"}, - {0x266C, "\127\360\213\360\144\361\245"}, - {0x266D, "\363\213"}, - {0x266E, "\363\212"}, - {0x266F, "\365\276"}, - {0x2670, "\355\033\161\372\071"}, - {0x2671, "\355\033\161\372\110"}, - {0x2701, "\356\312\044\361\020\355\354\362\072"}, - {0x2702, "\356\312\371\314"}, - {0x2703, "\356\312\044\361\020\356\020\362\072"}, - {0x2704, "\356\312\363\143"}, - {0x2706, "\022\365\146\212\357\050"}, - {0x2707, "\365\363\007\374\143"}, - {0x2708, "\363\007"}, - {0x2709, "\366\014"}, - {0x270C, "\356\353\007\033\376\021"}, - {0x270D, "\356\353\013\375\243\365\165"}, - {0x270E, "\357\110\015\050\101\044\053"}, - {0x270F, "\357\110"}, - {0x2710, "\357\110\015\050\102\044\053"}, - {0x2711, "\360\073\007\356\243\147"}, - {0x2712, "\360\073\007\356\243\207"}, - {0x2713, "\057\007\362\101"}, - {0x2714, "\355\122\057\007\362\101"}, - {0x2715, "\355\026\007\356\355"}, - {0x2716, "\355\122\355\026\007\356\355"}, - {0x2717, "\355\026\007\356\146\007\356\267"}, - {0x2718, "\355\122\355\026\007\356\146\007\356\267"}, - {0x2719, "\355\033\027\164\355\132"}, - {0x271A, "\355\324\355\033\027"}, - {0x271B, "\355\033\357\270\355\314\035"}, - {0x271C, "\355\324\355\033\357\270\355\314\035"}, - {0x271D, "\355\033\006"}, - {0x271E, "\355\033\006\376\023\355\342"}, - {0x271F, "\355\033\006\164\355\132"}, - {0x2720, "\355\033\007\370\260"}, - {0x2721, "\355\015\007\365\200"}, - {0x2722, "\355\033\357\225"}, - {0x2723, "\355\033\361\212"}, - {0x2724, "\355\324\355\033\361\212"}, - {0x2725, "\355\033\375\261"}, - {0x2726, "\355\015\264\044\220\355\116"}, - {0x2727, "\355\015\316\044\220\355\116"}, - {0x2729, "\355\015\316\044\355\132\362\276"}, - {0x272A, "\355\015\316\177"}, - {0x272B, "\361\060\264"}, - {0x272C, "\361\060\316"}, - {0x272D, "\355\015\264\164\355\132"}, - {0x272E, "\355\015\264\164\355\122\355\132"}, - {0x272F, "\355\015\361\247"}, - {0x2730, "\355\015\316\355\342"}, - {0x2731, "\355\122\355\115"}, - {0x2732, "\355\115\361\164"}, - {0x2733, "\355\115\044\226\355\116"}, - {0x2734, "\355\015\264\044\226\355\116"}, - {0x2735, "\355\015\361\247\044\226\355\116"}, - {0x2736, "\355\015\264\044\255\355\116"}, - {0x2737, "\355\015\361\253\044\226\355\116"}, - {0x2738, "\355\324\355\015\361\253\044\226\355\116"}, - {0x2739, "\355\015\264\044\355\317\355\116"}, - {0x273A, "\355\115\044\356\043\355\116"}, - {0x273B, "\355\115\356\350"}, - {0x273C, "\355\115\356\350\361\164"}, - {0x273D, "\355\122\355\115\356\350"}, - {0x273E, "\374\324\316\020\264"}, - {0x273F, "\361\244\264"}, - {0x2740, "\361\244\316"}, - {0x2741, "\070\373\372\264\164\355\132"}, - {0x2742, "\355\015\177\357\270\044\226\355\116"}, - {0x2743, "\355\122\362\375\374\045\356\350"}, - {0x2744, "\357\147\007\356\361"}, - {0x2745, "\357\147\007\356\361\044\136\366\076\375\246"}, - {0x2746, "\355\122\357\147\007\356\361\044\363\305"}, - {0x2747, "\362\156"}, - {0x2748, "\355\122\362\156"}, - {0x2749, "\355\115\373\253"}, - {0x274A, "\360\055\044\226\355\116\361\021"}, - {0x274B, "\355\122\360\055\044\226\355\116\361\021"}, - {0x274D, "\272\147\357\255"}, - {0x274F, "\035\147\164\356\026\361\223\357\037\050\273\320\221"}, - {0x2750, "\035\147\164\356\026\361\223\357\037\050\273\344\221"}, - {0x2751, "\035\147\357\255\355\307\273\320\221"}, - {0x2752, "\035\147\357\255\355\307\273\344\221"}, - {0x2756, "\355\266\207\370\270\355\314\355\026\147"}, - {0x2758, "\246\256\360\242"}, - {0x2759, "\246\256\361\076"}, - {0x275A, "\246\256\377\032"}, - {0x275B, "\355\135\007\356\013\013\263\007\355\324\330\355\001\356\154"}, - {0x275C, "\355\135\007\356\013\013\263\007\355\324\330\355\001"}, - {0x275D, "\355\135\007\356\013\013\263\007\355\324\330\070\356\154"}, - {0x275E, "\355\135\007\356\013\013\263\007\355\324\330\070"}, - {0x2761, "\356\242\007\357\237\007\356\013\044\357\210\365\105"}, - {0x2762, "\355\122\037\355\312\007\356\013"}, - {0x2763, "\355\122\037\355\312\007\356\013\013\263\007\355\203"}, - {0x2764, "\355\122\355\203\207"}, - {0x2765, "\355\122\355\203\207\356\153"}, - {0x2766, "\355\203\357\150"}, - {0x2767, "\355\203\357\150\356\153"}, - {0x2776, "\304\024\110\300\051"}, - {0x2777, "\304\024\127\300\051"}, - {0x2778, "\304\024\136\300\051"}, - {0x2779, "\304\024\220\300\051"}, - {0x277A, "\304\024\230\300\051"}, - {0x277B, "\304\024\255\300\051"}, - {0x277C, "\304\024\252\300\051"}, - {0x277D, "\304\024\226\300\051"}, - {0x277E, "\304\024\257\300\051"}, - {0x277F, "\304\210\355\034\300\051"}, - {0x2780, "\304\024\110\270\355\035\051"}, - {0x2781, "\304\024\127\270\355\035\051"}, - {0x2782, "\304\024\136\270\355\035\051"}, - {0x2783, "\304\024\220\270\355\035\051"}, - {0x2784, "\304\024\230\270\355\035\051"}, - {0x2785, "\304\024\255\270\355\035\051"}, - {0x2786, "\304\024\252\270\355\035\051"}, - {0x2787, "\304\024\226\270\355\035\051"}, - {0x2788, "\304\024\257\270\355\035\051"}, - {0x2789, "\304\210\355\034\270\355\035\051"}, - {0x278A, "\304\024\110\270\355\035\300\051"}, - {0x278B, "\304\024\127\270\355\035\300\051"}, - {0x278C, "\304\024\136\270\355\035\300\051"}, - {0x278D, "\304\024\220\270\355\035\300\051"}, - {0x278E, "\304\024\230\270\355\035\300\051"}, - {0x278F, "\304\024\255\270\355\035\300\051"}, - {0x2790, "\304\024\252\270\355\035\300\051"}, - {0x2791, "\304\024\226\270\355\035\300\051"}, - {0x2792, "\304\024\257\270\355\035\300\051"}, - {0x2793, "\304\210\355\034\270\355\035\300\051"}, - {0x2794, "\061\355\121\015\033\053\044\355\003\355\262"}, - {0x2798, "\061\355\121\355\353"}, - {0x2799, "\061\355\121\015\033\053\355\121"}, - {0x279A, "\061\355\121\356\023"}, - {0x279B, "\061\007\375\252\015\033\053"}, - {0x279C, "\061\355\121\044\355\003\362\362\015\033\053"}, - {0x279D, "\061\044\355\003\013\346\015\033\053"}, - {0x279E, "\061\355\121\044\355\003\013\346\015\033\053"}, - {0x279F, "\061\164\357\007\044\355\003\013\346\015\033\053"}, - {0x27A0, "\061\355\121\164\357\007\044\355\003\013\346\015\033\053"}, - {0x27A1, "\061\264\015\033\053"}, - {0x27A2, "\355\003\007\061\015\033\053\013\362\034\362\155\355\232\050\102"}, - {0x27A3, "\355\003\007\061\015\033\053\013\362\034\362\155\355\232\050\101"}, - {0x27A4, "\355\003\007\061\264\015\033\053"}, - {0x27A5, "\061\264\355\121\360\143\015\050\101\020\015\033\053"}, - {0x27A6, "\061\264\360\143\015\050\102\020\015\033\053"}, - {0x27A7, "\061\264\375\250\015\033\053"}, - {0x27A8, "\061\264\355\121\044\355\003\365\055\015\033\053"}, - {0x27A9, "\061\316\015\033\053\355\342\044\356\345"}, - {0x27AA, "\061\316\015\033\053\355\342\044\361\017"}, - {0x27AB, "\061\316\015\033\053\361\162\015\361\017\020\355\342"}, - {0x27AC, "\061\316\015\033\053\361\162\015\356\345\020\355\342"}, - {0x27AD, "\061\316\355\121\015\033\053\044\356\026\356\020\053"}, - {0x27AE, "\061\316\355\121\015\033\053\044\356\026\355\354\053"}, - {0x27AF, "\061\357\145\316\015\033\053\355\342\044\356\345\020\355\232\365\256"}, - {0x27B1, "\061\357\145\316\015\033\053\355\342\044\356\345\020\355\232\357\132"}, - {0x27B2, "\061\316\355\121\015\033\053\044\355\132\363\352"}, - {0x27B3, "\061\044\355\253\316\015\033\053"}, - {0x27B4, "\061\044\355\253\207\355\353"}, - {0x27B5, "\061\044\355\253\207\015\033\053"}, - {0x27B6, "\061\044\355\253\207\356\023"}, - {0x27B7, "\061\044\355\253\151\264\355\353"}, - {0x27B8, "\061\044\355\253\151\264\015\033\053"}, - {0x27B9, "\061\044\355\253\151\264\356\023"}, - {0x27BA, "\061\015\033\053\044\355\003\357\225"}, - {0x27BB, "\061\015\033\053\044\357\162\357\225"}, - {0x27BC, "\061\015\033\053\044\356\247\013\263\007\273"}, - {0x27BD, "\061\355\121\015\033\053\044\356\247\013\263\007\273"}, - {0x27BE, "\061\015\033\053\044\355\132\355\343"}, - {0x2800, "\031\030\147"}, - {0x2801, "\031\030\372\252"}, - {0x2802, "\031\030\373\053"}, - {0x2803, "\031\030\372\253"}, - {0x2804, "\031\030\373\153"}, - {0x2805, "\031\030\372\353"}, - {0x2806, "\031\030\373\054"}, - {0x2807, "\031\030\372\254"}, - {0x2808, "\031\030\373\213"}, - {0x2809, "\031\030\373\014"}, - {0x280A, "\031\030\373\114"}, - {0x280B, "\031\030\372\314"}, - {0x280C, "\031\030\373\154"}, - {0x280D, "\031\030\372\354"}, - {0x280E, "\031\030\373\055"}, - {0x280F, "\031\030\372\255"}, - {0x2810, "\031\030\373\233"}, - {0x2811, "\031\030\373\034"}, - {0x2812, "\031\030\373\134"}, - {0x2813, "\031\030\372\334"}, - {0x2814, "\031\030\373\174"}, - {0x2815, "\031\030\372\374"}, - {0x2816, "\031\030\373\075"}, - {0x2817, "\031\030\372\275"}, - {0x2818, "\031\030\373\214"}, - {0x2819, "\031\030\373\015"}, - {0x281A, "\031\030\373\115"}, - {0x281B, "\031\030\372\315"}, - {0x281C, "\031\030\373\155"}, - {0x281D, "\031\030\372\355"}, - {0x281E, "\031\030\373\056"}, - {0x281F, "\031\030\372\256"}, - {0x2820, "\031\030\373\243"}, - {0x2821, "\031\030\373\044"}, - {0x2822, "\031\030\373\144"}, - {0x2823, "\031\030\372\344"}, - {0x2824, "\031\030\373\204"}, - {0x2825, "\031\030\373\005"}, - {0x2826, "\031\030\373\105"}, - {0x2827, "\031\030\372\305"}, - {0x2828, "\031\030\373\224"}, - {0x2829, "\031\030\373\025"}, - {0x282A, "\031\030\373\125"}, - {0x282B, "\031\030\372\325"}, - {0x282C, "\031\030\373\165"}, - {0x282D, "\031\030\372\365"}, - {0x282E, "\031\030\373\066"}, - {0x282F, "\031\030\372\266"}, - {0x2830, "\031\030\373\234"}, - {0x2831, "\031\030\373\035"}, - {0x2832, "\031\030\373\135"}, - {0x2833, "\031\030\372\335"}, - {0x2834, "\031\030\373\175"}, - {0x2835, "\031\030\372\375"}, - {0x2836, "\031\030\373\076"}, - {0x2837, "\031\030\372\276"}, - {0x2838, "\031\030\373\215"}, - {0x2839, "\031\030\373\016"}, - {0x283A, "\031\030\373\116"}, - {0x283B, "\031\030\372\316"}, - {0x283C, "\031\030\373\156"}, - {0x283D, "\031\030\372\356"}, - {0x283E, "\031\030\373\057"}, - {0x283F, "\031\030\372\257"}, - {0x2840, "\031\030\373\247"}, - {0x2841, "\031\030\373\050"}, - {0x2842, "\031\030\373\150"}, - {0x2843, "\031\030\372\350"}, - {0x2844, "\031\030\373\210"}, - {0x2845, "\031\030\373\011"}, - {0x2846, "\031\030\373\111"}, - {0x2847, "\031\030\372\311"}, - {0x2848, "\031\030\373\230"}, - {0x2849, "\031\030\373\031"}, - {0x284A, "\031\030\373\131"}, - {0x284B, "\031\030\372\331"}, - {0x284C, "\031\030\373\171"}, - {0x284D, "\031\030\372\371"}, - {0x284E, "\031\030\373\072"}, - {0x284F, "\031\030\372\272"}, - {0x2850, "\031\030\373\240"}, - {0x2851, "\031\030\373\041"}, - {0x2852, "\031\030\373\141"}, - {0x2853, "\031\030\372\341"}, - {0x2854, "\031\030\373\201"}, - {0x2855, "\031\030\373\002"}, - {0x2856, "\031\030\373\102"}, - {0x2857, "\031\030\372\302"}, - {0x2858, "\031\030\373\221"}, - {0x2859, "\031\030\373\022"}, - {0x285A, "\031\030\373\122"}, - {0x285B, "\031\030\372\322"}, - {0x285C, "\031\030\373\162"}, - {0x285D, "\031\030\372\362"}, - {0x285E, "\031\030\373\063"}, - {0x285F, "\031\030\372\263"}, - {0x2860, "\031\030\373\244"}, - {0x2861, "\031\030\373\045"}, - {0x2862, "\031\030\373\145"}, - {0x2863, "\031\030\372\345"}, - {0x2864, "\031\030\373\205"}, - {0x2865, "\031\030\373\006"}, - {0x2866, "\031\030\373\106"}, - {0x2867, "\031\030\372\306"}, - {0x2868, "\031\030\373\225"}, - {0x2869, "\031\030\373\026"}, - {0x286A, "\031\030\373\126"}, - {0x286B, "\031\030\372\326"}, - {0x286C, "\031\030\373\166"}, - {0x286D, "\031\030\372\366"}, - {0x286E, "\031\030\373\067"}, - {0x286F, "\031\030\372\267"}, - {0x2870, "\031\030\373\235"}, - {0x2871, "\031\030\373\036"}, - {0x2872, "\031\030\373\136"}, - {0x2873, "\031\030\372\336"}, - {0x2874, "\031\030\373\176"}, - {0x2875, "\031\030\372\376"}, - {0x2876, "\031\030\373\077"}, - {0x2877, "\031\030\372\277"}, - {0x2878, "\031\030\373\216"}, - {0x2879, "\031\030\373\017"}, - {0x287A, "\031\030\373\117"}, - {0x287B, "\031\030\372\317"}, - {0x287C, "\031\030\373\157"}, - {0x287D, "\031\030\372\357"}, - {0x287E, "\031\030\373\060"}, - {0x287F, "\031\030\372\260"}, - {0x2880, "\031\030\373\251"}, - {0x2881, "\031\030\373\052"}, - {0x2882, "\031\030\373\152"}, - {0x2883, "\031\030\372\352"}, - {0x2884, "\031\030\373\212"}, - {0x2885, "\031\030\373\013"}, - {0x2886, "\031\030\373\113"}, - {0x2887, "\031\030\372\313"}, - {0x2888, "\031\030\373\232"}, - {0x2889, "\031\030\373\033"}, - {0x288A, "\031\030\373\133"}, - {0x288B, "\031\030\372\333"}, - {0x288C, "\031\030\373\173"}, - {0x288D, "\031\030\372\373"}, - {0x288E, "\031\030\373\074"}, - {0x288F, "\031\030\372\274"}, - {0x2890, "\031\030\373\242"}, - {0x2891, "\031\030\373\043"}, - {0x2892, "\031\030\373\143"}, - {0x2893, "\031\030\372\343"}, - {0x2894, "\031\030\373\203"}, - {0x2895, "\031\030\373\004"}, - {0x2896, "\031\030\373\104"}, - {0x2897, "\031\030\372\304"}, - {0x2898, "\031\030\373\223"}, - {0x2899, "\031\030\373\024"}, - {0x289A, "\031\030\373\124"}, - {0x289B, "\031\030\372\324"}, - {0x289C, "\031\030\373\164"}, - {0x289D, "\031\030\372\364"}, - {0x289E, "\031\030\373\065"}, - {0x289F, "\031\030\372\265"}, - {0x28A0, "\031\030\373\246"}, - {0x28A1, "\031\030\373\047"}, - {0x28A2, "\031\030\373\147"}, - {0x28A3, "\031\030\372\347"}, - {0x28A4, "\031\030\373\207"}, - {0x28A5, "\031\030\373\010"}, - {0x28A6, "\031\030\373\110"}, - {0x28A7, "\031\030\372\310"}, - {0x28A8, "\031\030\373\227"}, - {0x28A9, "\031\030\373\030"}, - {0x28AA, "\031\030\373\130"}, - {0x28AB, "\031\030\372\330"}, - {0x28AC, "\031\030\373\170"}, - {0x28AD, "\031\030\372\370"}, - {0x28AE, "\031\030\373\071"}, - {0x28AF, "\031\030\372\271"}, - {0x28B0, "\031\030\373\237"}, - {0x28B1, "\031\030\373\040"}, - {0x28B2, "\031\030\373\140"}, - {0x28B3, "\031\030\372\340"}, - {0x28B4, "\031\030\373\200"}, - {0x28B5, "\031\030\373\001"}, - {0x28B6, "\031\030\373\101"}, - {0x28B7, "\031\030\372\301"}, - {0x28B8, "\031\030\373\220"}, - {0x28B9, "\031\030\373\021"}, - {0x28BA, "\031\030\373\121"}, - {0x28BB, "\031\030\372\321"}, - {0x28BC, "\031\030\373\161"}, - {0x28BD, "\031\030\372\361"}, - {0x28BE, "\031\030\373\062"}, - {0x28BF, "\031\030\372\262"}, - {0x28C0, "\031\030\373\250"}, - {0x28C1, "\031\030\373\051"}, - {0x28C2, "\031\030\373\151"}, - {0x28C3, "\031\030\372\351"}, - {0x28C4, "\031\030\373\211"}, - {0x28C5, "\031\030\373\012"}, - {0x28C6, "\031\030\373\112"}, - {0x28C7, "\031\030\372\312"}, - {0x28C8, "\031\030\373\231"}, - {0x28C9, "\031\030\373\032"}, - {0x28CA, "\031\030\373\132"}, - {0x28CB, "\031\030\372\332"}, - {0x28CC, "\031\030\373\172"}, - {0x28CD, "\031\030\372\372"}, - {0x28CE, "\031\030\373\073"}, - {0x28CF, "\031\030\372\273"}, - {0x28D0, "\031\030\373\241"}, - {0x28D1, "\031\030\373\042"}, - {0x28D2, "\031\030\373\142"}, - {0x28D3, "\031\030\372\342"}, - {0x28D4, "\031\030\373\202"}, - {0x28D5, "\031\030\373\003"}, - {0x28D6, "\031\030\373\103"}, - {0x28D7, "\031\030\372\303"}, - {0x28D8, "\031\030\373\222"}, - {0x28D9, "\031\030\373\023"}, - {0x28DA, "\031\030\373\123"}, - {0x28DB, "\031\030\372\323"}, - {0x28DC, "\031\030\373\163"}, - {0x28DD, "\031\030\372\363"}, - {0x28DE, "\031\030\373\064"}, - {0x28DF, "\031\030\372\264"}, - {0x28E0, "\031\030\373\245"}, - {0x28E1, "\031\030\373\046"}, - {0x28E2, "\031\030\373\146"}, - {0x28E3, "\031\030\372\346"}, - {0x28E4, "\031\030\373\206"}, - {0x28E5, "\031\030\373\007"}, - {0x28E6, "\031\030\373\107"}, - {0x28E7, "\031\030\372\307"}, - {0x28E8, "\031\030\373\226"}, - {0x28E9, "\031\030\373\027"}, - {0x28EA, "\031\030\373\127"}, - {0x28EB, "\031\030\372\327"}, - {0x28EC, "\031\030\373\167"}, - {0x28ED, "\031\030\372\367"}, - {0x28EE, "\031\030\373\070"}, - {0x28EF, "\031\030\372\270"}, - {0x28F0, "\031\030\373\236"}, - {0x28F1, "\031\030\373\037"}, - {0x28F2, "\031\030\373\137"}, - {0x28F3, "\031\030\372\337"}, - {0x28F4, "\031\030\373\177"}, - {0x28F5, "\031\030\372\377"}, - {0x28F6, "\031\030\373\100"}, - {0x28F7, "\031\030\372\300"}, - {0x28F8, "\031\030\373\217"}, - {0x28F9, "\031\030\373\020"}, - {0x28FA, "\031\030\373\120"}, - {0x28FB, "\031\030\372\320"}, - {0x28FC, "\031\030\373\160"}, - {0x28FD, "\031\030\372\360"}, - {0x28FE, "\031\030\373\061"}, - {0x28FF, "\031\030\372\261"}, - {0x2E80, "\017\074\363\136"}, - {0x2E81, "\017\074\360\235"}, - {0x2E82, "\017\074\070\122\110"}, - {0x2E83, "\017\074\357\323\127"}, - {0x2E84, "\017\074\357\323\136"}, - {0x2E85, "\017\074\360\326"}, - {0x2E86, "\017\074\361\201"}, - {0x2E87, "\017\074\361\352"}, - {0x2E88, "\017\074\357\107\110"}, - {0x2E89, "\017\074\357\107\127"}, - {0x2E8A, "\017\074\360\202"}, - {0x2E8B, "\017\074\361\304"}, - {0x2E8C, "\017\074\175\110"}, - {0x2E8D, "\017\074\175\127"}, - {0x2E8E, "\017\074\356\212\372\076"}, - {0x2E8F, "\017\074\356\212\127"}, - {0x2E90, "\017\074\356\212\136"}, - {0x2E91, "\017\074\356\212\220"}, - {0x2E92, "\017\074\057\212\374\253"}, - {0x2E93, "\017\074\366\066"}, - {0x2E94, "\017\074\357\156\110"}, - {0x2E95, "\017\074\357\156\127"}, - {0x2E96, "\017\074\355\203\110"}, - {0x2E97, "\017\074\355\203\127"}, - {0x2E98, "\017\074\356\353"}, - {0x2E99, "\017\074\361\354"}, - {0x2E9A, "\017\074\356\113\360\060"}, - {0x2E9B, "\017\074\377\037"}, - {0x2E9C, "\017\074\356\044"}, - {0x2E9D, "\017\074\356\101"}, - {0x2E9E, "\017\074\370\300"}, - {0x2E9F, "\017\074\371\057"}, - {0x2EA0, "\017\074\363\355"}, - {0x2EA1, "\017\074\356\066\110"}, - {0x2EA2, "\017\074\356\066\127"}, - {0x2EA3, "\017\074\356\177"}, - {0x2EA4, "\017\074\361\160\110"}, - {0x2EA5, "\017\074\361\160\127"}, - {0x2EA6, "\017\074\365\245\356\113"}, - {0x2EA7, "\017\074\360\077"}, - {0x2EA8, "\017\074\360\116"}, - {0x2EA9, "\017\074\360\355"}, - {0x2EAA, "\017\074\361\171\360\160"}, - {0x2EAB, "\017\074\361\135"}, - {0x2EAC, "\017\074\357\306\110"}, - {0x2EAD, "\017\074\357\306\127"}, - {0x2EAE, "\017\074\360\065"}, - {0x2EAF, "\017\074\357\332"}, - {0x2EB0, "\017\074\355\010\357\332"}, - {0x2EB1, "\017\074\065\110"}, - {0x2EB2, "\017\074\065\127"}, - {0x2EB3, "\017\074\065\136"}, - {0x2EB4, "\017\074\065\220"}, - {0x2EB5, "\017\074\370\253"}, - {0x2EB6, "\017\074\361\072"}, - {0x2EB7, "\017\074\360\104"}, - {0x2EB8, "\017\074\363\162"}, - {0x2EB9, "\017\074\362\064"}, - {0x2EBA, "\017\074\357\272\110"}, - {0x2EBB, "\017\074\357\272\127"}, - {0x2EBC, "\017\074\362\063"}, - {0x2EBD, "\017\074\361\064"}, - {0x2EBE, "\017\074\356\334\110"}, - {0x2EBF, "\017\074\356\334\127"}, - {0x2EC0, "\017\074\356\334\136"}, - {0x2EC1, "\017\074\362\005"}, - {0x2EC2, "\017\074\360\317"}, - {0x2EC3, "\017\074\357\260\110"}, - {0x2EC4, "\017\074\357\260\127"}, - {0x2EC5, "\017\074\355\010\362\074"}, - {0x2EC6, "\017\074\356\113\357\106"}, - {0x2EC7, "\017\074\357\106"}, - {0x2EC8, "\017\074\355\010\361\155"}, - {0x2EC9, "\017\074\355\010\360\140"}, - {0x2ECA, "\017\074\356\242"}, - {0x2ECB, "\017\074\355\010\362\100"}, - {0x2ECC, "\017\074\356\113\357\014"}, - {0x2ECD, "\017\074\357\014\110"}, - {0x2ECE, "\017\074\357\014\127"}, - {0x2ECF, "\017\074\376\031"}, - {0x2ED0, "\017\074\355\010\361\141"}, - {0x2ED1, "\017\074\355\264\110"}, - {0x2ED2, "\017\074\355\264\127"}, - {0x2ED3, "\017\074\355\010\355\264"}, - {0x2ED4, "\017\074\355\010\357\274"}, - {0x2ED5, "\017\074\357\353\110"}, - {0x2ED6, "\017\074\357\353\127"}, - {0x2ED7, "\017\074\361\206"}, - {0x2ED8, "\017\074\360\075"}, - {0x2ED9, "\017\074\355\010\357\113\361\353"}, - {0x2EDA, "\017\074\355\010\360\240"}, - {0x2EDB, "\017\074\355\010\357\375"}, - {0x2EDC, "\017\074\355\010\362\075"}, - {0x2EDD, "\017\074\356\223\110"}, - {0x2EDE, "\017\074\356\223\127"}, - {0x2EDF, "\017\074\356\223\136"}, - {0x2EE0, "\017\074\355\010\356\223"}, - {0x2EE1, "\017\074\357\373"}, - {0x2EE2, "\017\074\355\010\360\115"}, - {0x2EE3, "\017\074\357\257"}, - {0x2EE4, "\017\074\360\222"}, - {0x2EE5, "\017\074\355\010\361\211"}, - {0x2EE6, "\017\074\355\010\357\254"}, - {0x2EE7, "\017\074\355\010\361\306"}, - {0x2EE8, "\017\074\356\113\360\076"}, - {0x2EE9, "\017\074\356\113\360\357"}, - {0x2EEA, "\017\074\355\010\375\360"}, - {0x2EEB, "\017\074\356\340\357\164"}, - {0x2EEC, "\017\074\355\010\357\164"}, - {0x2EED, "\017\074\356\340\360\173"}, - {0x2EEE, "\017\074\355\010\360\173"}, - {0x2EEF, "\017\074\356\340\357\142"}, - {0x2EF0, "\017\074\355\010\357\142"}, - {0x2EF1, "\017\074\357\047"}, - {0x2EF2, "\017\074\356\340\357\047"}, - {0x2EF3, "\017\074\355\010\357\047"}, - {0x2F00, "\017\041\110"}, - {0x2F01, "\017\041\246"}, - {0x2F02, "\017\041\037"}, - {0x2F03, "\017\041\355\044\044\052"}, - {0x2F04, "\017\041\070\122"}, - {0x2F05, "\017\041\122"}, - {0x2F06, "\017\041\127"}, - {0x2F07, "\017\041\357\132"}, - {0x2F08, "\017\041\360\326"}, - {0x2F09, "\017\041\367\255"}, - {0x2F0A, "\017\041\366\013"}, - {0x2F0B, "\017\041\226"}, - {0x2F0C, "\017\041\361\201"}, - {0x2F0D, "\017\041\365\113"}, - {0x2F0E, "\017\041\366\232"}, - {0x2F0F, "\017\041\361\352"}, - {0x2F10, "\017\041\366\104"}, - {0x2F11, "\017\041\357\107"}, - {0x2F12, "\017\041\366\102"}, - {0x2F13, "\017\041\366\015"}, - {0x2F14, "\017\041\365\126"}, - {0x2F15, "\017\041\365\043"}, - {0x2F16, "\017\041\363\217"}, - {0x2F17, "\017\041\355\034"}, - {0x2F18, "\017\041\360\202"}, - {0x2F19, "\017\041\361\304"}, - {0x2F1A, "\017\041\360\235"}, - {0x2F1B, "\017\041\357\012"}, - {0x2F1C, "\017\041\366\001"}, - {0x2F1D, "\017\041\363\153"}, - {0x2F1E, "\017\041\365\377"}, - {0x2F1F, "\017\041\356\126"}, - {0x2F20, "\017\041\370\147"}, - {0x2F21, "\017\041\362\315"}, - {0x2F22, "\017\041\363\274"}, - {0x2F23, "\017\041\374\346"}, - {0x2F24, "\017\041\340"}, - {0x2F25, "\017\041\366\054"}, - {0x2F26, "\017\041\366\002"}, - {0x2F27, "\017\041\375\225"}, - {0x2F28, "\017\041\373\261"}, - {0x2F29, "\017\041\175"}, - {0x2F2A, "\017\041\356\212"}, - {0x2F2B, "\017\041\363\221"}, - {0x2F2C, "\017\041\363\154"}, - {0x2F2D, "\017\041\361\061"}, - {0x2F2E, "\017\041\374\070"}, - {0x2F2F, "\017\041\357\364"}, - {0x2F30, "\017\041\374\344"}, - {0x2F31, "\017\041\374\255"}, - {0x2F32, "\017\041\374\240"}, - {0x2F33, "\017\041\357\234"}, - {0x2F34, "\017\041\362\350"}, - {0x2F35, "\017\041\365\376"}, - {0x2F36, "\017\041\127\370\254"}, - {0x2F37, "\017\041\375\212"}, - {0x2F38, "\017\041\355\202"}, - {0x2F39, "\017\041\357\156"}, - {0x2F3A, "\017\041\361\210"}, - {0x2F3B, "\017\041\355\056"}, - {0x2F3C, "\017\041\355\203"}, - {0x2F3D, "\017\041\366\312"}, - {0x2F3E, "\017\041\363\041\007\357\274"}, - {0x2F3F, "\017\041\356\353"}, - {0x2F40, "\017\041\363\161"}, - {0x2F41, "\017\041\361\354"}, - {0x2F42, "\017\041\377\024"}, - {0x2F43, "\017\041\363\144"}, - {0x2F44, "\017\041\366\304"}, - {0x2F45, "\017\041\035"}, - {0x2F46, "\017\041\355\140\355\056"}, - {0x2F47, "\017\041\356\044"}, - {0x2F48, "\017\041\365\271"}, - {0x2F49, "\017\041\356\101"}, - {0x2F4A, "\017\041\362\355"}, - {0x2F4B, "\017\041\370\263"}, - {0x2F4C, "\017\041\356\141"}, - {0x2F4D, "\017\041\361\063"}, - {0x2F4E, "\017\041\362\357"}, - {0x2F4F, "\017\041\357\174\371\074\063\355\056"}, - {0x2F50, "\017\041\365\047"}, - {0x2F51, "\017\041\375\235\007\361\210"}, - {0x2F52, "\017\041\365\037"}, - {0x2F53, "\017\041\376\007"}, - {0x2F54, "\017\041\356\066"}, - {0x2F55, "\017\041\356\177"}, - {0x2F56, "\017\041\366\245"}, - {0x2F57, "\017\041\373\327"}, - {0x2F58, "\017\041\366\012"}, - {0x2F59, "\017\041\353\052\007\363\215"}, - {0x2F5A, "\017\041\375\245"}, - {0x2F5B, "\017\041\365\116"}, - {0x2F5C, "\017\041\360\077"}, - {0x2F5D, "\017\041\360\116"}, - {0x2F5E, "\017\041\371\047"}, - {0x2F5F, "\017\041\360\355"}, - {0x2F60, "\017\041\370\315"}, - {0x2F61, "\017\041\375\316"}, - {0x2F62, "\017\041\143"}, - {0x2F63, "\017\041\371\111"}, - {0x2F64, "\017\041\376\002"}, - {0x2F65, "\017\041\363\257"}, - {0x2F66, "\017\041\361\171\360\160"}, - {0x2F67, "\017\041\370\257"}, - {0x2F68, "\017\041\371\016"}, - {0x2F69, "\017\041\147"}, - {0x2F6A, "\017\041\372\173"}, - {0x2F6B, "\017\041\376\004"}, - {0x2F6C, "\017\041\361\135"}, - {0x2F6D, "\017\041\370\130"}, - {0x2F6E, "\017\041\061"}, - {0x2F6F, "\017\041\372\227"}, - {0x2F70, "\017\041\357\306"}, - {0x2F71, "\017\041\375\242"}, - {0x2F72, "\017\041\365\144"}, - {0x2F73, "\017\041\363\237"}, - {0x2F74, "\017\041\365\237"}, - {0x2F75, "\017\041\360\065"}, - {0x2F76, "\017\041\374\072"}, - {0x2F77, "\017\041\357\332"}, - {0x2F78, "\017\041\373\260"}, - {0x2F79, "\017\041\065"}, - {0x2F7A, "\017\041\361\072"}, - {0x2F7B, "\017\041\356\243"}, - {0x2F7C, "\017\041\362\064"}, - {0x2F7D, "\017\041\362\317"}, - {0x2F7E, "\017\041\363\263"}, - {0x2F7F, "\017\041\372\107"}, - {0x2F80, "\017\041\357\272"}, - {0x2F81, "\017\041\362\063"}, - {0x2F82, "\017\041\370\365"}, - {0x2F83, "\017\041\372\202"}, - {0x2F84, "\017\041\362\360"}, - {0x2F85, "\017\041\361\064"}, - {0x2F86, "\017\041\370\131"}, - {0x2F87, "\017\041\374\204"}, - {0x2F88, "\017\041\360\067"}, - {0x2F89, "\017\041\374\176"}, - {0x2F8A, "\017\041\365\101"}, - {0x2F8B, "\017\041\356\334"}, - {0x2F8C, "\017\041\362\005"}, - {0x2F8D, "\017\041\367\217"}, - {0x2F8E, "\017\041\374\217"}, - {0x2F8F, "\017\041\365\354"}, - {0x2F90, "\017\041\360\317"}, - {0x2F91, "\017\041\357\260"}, - {0x2F92, "\017\041\362\074"}, - {0x2F93, "\017\041\357\106"}, - {0x2F94, "\017\041\361\155"}, - {0x2F95, "\017\041\376\005"}, - {0x2F96, "\017\041\366\316"}, - {0x2F97, "\017\041\365\041"}, - {0x2F98, "\017\041\362\327"}, - {0x2F99, "\017\041\360\140"}, - {0x2F9A, "\017\041\374\110"}, - {0x2F9B, "\017\041\365\106"}, - {0x2F9C, "\017\041\356\242"}, - {0x2F9D, "\017\041\365\073"}, - {0x2F9E, "\017\041\362\100"}, - {0x2F9F, "\017\041\376\376"}, - {0x2FA0, "\017\041\370\276"}, - {0x2FA1, "\017\041\357\014"}, - {0x2FA2, "\017\041\374\174"}, - {0x2FA3, "\017\041\057\212\365\071"}, - {0x2FA4, "\017\041\365\125"}, - {0x2FA5, "\017\041\366\313"}, - {0x2FA6, "\017\041\361\141"}, - {0x2FA7, "\017\041\355\264"}, - {0x2FA8, "\017\041\357\274"}, - {0x2FA9, "\017\041\357\353"}, - {0x2FAA, "\017\041\356\172"}, - {0x2FAB, "\017\041\357\254\044\356\247\356\314"}, - {0x2FAC, "\017\041\361\206"}, - {0x2FAD, "\017\041\360\075"}, - {0x2FAE, "\017\041\375\231"}, - {0x2FAF, "\017\041\356\265"}, - {0x2FB0, "\017\041\357\113"}, - {0x2FB1, "\017\041\357\113\361\353"}, - {0x2FB2, "\017\041\363\345"}, - {0x2FB3, "\017\041\355\175"}, - {0x2FB4, "\017\041\360\240"}, - {0x2FB5, "\017\041\357\375"}, - {0x2FB6, "\017\041\362\075"}, - {0x2FB7, "\017\041\356\223"}, - {0x2FB8, "\017\041\357\373"}, - {0x2FB9, "\017\041\372\156"}, - {0x2FBA, "\017\041\360\115"}, - {0x2FBB, "\017\041\357\257"}, - {0x2FBC, "\017\041\102"}, - {0x2FBD, "\017\041\363\303"}, - {0x2FBE, "\017\041\374\071"}, - {0x2FBF, "\017\041\360\002\374\207"}, - {0x2FC0, "\017\041\363\266"}, - {0x2FC1, "\017\041\360\222"}, - {0x2FC2, "\017\041\361\211"}, - {0x2FC3, "\017\041\357\254"}, - {0x2FC4, "\017\041\361\306"}, - {0x2FC5, "\017\041\363\252"}, - {0x2FC6, "\017\041\360\076"}, - {0x2FC7, "\017\041\363\260"}, - {0x2FC8, "\017\041\360\357"}, - {0x2FC9, "\017\041\370\362"}, - {0x2FCA, "\017\041\207"}, - {0x2FCB, "\017\041\363\163"}, - {0x2FCC, "\017\041\366\243"}, - {0x2FCD, "\017\041\375\256"}, - {0x2FCE, "\017\041\375\101"}, - {0x2FCF, "\017\041\361\246"}, - {0x2FD0, "\017\041\371\200"}, - {0x2FD1, "\017\041\357\164"}, - {0x2FD2, "\017\041\355\250"}, - {0x2FD3, "\017\041\357\142"}, - {0x2FD4, "\017\041\357\047"}, - {0x2FD5, "\017\041\366\074"}, - {0x2FF0, "\335\007\355\161\076\052\044\053"}, - {0x2FF1, "\335\007\355\161\076\007\102\013\101"}, - {0x2FF2, "\335\007\355\161\076\007\033\052\355\307\361\055\361\227\044\033\053"}, - {0x2FF3, "\335\007\355\161\076\212\102\355\307\361\055\361\227\013\101"}, - {0x2FF4, "\335\007\355\161\076\375\240\355\375"}, - {0x2FF5, "\335\007\355\161\076\355\375\044\356\031\212\102"}, - {0x2FF6, "\335\007\355\161\076\355\375\044\356\031\212\101"}, - {0x2FF7, "\335\007\355\161\076\355\375\044\356\031\007\033\052"}, - {0x2FF8, "\335\007\355\161\076\355\375\044\356\031\357\117\102\044\052"}, - {0x2FF9, "\335\007\355\161\076\355\375\044\356\031\357\117\102\044\053"}, - {0x2FFA, "\335\007\355\161\076\355\375\044\356\031\357\117\101\044\052"}, - {0x2FFB, "\335\007\355\161\076\363\302"}, - {0x3000, "\355\073\076"}, - {0x3001, "\330\076"}, - {0x3002, "\037\076"}, - {0x3003, "\366\252\007\356\112"}, - {0x3004, "\022\007\361\117\367\206\367\257"}, - {0x3005, "\204\076\356\156"}, - {0x3006, "\204\076\007\366\057"}, - {0x3007, "\331\076"}, - {0x3008, "\122\356\301\044\052"}, - {0x3009, "\122\356\301\044\053"}, - {0x300A, "\070\122\356\301\044\052"}, - {0x300B, "\070\122\356\301\044\053"}, - {0x300C, "\122\273\052"}, - {0x300D, "\122\273\221"}, - {0x300E, "\122\147\273\052"}, - {0x300F, "\122\147\273\221"}, - {0x3010, "\122\207\356\076\052"}, - {0x3011, "\122\207\356\076\221"}, - {0x3012, "\204\357\275"}, - {0x3013, "\057\366\303"}, - {0x3014, "\122\052\013\355\370"}, - {0x3015, "\122\221\013\355\370"}, - {0x3016, "\122\147\356\076\052"}, - {0x3017, "\122\147\356\076\221"}, - {0x3018, "\122\147\052\013\355\370"}, - {0x3019, "\122\147\221\013\355\370"}, - {0x301A, "\122\147\052"}, - {0x301B, "\122\147\221"}, - {0x301C, "\355\126\355\315\013\356\173"}, - {0x301D, "\355\135\070\355\235\355\013"}, - {0x301E, "\355\135\070\355\235"}, - {0x301F, "\355\135\070\355\235\320"}, - {0x3020, "\356\265\013\204\357\275"}, - {0x3021, "\024\110\355\164"}, - {0x3022, "\024\127\355\164"}, - {0x3023, "\024\136\355\164"}, - {0x3024, "\024\220\355\164"}, - {0x3025, "\024\230\355\164"}, - {0x3026, "\024\255\355\164"}, - {0x3027, "\024\252\355\164"}, - {0x3028, "\024\226\355\164"}, - {0x3029, "\024\257\355\164"}, - {0x302A, "\204\076\007\345\356\201"}, - {0x302B, "\204\076\007\345\360\054"}, - {0x302C, "\204\076\007\345\374\356"}, - {0x302D, "\204\076\007\345\366\011"}, - {0x302E, "\204\007\345\014\037"}, - {0x302F, "\204\007\345\014\070\037"}, - {0x3030, "\355\126\355\315\356\232"}, - {0x3031, "\204\256\356\214\007\356\112"}, - {0x3032, "\204\256\356\214\007\356\112\164\355\175\356\266"}, - {0x3033, "\353\355\354\007\204\256\356\214\007\356\112"}, - {0x3034, "\353\355\354\007\204\256\356\214\007\356\112\164\355\175\356\266"}, - {0x3035, "\353\356\020\007\204\256\356\214\007\356\112"}, - {0x3036, "\204\357\275\177"}, - {0x3037, "\022\162\076\355\045\007\360\113\007\243"}, - {0x3038, "\210\355\034\355\164"}, - {0x3039, "\210\356\050\355\164"}, - {0x303A, "\210\357\365\355\164"}, - {0x303E, "\357\176\007\357\052\076"}, - {0x303F, "\365\247\076"}, - {0x3041, "\002\124\063\005"}, - {0x3042, "\002\124\063"}, - {0x3043, "\002\124\103\005"}, - {0x3044, "\002\124\103"}, - {0x3045, "\002\124\132\005"}, - {0x3046, "\002\124\132"}, - {0x3047, "\002\124\130\005"}, - {0x3048, "\002\124\130"}, - {0x3049, "\002\124\064\005"}, - {0x304A, "\002\124\064"}, - {0x304B, "\002\124\240"}, - {0x304C, "\002\124\355\017"}, - {0x304D, "\002\124\355\332"}, - {0x304E, "\002\124\356\204"}, - {0x304F, "\002\124\356\021"}, - {0x3050, "\002\124\357\160"}, - {0x3051, "\002\124\355\331"}, - {0x3052, "\002\124\356\203"}, - {0x3053, "\002\124\355\167"}, - {0x3054, "\002\124\356\071"}, - {0x3055, "\002\124\355\004"}, - {0x3056, "\002\124\355\101"}, - {0x3057, "\002\124\355\275"}, - {0x3058, "\002\124\356\275"}, - {0x3059, "\002\124\356\253"}, - {0x305A, "\002\124\360\022"}, - {0x305B, "\002\124\356\042"}, - {0x305C, "\002\124\356\274"}, - {0x305D, "\002\124\355\070"}, - {0x305E, "\002\124\356\135"}, - {0x305F, "\002\124\311"}, - {0x3060, "\002\124\355\002"}, - {0x3061, "\002\124\355\217"}, - {0x3062, "\002\124\356\062"}, - {0x3063, "\002\124\355\300\005"}, - {0x3064, "\002\124\355\300"}, - {0x3065, "\002\124\212"}, - {0x3066, "\002\124\356\125"}, - {0x3067, "\002\124\007"}, - {0x3068, "\002\124\355\176"}, - {0x3069, "\002\124\355\252"}, - {0x306A, "\002\124\354"}, - {0x306B, "\002\124\244"}, - {0x306C, "\002\124\356\025"}, - {0x306D, "\002\124\355\140"}, - {0x306E, "\002\124\355\113"}, - {0x306F, "\002\124\314"}, - {0x3070, "\002\124\355\052"}, - {0x3071, "\002\124\327"}, - {0x3072, "\002\124\355\255"}, - {0x3073, "\002\124\356\304"}, - {0x3074, "\002\124\355\233"}, - {0x3075, "\002\124\356\336"}, - {0x3076, "\002\124\356\003"}, - {0x3077, "\002\124\357\277"}, - {0x3078, "\002\124\356\072"}, - {0x3079, "\002\124\356\142"}, - {0x307A, "\002\124\356\375"}, - {0x307B, "\002\124\355\107"}, - {0x307C, "\002\124\355\377"}, - {0x307D, "\002\124\355\273"}, - {0x307E, "\002\124\277"}, - {0x307F, "\002\124\355\230"}, - {0x3080, "\002\124\355\111"}, - {0x3081, "\002\124\355\334"}, - {0x3082, "\002\124\355\136"}, - {0x3083, "\002\124\305\005"}, - {0x3084, "\002\124\305"}, - {0x3085, "\002\124\355\364\005"}, - {0x3086, "\002\124\355\364"}, - {0x3087, "\002\124\355\040\005"}, - {0x3088, "\002\124\355\040"}, - {0x3089, "\002\124\322"}, - {0x308A, "\002\124\355\347"}, - {0x308B, "\002\124\356\037"}, - {0x308C, "\002\124\356\035"}, - {0x308D, "\002\124\355\174"}, - {0x308E, "\002\124\355\050\005"}, - {0x308F, "\002\124\355\050"}, - {0x3090, "\002\124\355\362"}, - {0x3091, "\002\124\356\270"}, - {0x3092, "\002\124\355\150"}, - {0x3093, "\002\124\241"}, - {0x3094, "\002\124\360\004"}, - {0x3099, "\026\356\075\355\175\356\266"}, - {0x309A, "\026\356\075\355\175\357\324"}, - {0x309B, "\204\356\075\007\355\175\356\266"}, - {0x309C, "\204\356\075\007\355\175\357\324"}, - {0x309D, "\204\356\156\124"}, - {0x309E, "\204\356\156\360\003\124"}, - {0x30A1, "\002\045\063\005"}, - {0x30A2, "\002\045\063"}, - {0x30A3, "\002\045\103\005"}, - {0x30A4, "\002\045\103"}, - {0x30A5, "\002\045\132\005"}, - {0x30A6, "\002\045\132"}, - {0x30A7, "\002\045\130\005"}, - {0x30A8, "\002\045\130"}, - {0x30A9, "\002\045\064\005"}, - {0x30AA, "\002\045\064"}, - {0x30AB, "\002\045\240"}, - {0x30AC, "\002\045\355\017"}, - {0x30AD, "\002\045\355\332"}, - {0x30AE, "\002\045\356\204"}, - {0x30AF, "\002\045\356\021"}, - {0x30B0, "\002\045\357\160"}, - {0x30B1, "\002\045\355\331"}, - {0x30B2, "\002\045\356\203"}, - {0x30B3, "\002\045\355\167"}, - {0x30B4, "\002\045\356\071"}, - {0x30B5, "\002\045\355\004"}, - {0x30B6, "\002\045\355\101"}, - {0x30B7, "\002\045\355\275"}, - {0x30B8, "\002\045\356\275"}, - {0x30B9, "\002\045\356\253"}, - {0x30BA, "\002\045\360\022"}, - {0x30BB, "\002\045\356\042"}, - {0x30BC, "\002\045\356\274"}, - {0x30BD, "\002\045\355\070"}, - {0x30BE, "\002\045\356\135"}, - {0x30BF, "\002\045\311"}, - {0x30C0, "\002\045\355\002"}, - {0x30C1, "\002\045\355\217"}, - {0x30C2, "\002\045\356\062"}, - {0x30C3, "\002\045\355\300\005"}, - {0x30C4, "\002\045\355\300"}, - {0x30C5, "\002\045\212"}, - {0x30C6, "\002\045\356\125"}, - {0x30C7, "\002\045\007"}, - {0x30C8, "\002\045\355\176"}, - {0x30C9, "\002\045\355\252"}, - {0x30CA, "\002\045\354"}, - {0x30CB, "\002\045\244"}, - {0x30CC, "\002\045\356\025"}, - {0x30CD, "\002\045\355\140"}, - {0x30CE, "\002\045\355\113"}, - {0x30CF, "\002\045\314"}, - {0x30D0, "\002\045\355\052"}, - {0x30D1, "\002\045\327"}, - {0x30D2, "\002\045\355\255"}, - {0x30D3, "\002\045\356\304"}, - {0x30D4, "\002\045\355\233"}, - {0x30D5, "\002\045\356\336"}, - {0x30D6, "\002\045\356\003"}, - {0x30D7, "\002\045\357\277"}, - {0x30D8, "\002\045\356\072"}, - {0x30D9, "\002\045\356\142"}, - {0x30DA, "\002\045\356\375"}, - {0x30DB, "\002\045\355\107"}, - {0x30DC, "\002\045\355\377"}, - {0x30DD, "\002\045\355\273"}, - {0x30DE, "\002\045\277"}, - {0x30DF, "\002\045\355\230"}, - {0x30E0, "\002\045\355\111"}, - {0x30E1, "\002\045\355\334"}, - {0x30E2, "\002\045\355\136"}, - {0x30E3, "\002\045\305\005"}, - {0x30E4, "\002\045\305"}, - {0x30E5, "\002\045\355\364\005"}, - {0x30E6, "\002\045\355\364"}, - {0x30E7, "\002\045\355\040\005"}, - {0x30E8, "\002\045\355\040"}, - {0x30E9, "\002\045\322"}, - {0x30EA, "\002\045\355\347"}, - {0x30EB, "\002\045\356\037"}, - {0x30EC, "\002\045\356\035"}, - {0x30ED, "\002\045\355\174"}, - {0x30EE, "\002\045\355\050\005"}, - {0x30EF, "\002\045\355\050"}, - {0x30F0, "\002\045\355\362"}, - {0x30F1, "\002\045\356\270"}, - {0x30F2, "\002\045\355\150"}, - {0x30F3, "\002\045\241"}, - {0x30F4, "\002\045\360\004"}, - {0x30F5, "\002\045\240\005"}, - {0x30F6, "\002\045\355\331\005"}, - {0x30F7, "\002\045\355\241"}, - {0x30F8, "\002\045\360\001"}, - {0x30F9, "\002\045\357\053"}, - {0x30FA, "\002\045\356\132"}, - {0x30FB, "\037\355\137\045"}, - {0x30FC, "\204\356\075\007\355\175\357\013"}, - {0x30FD, "\204\356\156\045"}, - {0x30FE, "\204\356\156\360\003\045"}, - {0x3105, "\001\166\355\021"}, - {0x3106, "\001\166\372\142"}, - {0x3107, "\001\166\276"}, - {0x3108, "\001\166\355\062"}, - {0x3109, "\001\166\261"}, - {0x310A, "\001\166\375\076"}, - {0x310B, "\001\166\241"}, - {0x310C, "\001\166\211"}, - {0x310D, "\001\166\352"}, - {0x310E, "\001\166\360\363"}, - {0x310F, "\001\166\237"}, - {0x3110, "\001\166\362\040"}, - {0x3111, "\001\166\375\263"}, - {0x3112, "\001\166\367\117"}, - {0x3113, "\001\166\361\360"}, - {0x3114, "\001\166\375\115"}, - {0x3115, "\001\166\357\075"}, - {0x3116, "\001\166\355\053"}, - {0x3117, "\001\166\375\342"}, - {0x3118, "\001\166\375\343"}, - {0x3119, "\001\166\223"}, - {0x311A, "\001\166\063"}, - {0x311B, "\001\166\306"}, - {0x311C, "\001\166\130"}, - {0x311D, "\001\166\356\136"}, - {0x311E, "\001\166\307"}, - {0x311F, "\001\166\366\037"}, - {0x3120, "\001\166\362\342"}, - {0x3121, "\001\166\366\020"}, - {0x3122, "\001\166\357\064"}, - {0x3123, "\001\166\013"}, - {0x3124, "\001\166\355\373"}, - {0x3125, "\001\166\356\007"}, - {0x3126, "\001\166\366\026"}, - {0x3127, "\001\166\103"}, - {0x3128, "\001\166\113"}, - {0x3129, "\001\166\132"}, - {0x312A, "\001\166\355\025"}, - {0x312B, "\001\166\355\336"}, - {0x312C, "\001\166\366\233"}, - {0x3131, "\001\014\355\333"}, - {0x3132, "\001\014\357\040"}, - {0x3133, "\001\014\357\221"}, - {0x3134, "\001\014\355\337"}, - {0x3135, "\001\014\357\246"}, - {0x3136, "\001\014\357\245"}, - {0x3137, "\001\014\355\360"}, - {0x3138, "\001\014\357\340"}, - {0x3139, "\001\014\355\350"}, - {0x313A, "\001\014\357\307"}, - {0x313B, "\001\014\357\310"}, - {0x313C, "\001\014\357\312"}, - {0x313D, "\001\014\357\313"}, - {0x313E, "\001\014\357\314"}, - {0x313F, "\001\014\357\311"}, - {0x3140, "\001\014\357\023"}, - {0x3141, "\001\014\355\335"}, - {0x3142, "\001\014\355\345"}, - {0x3143, "\001\014\357\336"}, - {0x3144, "\001\014\357\002"}, - {0x3145, "\001\014\355\351"}, - {0x3146, "\001\014\357\041"}, - {0x3147, "\001\014\355\327"}, - {0x3148, "\001\014\355\276"}, - {0x3149, "\001\014\357\337"}, - {0x314A, "\001\014\355\356"}, - {0x314B, "\001\014\355\330"}, - {0x314C, "\001\014\355\355"}, - {0x314D, "\001\014\355\344"}, - {0x314E, "\001\014\355\325"}, - {0x314F, "\001\014\063"}, - {0x3150, "\001\014\356\136"}, - {0x3151, "\001\014\305"}, - {0x3152, "\001\014\360\016"}, - {0x3153, "\001\014\064"}, - {0x3154, "\001\014\217"}, - {0x3155, "\001\014\355\040"}, - {0x3156, "\001\014\355\303"}, - {0x3157, "\001\014\306"}, - {0x3158, "\001\014\355\050"}, - {0x3159, "\001\014\360\010"}, - {0x315A, "\001\014\356\011"}, - {0x315B, "\001\014\356\273"}, - {0x315C, "\001\014\113"}, - {0x315D, "\001\014\355\150"}, - {0x315E, "\001\014\356\271"}, - {0x315F, "\001\014\355\362"}, - {0x3160, "\001\014\355\151"}, - {0x3161, "\001\014\360\033"}, - {0x3162, "\001\014\360\034"}, - {0x3163, "\001\014\103"}, - {0x3164, "\356\145\014"}, - {0x3165, "\001\014\361\335"}, - {0x3166, "\001\014\357\247"}, - {0x3167, "\001\014\361\113"}, - {0x3168, "\001\014\361\112"}, - {0x3169, "\001\014\361\263"}, - {0x316A, "\001\014\361\267"}, - {0x316B, "\001\014\361\266"}, - {0x316C, "\001\014\361\265"}, - {0x316D, "\001\014\361\270"}, - {0x316E, "\001\014\357\235"}, - {0x316F, "\001\014\361\057"}, - {0x3170, "\001\014\361\056"}, - {0x3171, "\001\014\357\213"}, - {0x3172, "\001\014\361\172"}, - {0x3173, "\001\014\361\200"}, - {0x3174, "\001\014\361\174"}, - {0x3175, "\001\014\361\175"}, - {0x3176, "\001\014\361\177"}, - {0x3177, "\001\014\361\176"}, - {0x3178, "\001\014\357\215"}, - {0x3179, "\001\014\360\365"}, - {0x317A, "\001\014\357\326"}, - {0x317B, "\001\014\361\320"}, - {0x317C, "\001\014\357\330"}, - {0x317D, "\001\014\357\327"}, - {0x317E, "\001\014\361\322"}, - {0x317F, "\001\014\357\265"}, - {0x3180, "\001\014\357\335"}, - {0x3181, "\001\014\360\012"}, - {0x3182, "\001\014\362\113"}, - {0x3183, "\001\014\362\112"}, - {0x3184, "\001\014\357\214"}, - {0x3185, "\001\014\361\334"}, - {0x3186, "\001\014\360\013"}, - {0x3187, "\001\014\362\136"}, - {0x3188, "\001\014\362\137"}, - {0x3189, "\001\014\362\135"}, - {0x318A, "\001\014\362\121"}, - {0x318B, "\001\014\362\122"}, - {0x318C, "\001\014\362\120"}, - {0x318D, "\001\014\360\053"}, - {0x318E, "\001\014\362\371"}, - {0x3190, "\204\355\041\076\007\370\162"}, - {0x3191, "\204\355\041\076\365\161"}, - {0x3192, "\204\355\041\076\110"}, - {0x3193, "\204\355\041\076\127"}, - {0x3194, "\204\355\041\076\136"}, - {0x3195, "\204\355\041\076\220"}, - {0x3196, "\204\355\041\076\212\102"}, - {0x3197, "\204\355\041\076\212\356\307"}, - {0x3198, "\204\355\041\076\212\101"}, - {0x3199, "\204\355\041\076\212\361\222"}, - {0x319A, "\204\355\041\076\212\357\323"}, - {0x319B, "\204\355\041\076\212\375\257"}, - {0x319C, "\204\355\041\076\212\361\243"}, - {0x319D, "\204\355\041\076\212\357\100"}, - {0x319E, "\204\355\041\076\007\033\356\126"}, - {0x319F, "\204\355\041\076\007\370\123"}, - {0x31A0, "\001\166\334"}, - {0x31A1, "\001\166\271"}, - {0x31A2, "\001\166\365\277"}, - {0x31A3, "\001\166\266"}, - {0x31A4, "\001\166\217"}, - {0x31A5, "\001\166\366\005"}, - {0x31A6, "\001\166\064"}, - {0x31A7, "\001\166\361\137"}, - {0x31A8, "\001\166\377\046"}, - {0x31A9, "\001\166\362\331"}, - {0x31AA, "\001\166\367\214"}, - {0x31AB, "\001\166\372\127"}, - {0x31AC, "\001\166\367\204"}, - {0x31AD, "\001\166\371\211"}, - {0x31AE, "\001\166\363\015"}, - {0x31AF, "\001\166\362\343"}, - {0x31B0, "\001\166\356\277"}, - {0x31B1, "\001\166\356\366"}, - {0x31B2, "\001\166\372\077"}, - {0x31B3, "\001\166\367\216"}, - {0x31B4, "\001\166\355\021\032"}, - {0x31B5, "\001\166\261\032"}, - {0x31B6, "\001\166\360\363\032"}, - {0x31B7, "\001\166\237\032"}, - {0x3200, "\014\355\333\075\077"}, - {0x3201, "\014\355\337\075\077"}, - {0x3202, "\014\355\360\075\077"}, - {0x3203, "\014\355\350\075\077"}, - {0x3204, "\014\355\335\075\077"}, - {0x3205, "\014\355\345\075\077"}, - {0x3206, "\014\355\351\075\077"}, - {0x3207, "\014\355\327\075\077"}, - {0x3208, "\014\355\276\075\077"}, - {0x3209, "\014\355\356\075\077"}, - {0x320A, "\014\355\330\075\077"}, - {0x320B, "\014\355\355\075\077"}, - {0x320C, "\014\355\344\075\077"}, - {0x320D, "\014\355\325\075\077"}, - {0x320E, "\014\355\333\063\075\077"}, - {0x320F, "\014\355\337\063\075\077"}, - {0x3210, "\014\355\360\063\075\077"}, - {0x3211, "\014\355\350\063\075\077"}, - {0x3212, "\014\355\335\063\075\077"}, - {0x3213, "\014\355\345\063\075\077"}, - {0x3214, "\014\355\351\063\075\077"}, - {0x3215, "\014\355\327\063\075\077"}, - {0x3216, "\014\355\276\063\075\077"}, - {0x3217, "\014\355\356\063\075\077"}, - {0x3218, "\014\355\330\063\075\077"}, - {0x3219, "\014\355\355\063\075\077"}, - {0x321A, "\014\355\344\063\075\077"}, - {0x321B, "\014\355\325\063\075\077"}, - {0x321C, "\014\355\276\113\075\077"}, - {0x3220, "\016\110\075\077"}, - {0x3221, "\016\127\075\077"}, - {0x3222, "\016\136\075\077"}, - {0x3223, "\016\220\075\077"}, - {0x3224, "\016\230\075\077"}, - {0x3225, "\016\255\075\077"}, - {0x3226, "\016\252\075\077"}, - {0x3227, "\016\226\075\077"}, - {0x3228, "\016\257\075\077"}, - {0x3229, "\016\355\034\075\077"}, - {0x322A, "\016\356\101\075\077"}, - {0x322B, "\016\356\177\075\077"}, - {0x322C, "\016\356\066\075\077"}, - {0x322D, "\016\356\001\075\077"}, - {0x322E, "\016\361\103\075\077"}, - {0x322F, "\016\356\126\075\077"}, - {0x3230, "\016\356\044\075\077"}, - {0x3231, "\016\361\050\075\077"}, - {0x3232, "\016\360\061\075\077"}, - {0x3233, "\016\357\331\075\077"}, - {0x3234, "\016\361\116\075\077"}, - {0x3235, "\016\361\333\075\077"}, - {0x3236, "\016\360\241\075\077"}, - {0x3237, "\016\360\254\075\077"}, - {0x3238, "\016\357\364\075\077"}, - {0x3239, "\016\374\056\075\077"}, - {0x323A, "\016\362\347\075\077"}, - {0x323B, "\016\362\157\075\077"}, - {0x323C, "\016\375\040\075\077"}, - {0x323D, "\016\360\232\075\077"}, - {0x323E, "\016\361\256\075\077"}, - {0x323F, "\016\360\046\075\077"}, - {0x3240, "\016\366\060\075\077"}, - {0x3241, "\016\361\255\075\077"}, - {0x3242, "\016\374\343\075\077"}, - {0x3243, "\016\363\002\075\077"}, - {0x3260, "\014\051\355\333"}, - {0x3261, "\014\051\355\337"}, - {0x3262, "\014\051\355\360"}, - {0x3263, "\014\051\355\350"}, - {0x3264, "\014\051\355\335"}, - {0x3265, "\014\051\355\345"}, - {0x3266, "\014\051\355\351"}, - {0x3267, "\014\051\355\327"}, - {0x3268, "\014\051\355\276"}, - {0x3269, "\014\051\355\356"}, - {0x326A, "\014\051\355\330"}, - {0x326B, "\014\051\355\355"}, - {0x326C, "\014\051\355\344"}, - {0x326D, "\014\051\355\325"}, - {0x326E, "\014\051\355\333\063"}, - {0x326F, "\014\051\355\337\063"}, - {0x3270, "\014\051\355\360\063"}, - {0x3271, "\014\051\355\350\063"}, - {0x3272, "\014\051\355\335\063"}, - {0x3273, "\014\051\355\345\063"}, - {0x3274, "\014\051\355\351\063"}, - {0x3275, "\014\051\355\327\063"}, - {0x3276, "\014\051\355\276\063"}, - {0x3277, "\014\051\355\356\063"}, - {0x3278, "\014\051\355\330\063"}, - {0x3279, "\014\051\355\355\063"}, - {0x327A, "\014\051\355\344\063"}, - {0x327B, "\014\051\355\325\063"}, - {0x327F, "\022\007\361\117\365\076"}, - {0x3280, "\016\110\051"}, - {0x3281, "\016\127\051"}, - {0x3282, "\016\136\051"}, - {0x3283, "\016\220\051"}, - {0x3284, "\016\230\051"}, - {0x3285, "\016\255\051"}, - {0x3286, "\016\252\051"}, - {0x3287, "\016\226\051"}, - {0x3288, "\016\257\051"}, - {0x3289, "\016\355\034\051"}, - {0x328A, "\016\356\101\051"}, - {0x328B, "\016\356\177\051"}, - {0x328C, "\016\356\066\051"}, - {0x328D, "\016\356\001\051"}, - {0x328E, "\016\361\103\051"}, - {0x328F, "\016\356\126\051"}, - {0x3290, "\016\356\044\051"}, - {0x3291, "\016\361\050\051"}, - {0x3292, "\016\360\061\051"}, - {0x3293, "\016\357\331\051"}, - {0x3294, "\016\361\116\051"}, - {0x3295, "\016\361\333\051"}, - {0x3296, "\016\360\241\051"}, - {0x3297, "\016\360\254\051"}, - {0x3298, "\016\357\364\051"}, - {0x3299, "\016\374\242\051"}, - {0x329A, "\016\361\102\051"}, - {0x329B, "\016\360\237\051"}, - {0x329C, "\016\362\277\051"}, - {0x329D, "\016\366\031\051"}, - {0x329E, "\016\360\345\051"}, - {0x329F, "\016\363\004\051"}, - {0x32A0, "\016\362\364\051"}, - {0x32A1, "\016\361\255\051"}, - {0x32A2, "\016\365\067\051"}, - {0x32A3, "\016\365\074\051"}, - {0x32A4, "\016\102\051"}, - {0x32A5, "\016\356\307\051"}, - {0x32A6, "\016\101\051"}, - {0x32A7, "\016\052\051"}, - {0x32A8, "\016\221\051"}, - {0x32A9, "\016\371\060\051"}, - {0x32AA, "\016\374\052\051"}, - {0x32AB, "\016\362\157\051"}, - {0x32AC, "\016\375\041\051"}, - {0x32AD, "\016\360\232\051"}, - {0x32AE, "\016\361\256\051"}, - {0x32AF, "\016\360\046\051"}, - {0x32B0, "\016\371\364\051"}, - {0x32C0, "\022\162\076\367\256"}, - {0x32C1, "\022\162\076\366\134"}, - {0x32C2, "\022\162\076\370\271"}, - {0x32C3, "\022\162\076\363\010"}, - {0x32C4, "\022\162\076\361\047"}, - {0x32C5, "\022\162\076\367\327"}, - {0x32C6, "\022\162\076\367\326"}, - {0x32C7, "\022\162\076\362\345"}, - {0x32C8, "\022\162\076\374\252"}, - {0x32C9, "\022\162\076\372\073"}, - {0x32CA, "\022\162\076\371\330"}, - {0x32CB, "\022\162\076\365\352"}, - {0x32D0, "\045\051\063"}, - {0x32D1, "\045\051\103"}, - {0x32D2, "\045\051\132"}, - {0x32D3, "\045\051\130"}, - {0x32D4, "\045\051\064"}, - {0x32D5, "\045\051\240"}, - {0x32D6, "\045\051\355\332"}, - {0x32D7, "\045\051\356\021"}, - {0x32D8, "\045\051\355\331"}, - {0x32D9, "\045\051\355\167"}, - {0x32DA, "\045\051\355\004"}, - {0x32DB, "\045\051\355\275"}, - {0x32DC, "\045\051\356\253"}, - {0x32DD, "\045\051\356\042"}, - {0x32DE, "\045\051\355\070"}, - {0x32DF, "\045\051\311"}, - {0x32E0, "\045\051\355\217"}, - {0x32E1, "\045\051\355\300"}, - {0x32E2, "\045\051\356\125"}, - {0x32E3, "\045\051\355\176"}, - {0x32E4, "\045\051\354"}, - {0x32E5, "\045\051\244"}, - {0x32E6, "\045\051\356\025"}, - {0x32E7, "\045\051\355\140"}, - {0x32E8, "\045\051\355\113"}, - {0x32E9, "\045\051\314"}, - {0x32EA, "\045\051\355\255"}, - {0x32EB, "\045\051\356\336"}, - {0x32EC, "\045\051\356\072"}, - {0x32ED, "\045\051\355\107"}, - {0x32EE, "\045\051\277"}, - {0x32EF, "\045\051\355\230"}, - {0x32F0, "\045\051\355\111"}, - {0x32F1, "\045\051\355\334"}, - {0x32F2, "\045\051\355\136"}, - {0x32F3, "\045\051\305"}, - {0x32F4, "\045\051\355\364"}, - {0x32F5, "\045\051\355\040"}, - {0x32F6, "\045\051\322"}, - {0x32F7, "\045\051\355\347"}, - {0x32F8, "\045\051\356\037"}, - {0x32F9, "\045\051\356\035"}, - {0x32FA, "\045\051\355\174"}, - {0x32FB, "\045\051\355\050"}, - {0x32FC, "\045\051\355\362"}, - {0x32FD, "\045\051\356\270"}, - {0x32FE, "\045\051\355\150"}, - {0x3300, "\362\352\046\013\035"}, - {0x3301, "\362\365\046\013\035"}, - {0x3302, "\362\337\046\013\035"}, - {0x3303, "\377\001\046\013\035"}, - {0x3304, "\367\213\046\013\035"}, - {0x3305, "\367\222\046\013\035"}, - {0x3306, "\375\373\046\013\035"}, - {0x3307, "\366\023\046\013\035"}, - {0x3308, "\377\043\046\013\035"}, - {0x3309, "\372\102\046\013\035"}, - {0x330A, "\377\064\046\013\035"}, - {0x330B, "\367\356\046\013\035"}, - {0x330C, "\367\364\046\013\035"}, - {0x330D, "\367\366\046\013\035"}, - {0x330E, "\366\142\046\013\035"}, - {0x330F, "\366\137\046\013\035"}, - {0x3310, "\366\223\046\013\035"}, - {0x3311, "\366\225\046\013\035"}, - {0x3312, "\370\107\046\013\035"}, - {0x3313, "\366\227\046\013\035"}, - {0x3314, "\370\017\046\013\035"}, - {0x3315, "\370\020\046\013\035"}, - {0x3316, "\370\021\046\013\035"}, - {0x3317, "\370\022\046\013\035"}, - {0x3318, "\366\261\046\013\035"}, - {0x3319, "\366\262\046\013\035"}, - {0x331A, "\370\057\046\013\035"}, - {0x331B, "\370\061\046\013\035"}, - {0x331C, "\370\116\046\013\035"}, - {0x331D, "\370\041\046\013\035"}, - {0x331E, "\370\121\046\013\035"}, - {0x331F, "\374\211\046\013\035"}, - {0x3320, "\374\221\046\013\035"}, - {0x3321, "\374\321\046\013\035"}, - {0x3322, "\374\247\046\013\035"}, - {0x3323, "\374\250\046\013\035"}, - {0x3324, "\365\351\046\013\035"}, - {0x3325, "\365\255\046\013\035"}, - {0x3326, "\365\324\046\013\035"}, - {0x3327, "\375\226\046\013\035"}, - {0x3328, "\371\102\046\013\035"}, - {0x3329, "\371\325\046\013\035"}, - {0x332A, "\366\310\046\013\035"}, - {0x332B, "\373\324\046\013\035"}, - {0x332C, "\373\325\046\013\035"}, - {0x332D, "\363\211\046\013\035"}, - {0x332E, "\372\224\046\013\035"}, - {0x332F, "\372\232\046\013\035"}, - {0x3330, "\372\231\046\013\035"}, - {0x3331, "\363\135\046\013\035"}, - {0x3332, "\367\120\046\013\035"}, - {0x3333, "\367\126\046\013\035"}, - {0x3334, "\363\175\046\013\035"}, - {0x3335, "\367\125\046\013\035"}, - {0x3336, "\366\323\046\013\035"}, - {0x3337, "\372\206\046\013\035"}, - {0x3338, "\372\175\046\013\035"}, - {0x3339, "\366\326\046\013\035"}, - {0x333A, "\372\176\046\013\035"}, - {0x333B, "\373\330\046\013\035"}, - {0x333C, "\356\305\046\013\035"}, - {0x333D, "\372\251\046\013\035"}, - {0x333E, "\363\150\046\013\035"}, - {0x333F, "\367\100\046\013\035"}, - {0x3340, "\373\254\046\013\035"}, - {0x3341, "\367\163\046\013\035"}, - {0x3342, "\367\162\046\013\035"}, - {0x3343, "\370\303\046\013\035"}, - {0x3344, "\370\302\046\013\035"}, - {0x3345, "\370\252\046\013\035"}, - {0x3346, "\370\256\046\013\035"}, - {0x3347, "\370\264\046\013\035"}, - {0x3348, "\370\360\046\013\035"}, - {0x3349, "\370\370\046\013\035"}, - {0x334A, "\370\371\046\013\035"}, - {0x334B, "\357\244\046\013\035"}, - {0x334C, "\371\063\046\013\035"}, - {0x334D, "\371\065\046\013\035"}, - {0x334E, "\376\226\046\013\035"}, - {0x334F, "\376\227\046\013\035"}, - {0x3350, "\376\204\046\013\035"}, - {0x3351, "\374\067\046\013\035"}, - {0x3352, "\374\066\046\013\035"}, - {0x3353, "\374\151\046\013\035"}, - {0x3354, "\374\203\046\013\035"}, - {0x3355, "\374\053\046\013\035"}, - {0x3356, "\374\054\046\013\035"}, - {0x3357, "\376\075\046\013\035"}, - {0x3358, "\022\162\076\341\331"}, - {0x3359, "\022\162\076\341\110"}, - {0x335A, "\022\162\076\341\127"}, - {0x335B, "\022\162\076\341\136"}, - {0x335C, "\022\162\076\341\220"}, - {0x335D, "\022\162\076\341\230"}, - {0x335E, "\022\162\076\341\255"}, - {0x335F, "\022\162\076\341\252"}, - {0x3360, "\022\162\076\341\226"}, - {0x3361, "\022\162\076\341\257"}, - {0x3362, "\022\162\076\341\355\034"}, - {0x3363, "\022\162\076\341\356\027"}, - {0x3364, "\022\162\076\341\355\317"}, - {0x3365, "\022\162\076\341\356\260"}, - {0x3366, "\022\162\076\341\356\246"}, - {0x3367, "\022\162\076\341\356\250"}, - {0x3368, "\022\162\076\341\356\043"}, - {0x3369, "\022\162\076\341\356\162"}, - {0x336A, "\022\162\076\341\356\160"}, - {0x336B, "\022\162\076\341\356\161"}, - {0x336C, "\022\162\076\341\356\050"}, - {0x336D, "\022\162\076\341\362\066"}, - {0x336E, "\022\162\076\341\362\065"}, - {0x336F, "\022\162\076\341\362\070"}, - {0x3370, "\022\162\076\341\362\067"}, - {0x3371, "\367\116\046\013\035"}, - {0x3372, "\355\002\046\013\035"}, - {0x3373, "\355\307\046\013\035"}, - {0x3374, "\363\031\046\013\035"}, - {0x3375, "\372\135\046\013\035"}, - {0x3376, "\372\172\046\013\035"}, - {0x337B, "\357\062\366\330\046\013\035"}, - {0x337C, "\357\062\363\343\046\013\035"}, - {0x337D, "\357\062\375\113\046\013\035"}, - {0x337E, "\357\062\370\323\046\013\035"}, - {0x337F, "\357\331\046\013\035"}, - {0x3380, "\327\362\323\046\013\035"}, - {0x3381, "\354\046\013\035"}, - {0x3382, "\355\111\063\046\013\035"}, - {0x3383, "\277\046\013\035"}, - {0x3384, "\240\046\013\035"}, - {0x3385, "\367\374\046\013\035"}, - {0x3386, "\361\051\046\013\035"}, - {0x3387, "\366\145\046\013\035"}, - {0x3388, "\363\225\046\013\035"}, - {0x3389, "\367\375\046\013\035"}, - {0x338A, "\372\207\046\013\035"}, - {0x338B, "\371\201\046\013\035"}, - {0x338C, "\355\111\355\062\046\013\035"}, - {0x338D, "\355\111\266\046\013\035"}, - {0x338E, "\370\324\046\013\035"}, - {0x338F, "\360\370\046\013\035"}, - {0x3390, "\367\155\046\013\035"}, - {0x3391, "\370\011\046\013\035"}, - {0x3392, "\370\353\046\013\035"}, - {0x3393, "\366\215\046\013\035"}, - {0x3394, "\375\176\046\013\035"}, - {0x3395, "\355\111\211\046\013\035"}, - {0x3396, "\371\003\046\013\035"}, - {0x3397, "\365\313\046\013\035"}, - {0x3398, "\370\034\046\013\035"}, - {0x3399, "\366\075\046\013\035"}, - {0x339A, "\371\302\046\013\035"}, - {0x339B, "\355\111\276\046\013\035"}, - {0x339C, "\357\236\046\013\035"}, - {0x339D, "\357\104\046\013\035"}, - {0x339E, "\356\343\046\013\035"}, - {0x339F, "\357\236\035\046\013\035"}, - {0x33A0, "\357\104\035\046\013\035"}, - {0x33A1, "\276\035\046\013\035"}, - {0x33A2, "\356\343\035\046\013\035"}, - {0x33A3, "\357\236\356\316\046\013\035"}, - {0x33A4, "\357\104\356\316\046\013\035"}, - {0x33A5, "\276\356\316\046\013\035"}, - {0x33A6, "\356\343\356\316\046\013\035"}, - {0x33A7, "\276\355\146\223\046\013\035"}, - {0x33A8, "\276\355\146\223\035\046\013\035"}, - {0x33A9, "\327\046\013\035"}, - {0x33AA, "\370\047\046\013\035"}, - {0x33AB, "\371\026\046\013\035"}, - {0x33AC, "\366\241\046\013\035"}, - {0x33AD, "\357\020\046\013\035"}, - {0x33AE, "\357\020\355\146\223\046\013\035"}, - {0x33AF, "\357\020\355\146\223\035\046\013\035"}, - {0x33B0, "\373\301\046\013\035"}, - {0x33B1, "\371\362\046\013\035"}, - {0x33B2, "\355\111\223\046\013\035"}, - {0x33B3, "\371\027\046\013\035"}, - {0x33B4, "\373\312\046\013\035"}, - {0x33B5, "\371\376\046\013\035"}, - {0x33B6, "\355\111\355\025\046\013\035"}, - {0x33B7, "\361\100\046\013\035"}, - {0x33B8, "\370\064\046\013\035"}, - {0x33B9, "\361\100\357\244\046\013\035"}, - {0x33BA, "\373\313\046\013\035"}, - {0x33BB, "\371\377\046\013\035"}, - {0x33BC, "\355\111\347\046\013\035"}, - {0x33BD, "\361\101\046\013\035"}, - {0x33BE, "\370\065\046\013\035"}, - {0x33BF, "\361\101\357\244\046\013\035"}, - {0x33C0, "\352\356\365\046\013\035"}, - {0x33C1, "\276\356\365\046\013\035"}, - {0x33C2, "\356\277\046\013\035"}, - {0x33C3, "\363\160\046\013\035"}, - {0x33C4, "\363\241\046\013\035"}, - {0x33C5, "\363\242\046\013\035"}, - {0x33C6, "\313\355\146\360\370\046\013\035"}, - {0x33C7, "\360\133\046\013\035"}, - {0x33C8, "\365\203\046\013\035"}, - {0x33C9, "\366\274\046\013\035"}, - {0x33CA, "\314\046\013\035"}, - {0x33CB, "\367\115\046\013\035"}, - {0x33CC, "\357\175\046\013\035"}, - {0x33CD, "\361\002\046\013\035"}, - {0x33CE, "\356\343\010\046\013\035"}, - {0x33CF, "\370\051\046\013\035"}, - {0x33D0, "\370\176\046\013\035"}, - {0x33D1, "\370\177\046\013\035"}, - {0x33D2, "\370\201\046\013\035"}, - {0x33D3, "\370\227\046\013\035"}, - {0x33D4, "\361\051\005\046\013\035"}, - {0x33D5, "\370\361\046\013\035"}, - {0x33D6, "\371\012\046\013\035"}, - {0x33D7, "\372\210\046\013\035"}, - {0x33D8, "\372\250\046\013\035"}, - {0x33D9, "\373\263\046\013\035"}, - {0x33DA, "\373\264\046\013\035"}, - {0x33DB, "\374\370\046\013\035"}, - {0x33DC, "\375\050\046\013\035"}, - {0x33DD, "\376\077\046\013\035"}, - {0x33E0, "\022\162\076\303\110"}, - {0x33E1, "\022\162\076\303\127"}, - {0x33E2, "\022\162\076\303\136"}, - {0x33E3, "\022\162\076\303\220"}, - {0x33E4, "\022\162\076\303\230"}, - {0x33E5, "\022\162\076\303\255"}, - {0x33E6, "\022\162\076\303\252"}, - {0x33E7, "\022\162\076\303\226"}, - {0x33E8, "\022\162\076\303\257"}, - {0x33E9, "\022\162\076\303\355\034"}, - {0x33EA, "\022\162\076\303\356\027"}, - {0x33EB, "\022\162\076\303\355\317"}, - {0x33EC, "\022\162\076\356\260"}, - {0x33ED, "\022\162\076\303\356\246"}, - {0x33EE, "\022\162\076\303\356\250"}, - {0x33EF, "\022\162\076\303\356\043"}, - {0x33F0, "\022\162\076\303\356\162"}, - {0x33F1, "\022\162\076\303\356\160"}, - {0x33F2, "\022\162\076\303\356\161"}, - {0x33F3, "\022\162\076\303\356\050"}, - {0x33F4, "\022\162\076\303\362\066"}, - {0x33F5, "\022\162\076\303\362\065"}, - {0x33F6, "\022\162\076\303\362\070"}, - {0x33F7, "\022\162\076\303\362\067"}, - {0x33F8, "\022\162\076\303\376\032"}, - {0x33F9, "\022\162\076\303\376\036"}, - {0x33FA, "\022\162\076\303\376\035"}, - {0x33FB, "\022\162\076\303\376\033"}, - {0x33FC, "\022\162\076\303\376\034"}, - {0x33FD, "\022\162\076\303\357\365"}, - {0x33FE, "\022\162\076\303\375\253"}, - {0xA000, "\002\003\367\235"}, - {0xA001, "\002\003\367\237"}, - {0xA002, "\002\003\103"}, - {0xA003, "\002\003\367\226"}, - {0xA004, "\002\003\367\176"}, - {0xA005, "\002\003\367\177"}, - {0xA006, "\002\003\367\174"}, - {0xA007, "\002\003\367\175"}, - {0xA008, "\002\003\362\377"}, - {0xA009, "\002\003\363\011"}, - {0xA00A, "\002\003\063"}, - {0xA00B, "\002\003\362\346"}, - {0xA00C, "\002\003\375\375"}, - {0xA00D, "\002\003\375\372"}, - {0xA00E, "\002\003\375\374"}, - {0xA00F, "\002\003\372\115"}, - {0xA010, "\002\003\372\136"}, - {0xA011, "\002\003\064"}, - {0xA012, "\002\003\361\140"}, - {0xA013, "\002\003\366\030"}, - {0xA014, "\002\003\130"}, - {0xA015, "\002\003\376\105"}, - {0xA016, "\002\003\363\140"}, - {0xA017, "\002\003\363\141"}, - {0xA018, "\002\003\356\304"}, - {0xA019, "\002\003\363\133"}, - {0xA01A, "\002\003\363\125"}, - {0xA01B, "\002\003\363\126"}, - {0xA01C, "\002\003\363\123"}, - {0xA01D, "\002\003\363\124"}, - {0xA01E, "\002\003\363\037"}, - {0xA01F, "\002\003\363\042"}, - {0xA020, "\002\003\355\052"}, - {0xA021, "\002\003\363\030"}, - {0xA022, "\002\003\363\171"}, - {0xA023, "\002\003\363\167"}, - {0xA024, "\002\003\363\170"}, - {0xA025, "\002\003\363\151"}, - {0xA026, "\002\003\363\156"}, - {0xA027, "\002\003\355\377"}, - {0xA028, "\002\003\363\147"}, - {0xA029, "\002\003\363\115"}, - {0xA02A, "\002\003\356\142"}, - {0xA02B, "\002\003\363\112"}, - {0xA02C, "\002\003\363\176"}, - {0xA02D, "\002\003\363\177"}, - {0xA02E, "\002\003\356\003"}, - {0xA02F, "\002\003\363\172"}, - {0xA030, "\002\003\363\174"}, - {0xA031, "\002\003\360\101"}, - {0xA032, "\002\003\363\205"}, - {0xA033, "\002\003\363\206"}, - {0xA034, "\002\003\363\201"}, - {0xA035, "\002\003\363\202"}, - {0xA036, "\002\003\363\204"}, - {0xA037, "\002\003\363\203"}, - {0xA038, "\002\003\372\234"}, - {0xA039, "\002\003\372\235"}, - {0xA03A, "\002\003\355\233"}, - {0xA03B, "\002\003\372\233"}, - {0xA03C, "\002\003\372\230"}, - {0xA03D, "\002\003\372\225"}, - {0xA03E, "\002\003\372\226"}, - {0xA03F, "\002\003\372\164"}, - {0xA040, "\002\003\372\167"}, - {0xA041, "\002\003\327"}, - {0xA042, "\002\003\372\153"}, - {0xA043, "\002\003\373\305"}, - {0xA044, "\002\003\373\303"}, - {0xA045, "\002\003\373\304"}, - {0xA046, "\002\003\373\257"}, - {0xA047, "\002\003\373\262"}, - {0xA048, "\002\003\355\273"}, - {0xA049, "\002\003\373\255"}, - {0xA04A, "\002\003\361\230"}, - {0xA04B, "\002\003\373\311"}, - {0xA04C, "\002\003\357\277"}, - {0xA04D, "\002\003\373\306"}, - {0xA04E, "\002\003\373\310"}, - {0xA04F, "\002\003\373\307"}, - {0xA050, "\002\003\361\231"}, - {0xA051, "\002\003\373\321"}, - {0xA052, "\002\003\373\315"}, - {0xA053, "\002\003\373\316"}, - {0xA054, "\002\003\373\320"}, - {0xA055, "\002\003\373\317"}, - {0xA056, "\002\003\363\061"}, - {0xA057, "\002\003\363\062"}, - {0xA058, "\002\003\363\053"}, - {0xA059, "\002\003\363\060"}, - {0xA05A, "\002\003\363\056"}, - {0xA05B, "\002\003\363\057"}, - {0xA05C, "\002\003\363\054"}, - {0xA05D, "\002\003\363\055"}, - {0xA05E, "\002\003\363\046"}, - {0xA05F, "\002\003\363\047"}, - {0xA060, "\002\003\363\044"}, - {0xA061, "\002\003\363\045"}, - {0xA062, "\002\003\363\072"}, - {0xA063, "\002\003\363\070"}, - {0xA064, "\002\003\363\071"}, - {0xA065, "\002\003\363\065"}, - {0xA066, "\002\003\363\066"}, - {0xA067, "\002\003\363\063"}, - {0xA068, "\002\003\363\064"}, - {0xA069, "\002\003\363\052"}, - {0xA06A, "\002\003\363\050"}, - {0xA06B, "\002\003\363\051"}, - {0xA06C, "\002\003\360\070"}, - {0xA06D, "\002\003\363\076"}, - {0xA06E, "\002\003\363\067"}, - {0xA06F, "\002\003\363\073"}, - {0xA070, "\002\003\363\075"}, - {0xA071, "\002\003\363\074"}, - {0xA072, "\002\003\363\101"}, - {0xA073, "\002\003\363\102"}, - {0xA074, "\002\003\363\077"}, - {0xA075, "\002\003\363\100"}, - {0xA076, "\002\003\371\122"}, - {0xA077, "\002\003\371\123"}, - {0xA078, "\002\003\371\116"}, - {0xA079, "\002\003\371\121"}, - {0xA07A, "\002\003\371\120"}, - {0xA07B, "\002\003\361\107"}, - {0xA07C, "\002\003\371\117"}, - {0xA07D, "\002\003\371\114"}, - {0xA07E, "\002\003\371\115"}, - {0xA07F, "\002\003\371\112"}, - {0xA080, "\002\003\371\113"}, - {0xA081, "\002\003\371\126"}, - {0xA082, "\002\003\371\127"}, - {0xA083, "\002\003\371\124"}, - {0xA084, "\002\003\371\125"}, - {0xA085, "\002\003\371\134"}, - {0xA086, "\002\003\371\135"}, - {0xA087, "\002\003\371\130"}, - {0xA088, "\002\003\371\131"}, - {0xA089, "\002\003\371\133"}, - {0xA08A, "\002\003\371\132"}, - {0xA08B, "\002\003\371\142"}, - {0xA08C, "\002\003\371\143"}, - {0xA08D, "\002\003\371\136"}, - {0xA08E, "\002\003\371\137"}, - {0xA08F, "\002\003\371\141"}, - {0xA090, "\002\003\371\140"}, - {0xA091, "\002\003\367\030"}, - {0xA092, "\002\003\367\031"}, - {0xA093, "\002\003\367\023"}, - {0xA094, "\002\003\367\027"}, - {0xA095, "\002\003\367\026"}, - {0xA096, "\002\003\367\024"}, - {0xA097, "\002\003\367\025"}, - {0xA098, "\002\003\367\021"}, - {0xA099, "\002\003\367\022"}, - {0xA09A, "\002\003\367\017"}, - {0xA09B, "\002\003\367\020"}, - {0xA09C, "\002\003\367\040"}, - {0xA09D, "\002\003\367\036"}, - {0xA09E, "\002\003\367\037"}, - {0xA09F, "\002\003\367\033"}, - {0xA0A0, "\002\003\367\034"}, - {0xA0A1, "\002\003\360\323"}, - {0xA0A2, "\002\003\367\032"}, - {0xA0A3, "\002\003\367\044"}, - {0xA0A4, "\002\003\367\045"}, - {0xA0A5, "\002\003\367\035"}, - {0xA0A6, "\002\003\367\041"}, - {0xA0A7, "\002\003\367\043"}, - {0xA0A8, "\002\003\367\042"}, - {0xA0A9, "\002\003\367\052"}, - {0xA0AA, "\002\003\367\046"}, - {0xA0AB, "\002\003\367\047"}, - {0xA0AC, "\002\003\367\051"}, - {0xA0AD, "\002\003\367\050"}, - {0xA0AE, "\002\003\370\373"}, - {0xA0AF, "\002\003\370\374"}, - {0xA0B0, "\002\003\355\230"}, - {0xA0B1, "\002\003\370\367"}, - {0xA0B2, "\002\003\370\357"}, - {0xA0B3, "\002\003\370\355"}, - {0xA0B4, "\002\003\370\356"}, - {0xA0B5, "\002\003\370\275"}, - {0xA0B6, "\002\003\370\301"}, - {0xA0B7, "\002\003\277"}, - {0xA0B8, "\002\003\370\265"}, - {0xA0B9, "\002\003\371\035"}, - {0xA0BA, "\002\003\371\036"}, - {0xA0BB, "\002\003\371\033"}, - {0xA0BC, "\002\003\371\034"}, - {0xA0BD, "\002\003\361\065"}, - {0xA0BE, "\002\003\371\023"}, - {0xA0BF, "\002\003\355\136"}, - {0xA0C0, "\002\003\361\062"}, - {0xA0C1, "\002\003\370\322"}, - {0xA0C2, "\002\003\355\334"}, - {0xA0C3, "\002\003\371\042"}, - {0xA0C4, "\002\003\371\043"}, - {0xA0C5, "\002\003\355\111"}, - {0xA0C6, "\002\003\371\037"}, - {0xA0C7, "\002\003\371\040"}, - {0xA0C8, "\002\003\361\077"}, - {0xA0C9, "\002\003\371\050"}, - {0xA0CA, "\002\003\371\051"}, - {0xA0CB, "\002\003\371\045"}, - {0xA0CC, "\002\003\371\046"}, - {0xA0CD, "\002\003\366\070"}, - {0xA0CE, "\002\003\366\071"}, - {0xA0CF, "\002\003\356\200"}, - {0xA0D0, "\002\003\366\067"}, - {0xA0D1, "\002\003\366\046"}, - {0xA0D2, "\002\003\366\050"}, - {0xA0D3, "\002\003\355\225"}, - {0xA0D4, "\002\003\366\044"}, - {0xA0D5, "\002\003\366\105"}, - {0xA0D6, "\002\003\356\014"}, - {0xA0D7, "\002\003\366\101"}, - {0xA0D8, "\002\003\366\116"}, - {0xA0D9, "\002\003\366\117"}, - {0xA0DA, "\002\003\366\111"}, - {0xA0DB, "\002\003\366\112"}, - {0xA0DC, "\002\003\366\114"}, - {0xA0DD, "\002\003\366\113"}, - {0xA0DE, "\002\003\366\123"}, - {0xA0DF, "\002\003\366\124"}, - {0xA0E0, "\002\003\366\121"}, - {0xA0E1, "\002\003\366\122"}, - {0xA0E2, "\002\003\376\046"}, - {0xA0E3, "\002\003\376\047"}, - {0xA0E4, "\002\003\360\001"}, - {0xA0E5, "\002\003\376\037"}, - {0xA0E6, "\002\003\376\027"}, - {0xA0E7, "\002\003\376\030"}, - {0xA0E8, "\002\003\376\024"}, - {0xA0E9, "\002\003\376\025"}, - {0xA0EA, "\002\003\376\012"}, - {0xA0EB, "\002\003\376\013"}, - {0xA0EC, "\002\003\355\241"}, - {0xA0ED, "\002\003\376\006"}, - {0xA0EE, "\002\003\376\052"}, - {0xA0EF, "\002\003\376\054"}, - {0xA0F0, "\002\003\356\132"}, - {0xA0F1, "\002\003\376\051"}, - {0xA0F2, "\002\003\376\020"}, - {0xA0F3, "\002\003\362\062"}, - {0xA0F4, "\002\003\376\060"}, - {0xA0F5, "\002\003\376\061"}, - {0xA0F6, "\002\003\360\004"}, - {0xA0F7, "\002\003\376\056"}, - {0xA0F8, "\002\003\376\057"}, - {0xA0F9, "\002\003\362\077"}, - {0xA0FA, "\002\003\376\067"}, - {0xA0FB, "\002\003\376\070"}, - {0xA0FC, "\002\003\376\063"}, - {0xA0FD, "\002\003\376\064"}, - {0xA0FE, "\002\003\376\066"}, - {0xA0FF, "\002\003\376\065"}, - {0xA100, "\002\003\365\274"}, - {0xA101, "\002\003\355\034"}, - {0xA102, "\002\003\356\062"}, - {0xA103, "\002\003\365\270"}, - {0xA104, "\002\003\365\266"}, - {0xA105, "\002\003\365\264"}, - {0xA106, "\002\003\365\265"}, - {0xA107, "\002\003\365\177"}, - {0xA108, "\002\003\365\202"}, - {0xA109, "\002\003\355\002"}, - {0xA10A, "\002\003\365\174"}, - {0xA10B, "\002\003\365\333"}, - {0xA10C, "\002\003\365\332"}, - {0xA10D, "\002\003\365\325"}, - {0xA10E, "\002\003\365\327"}, - {0xA10F, "\002\003\355\252"}, - {0xA110, "\002\003\365\323"}, - {0xA111, "\002\003\365\257"}, - {0xA112, "\002\003\007"}, - {0xA113, "\002\003\365\251"}, - {0xA114, "\002\003\365\336"}, - {0xA115, "\002\003\365\337"}, - {0xA116, "\002\003\212"}, - {0xA117, "\002\003\365\334"}, - {0xA118, "\002\003\365\335"}, - {0xA119, "\002\003\356\324"}, - {0xA11A, "\002\003\375\214"}, - {0xA11B, "\002\003\375\216"}, - {0xA11C, "\002\003\355\217"}, - {0xA11D, "\002\003\375\207"}, - {0xA11E, "\002\003\375\204"}, - {0xA11F, "\002\003\375\202"}, - {0xA120, "\002\003\375\203"}, - {0xA121, "\002\003\375\106"}, - {0xA122, "\002\003\375\112"}, - {0xA123, "\002\003\311"}, - {0xA124, "\002\003\375\103"}, - {0xA125, "\002\003\375\321"}, - {0xA126, "\002\003\375\322"}, - {0xA127, "\002\003\375\317"}, - {0xA128, "\002\003\375\320"}, - {0xA129, "\002\003\375\232"}, - {0xA12A, "\002\003\375\241"}, - {0xA12B, "\002\003\355\176"}, - {0xA12C, "\002\003\375\230"}, - {0xA12D, "\002\003\375\165"}, - {0xA12E, "\002\003\356\125"}, - {0xA12F, "\002\003\375\161"}, - {0xA130, "\002\003\375\326"}, - {0xA131, "\002\003\375\327"}, - {0xA132, "\002\003\355\300"}, - {0xA133, "\002\003\375\323"}, - {0xA134, "\002\003\375\325"}, - {0xA135, "\002\003\375\324"}, - {0xA136, "\002\003\365\216"}, - {0xA137, "\002\003\365\217"}, - {0xA138, "\002\003\360\164"}, - {0xA139, "\002\003\365\215"}, - {0xA13A, "\002\003\365\214"}, - {0xA13B, "\002\003\365\212"}, - {0xA13C, "\002\003\365\213"}, - {0xA13D, "\002\003\365\205"}, - {0xA13E, "\002\003\365\206"}, - {0xA13F, "\002\003\355\120"}, - {0xA140, "\002\003\365\204"}, - {0xA141, "\002\003\365\227"}, - {0xA142, "\002\003\365\225"}, - {0xA143, "\002\003\365\226"}, - {0xA144, "\002\003\365\221"}, - {0xA145, "\002\003\365\223"}, - {0xA146, "\002\003\360\165"}, - {0xA147, "\002\003\365\220"}, - {0xA148, "\002\003\365\211"}, - {0xA149, "\002\003\360\163"}, - {0xA14A, "\002\003\365\210"}, - {0xA14B, "\002\003\365\232"}, - {0xA14C, "\002\003\365\233"}, - {0xA14D, "\002\003\365\224"}, - {0xA14E, "\002\003\365\230"}, - {0xA14F, "\002\003\365\231"}, - {0xA150, "\002\003\360\166"}, - {0xA151, "\002\003\371\157"}, - {0xA152, "\002\003\371\160"}, - {0xA153, "\002\003\371\153"}, - {0xA154, "\002\003\371\156"}, - {0xA155, "\002\003\371\155"}, - {0xA156, "\002\003\371\154"}, - {0xA157, "\002\003\371\146"}, - {0xA158, "\002\003\371\147"}, - {0xA159, "\002\003\371\144"}, - {0xA15A, "\002\003\371\145"}, - {0xA15B, "\002\003\371\163"}, - {0xA15C, "\002\003\371\164"}, - {0xA15D, "\002\003\371\161"}, - {0xA15E, "\002\003\371\162"}, - {0xA15F, "\002\003\371\152"}, - {0xA160, "\002\003\371\150"}, - {0xA161, "\002\003\371\151"}, - {0xA162, "\002\003\371\171"}, - {0xA163, "\002\003\371\172"}, - {0xA164, "\002\003\371\165"}, - {0xA165, "\002\003\371\166"}, - {0xA166, "\002\003\371\170"}, - {0xA167, "\002\003\371\167"}, - {0xA168, "\002\003\367\067"}, - {0xA169, "\002\003\367\070"}, - {0xA16A, "\002\003\367\061"}, - {0xA16B, "\002\003\367\066"}, - {0xA16C, "\002\003\367\064"}, - {0xA16D, "\002\003\367\065"}, - {0xA16E, "\002\003\367\062"}, - {0xA16F, "\002\003\367\063"}, - {0xA170, "\002\003\367\054"}, - {0xA171, "\002\003\367\055"}, - {0xA172, "\002\003\360\324"}, - {0xA173, "\002\003\367\053"}, - {0xA174, "\002\003\367\075"}, - {0xA175, "\002\003\367\074"}, - {0xA176, "\002\003\367\072"}, - {0xA177, "\002\003\367\073"}, - {0xA178, "\002\003\367\071"}, - {0xA179, "\002\003\367\060"}, - {0xA17A, "\002\003\367\056"}, - {0xA17B, "\002\003\367\057"}, - {0xA17C, "\002\003\367\076"}, - {0xA17D, "\002\003\371\245"}, - {0xA17E, "\002\003\371\246"}, - {0xA17F, "\002\003\244"}, - {0xA180, "\002\003\371\243"}, - {0xA181, "\002\003\371\236"}, - {0xA182, "\002\003\371\234"}, - {0xA183, "\002\003\371\235"}, - {0xA184, "\002\003\371\110"}, - {0xA185, "\002\003\354"}, - {0xA186, "\002\003\371\103"}, - {0xA187, "\002\003\371\370"}, - {0xA188, "\002\003\371\366"}, - {0xA189, "\002\003\371\367"}, - {0xA18A, "\002\003\371\324"}, - {0xA18B, "\002\003\371\331"}, - {0xA18C, "\002\003\355\113"}, - {0xA18D, "\002\003\371\323"}, - {0xA18E, "\002\003\371\177"}, - {0xA18F, "\002\003\355\140"}, - {0xA190, "\002\003\371\174"}, - {0xA191, "\002\003\371\374"}, - {0xA192, "\002\003\371\375"}, - {0xA193, "\002\003\356\025"}, - {0xA194, "\002\003\371\371"}, - {0xA195, "\002\003\371\373"}, - {0xA196, "\002\003\371\372"}, - {0xA197, "\002\003\366\372"}, - {0xA198, "\002\003\366\373"}, - {0xA199, "\002\003\366\365"}, - {0xA19A, "\002\003\366\371"}, - {0xA19B, "\002\003\366\370"}, - {0xA19C, "\002\003\366\366"}, - {0xA19D, "\002\003\366\367"}, - {0xA19E, "\002\003\366\360"}, - {0xA19F, "\002\003\366\361"}, - {0xA1A0, "\002\003\366\356"}, - {0xA1A1, "\002\003\366\357"}, - {0xA1A2, "\002\003\367\003"}, - {0xA1A3, "\002\003\367\001"}, - {0xA1A4, "\002\003\367\002"}, - {0xA1A5, "\002\003\366\376"}, - {0xA1A6, "\002\003\366\374"}, - {0xA1A7, "\002\003\366\375"}, - {0xA1A8, "\002\003\366\364"}, - {0xA1A9, "\002\003\366\362"}, - {0xA1AA, "\002\003\366\363"}, - {0xA1AB, "\002\003\367\007"}, - {0xA1AC, "\002\003\367\010"}, - {0xA1AD, "\002\003\366\377"}, - {0xA1AE, "\002\003\367\004"}, - {0xA1AF, "\002\003\367\006"}, - {0xA1B0, "\002\003\367\005"}, - {0xA1B1, "\002\003\367\015"}, - {0xA1B2, "\002\003\367\016"}, - {0xA1B3, "\002\003\367\011"}, - {0xA1B4, "\002\003\367\012"}, - {0xA1B5, "\002\003\367\014"}, - {0xA1B6, "\002\003\367\013"}, - {0xA1B7, "\002\003\370\174"}, - {0xA1B8, "\002\003\370\175"}, - {0xA1B9, "\002\003\356\077"}, - {0xA1BA, "\002\003\370\172"}, - {0xA1BB, "\002\003\370\165"}, - {0xA1BC, "\002\003\370\166"}, - {0xA1BD, "\002\003\361\027"}, - {0xA1BE, "\002\003\370\164"}, - {0xA1BF, "\002\003\370\134"}, - {0xA1C0, "\002\003\370\137"}, - {0xA1C1, "\002\003\033"}, - {0xA1C2, "\002\003\370\133"}, - {0xA1C3, "\002\003\370\217"}, - {0xA1C4, "\002\003\370\220"}, - {0xA1C5, "\002\003\370\215"}, - {0xA1C6, "\002\003\370\216"}, - {0xA1C7, "\002\003\370\206"}, - {0xA1C8, "\002\003\370\210"}, - {0xA1C9, "\002\003\355\170"}, - {0xA1CA, "\002\003\370\204"}, - {0xA1CB, "\002\003\370\150"}, - {0xA1CC, "\002\003\050"}, - {0xA1CD, "\002\003\370\146"}, - {0xA1CE, "\002\003\370\224"}, - {0xA1CF, "\002\003\370\225"}, - {0xA1D0, "\002\003\370\212"}, - {0xA1D1, "\002\003\370\221"}, - {0xA1D2, "\002\003\370\223"}, - {0xA1D3, "\002\003\370\222"}, - {0xA1D4, "\002\003\370\233"}, - {0xA1D5, "\002\003\370\234"}, - {0xA1D6, "\002\003\370\230"}, - {0xA1D7, "\002\003\370\231"}, - {0xA1D8, "\002\003\370\232"}, - {0xA1D9, "\002\003\361\045"}, - {0xA1DA, "\002\003\366\230"}, - {0xA1DB, "\002\003\366\231"}, - {0xA1DC, "\002\003\356\204"}, - {0xA1DD, "\002\003\366\226"}, - {0xA1DE, "\002\003\366\221"}, - {0xA1DF, "\002\003\366\222"}, - {0xA1E0, "\002\003\366\217"}, - {0xA1E1, "\002\003\366\220"}, - {0xA1E2, "\002\003\366\143"}, - {0xA1E3, "\002\003\366\144"}, - {0xA1E4, "\002\003\355\017"}, - {0xA1E5, "\002\003\366\140"}, - {0xA1E6, "\002\003\366\255"}, - {0xA1E7, "\002\003\366\256"}, - {0xA1E8, "\002\003\366\253"}, - {0xA1E9, "\002\003\366\254"}, - {0xA1EA, "\002\003\360\277"}, - {0xA1EB, "\002\003\366\240"}, - {0xA1EC, "\002\003\356\071"}, - {0xA1ED, "\002\003\366\235"}, - {0xA1EE, "\002\003\366\155"}, - {0xA1EF, "\002\003\366\156"}, - {0xA1F0, "\002\003\356\203"}, - {0xA1F1, "\002\003\360\263"}, - {0xA1F2, "\002\003\366\264"}, - {0xA1F3, "\002\003\366\265"}, - {0xA1F4, "\002\003\357\160"}, - {0xA1F5, "\002\003\366\257"}, - {0xA1F6, "\002\003\366\263"}, - {0xA1F7, "\002\003\366\260"}, - {0xA1F8, "\002\003\360\377"}, - {0xA1F9, "\002\003\370\023"}, - {0xA1FA, "\002\003\355\332"}, - {0xA1FB, "\002\003\360\376"}, - {0xA1FC, "\002\003\370\015"}, - {0xA1FD, "\002\003\370\013"}, - {0xA1FE, "\002\003\370\014"}, - {0xA1FF, "\002\003\367\367"}, - {0xA200, "\002\003\367\372"}, - {0xA201, "\002\003\240"}, - {0xA202, "\002\003\367\362"}, - {0xA203, "\002\003\370\054"}, - {0xA204, "\002\003\370\052"}, - {0xA205, "\002\003\370\053"}, - {0xA206, "\002\003\370\042"}, - {0xA207, "\002\003\370\045"}, - {0xA208, "\002\003\355\167"}, - {0xA209, "\002\003\370\040"}, - {0xA20A, "\002\003\370\001"}, - {0xA20B, "\002\003\370\002"}, - {0xA20C, "\002\003\355\331"}, - {0xA20D, "\002\003\367\377"}, - {0xA20E, "\002\003\370\062"}, - {0xA20F, "\002\003\370\063"}, - {0xA210, "\002\003\356\021"}, - {0xA211, "\002\003\370\055"}, - {0xA212, "\002\003\370\060"}, - {0xA213, "\002\003\370\056"}, - {0xA214, "\002\003\366\170"}, - {0xA215, "\002\003\366\171"}, - {0xA216, "\002\003\360\267"}, - {0xA217, "\002\003\366\167"}, - {0xA218, "\002\003\366\165"}, - {0xA219, "\002\003\366\166"}, - {0xA21A, "\002\003\366\160"}, - {0xA21B, "\002\003\366\161"}, - {0xA21C, "\002\003\360\265"}, - {0xA21D, "\002\003\366\157"}, - {0xA21E, "\002\003\366\177"}, - {0xA21F, "\002\003\366\200"}, - {0xA220, "\002\003\360\272"}, - {0xA221, "\002\003\366\176"}, - {0xA222, "\002\003\366\172"}, - {0xA223, "\002\003\366\174"}, - {0xA224, "\002\003\360\270"}, - {0xA225, "\002\003\360\271"}, - {0xA226, "\002\003\366\163"}, - {0xA227, "\002\003\366\164"}, - {0xA228, "\002\003\360\266"}, - {0xA229, "\002\003\366\162"}, - {0xA22A, "\002\003\366\204"}, - {0xA22B, "\002\003\366\205"}, - {0xA22C, "\002\003\366\175"}, - {0xA22D, "\002\003\366\201"}, - {0xA22E, "\002\003\366\203"}, - {0xA22F, "\002\003\366\202"}, - {0xA230, "\002\003\370\335"}, - {0xA231, "\002\003\370\334"}, - {0xA232, "\002\003\370\327"}, - {0xA233, "\002\003\370\330"}, - {0xA234, "\002\003\370\325"}, - {0xA235, "\002\003\370\326"}, - {0xA236, "\002\003\370\344"}, - {0xA237, "\002\003\370\342"}, - {0xA238, "\002\003\370\343"}, - {0xA239, "\002\003\370\337"}, - {0xA23A, "\002\003\370\340"}, - {0xA23B, "\002\003\355\207"}, - {0xA23C, "\002\003\370\336"}, - {0xA23D, "\002\003\370\333"}, - {0xA23E, "\002\003\370\331"}, - {0xA23F, "\002\003\370\332"}, - {0xA240, "\002\003\370\350"}, - {0xA241, "\002\003\370\351"}, - {0xA242, "\002\003\370\341"}, - {0xA243, "\002\003\370\345"}, - {0xA244, "\002\003\370\347"}, - {0xA245, "\002\003\370\346"}, - {0xA246, "\002\003\360\334"}, - {0xA247, "\002\003\367\146"}, - {0xA248, "\002\003\367\140"}, - {0xA249, "\002\003\367\145"}, - {0xA24A, "\002\003\367\143"}, - {0xA24B, "\002\003\367\144"}, - {0xA24C, "\002\003\367\141"}, - {0xA24D, "\002\003\367\142"}, - {0xA24E, "\002\003\367\133"}, - {0xA24F, "\002\003\367\134"}, - {0xA250, "\002\003\367\131"}, - {0xA251, "\002\003\367\132"}, - {0xA252, "\002\003\367\152"}, - {0xA253, "\002\003\367\153"}, - {0xA254, "\002\003\360\337"}, - {0xA255, "\002\003\367\151"}, - {0xA256, "\002\003\360\336"}, - {0xA257, "\002\003\367\150"}, - {0xA258, "\002\003\367\147"}, - {0xA259, "\002\003\360\335"}, - {0xA25A, "\002\003\367\137"}, - {0xA25B, "\002\003\367\135"}, - {0xA25C, "\002\003\367\136"}, - {0xA25D, "\002\003\371\215"}, - {0xA25E, "\002\003\371\213"}, - {0xA25F, "\002\003\371\214"}, - {0xA260, "\002\003\371\203"}, - {0xA261, "\002\003\371\204"}, - {0xA262, "\002\003\355\066"}, - {0xA263, "\002\003\371\202"}, - {0xA264, "\002\003\371\223"}, - {0xA265, "\002\003\371\224"}, - {0xA266, "\002\003\371\222"}, - {0xA267, "\002\003\371\217"}, - {0xA268, "\002\003\371\221"}, - {0xA269, "\002\003\356\225"}, - {0xA26A, "\002\003\371\216"}, - {0xA26B, "\002\003\371\210"}, - {0xA26C, "\002\003\371\206"}, - {0xA26D, "\002\003\371\207"}, - {0xA26E, "\002\003\366\347"}, - {0xA26F, "\002\003\366\345"}, - {0xA270, "\002\003\366\344"}, - {0xA271, "\002\003\366\317"}, - {0xA272, "\002\003\366\321"}, - {0xA273, "\002\003\314"}, - {0xA274, "\002\003\366\315"}, - {0xA275, "\002\003\367\123"}, - {0xA276, "\002\003\367\124"}, - {0xA277, "\002\003\367\121"}, - {0xA278, "\002\003\367\122"}, - {0xA279, "\002\003\367\105"}, - {0xA27A, "\002\003\367\114"}, - {0xA27B, "\002\003\355\107"}, - {0xA27C, "\002\003\367\101"}, - {0xA27D, "\002\003\366\327"}, - {0xA27E, "\002\003\356\072"}, - {0xA27F, "\002\003\366\324"}, - {0xA280, "\002\003\376\074"}, - {0xA281, "\002\003\376\076"}, - {0xA282, "\002\003\355\050"}, - {0xA283, "\002\003\376\073"}, - {0xA284, "\002\003\376\111"}, - {0xA285, "\002\003\376\107"}, - {0xA286, "\002\003\376\110"}, - {0xA287, "\002\003\376\104"}, - {0xA288, "\002\003\355\150"}, - {0xA289, "\002\003\376\103"}, - {0xA28A, "\002\003\376\102"}, - {0xA28B, "\002\003\356\270"}, - {0xA28C, "\002\003\376\101"}, - {0xA28D, "\002\003\376\303"}, - {0xA28E, "\002\003\376\304"}, - {0xA28F, "\002\003\356\275"}, - {0xA290, "\002\003\376\302"}, - {0xA291, "\002\003\376\277"}, - {0xA292, "\002\003\376\275"}, - {0xA293, "\002\003\376\276"}, - {0xA294, "\002\003\376\236"}, - {0xA295, "\002\003\376\240"}, - {0xA296, "\002\003\355\101"}, - {0xA297, "\002\003\376\234"}, - {0xA298, "\002\003\376\312"}, - {0xA299, "\002\003\376\310"}, - {0xA29A, "\002\003\376\311"}, - {0xA29B, "\002\003\362\143"}, - {0xA29C, "\002\003\376\306"}, - {0xA29D, "\002\003\356\135"}, - {0xA29E, "\002\003\376\305"}, - {0xA29F, "\002\003\376\242"}, - {0xA2A0, "\002\003\356\274"}, - {0xA2A1, "\002\003\376\241"}, - {0xA2A2, "\002\003\376\315"}, - {0xA2A3, "\002\003\376\316"}, - {0xA2A4, "\002\003\360\022"}, - {0xA2A5, "\002\003\376\313"}, - {0xA2A6, "\002\003\376\314"}, - {0xA2A7, "\002\003\362\145"}, - {0xA2A8, "\002\003\376\324"}, - {0xA2A9, "\002\003\376\325"}, - {0xA2AA, "\002\003\376\320"}, - {0xA2AB, "\002\003\376\321"}, - {0xA2AC, "\002\003\376\323"}, - {0xA2AD, "\002\003\376\322"}, - {0xA2AE, "\002\003\363\353"}, - {0xA2AF, "\002\003\363\356"}, - {0xA2B0, "\002\003\363\344"}, - {0xA2B1, "\002\003\360\131"}, - {0xA2B2, "\002\003\363\350"}, - {0xA2B3, "\002\003\363\351"}, - {0xA2B4, "\002\003\363\346"}, - {0xA2B5, "\002\003\363\347"}, - {0xA2B6, "\002\003\363\236"}, - {0xA2B7, "\002\003\363\240"}, - {0xA2B8, "\002\003\357\073"}, - {0xA2B9, "\002\003\363\232"}, - {0xA2BA, "\002\003\365\130"}, - {0xA2BB, "\002\003\365\127"}, - {0xA2BC, "\002\003\360\145"}, - {0xA2BD, "\002\003\365\077"}, - {0xA2BE, "\002\003\365\114"}, - {0xA2BF, "\002\003\360\133"}, - {0xA2C0, "\002\003\365\066"}, - {0xA2C1, "\002\003\363\253"}, - {0xA2C2, "\002\003\360\107"}, - {0xA2C3, "\002\003\363\251"}, - {0xA2C4, "\002\003\365\135"}, - {0xA2C5, "\002\003\365\136"}, - {0xA2C6, "\002\003\365\123"}, - {0xA2C7, "\002\003\365\131"}, - {0xA2C8, "\002\003\365\134"}, - {0xA2C9, "\002\003\365\132"}, - {0xA2CA, "\002\003\360\150"}, - {0xA2CB, "\002\003\365\143"}, - {0xA2CC, "\002\003\360\146"}, - {0xA2CD, "\002\003\360\147"}, - {0xA2CE, "\002\003\365\142"}, - {0xA2CF, "\002\003\365\141"}, - {0xA2D0, "\002\003\376\341"}, - {0xA2D1, "\002\003\376\342"}, - {0xA2D2, "\002\003\376\335"}, - {0xA2D3, "\002\003\362\147"}, - {0xA2D4, "\002\003\362\146"}, - {0xA2D5, "\002\003\376\340"}, - {0xA2D6, "\002\003\376\336"}, - {0xA2D7, "\002\003\376\337"}, - {0xA2D8, "\002\003\376\330"}, - {0xA2D9, "\002\003\376\331"}, - {0xA2DA, "\002\003\376\326"}, - {0xA2DB, "\002\003\376\327"}, - {0xA2DC, "\002\003\376\345"}, - {0xA2DD, "\002\003\376\343"}, - {0xA2DE, "\002\003\376\344"}, - {0xA2DF, "\002\003\376\334"}, - {0xA2E0, "\002\003\376\332"}, - {0xA2E1, "\002\003\376\333"}, - {0xA2E2, "\002\003\376\352"}, - {0xA2E3, "\002\003\376\346"}, - {0xA2E4, "\002\003\376\347"}, - {0xA2E5, "\002\003\376\351"}, - {0xA2E6, "\002\003\376\350"}, - {0xA2E7, "\002\003\376\357"}, - {0xA2E8, "\002\003\376\360"}, - {0xA2E9, "\002\003\376\353"}, - {0xA2EA, "\002\003\376\354"}, - {0xA2EB, "\002\003\376\356"}, - {0xA2EC, "\002\003\376\355"}, - {0xA2ED, "\002\003\372\037"}, - {0xA2EE, "\002\003\372\040"}, - {0xA2EF, "\002\003\372\032"}, - {0xA2F0, "\002\003\372\036"}, - {0xA2F1, "\002\003\372\035"}, - {0xA2F2, "\002\003\372\033"}, - {0xA2F3, "\002\003\372\034"}, - {0xA2F4, "\002\003\372\026"}, - {0xA2F5, "\002\003\372\027"}, - {0xA2F6, "\002\003\372\024"}, - {0xA2F7, "\002\003\372\025"}, - {0xA2F8, "\002\003\372\045"}, - {0xA2F9, "\002\003\372\044"}, - {0xA2FA, "\002\003\372\042"}, - {0xA2FB, "\002\003\372\041"}, - {0xA2FC, "\002\003\372\031"}, - {0xA2FD, "\002\003\372\030"}, - {0xA2FE, "\002\003\372\050"}, - {0xA2FF, "\002\003\372\043"}, - {0xA300, "\002\003\372\046"}, - {0xA301, "\002\003\372\047"}, - {0xA302, "\002\003\361\130"}, - {0xA303, "\002\003\372\055"}, - {0xA304, "\002\003\372\056"}, - {0xA305, "\002\003\372\051"}, - {0xA306, "\002\003\372\052"}, - {0xA307, "\002\003\372\054"}, - {0xA308, "\002\003\372\053"}, - {0xA309, "\002\003\374\322"}, - {0xA30A, "\002\003\255"}, - {0xA30B, "\002\003\355\275"}, - {0xA30C, "\002\003\374\320"}, - {0xA30D, "\002\003\374\313"}, - {0xA30E, "\002\003\374\311"}, - {0xA30F, "\002\003\374\312"}, - {0xA310, "\002\003\374\225"}, - {0xA311, "\002\003\374\227"}, - {0xA312, "\002\003\355\004"}, - {0xA313, "\002\003\374\223"}, - {0xA314, "\002\003\375\036"}, - {0xA315, "\002\003\375\034"}, - {0xA316, "\002\003\375\035"}, - {0xA317, "\002\003\374\357"}, - {0xA318, "\002\003\374\364"}, - {0xA319, "\002\003\355\070"}, - {0xA31A, "\002\003\374\355"}, - {0xA31B, "\002\003\374\256"}, - {0xA31C, "\002\003\356\042"}, - {0xA31D, "\002\003\374\251"}, - {0xA31E, "\002\003\375\046"}, - {0xA31F, "\002\003\375\047"}, - {0xA320, "\002\003\356\253"}, - {0xA321, "\002\003\375\037"}, - {0xA322, "\002\003\375\044"}, - {0xA323, "\002\003\355\146"}, - {0xA324, "\002\003\375\061"}, - {0xA325, "\002\003\375\062"}, - {0xA326, "\002\003\375\052"}, - {0xA327, "\002\003\375\055"}, - {0xA328, "\002\003\375\057"}, - {0xA329, "\002\003\375\056"}, - {0xA32A, "\002\003\375\005"}, - {0xA32B, "\002\003\375\006"}, - {0xA32C, "\002\003\361\337"}, - {0xA32D, "\002\003\375\004"}, - {0xA32E, "\002\003\375\003"}, - {0xA32F, "\002\003\375\001"}, - {0xA330, "\002\003\375\002"}, - {0xA331, "\002\003\374\373"}, - {0xA332, "\002\003\374\374"}, - {0xA333, "\002\003\356\252"}, - {0xA334, "\002\003\374\372"}, - {0xA335, "\002\003\375\011"}, - {0xA336, "\002\003\375\012"}, - {0xA337, "\002\003\375\007"}, - {0xA338, "\002\003\375\010"}, - {0xA339, "\002\003\374\377"}, - {0xA33A, "\002\003\374\375"}, - {0xA33B, "\002\003\374\376"}, - {0xA33C, "\002\003\375\015"}, - {0xA33D, "\002\003\375\016"}, - {0xA33E, "\002\003\375\013"}, - {0xA33F, "\002\003\375\014"}, - {0xA340, "\002\003\375\023"}, - {0xA341, "\002\003\375\024"}, - {0xA342, "\002\003\375\017"}, - {0xA343, "\002\003\375\020"}, - {0xA344, "\002\003\375\022"}, - {0xA345, "\002\003\375\021"}, - {0xA346, "\002\003\376\244"}, - {0xA347, "\002\003\376\245"}, - {0xA348, "\002\003\355\365"}, - {0xA349, "\002\003\376\243"}, - {0xA34A, "\002\003\376\261"}, - {0xA34B, "\002\003\376\257"}, - {0xA34C, "\002\003\376\260"}, - {0xA34D, "\002\003\376\254"}, - {0xA34E, "\002\003\376\255"}, - {0xA34F, "\002\003\376\252"}, - {0xA350, "\002\003\376\253"}, - {0xA351, "\002\003\376\250"}, - {0xA352, "\002\003\376\251"}, - {0xA353, "\002\003\376\246"}, - {0xA354, "\002\003\376\247"}, - {0xA355, "\002\003\376\265"}, - {0xA356, "\002\003\376\266"}, - {0xA357, "\002\003\376\256"}, - {0xA358, "\002\003\376\262"}, - {0xA359, "\002\003\376\264"}, - {0xA35A, "\002\003\376\263"}, - {0xA35B, "\002\003\376\273"}, - {0xA35C, "\002\003\376\274"}, - {0xA35D, "\002\003\376\267"}, - {0xA35E, "\002\003\376\270"}, - {0xA35F, "\002\003\376\272"}, - {0xA360, "\002\003\376\271"}, - {0xA361, "\002\003\363\264"}, - {0xA362, "\002\003\363\270"}, - {0xA363, "\002\003\355\032"}, - {0xA364, "\002\003\363\261"}, - {0xA365, "\002\003\363\317"}, - {0xA366, "\002\003\363\320"}, - {0xA367, "\002\003\363\315"}, - {0xA368, "\002\003\363\316"}, - {0xA369, "\002\003\363\311"}, - {0xA36A, "\002\003\363\312"}, - {0xA36B, "\002\003\356\054"}, - {0xA36C, "\002\003\363\310"}, - {0xA36D, "\002\003\363\300"}, - {0xA36E, "\002\003\363\306"}, - {0xA36F, "\002\003\356\151"}, - {0xA370, "\002\003\363\277"}, - {0xA371, "\002\003\363\324"}, - {0xA372, "\002\003\363\314"}, - {0xA373, "\002\003\363\321"}, - {0xA374, "\002\003\363\323"}, - {0xA375, "\002\003\363\322"}, - {0xA376, "\002\003\363\332"}, - {0xA377, "\002\003\363\333"}, - {0xA378, "\002\003\363\326"}, - {0xA379, "\002\003\363\327"}, - {0xA37A, "\002\003\363\331"}, - {0xA37B, "\002\003\363\330"}, - {0xA37C, "\002\003\374\114"}, - {0xA37D, "\002\003\355\212"}, - {0xA37E, "\002\003\374\127"}, - {0xA37F, "\002\003\374\126"}, - {0xA380, "\002\003\374\123"}, - {0xA381, "\002\003\374\124"}, - {0xA382, "\002\003\374\121"}, - {0xA383, "\002\003\374\122"}, - {0xA384, "\002\003\374\117"}, - {0xA385, "\002\003\374\120"}, - {0xA386, "\002\003\374\115"}, - {0xA387, "\002\003\374\116"}, - {0xA388, "\002\003\374\133"}, - {0xA389, "\002\003\374\134"}, - {0xA38A, "\002\003\374\125"}, - {0xA38B, "\002\003\374\130"}, - {0xA38C, "\002\003\374\132"}, - {0xA38D, "\002\003\374\131"}, - {0xA38E, "\002\003\374\141"}, - {0xA38F, "\002\003\374\142"}, - {0xA390, "\002\003\374\135"}, - {0xA391, "\002\003\374\136"}, - {0xA392, "\002\003\374\140"}, - {0xA393, "\002\003\374\137"}, - {0xA394, "\002\003\371\335"}, - {0xA395, "\002\003\371\336"}, - {0xA396, "\002\003\371\333"}, - {0xA397, "\002\003\371\334"}, - {0xA398, "\002\003\371\345"}, - {0xA399, "\002\003\371\343"}, - {0xA39A, "\002\003\371\344"}, - {0xA39B, "\002\003\371\341"}, - {0xA39C, "\002\003\371\342"}, - {0xA39D, "\002\003\371\337"}, - {0xA39E, "\002\003\371\340"}, - {0xA39F, "\002\003\371\352"}, - {0xA3A0, "\002\003\371\353"}, - {0xA3A1, "\002\003\371\346"}, - {0xA3A2, "\002\003\371\347"}, - {0xA3A3, "\002\003\371\351"}, - {0xA3A4, "\002\003\371\350"}, - {0xA3A5, "\002\003\371\360"}, - {0xA3A6, "\002\003\371\361"}, - {0xA3A7, "\002\003\371\354"}, - {0xA3A8, "\002\003\371\355"}, - {0xA3A9, "\002\003\371\357"}, - {0xA3AA, "\002\003\371\356"}, - {0xA3AB, "\002\003\361\312"}, - {0xA3AC, "\002\003\374\263"}, - {0xA3AD, "\002\003\357\325"}, - {0xA3AE, "\002\003\374\262"}, - {0xA3AF, "\002\003\374\277"}, - {0xA3B0, "\002\003\374\275"}, - {0xA3B1, "\002\003\374\276"}, - {0xA3B2, "\002\003\374\272"}, - {0xA3B3, "\002\003\374\273"}, - {0xA3B4, "\002\003\374\270"}, - {0xA3B5, "\002\003\361\313"}, - {0xA3B6, "\002\003\374\266"}, - {0xA3B7, "\002\003\374\267"}, - {0xA3B8, "\002\003\374\264"}, - {0xA3B9, "\002\003\374\265"}, - {0xA3BA, "\002\003\374\302"}, - {0xA3BB, "\002\003\374\303"}, - {0xA3BC, "\002\003\374\274"}, - {0xA3BD, "\002\003\374\300"}, - {0xA3BE, "\002\003\374\301"}, - {0xA3BF, "\002\003\361\314"}, - {0xA3C0, "\002\003\374\307"}, - {0xA3C1, "\002\003\374\310"}, - {0xA3C2, "\002\003\361\315"}, - {0xA3C3, "\002\003\374\304"}, - {0xA3C4, "\002\003\374\306"}, - {0xA3C5, "\002\003\374\305"}, - {0xA3C6, "\002\003\361\246"}, - {0xA3C7, "\002\003\374\043"}, - {0xA3C8, "\002\003\322"}, - {0xA3C9, "\002\003\374\037"}, - {0xA3CA, "\002\003\374\147"}, - {0xA3CB, "\002\003\374\145"}, - {0xA3CC, "\002\003\374\146"}, - {0xA3CD, "\002\003\374\105"}, - {0xA3CE, "\002\003\374\113"}, - {0xA3CF, "\002\003\355\174"}, - {0xA3D0, "\002\003\374\104"}, - {0xA3D1, "\002\003\374\060"}, - {0xA3D2, "\002\003\356\035"}, - {0xA3D3, "\002\003\374\055"}, - {0xA3D4, "\002\003\374\154"}, - {0xA3D5, "\002\003\374\155"}, - {0xA3D6, "\002\003\356\037"}, - {0xA3D7, "\002\003\374\150"}, - {0xA3D8, "\002\003\374\153"}, - {0xA3D9, "\002\003\374\152"}, - {0xA3DA, "\002\003\374\163"}, - {0xA3DB, "\002\003\374\164"}, - {0xA3DC, "\002\003\374\157"}, - {0xA3DD, "\002\003\374\160"}, - {0xA3DE, "\002\003\374\162"}, - {0xA3DF, "\002\003\374\161"}, - {0xA3E0, "\002\003\367\267"}, - {0xA3E1, "\002\003\367\270"}, - {0xA3E2, "\002\003\360\360"}, - {0xA3E3, "\002\003\367\266"}, - {0xA3E4, "\002\003\367\264"}, - {0xA3E5, "\002\003\367\265"}, - {0xA3E6, "\002\003\367\262"}, - {0xA3E7, "\002\003\367\263"}, - {0xA3E8, "\002\003\367\332"}, - {0xA3E9, "\002\003\367\333"}, - {0xA3EA, "\002\003\367\330"}, - {0xA3EB, "\002\003\367\331"}, - {0xA3EC, "\002\003\367\321"}, - {0xA3ED, "\002\003\367\323"}, - {0xA3EE, "\002\003\357\211"}, - {0xA3EF, "\002\003\367\320"}, - {0xA3F0, "\002\003\367\341"}, - {0xA3F1, "\002\003\367\342"}, - {0xA3F2, "\002\003\367\324"}, - {0xA3F3, "\002\003\367\334"}, - {0xA3F4, "\002\003\367\337"}, - {0xA3F5, "\002\003\367\336"}, - {0xA3F6, "\002\003\367\350"}, - {0xA3F7, "\002\003\367\351"}, - {0xA3F8, "\002\003\367\344"}, - {0xA3F9, "\002\003\367\345"}, - {0xA3FA, "\002\003\367\347"}, - {0xA3FB, "\002\003\367\346"}, - {0xA3FC, "\002\003\373\356"}, - {0xA3FD, "\002\003\373\357"}, - {0xA3FE, "\002\003\357\301"}, - {0xA3FF, "\002\003\373\355"}, - {0xA400, "\002\003\373\353"}, - {0xA401, "\002\003\373\354"}, - {0xA402, "\002\003\373\351"}, - {0xA403, "\002\003\373\352"}, - {0xA404, "\002\003\374\001"}, - {0xA405, "\002\003\374\002"}, - {0xA406, "\002\003\373\376"}, - {0xA407, "\002\003\373\377"}, - {0xA408, "\002\003\361\241"}, - {0xA409, "\002\003\373\365"}, - {0xA40A, "\002\003\357\302"}, - {0xA40B, "\002\003\373\361"}, - {0xA40C, "\002\003\374\006"}, - {0xA40D, "\002\003\374\007"}, - {0xA40E, "\002\003\373\367"}, - {0xA40F, "\002\003\374\003"}, - {0xA410, "\002\003\374\005"}, - {0xA411, "\002\003\374\004"}, - {0xA412, "\002\003\374\021"}, - {0xA413, "\002\003\374\022"}, - {0xA414, "\002\003\374\015"}, - {0xA415, "\002\003\374\016"}, - {0xA416, "\002\003\374\020"}, - {0xA417, "\002\003\374\017"}, - {0xA418, "\002\003\367\277"}, - {0xA419, "\002\003\367\300"}, - {0xA41A, "\002\003\367\271"}, - {0xA41B, "\002\003\367\276"}, - {0xA41C, "\002\003\367\274"}, - {0xA41D, "\002\003\367\275"}, - {0xA41E, "\002\003\367\272"}, - {0xA41F, "\002\003\367\273"}, - {0xA420, "\002\003\367\310"}, - {0xA421, "\002\003\367\306"}, - {0xA422, "\002\003\367\307"}, - {0xA423, "\002\003\367\303"}, - {0xA424, "\002\003\367\304"}, - {0xA425, "\002\003\367\301"}, - {0xA426, "\002\003\367\302"}, - {0xA427, "\002\003\360\361"}, - {0xA428, "\002\003\367\314"}, - {0xA429, "\002\003\367\305"}, - {0xA42A, "\002\003\367\311"}, - {0xA42B, "\002\003\367\313"}, - {0xA42C, "\002\003\367\312"}, - {0xA42D, "\002\003\367\316"}, - {0xA42E, "\002\003\367\317"}, - {0xA42F, "\002\003\360\362"}, - {0xA430, "\002\003\367\315"}, - {0xA431, "\002\003\371\257"}, - {0xA432, "\002\003\371\260"}, - {0xA433, "\002\003\371\251"}, - {0xA434, "\002\003\371\256"}, - {0xA435, "\002\003\371\254"}, - {0xA436, "\002\003\371\255"}, - {0xA437, "\002\003\371\252"}, - {0xA438, "\002\003\371\253"}, - {0xA439, "\002\003\371\267"}, - {0xA43A, "\002\003\371\266"}, - {0xA43B, "\002\003\371\263"}, - {0xA43C, "\002\003\371\264"}, - {0xA43D, "\002\003\371\261"}, - {0xA43E, "\002\003\371\262"}, - {0xA43F, "\002\003\371\273"}, - {0xA440, "\002\003\371\265"}, - {0xA441, "\002\003\371\270"}, - {0xA442, "\002\003\371\272"}, - {0xA443, "\002\003\371\271"}, - {0xA444, "\002\003\371\300"}, - {0xA445, "\002\003\371\301"}, - {0xA446, "\002\003\371\274"}, - {0xA447, "\002\003\371\275"}, - {0xA448, "\002\003\371\277"}, - {0xA449, "\002\003\371\276"}, - {0xA44A, "\002\003\372\010"}, - {0xA44B, "\002\003\372\011"}, - {0xA44C, "\002\003\372\003"}, - {0xA44D, "\002\003\361\126"}, - {0xA44E, "\002\003\372\006"}, - {0xA44F, "\002\003\372\007"}, - {0xA450, "\002\003\372\004"}, - {0xA451, "\002\003\372\005"}, - {0xA452, "\002\003\372\020"}, - {0xA453, "\002\003\372\016"}, - {0xA454, "\002\003\372\017"}, - {0xA455, "\002\003\372\013"}, - {0xA456, "\002\003\372\014"}, - {0xA457, "\002\003\372\012"}, - {0xA458, "\002\003\361\127"}, - {0xA459, "\002\003\372\022"}, - {0xA45A, "\002\003\372\023"}, - {0xA45B, "\002\003\372\015"}, - {0xA45C, "\002\003\372\021"}, - {0xA45D, "\002\003\376\123"}, - {0xA45E, "\002\003\376\124"}, - {0xA45F, "\002\003\357\055"}, - {0xA460, "\002\003\376\122"}, - {0xA461, "\002\003\376\120"}, - {0xA462, "\002\003\376\121"}, - {0xA463, "\002\003\376\116"}, - {0xA464, "\002\003\376\117"}, - {0xA465, "\002\003\376\132"}, - {0xA466, "\002\003\376\131"}, - {0xA467, "\002\003\376\126"}, - {0xA468, "\002\003\376\130"}, - {0xA469, "\002\003\362\106"}, - {0xA46A, "\002\003\376\125"}, - {0xA46B, "\002\003\376\144"}, - {0xA46C, "\002\003\376\145"}, - {0xA46D, "\002\003\376\140"}, - {0xA46E, "\002\003\376\141"}, - {0xA46F, "\002\003\376\143"}, - {0xA470, "\002\003\376\142"}, - {0xA471, "\002\003\362\115"}, - {0xA472, "\002\003\376\166"}, - {0xA473, "\002\003\003"}, - {0xA474, "\002\003\376\165"}, - {0xA475, "\002\003\376\162"}, - {0xA476, "\002\003\376\163"}, - {0xA477, "\002\003\376\160"}, - {0xA478, "\002\003\376\161"}, - {0xA479, "\002\003\376\207"}, - {0xA47A, "\002\003\376\210"}, - {0xA47B, "\002\003\376\205"}, - {0xA47C, "\002\003\376\206"}, - {0xA47D, "\002\003\362\117"}, - {0xA47E, "\002\003\376\177"}, - {0xA47F, "\002\003\355\040"}, - {0xA480, "\002\003\376\172"}, - {0xA481, "\002\003\376\214"}, - {0xA482, "\002\003\376\215"}, - {0xA483, "\002\003\355\364"}, - {0xA484, "\002\003\376\211"}, - {0xA485, "\002\003\376\213"}, - {0xA486, "\002\003\376\212"}, - {0xA487, "\002\003\376\222"}, - {0xA488, "\002\003\376\223"}, - {0xA489, "\002\003\376\216"}, - {0xA48A, "\002\003\376\217"}, - {0xA48B, "\002\003\376\221"}, - {0xA48C, "\002\003\376\220"}, - {0xA490, "\017\003\361\241"}, - {0xA491, "\017\003\356\077"}, - {0xA492, "\017\003\360\377"}, - {0xA493, "\017\003\361\126"}, - {0xA494, "\017\003\360\147"}, - {0xA495, "\017\003\361\337"}, - {0xA496, "\017\003\360\271"}, - {0xA497, "\017\003\360\263"}, - {0xA498, "\017\003\355\230"}, - {0xA499, "\017\003\360\334"}, - {0xA49A, "\017\003\361\045"}, - {0xA49B, "\017\003\360\070"}, - {0xA49C, "\017\003\361\062"}, - {0xA49D, "\017\003\355\040"}, - {0xA49E, "\017\003\361\230"}, - {0xA49F, "\017\003\360\337"}, - {0xA4A0, "\017\003\360\336"}, - {0xA4A1, "\017\003\355\017"}, - {0xA4A2, "\017\003\362\147"}, - {0xA4A3, "\017\003\360\150"}, - {0xA4A4, "\017\003\360\166"}, - {0xA4A5, "\017\003\360\101"}, - {0xA4A6, "\017\003\360\272"}, - {0xA4A7, "\017\003\361\127"}, - {0xA4A8, "\017\003\355\300"}, - {0xA4A9, "\017\003\361\140"}, - {0xA4AA, "\017\003\360\361"}, - {0xA4AB, "\017\003\362\143"}, - {0xA4AC, "\017\003\361\231"}, - {0xA4AD, "\017\003\360\323"}, - {0xA4AE, "\017\003\362\115"}, - {0xA4AF, "\017\003\362\077"}, - {0xA4B0, "\017\003\361\315"}, - {0xA4B1, "\017\003\362\062"}, - {0xA4B2, "\017\003\355\101"}, - {0xA4B3, "\017\003\357\211"}, - {0xA4B4, "\017\003\361\130"}, - {0xA4B5, "\017\003\360\362"}, - {0xA4B6, "\017\003\360\277"}, - {0xA4B7, "\017\003\356\142"}, - {0xA4B8, "\017\003\355\150"}, - {0xA4B9, "\017\003\212"}, - {0xA4BA, "\017\003\361\314"}, - {0xA4BB, "\017\003\361\027"}, - {0xA4BC, "\017\003\360\146"}, - {0xA4BD, "\017\003\360\145"}, - {0xA4BE, "\017\003\360\131"}, - {0xA4BF, "\017\003\360\335"}, - {0xA4C0, "\017\003\361\312"}, - {0xA4C1, "\017\003\362\145"}, - {0xA4C2, "\017\003\361\313"}, - {0xA4C3, "\017\003\356\151"}, - {0xA4C4, "\017\003\362\146"}, - {0xA4C5, "\017\003\361\107"}, - {0xA4C6, "\017\003\355\331"}, - {0xF900, "\016\007\025\363\357"}, - {0xF901, "\016\007\025\363\360"}, - {0xF902, "\016\007\025\363\361"}, - {0xF903, "\016\007\025\363\362"}, - {0xF904, "\016\007\025\363\363"}, - {0xF905, "\016\007\025\363\364"}, - {0xF906, "\016\007\025\363\365"}, - {0xF907, "\016\007\025\363\366"}, - {0xF908, "\016\007\025\363\367"}, - {0xF909, "\016\007\025\363\370"}, - {0xF90A, "\016\007\025\363\371"}, - {0xF90B, "\016\007\025\363\372"}, - {0xF90C, "\016\007\025\363\373"}, - {0xF90D, "\016\007\025\363\374"}, - {0xF90E, "\016\007\025\363\375"}, - {0xF90F, "\016\007\025\363\376"}, - {0xF910, "\016\007\025\363\377"}, - {0xF911, "\016\007\025\364\001"}, - {0xF912, "\016\007\025\364\002"}, - {0xF913, "\016\007\025\364\003"}, - {0xF914, "\016\007\025\364\004"}, - {0xF915, "\016\007\025\364\005"}, - {0xF916, "\016\007\025\364\006"}, - {0xF917, "\016\007\025\364\007"}, - {0xF918, "\016\007\025\364\010"}, - {0xF919, "\016\007\025\364\011"}, - {0xF91A, "\016\007\025\364\012"}, - {0xF91B, "\016\007\025\364\013"}, - {0xF91C, "\016\007\025\364\014"}, - {0xF91D, "\016\007\025\364\015"}, - {0xF91E, "\016\007\025\364\016"}, - {0xF91F, "\016\007\025\364\017"}, - {0xF920, "\016\007\025\364\020"}, - {0xF921, "\016\007\025\364\021"}, - {0xF922, "\016\007\025\364\022"}, - {0xF923, "\016\007\025\364\023"}, - {0xF924, "\016\007\025\364\024"}, - {0xF925, "\016\007\025\364\025"}, - {0xF926, "\016\007\025\364\026"}, - {0xF927, "\016\007\025\364\027"}, - {0xF928, "\016\007\025\364\030"}, - {0xF929, "\016\007\025\364\031"}, - {0xF92A, "\016\007\025\364\032"}, - {0xF92B, "\016\007\025\364\033"}, - {0xF92C, "\016\007\025\364\034"}, - {0xF92D, "\016\007\025\364\035"}, - {0xF92E, "\016\007\025\364\036"}, - {0xF92F, "\016\007\025\364\037"}, - {0xF930, "\016\007\025\364\040"}, - {0xF931, "\016\007\025\364\041"}, - {0xF932, "\016\007\025\364\042"}, - {0xF933, "\016\007\025\364\043"}, - {0xF934, "\016\007\025\364\044"}, - {0xF935, "\016\007\025\364\045"}, - {0xF936, "\016\007\025\364\046"}, - {0xF937, "\016\007\025\364\047"}, - {0xF938, "\016\007\025\364\050"}, - {0xF939, "\016\007\025\364\051"}, - {0xF93A, "\016\007\025\364\052"}, - {0xF93B, "\016\007\025\364\053"}, - {0xF93C, "\016\007\025\364\054"}, - {0xF93D, "\016\007\025\364\055"}, - {0xF93E, "\016\007\025\364\056"}, - {0xF93F, "\016\007\025\364\057"}, - {0xF940, "\016\007\025\364\060"}, - {0xF941, "\016\007\025\364\061"}, - {0xF942, "\016\007\025\364\062"}, - {0xF943, "\016\007\025\364\063"}, - {0xF944, "\016\007\025\364\064"}, - {0xF945, "\016\007\025\364\065"}, - {0xF946, "\016\007\025\364\066"}, - {0xF947, "\016\007\025\364\067"}, - {0xF948, "\016\007\025\364\070"}, - {0xF949, "\016\007\025\364\071"}, - {0xF94A, "\016\007\025\364\072"}, - {0xF94B, "\016\007\025\364\073"}, - {0xF94C, "\016\007\025\364\074"}, - {0xF94D, "\016\007\025\364\075"}, - {0xF94E, "\016\007\025\364\076"}, - {0xF94F, "\016\007\025\364\077"}, - {0xF950, "\016\007\025\364\100"}, - {0xF951, "\016\007\025\364\101"}, - {0xF952, "\016\007\025\364\102"}, - {0xF953, "\016\007\025\364\103"}, - {0xF954, "\016\007\025\364\104"}, - {0xF955, "\016\007\025\364\105"}, - {0xF956, "\016\007\025\364\106"}, - {0xF957, "\016\007\025\364\107"}, - {0xF958, "\016\007\025\364\110"}, - {0xF959, "\016\007\025\364\111"}, - {0xF95A, "\016\007\025\364\112"}, - {0xF95B, "\016\007\025\364\113"}, - {0xF95C, "\016\007\025\364\114"}, - {0xF95D, "\016\007\025\364\115"}, - {0xF95E, "\016\007\025\364\116"}, - {0xF95F, "\016\007\025\364\117"}, - {0xF960, "\016\007\025\364\120"}, - {0xF961, "\016\007\025\364\121"}, - {0xF962, "\016\007\025\364\122"}, - {0xF963, "\016\007\025\364\123"}, - {0xF964, "\016\007\025\364\124"}, - {0xF965, "\016\007\025\364\125"}, - {0xF966, "\016\007\025\364\126"}, - {0xF967, "\016\007\025\364\127"}, - {0xF968, "\016\007\025\364\130"}, - {0xF969, "\016\007\025\364\131"}, - {0xF96A, "\016\007\025\364\132"}, - {0xF96B, "\016\007\025\364\133"}, - {0xF96C, "\016\007\025\364\134"}, - {0xF96D, "\016\007\025\364\135"}, - {0xF96E, "\016\007\025\364\136"}, - {0xF96F, "\016\007\025\364\137"}, - {0xF970, "\016\007\025\364\140"}, - {0xF971, "\016\007\025\364\141"}, - {0xF972, "\016\007\025\364\142"}, - {0xF973, "\016\007\025\364\143"}, - {0xF974, "\016\007\025\364\144"}, - {0xF975, "\016\007\025\364\145"}, - {0xF976, "\016\007\025\364\146"}, - {0xF977, "\016\007\025\364\147"}, - {0xF978, "\016\007\025\364\150"}, - {0xF979, "\016\007\025\364\151"}, - {0xF97A, "\016\007\025\364\152"}, - {0xF97B, "\016\007\025\364\153"}, - {0xF97C, "\016\007\025\364\154"}, - {0xF97D, "\016\007\025\364\155"}, - {0xF97E, "\016\007\025\364\156"}, - {0xF97F, "\016\007\025\364\157"}, - {0xF980, "\016\007\025\364\160"}, - {0xF981, "\016\007\025\364\161"}, - {0xF982, "\016\007\025\364\162"}, - {0xF983, "\016\007\025\364\163"}, - {0xF984, "\016\007\025\364\164"}, - {0xF985, "\016\007\025\364\165"}, - {0xF986, "\016\007\025\364\166"}, - {0xF987, "\016\007\025\364\167"}, - {0xF988, "\016\007\025\364\170"}, - {0xF989, "\016\007\025\364\171"}, - {0xF98A, "\016\007\025\364\172"}, - {0xF98B, "\016\007\025\364\173"}, - {0xF98C, "\016\007\025\364\174"}, - {0xF98D, "\016\007\025\364\175"}, - {0xF98E, "\016\007\025\364\176"}, - {0xF98F, "\016\007\025\364\177"}, - {0xF990, "\016\007\025\364\200"}, - {0xF991, "\016\007\025\364\201"}, - {0xF992, "\016\007\025\364\202"}, - {0xF993, "\016\007\025\364\203"}, - {0xF994, "\016\007\025\364\204"}, - {0xF995, "\016\007\025\364\205"}, - {0xF996, "\016\007\025\364\206"}, - {0xF997, "\016\007\025\364\207"}, - {0xF998, "\016\007\025\364\210"}, - {0xF999, "\016\007\025\364\211"}, - {0xF99A, "\016\007\025\364\212"}, - {0xF99B, "\016\007\025\364\213"}, - {0xF99C, "\016\007\025\364\214"}, - {0xF99D, "\016\007\025\364\215"}, - {0xF99E, "\016\007\025\364\216"}, - {0xF99F, "\016\007\025\364\217"}, - {0xF9A0, "\016\007\025\364\220"}, - {0xF9A1, "\016\007\025\364\221"}, - {0xF9A2, "\016\007\025\364\222"}, - {0xF9A3, "\016\007\025\364\223"}, - {0xF9A4, "\016\007\025\364\224"}, - {0xF9A5, "\016\007\025\364\225"}, - {0xF9A6, "\016\007\025\364\226"}, - {0xF9A7, "\016\007\025\364\227"}, - {0xF9A8, "\016\007\025\364\230"}, - {0xF9A9, "\016\007\025\364\231"}, - {0xF9AA, "\016\007\025\364\232"}, - {0xF9AB, "\016\007\025\364\233"}, - {0xF9AC, "\016\007\025\364\234"}, - {0xF9AD, "\016\007\025\364\235"}, - {0xF9AE, "\016\007\025\364\236"}, - {0xF9AF, "\016\007\025\364\237"}, - {0xF9B0, "\016\007\025\364\240"}, - {0xF9B1, "\016\007\025\364\241"}, - {0xF9B2, "\016\007\025\364\242"}, - {0xF9B3, "\016\007\025\364\243"}, - {0xF9B4, "\016\007\025\364\244"}, - {0xF9B5, "\016\007\025\364\245"}, - {0xF9B6, "\016\007\025\364\246"}, - {0xF9B7, "\016\007\025\364\247"}, - {0xF9B8, "\016\007\025\364\250"}, - {0xF9B9, "\016\007\025\364\251"}, - {0xF9BA, "\016\007\025\364\252"}, - {0xF9BB, "\016\007\025\364\253"}, - {0xF9BC, "\016\007\025\364\254"}, - {0xF9BD, "\016\007\025\364\255"}, - {0xF9BE, "\016\007\025\364\256"}, - {0xF9BF, "\016\007\025\364\257"}, - {0xF9C0, "\016\007\025\364\260"}, - {0xF9C1, "\016\007\025\364\261"}, - {0xF9C2, "\016\007\025\364\262"}, - {0xF9C3, "\016\007\025\364\263"}, - {0xF9C4, "\016\007\025\364\264"}, - {0xF9C5, "\016\007\025\364\265"}, - {0xF9C6, "\016\007\025\364\266"}, - {0xF9C7, "\016\007\025\364\267"}, - {0xF9C8, "\016\007\025\364\270"}, - {0xF9C9, "\016\007\025\364\271"}, - {0xF9CA, "\016\007\025\364\272"}, - {0xF9CB, "\016\007\025\364\273"}, - {0xF9CC, "\016\007\025\364\274"}, - {0xF9CD, "\016\007\025\364\275"}, - {0xF9CE, "\016\007\025\364\276"}, - {0xF9CF, "\016\007\025\364\277"}, - {0xF9D0, "\016\007\025\364\300"}, - {0xF9D1, "\016\007\025\364\301"}, - {0xF9D2, "\016\007\025\364\302"}, - {0xF9D3, "\016\007\025\364\303"}, - {0xF9D4, "\016\007\025\364\304"}, - {0xF9D5, "\016\007\025\364\305"}, - {0xF9D6, "\016\007\025\364\306"}, - {0xF9D7, "\016\007\025\364\307"}, - {0xF9D8, "\016\007\025\364\310"}, - {0xF9D9, "\016\007\025\364\311"}, - {0xF9DA, "\016\007\025\364\312"}, - {0xF9DB, "\016\007\025\364\313"}, - {0xF9DC, "\016\007\025\364\314"}, - {0xF9DD, "\016\007\025\364\315"}, - {0xF9DE, "\016\007\025\364\316"}, - {0xF9DF, "\016\007\025\364\317"}, - {0xF9E0, "\016\007\025\364\320"}, - {0xF9E1, "\016\007\025\364\321"}, - {0xF9E2, "\016\007\025\364\322"}, - {0xF9E3, "\016\007\025\364\323"}, - {0xF9E4, "\016\007\025\364\324"}, - {0xF9E5, "\016\007\025\364\325"}, - {0xF9E6, "\016\007\025\364\326"}, - {0xF9E7, "\016\007\025\364\327"}, - {0xF9E8, "\016\007\025\364\330"}, - {0xF9E9, "\016\007\025\364\331"}, - {0xF9EA, "\016\007\025\364\332"}, - {0xF9EB, "\016\007\025\364\333"}, - {0xF9EC, "\016\007\025\364\334"}, - {0xF9ED, "\016\007\025\364\335"}, - {0xF9EE, "\016\007\025\364\336"}, - {0xF9EF, "\016\007\025\364\337"}, - {0xF9F0, "\016\007\025\364\340"}, - {0xF9F1, "\016\007\025\364\341"}, - {0xF9F2, "\016\007\025\364\342"}, - {0xF9F3, "\016\007\025\364\343"}, - {0xF9F4, "\016\007\025\364\344"}, - {0xF9F5, "\016\007\025\364\345"}, - {0xF9F6, "\016\007\025\364\346"}, - {0xF9F7, "\016\007\025\364\347"}, - {0xF9F8, "\016\007\025\364\350"}, - {0xF9F9, "\016\007\025\364\351"}, - {0xF9FA, "\016\007\025\364\352"}, - {0xF9FB, "\016\007\025\364\353"}, - {0xF9FC, "\016\007\025\364\354"}, - {0xF9FD, "\016\007\025\364\355"}, - {0xF9FE, "\016\007\025\364\356"}, - {0xF9FF, "\016\007\025\364\357"}, - {0xFA00, "\016\007\025\364\360"}, - {0xFA01, "\016\007\025\364\361"}, - {0xFA02, "\016\007\025\364\362"}, - {0xFA03, "\016\007\025\364\363"}, - {0xFA04, "\016\007\025\364\364"}, - {0xFA05, "\016\007\025\364\365"}, - {0xFA06, "\016\007\025\364\366"}, - {0xFA07, "\016\007\025\364\367"}, - {0xFA08, "\016\007\025\364\370"}, - {0xFA09, "\016\007\025\364\371"}, - {0xFA0A, "\016\007\025\364\372"}, - {0xFA0B, "\016\007\025\364\373"}, - {0xFA0C, "\016\007\025\364\374"}, - {0xFA0D, "\016\007\025\364\375"}, - {0xFA0E, "\016\007\025\364\376"}, - {0xFA0F, "\016\007\025\364\377"}, - {0xFA10, "\016\007\025\365\001"}, - {0xFA11, "\016\007\025\365\002"}, - {0xFA12, "\016\007\025\365\003"}, - {0xFA13, "\016\007\025\365\004"}, - {0xFA14, "\016\007\025\365\005"}, - {0xFA15, "\016\007\025\365\006"}, - {0xFA16, "\016\007\025\365\007"}, - {0xFA17, "\016\007\025\365\010"}, - {0xFA18, "\016\007\025\365\011"}, - {0xFA19, "\016\007\025\365\012"}, - {0xFA1A, "\016\007\025\365\013"}, - {0xFA1B, "\016\007\025\365\014"}, - {0xFA1C, "\016\007\025\365\015"}, - {0xFA1D, "\016\007\025\365\016"}, - {0xFA1E, "\016\007\025\365\017"}, - {0xFA1F, "\016\007\025\365\020"}, - {0xFA20, "\016\007\025\365\021"}, - {0xFA21, "\016\007\025\365\022"}, - {0xFA22, "\016\007\025\365\023"}, - {0xFA23, "\016\007\025\365\024"}, - {0xFA24, "\016\007\025\365\025"}, - {0xFA25, "\016\007\025\365\026"}, - {0xFA26, "\016\007\025\365\027"}, - {0xFA27, "\016\007\025\365\030"}, - {0xFA28, "\016\007\025\365\031"}, - {0xFA29, "\016\007\025\365\032"}, - {0xFA2A, "\016\007\025\365\033"}, - {0xFA2B, "\016\007\025\365\034"}, - {0xFA2C, "\016\007\025\365\035"}, - {0xFA2D, "\016\007\025\365\036"}, - {0xFB00, "\012\005\006\366\061"}, - {0xFB01, "\012\005\006\356\200"}, - {0xFB02, "\012\005\006\366\072"}, - {0xFB03, "\012\005\006\366\062"}, - {0xFB04, "\012\005\006\366\063"}, - {0xFB05, "\012\005\006\223\355\264\261"}, - {0xFB06, "\012\005\006\375\026"}, - {0xFB13, "\012\005\125\356\102\355\340"}, - {0xFB14, "\012\005\125\356\102\357\057"}, - {0xFB15, "\012\005\125\356\102\357\177"}, - {0xFB16, "\012\005\125\360\005\355\340"}, - {0xFB17, "\012\005\125\356\102\356\342"}, - {0xFB1D, "\001\137\356\272\360\322"}, - {0xFB1E, "\037\222\367\325\376\011"}, - {0xFB1F, "\012\137\357\056\356\272\356\272\356\374"}, - {0xFB20, "\001\137\360\047\360\062"}, - {0xFB21, "\001\137\355\262\355\372"}, - {0xFB22, "\001\137\355\262\356\317"}, - {0xFB23, "\001\137\355\262\357\170"}, - {0xFB24, "\001\137\355\262\254"}, - {0xFB25, "\001\137\355\262\356\347"}, - {0xFB26, "\001\137\355\262\356\357\032"}, - {0xFB27, "\001\137\355\262\357\321"}, - {0xFB28, "\001\137\355\262\357\347"}, - {0xFB29, "\001\137\057\214\376\010"}, - {0xFB2A, "\001\137\355\310\037\355\310"}, - {0xFB2B, "\001\137\355\310\037\361\317"}, - {0xFB2C, "\001\137\355\310\365\170\020\037\355\310"}, - {0xFB2D, "\001\137\355\310\355\011\020\037\361\317"}, - {0xFB2E, "\001\137\355\372\356\374"}, - {0xFB2F, "\001\137\355\372\357\300"}, - {0xFB30, "\001\137\355\372\357\232"}, - {0xFB31, "\001\137\363\114\355\011"}, - {0xFB32, "\001\137\360\303\355\011"}, - {0xFB33, "\001\137\356\317\355\011"}, - {0xFB34, "\001\137\357\170\357\232"}, - {0xFB35, "\001\137\355\051\355\011"}, - {0xFB36, "\001\137\360\020\355\011"}, - {0xFB38, "\001\137\362\056\355\011"}, - {0xFB39, "\001\137\356\272\355\011"}, - {0xFB3A, "\001\137\254\355\011\032"}, - {0xFB3B, "\001\137\254\355\011"}, - {0xFB3C, "\001\137\356\347\355\011"}, - {0xFB3E, "\001\137\356\357\355\011"}, - {0xFB40, "\001\137\357\251\355\011"}, - {0xFB41, "\001\137\361\301\355\011"}, - {0xFB43, "\001\137\355\172\355\011\032"}, - {0xFB44, "\001\137\355\172\355\011"}, - {0xFB46, "\001\137\357\366\355\011"}, - {0xFB47, "\001\137\373\360\355\011"}, - {0xFB48, "\001\137\357\321\355\011"}, - {0xFB49, "\001\137\355\310\355\011"}, - {0xFB4A, "\001\137\357\347\355\011"}, - {0xFB4B, "\001\137\355\051\360\325"}, - {0xFB4C, "\001\137\357\072\357\021"}, - {0xFB4D, "\001\137\254\357\021"}, - {0xFB4E, "\001\137\355\172\357\021"}, - {0xFB4F, "\012\137\355\372\356\347"}, - {0xFB50, "\001\004\100\360\006\036"}, - {0xFB51, "\001\004\100\360\006\032"}, - {0xFB52, "\001\004\356\143\036"}, - {0xFB53, "\001\004\356\143\032"}, - {0xFB54, "\001\004\356\143\055"}, - {0xFB55, "\001\004\356\143\131"}, - {0xFB56, "\001\004\356\237\036"}, - {0xFB57, "\001\004\356\237\032"}, - {0xFB58, "\001\004\356\237\055"}, - {0xFB59, "\001\004\356\237\131"}, - {0xFB5A, "\001\004\356\144\036"}, - {0xFB5B, "\001\004\356\144\032"}, - {0xFB5C, "\001\004\356\144\055"}, - {0xFB5D, "\001\004\356\144\131"}, - {0xFB5E, "\001\004\356\262\036"}, - {0xFB5F, "\001\004\356\262\032"}, - {0xFB60, "\001\004\356\262\055"}, - {0xFB61, "\001\004\356\262\131"}, - {0xFB62, "\001\004\356\256\036"}, - {0xFB63, "\001\004\356\256\032"}, - {0xFB64, "\001\004\356\256\055"}, - {0xFB65, "\001\004\356\256\131"}, - {0xFB66, "\001\004\356\261\036"}, - {0xFB67, "\001\004\356\261\032"}, - {0xFB68, "\001\004\356\261\055"}, - {0xFB69, "\001\004\356\261\131"}, - {0xFB6A, "\001\004\356\264\036"}, - {0xFB6B, "\001\004\356\264\032"}, - {0xFB6C, "\001\004\356\264\055"}, - {0xFB6D, "\001\004\356\264\131"}, - {0xFB6E, "\001\004\356\240\036"}, - {0xFB6F, "\001\004\356\240\032"}, - {0xFB70, "\001\004\356\240\055"}, - {0xFB71, "\001\004\356\240\131"}, - {0xFB72, "\001\004\356\164\036"}, - {0xFB73, "\001\004\356\164\032"}, - {0xFB74, "\001\004\356\164\055"}, - {0xFB75, "\001\004\356\164\131"}, - {0xFB76, "\001\004\356\230\036"}, - {0xFB77, "\001\004\356\230\032"}, - {0xFB78, "\001\004\356\230\055"}, - {0xFB79, "\001\004\356\230\131"}, - {0xFB7A, "\001\004\356\124\036"}, - {0xFB7B, "\001\004\356\124\032"}, - {0xFB7C, "\001\004\356\124\055"}, - {0xFB7D, "\001\004\356\124\131"}, - {0xFB7E, "\001\004\356\255\036"}, - {0xFB7F, "\001\004\356\255\032"}, - {0xFB80, "\001\004\356\255\055"}, - {0xFB81, "\001\004\356\255\131"}, - {0xFB82, "\001\004\357\125\036"}, - {0xFB83, "\001\004\357\125\032"}, - {0xFB84, "\001\004\357\121\036"}, - {0xFB85, "\001\004\357\121\032"}, - {0xFB86, "\001\004\357\144\036"}, - {0xFB87, "\001\004\357\144\032"}, - {0xFB88, "\001\004\357\126\036"}, - {0xFB89, "\001\004\357\126\032"}, - {0xFB8A, "\001\004\357\207\036"}, - {0xFB8B, "\001\004\357\207\032"}, - {0xFB8C, "\001\004\357\317\036"}, - {0xFB8D, "\001\004\357\317\032"}, - {0xFB8E, "\001\004\356\216\036"}, - {0xFB8F, "\001\004\356\216\032"}, - {0xFB90, "\001\004\356\216\055"}, - {0xFB91, "\001\004\356\216\131"}, - {0xFB92, "\001\004\355\322\036"}, - {0xFB93, "\001\004\355\322\032"}, - {0xFB94, "\001\004\355\322\055"}, - {0xFB95, "\001\004\355\322\131"}, - {0xFB96, "\001\004\356\331\036"}, - {0xFB97, "\001\004\356\331\032"}, - {0xFB98, "\001\004\356\331\055"}, - {0xFB99, "\001\004\356\331\131"}, - {0xFB9A, "\001\004\356\226\036"}, - {0xFB9B, "\001\004\356\226\032"}, - {0xFB9C, "\001\004\356\226\055"}, - {0xFB9D, "\001\004\356\226\131"}, - {0xFB9E, "\001\004\215\360\276\036"}, - {0xFB9F, "\001\004\215\360\276\032"}, - {0xFBA0, "\001\004\357\024\036"}, - {0xFBA1, "\001\004\357\024\032"}, - {0xFBA2, "\001\004\357\024\055"}, - {0xFBA3, "\001\004\357\024\131"}, - {0xFBA4, "\001\004\231\056\013\040\036"}, - {0xFBA5, "\001\004\231\056\013\040\032"}, - {0xFBA6, "\001\004\231\356\015\036"}, - {0xFBA7, "\001\004\231\356\015\032"}, - {0xFBA8, "\001\004\231\356\015\055"}, - {0xFBA9, "\001\004\231\356\015\131"}, - {0xFBAA, "\001\004\231\356\163\036"}, - {0xFBAB, "\001\004\231\356\163\032"}, - {0xFBAC, "\001\004\231\356\163\055"}, - {0xFBAD, "\001\004\231\356\163\131"}, - {0xFBAE, "\001\004\056\356\303\036"}, - {0xFBAF, "\001\004\056\356\303\032"}, - {0xFBB0, "\001\004\056\356\303\156\013\040\036"}, - {0xFBB1, "\001\004\056\356\303\156\013\040\032"}, - {0xFBD3, "\001\004\355\336\036"}, - {0xFBD4, "\001\004\355\336\032"}, - {0xFBD5, "\001\004\355\336\055"}, - {0xFBD6, "\001\004\355\336\131"}, - {0xFBD7, "\001\004\113\036"}, - {0xFBD8, "\001\004\113\032"}, - {0xFBD9, "\001\004\355\210\036"}, - {0xFBDA, "\001\004\355\210\032"}, - {0xFBDB, "\001\004\355\151\036"}, - {0xFBDC, "\001\004\355\151\032"}, - {0xFBDD, "\001\004\113\156\013\040\036"}, - {0xFBDE, "\001\004\357\053\036"}, - {0xFBDF, "\001\004\357\053\032"}, - {0xFBE0, "\001\004\355\205\355\210\036"}, - {0xFBE1, "\001\004\355\205\355\210\032"}, - {0xFBE2, "\001\004\355\205\355\151\036"}, - {0xFBE3, "\001\004\355\205\355\151\032"}, - {0xFBE4, "\001\004\130\036"}, - {0xFBE5, "\001\004\130\032"}, - {0xFBE6, "\001\004\130\055"}, - {0xFBE7, "\001\004\130\131"}, - {0xFBE8, "\001\004\356\236\360\367\355\205\100\160\055"}, - {0xFBE9, "\001\004\356\236\360\367\355\205\100\160\131"}, - {0xFBEA, "\012\004\056\156\013\040\100\036"}, - {0xFBEB, "\012\004\056\156\013\040\100\032"}, - {0xFBEC, "\012\004\056\156\013\040\355\305\036"}, - {0xFBED, "\012\004\056\156\013\040\355\305\032"}, - {0xFBEE, "\012\004\056\156\013\040\355\051\036"}, - {0xFBEF, "\012\004\056\156\013\040\355\051\032"}, - {0xFBF0, "\012\004\056\156\013\040\132\036"}, - {0xFBF1, "\012\004\056\156\013\040\132\032"}, - {0xFBF2, "\012\004\056\156\013\040\355\210\036"}, - {0xFBF3, "\012\004\056\156\013\040\355\210\032"}, - {0xFBF4, "\012\004\056\156\013\040\355\151\036"}, - {0xFBF5, "\012\004\056\156\013\040\355\151\032"}, - {0xFBF6, "\012\004\056\156\013\040\130\036"}, - {0xFBF7, "\012\004\056\156\013\040\130\032"}, - {0xFBF8, "\012\004\056\156\013\040\130\055"}, - {0xFBF9, "\012\004\356\236\355\205\056\156\013\040\100\160\036"}, - {0xFBFA, "\012\004\356\236\355\205\056\156\013\040\100\160\032"}, - {0xFBFB, "\012\004\356\236\355\205\056\156\013\040\100\160\055"}, - {0xFBFC, "\001\004\356\067\056\036"}, - {0xFBFD, "\001\004\356\067\056\032"}, - {0xFBFE, "\001\004\356\067\056\055"}, - {0xFBFF, "\001\004\356\067\056\131"}, - {0xFC00, "\012\004\056\156\013\040\115\036"}, - {0xFC01, "\012\004\056\156\013\040\111\036"}, - {0xFC02, "\012\004\056\156\013\040\047\036"}, - {0xFC03, "\012\004\056\156\013\040\100\160\036"}, - {0xFC04, "\012\004\056\156\013\040\056\036"}, - {0xFC05, "\012\004\324\115\036"}, - {0xFC06, "\012\004\324\111\036"}, - {0xFC07, "\012\004\324\170\036"}, - {0xFC08, "\012\004\324\047\036"}, - {0xFC09, "\012\004\324\100\160\036"}, - {0xFC0A, "\012\004\324\056\036"}, - {0xFC0B, "\012\004\233\115\036"}, - {0xFC0C, "\012\004\233\111\036"}, - {0xFC0D, "\012\004\233\170\036"}, - {0xFC0E, "\012\004\233\047\036"}, - {0xFC0F, "\012\004\233\100\160\036"}, - {0xFC10, "\012\004\233\056\036"}, - {0xFC11, "\012\004\355\060\115\036"}, - {0xFC12, "\012\004\355\060\047\036"}, - {0xFC13, "\012\004\355\060\100\160\036"}, - {0xFC14, "\012\004\355\060\056\036"}, - {0xFC15, "\012\004\115\111\036"}, - {0xFC16, "\012\004\115\047\036"}, - {0xFC17, "\012\004\111\115\036"}, - {0xFC18, "\012\004\111\047\036"}, - {0xFC19, "\012\004\170\115\036"}, - {0xFC1A, "\012\004\170\111\036"}, - {0xFC1B, "\012\004\170\047\036"}, - {0xFC1C, "\012\004\245\115\036"}, - {0xFC1D, "\012\004\245\111\036"}, - {0xFC1E, "\012\004\245\170\036"}, - {0xFC1F, "\012\004\245\047\036"}, - {0xFC20, "\012\004\355\005\111\036"}, - {0xFC21, "\012\004\355\005\047\036"}, - {0xFC22, "\012\004\350\115\036"}, - {0xFC23, "\012\004\350\111\036"}, - {0xFC24, "\012\004\350\170\036"}, - {0xFC25, "\012\004\350\047\036"}, - {0xFC26, "\012\004\355\046\111\036"}, - {0xFC27, "\012\004\355\046\047\036"}, - {0xFC28, "\012\004\355\366\047\036"}, - {0xFC29, "\012\004\355\027\115\036"}, - {0xFC2A, "\012\004\355\027\047\036"}, - {0xFC2B, "\012\004\355\063\115\036"}, - {0xFC2C, "\012\004\355\063\047\036"}, - {0xFC2D, "\012\004\351\115\036"}, - {0xFC2E, "\012\004\351\111\036"}, - {0xFC2F, "\012\004\351\170\036"}, - {0xFC30, "\012\004\351\047\036"}, - {0xFC31, "\012\004\351\100\160\036"}, - {0xFC32, "\012\004\351\056\036"}, - {0xFC33, "\012\004\355\037\111\036"}, - {0xFC34, "\012\004\355\037\047\036"}, - {0xFC35, "\012\004\355\037\100\160\036"}, - {0xFC36, "\012\004\355\037\056\036"}, - {0xFC37, "\012\004\254\100\036"}, - {0xFC38, "\012\004\254\115\036"}, - {0xFC39, "\012\004\254\111\036"}, - {0xFC3A, "\012\004\254\170\036"}, - {0xFC3B, "\012\004\254\206\036"}, - {0xFC3C, "\012\004\254\047\036"}, - {0xFC3D, "\012\004\254\100\160\036"}, - {0xFC3E, "\012\004\254\056\036"}, - {0xFC3F, "\012\004\206\115\036"}, - {0xFC40, "\012\004\206\111\036"}, - {0xFC41, "\012\004\206\170\036"}, - {0xFC42, "\012\004\206\047\036"}, - {0xFC43, "\012\004\206\100\160\036"}, - {0xFC44, "\012\004\206\056\036"}, - {0xFC45, "\012\004\047\115\036"}, - {0xFC46, "\012\004\047\111\036"}, - {0xFC47, "\012\004\047\170\036"}, - {0xFC48, "\012\004\047\047\036"}, - {0xFC49, "\012\004\047\100\160\036"}, - {0xFC4A, "\012\004\047\056\036"}, - {0xFC4B, "\012\004\215\115\036"}, - {0xFC4C, "\012\004\215\111\036"}, - {0xFC4D, "\012\004\215\170\036"}, - {0xFC4E, "\012\004\215\047\036"}, - {0xFC4F, "\012\004\215\100\160\036"}, - {0xFC50, "\012\004\215\056\036"}, - {0xFC51, "\012\004\231\115\036"}, - {0xFC52, "\012\004\231\047\036"}, - {0xFC53, "\012\004\231\100\160\036"}, - {0xFC54, "\012\004\231\056\036"}, - {0xFC55, "\012\004\056\115\036"}, - {0xFC56, "\012\004\056\111\036"}, - {0xFC57, "\012\004\056\170\036"}, - {0xFC58, "\012\004\056\047\036"}, - {0xFC59, "\012\004\056\100\160\036"}, - {0xFC5A, "\012\004\056\056\036"}, - {0xFC5B, "\012\004\356\321\013\040\100\036"}, - {0xFC5C, "\012\004\343\013\040\100\036"}, - {0xFC5D, "\012\004\100\160\013\040\100\036"}, - {0xFC5E, "\012\004\355\154\357\122\036"}, - {0xFC5F, "\012\004\355\154\357\216\036"}, - {0xFC60, "\012\004\355\154\356\175\036"}, - {0xFC61, "\012\004\355\154\356\157\036"}, - {0xFC62, "\012\004\355\154\356\215\036"}, - {0xFC63, "\012\004\355\154\013\040\100\036"}, - {0xFC64, "\012\004\056\156\013\040\343\032"}, - {0xFC65, "\012\004\056\156\013\040\356\134\032"}, - {0xFC66, "\012\004\056\156\013\040\047\032"}, - {0xFC67, "\012\004\056\156\013\040\215\032"}, - {0xFC68, "\012\004\056\156\013\040\100\160\032"}, - {0xFC69, "\012\004\056\156\013\040\056\032"}, - {0xFC6A, "\012\004\324\343\032"}, - {0xFC6B, "\012\004\324\356\134\032"}, - {0xFC6C, "\012\004\324\047\032"}, - {0xFC6D, "\012\004\324\215\032"}, - {0xFC6E, "\012\004\324\100\160\032"}, - {0xFC6F, "\012\004\324\056\032"}, - {0xFC70, "\012\004\233\343\032"}, - {0xFC71, "\012\004\233\356\134\032"}, - {0xFC72, "\012\004\233\047\032"}, - {0xFC73, "\012\004\233\215\032"}, - {0xFC74, "\012\004\233\100\160\032"}, - {0xFC75, "\012\004\233\056\032"}, - {0xFC76, "\012\004\355\060\343\032"}, - {0xFC77, "\012\004\355\060\356\134\032"}, - {0xFC78, "\012\004\355\060\047\032"}, - {0xFC79, "\012\004\355\060\215\032"}, - {0xFC7A, "\012\004\355\060\100\160\032"}, - {0xFC7B, "\012\004\355\060\056\032"}, - {0xFC7C, "\012\004\351\100\160\032"}, - {0xFC7D, "\012\004\351\056\032"}, - {0xFC7E, "\012\004\355\037\100\160\032"}, - {0xFC7F, "\012\004\355\037\056\032"}, - {0xFC80, "\012\004\254\100\032"}, - {0xFC81, "\012\004\254\206\032"}, - {0xFC82, "\012\004\254\047\032"}, - {0xFC83, "\012\004\254\100\160\032"}, - {0xFC84, "\012\004\254\056\032"}, - {0xFC85, "\012\004\206\047\032"}, - {0xFC86, "\012\004\206\100\160\032"}, - {0xFC87, "\012\004\206\056\032"}, - {0xFC88, "\012\004\047\100\032"}, - {0xFC89, "\012\004\047\047\032"}, - {0xFC8A, "\012\004\215\343\032"}, - {0xFC8B, "\012\004\215\356\134\032"}, - {0xFC8C, "\012\004\215\047\032"}, - {0xFC8D, "\012\004\215\215\032"}, - {0xFC8E, "\012\004\215\100\160\032"}, - {0xFC8F, "\012\004\215\056\032"}, - {0xFC90, "\012\004\100\160\013\040\100\032"}, - {0xFC91, "\012\004\056\343\032"}, - {0xFC92, "\012\004\056\356\134\032"}, - {0xFC93, "\012\004\056\047\032"}, - {0xFC94, "\012\004\056\215\032"}, - {0xFC95, "\012\004\056\100\160\032"}, - {0xFC96, "\012\004\056\056\032"}, - {0xFC97, "\012\004\056\156\013\040\115\055"}, - {0xFC98, "\012\004\056\156\013\040\111\055"}, - {0xFC99, "\012\004\056\156\013\040\170\055"}, - {0xFC9A, "\012\004\056\156\013\040\047\055"}, - {0xFC9B, "\012\004\056\156\013\040\231\055"}, - {0xFC9C, "\012\004\324\115\055"}, - {0xFC9D, "\012\004\324\111\055"}, - {0xFC9E, "\012\004\324\170\055"}, - {0xFC9F, "\012\004\324\047\055"}, - {0xFCA0, "\012\004\324\231\055"}, - {0xFCA1, "\012\004\233\115\055"}, - {0xFCA2, "\012\004\233\111\055"}, - {0xFCA3, "\012\004\233\170\055"}, - {0xFCA4, "\012\004\233\047\055"}, - {0xFCA5, "\012\004\233\231\055"}, - {0xFCA6, "\012\004\355\060\047\055"}, - {0xFCA7, "\012\004\115\111\055"}, - {0xFCA8, "\012\004\115\047\055"}, - {0xFCA9, "\012\004\111\115\055"}, - {0xFCAA, "\012\004\111\047\055"}, - {0xFCAB, "\012\004\170\115\055"}, - {0xFCAC, "\012\004\170\047\055"}, - {0xFCAD, "\012\004\245\115\055"}, - {0xFCAE, "\012\004\245\111\055"}, - {0xFCAF, "\012\004\245\170\055"}, - {0xFCB0, "\012\004\245\047\055"}, - {0xFCB1, "\012\004\355\005\111\055"}, - {0xFCB2, "\012\004\355\005\170\055"}, - {0xFCB3, "\012\004\355\005\047\055"}, - {0xFCB4, "\012\004\350\115\055"}, - {0xFCB5, "\012\004\350\111\055"}, - {0xFCB6, "\012\004\350\170\055"}, - {0xFCB7, "\012\004\350\047\055"}, - {0xFCB8, "\012\004\355\046\111\055"}, - {0xFCB9, "\012\004\355\366\047\055"}, - {0xFCBA, "\012\004\355\027\115\055"}, - {0xFCBB, "\012\004\355\027\047\055"}, - {0xFCBC, "\012\004\355\063\115\055"}, - {0xFCBD, "\012\004\355\063\047\055"}, - {0xFCBE, "\012\004\351\115\055"}, - {0xFCBF, "\012\004\351\111\055"}, - {0xFCC0, "\012\004\351\170\055"}, - {0xFCC1, "\012\004\351\047\055"}, - {0xFCC2, "\012\004\355\037\111\055"}, - {0xFCC3, "\012\004\355\037\047\055"}, - {0xFCC4, "\012\004\254\115\055"}, - {0xFCC5, "\012\004\254\111\055"}, - {0xFCC6, "\012\004\254\170\055"}, - {0xFCC7, "\012\004\254\206\055"}, - {0xFCC8, "\012\004\254\047\055"}, - {0xFCC9, "\012\004\206\115\055"}, - {0xFCCA, "\012\004\206\111\055"}, - {0xFCCB, "\012\004\206\170\055"}, - {0xFCCC, "\012\004\206\047\055"}, - {0xFCCD, "\012\004\206\231\055"}, - {0xFCCE, "\012\004\047\115\055"}, - {0xFCCF, "\012\004\047\111\055"}, - {0xFCD0, "\012\004\047\170\055"}, - {0xFCD1, "\012\004\047\047\055"}, - {0xFCD2, "\012\004\215\115\055"}, - {0xFCD3, "\012\004\215\111\055"}, - {0xFCD4, "\012\004\215\170\055"}, - {0xFCD5, "\012\004\215\047\055"}, - {0xFCD6, "\012\004\215\231\055"}, - {0xFCD7, "\012\004\231\115\055"}, - {0xFCD8, "\012\004\231\047\055"}, - {0xFCD9, "\012\004\231\013\040\100\055"}, - {0xFCDA, "\012\004\056\115\055"}, - {0xFCDB, "\012\004\056\111\055"}, - {0xFCDC, "\012\004\056\170\055"}, - {0xFCDD, "\012\004\056\047\055"}, - {0xFCDE, "\012\004\056\231\055"}, - {0xFCDF, "\012\004\056\156\013\040\047\131"}, - {0xFCE0, "\012\004\056\156\013\040\231\131"}, - {0xFCE1, "\012\004\324\047\131"}, - {0xFCE2, "\012\004\324\231\131"}, - {0xFCE3, "\012\004\233\047\131"}, - {0xFCE4, "\012\004\233\231\131"}, - {0xFCE5, "\012\004\355\060\047\131"}, - {0xFCE6, "\012\004\355\060\231\131"}, - {0xFCE7, "\012\004\245\047\131"}, - {0xFCE8, "\012\004\245\231\131"}, - {0xFCE9, "\012\004\247\047\131"}, - {0xFCEA, "\012\004\247\231\131"}, - {0xFCEB, "\012\004\254\206\131"}, - {0xFCEC, "\012\004\254\047\131"}, - {0xFCED, "\012\004\206\047\131"}, - {0xFCEE, "\012\004\215\047\131"}, - {0xFCEF, "\012\004\215\231\131"}, - {0xFCF0, "\012\004\056\047\131"}, - {0xFCF1, "\012\004\056\231\131"}, - {0xFCF2, "\012\004\355\154\356\175\131"}, - {0xFCF3, "\012\004\355\154\356\157\131"}, - {0xFCF4, "\012\004\355\154\356\215\131"}, - {0xFCF5, "\012\004\355\046\100\160\036"}, - {0xFCF6, "\012\004\355\046\056\036"}, - {0xFCF7, "\012\004\355\027\100\160\036"}, - {0xFCF8, "\012\004\355\027\056\036"}, - {0xFCF9, "\012\004\355\063\100\160\036"}, - {0xFCFA, "\012\004\355\063\056\036"}, - {0xFCFB, "\012\004\245\100\160\036"}, - {0xFCFC, "\012\004\245\056\036"}, - {0xFCFD, "\012\004\247\100\160\036"}, - {0xFCFE, "\012\004\247\056\036"}, - {0xFCFF, "\012\004\111\100\160\036"}, - {0xFD00, "\012\004\111\056\036"}, - {0xFD01, "\012\004\115\100\160\036"}, - {0xFD02, "\012\004\115\056\036"}, - {0xFD03, "\012\004\170\100\160\036"}, - {0xFD04, "\012\004\170\056\036"}, - {0xFD05, "\012\004\355\005\100\160\036"}, - {0xFD06, "\012\004\355\005\056\036"}, - {0xFD07, "\012\004\350\100\160\036"}, - {0xFD08, "\012\004\350\056\036"}, - {0xFD09, "\012\004\247\115\036"}, - {0xFD0A, "\012\004\247\111\036"}, - {0xFD0B, "\012\004\247\170\036"}, - {0xFD0C, "\012\004\247\047\036"}, - {0xFD0D, "\012\004\247\343\036"}, - {0xFD0E, "\012\004\245\343\036"}, - {0xFD0F, "\012\004\355\005\343\036"}, - {0xFD10, "\012\004\350\343\036"}, - {0xFD11, "\012\004\355\046\100\160\032"}, - {0xFD12, "\012\004\355\046\056\032"}, - {0xFD13, "\012\004\355\027\100\160\032"}, - {0xFD14, "\012\004\355\027\056\032"}, - {0xFD15, "\012\004\355\063\100\160\032"}, - {0xFD16, "\012\004\355\063\056\032"}, - {0xFD17, "\012\004\245\100\160\032"}, - {0xFD18, "\012\004\245\056\032"}, - {0xFD19, "\012\004\247\100\160\032"}, - {0xFD1A, "\012\004\247\056\032"}, - {0xFD1B, "\012\004\111\100\160\032"}, - {0xFD1C, "\012\004\111\056\032"}, - {0xFD1D, "\012\004\115\100\160\032"}, - {0xFD1E, "\012\004\115\056\032"}, - {0xFD1F, "\012\004\170\100\160\032"}, - {0xFD20, "\012\004\170\056\032"}, - {0xFD21, "\012\004\355\005\100\160\032"}, - {0xFD22, "\012\004\355\005\056\032"}, - {0xFD23, "\012\004\350\100\160\032"}, - {0xFD24, "\012\004\350\056\032"}, - {0xFD25, "\012\004\247\115\032"}, - {0xFD26, "\012\004\247\111\032"}, - {0xFD27, "\012\004\247\170\032"}, - {0xFD28, "\012\004\247\047\032"}, - {0xFD29, "\012\004\247\343\032"}, - {0xFD2A, "\012\004\245\343\032"}, - {0xFD2B, "\012\004\355\005\343\032"}, - {0xFD2C, "\012\004\350\343\032"}, - {0xFD2D, "\012\004\247\115\055"}, - {0xFD2E, "\012\004\247\111\055"}, - {0xFD2F, "\012\004\247\170\055"}, - {0xFD30, "\012\004\247\047\055"}, - {0xFD31, "\012\004\245\231\055"}, - {0xFD32, "\012\004\247\231\055"}, - {0xFD33, "\012\004\355\046\047\055"}, - {0xFD34, "\012\004\245\115\131"}, - {0xFD35, "\012\004\245\111\131"}, - {0xFD36, "\012\004\245\170\131"}, - {0xFD37, "\012\004\247\115\131"}, - {0xFD38, "\012\004\247\111\131"}, - {0xFD39, "\012\004\247\170\131"}, - {0xFD3A, "\012\004\355\046\047\131"}, - {0xFD3B, "\012\004\355\366\047\131"}, - {0xFD3C, "\012\004\100\356\176\032"}, - {0xFD3D, "\012\004\100\356\176\036"}, - {0xFD3E, "\355\123\052\361\143"}, - {0xFD3F, "\355\123\053\361\143"}, - {0xFD50, "\012\004\233\115\047\055"}, - {0xFD51, "\012\004\233\111\115\032"}, - {0xFD52, "\012\004\233\111\115\055"}, - {0xFD53, "\012\004\233\111\047\055"}, - {0xFD54, "\012\004\233\170\047\055"}, - {0xFD55, "\012\004\233\047\115\055"}, - {0xFD56, "\012\004\233\047\111\055"}, - {0xFD57, "\012\004\233\047\170\055"}, - {0xFD58, "\012\004\115\047\111\032"}, - {0xFD59, "\012\004\115\047\111\055"}, - {0xFD5A, "\012\004\111\047\056\032"}, - {0xFD5B, "\012\004\111\047\100\160\032"}, - {0xFD5C, "\012\004\245\111\115\055"}, - {0xFD5D, "\012\004\245\115\111\055"}, - {0xFD5E, "\012\004\245\115\100\160\032"}, - {0xFD5F, "\012\004\245\047\111\032"}, - {0xFD60, "\012\004\245\047\111\055"}, - {0xFD61, "\012\004\245\047\115\055"}, - {0xFD62, "\012\004\245\047\047\032"}, - {0xFD63, "\012\004\245\047\047\055"}, - {0xFD64, "\012\004\355\005\111\111\032"}, - {0xFD65, "\012\004\355\005\111\111\055"}, - {0xFD66, "\012\004\355\005\047\047\032"}, - {0xFD67, "\012\004\247\111\047\032"}, - {0xFD68, "\012\004\247\111\047\055"}, - {0xFD69, "\012\004\247\115\056\032"}, - {0xFD6A, "\012\004\247\047\170\032"}, - {0xFD6B, "\012\004\247\047\170\055"}, - {0xFD6C, "\012\004\247\047\047\032"}, - {0xFD6D, "\012\004\247\047\047\055"}, - {0xFD6E, "\012\004\350\111\100\160\032"}, - {0xFD6F, "\012\004\350\170\047\032"}, - {0xFD70, "\012\004\350\170\047\055"}, - {0xFD71, "\012\004\355\046\047\111\032"}, - {0xFD72, "\012\004\355\046\047\111\055"}, - {0xFD73, "\012\004\355\046\047\047\055"}, - {0xFD74, "\012\004\355\046\047\056\032"}, - {0xFD75, "\012\004\355\027\115\047\032"}, - {0xFD76, "\012\004\355\027\047\047\032"}, - {0xFD77, "\012\004\355\027\047\047\055"}, - {0xFD78, "\012\004\355\027\047\100\160\032"}, - {0xFD79, "\012\004\355\063\047\047\032"}, - {0xFD7A, "\012\004\355\063\047\056\032"}, - {0xFD7B, "\012\004\355\063\047\100\160\032"}, - {0xFD7C, "\012\004\351\170\047\032"}, - {0xFD7D, "\012\004\351\170\047\055"}, - {0xFD7E, "\012\004\355\037\047\111\032"}, - {0xFD7F, "\012\004\355\037\047\047\032"}, - {0xFD80, "\012\004\206\111\047\032"}, - {0xFD81, "\012\004\206\111\056\032"}, - {0xFD82, "\012\004\206\111\100\160\032"}, - {0xFD83, "\012\004\206\115\115\055"}, - {0xFD84, "\012\004\206\115\115\032"}, - {0xFD85, "\012\004\206\170\047\032"}, - {0xFD86, "\012\004\206\170\047\055"}, - {0xFD87, "\012\004\206\047\111\032"}, - {0xFD88, "\012\004\206\047\111\055"}, - {0xFD89, "\012\004\047\111\115\055"}, - {0xFD8A, "\012\004\047\111\047\055"}, - {0xFD8B, "\012\004\047\111\056\032"}, - {0xFD8C, "\012\004\047\115\111\055"}, - {0xFD8D, "\012\004\047\115\047\055"}, - {0xFD8E, "\012\004\047\170\115\055"}, - {0xFD8F, "\012\004\047\170\047\055"}, - {0xFD92, "\012\004\047\115\170\055"}, - {0xFD93, "\012\004\231\047\115\055"}, - {0xFD94, "\012\004\231\047\047\055"}, - {0xFD95, "\012\004\215\111\047\055"}, - {0xFD96, "\012\004\215\111\100\160\032"}, - {0xFD97, "\012\004\215\115\047\032"}, - {0xFD98, "\012\004\215\115\047\055"}, - {0xFD99, "\012\004\215\115\100\160\032"}, - {0xFD9A, "\012\004\215\047\056\032"}, - {0xFD9B, "\012\004\215\047\100\160\032"}, - {0xFD9C, "\012\004\056\047\047\032"}, - {0xFD9D, "\012\004\056\047\047\055"}, - {0xFD9E, "\012\004\324\170\056\032"}, - {0xFD9F, "\012\004\233\115\056\032"}, - {0xFDA0, "\012\004\233\115\100\160\032"}, - {0xFDA1, "\012\004\233\170\056\032"}, - {0xFDA2, "\012\004\233\170\100\160\032"}, - {0xFDA3, "\012\004\233\047\056\032"}, - {0xFDA4, "\012\004\233\047\100\160\032"}, - {0xFDA5, "\012\004\115\047\056\032"}, - {0xFDA6, "\012\004\115\111\100\160\032"}, - {0xFDA7, "\012\004\115\047\100\160\032"}, - {0xFDA8, "\012\004\245\170\100\160\032"}, - {0xFDA9, "\012\004\355\005\111\056\032"}, - {0xFDAA, "\012\004\247\111\056\032"}, - {0xFDAB, "\012\004\350\111\056\032"}, - {0xFDAC, "\012\004\206\115\056\032"}, - {0xFDAD, "\012\004\206\047\056\032"}, - {0xFDAE, "\012\004\056\111\056\032"}, - {0xFDAF, "\012\004\056\115\056\032"}, - {0xFDB0, "\012\004\056\047\056\032"}, - {0xFDB1, "\012\004\047\047\056\032"}, - {0xFDB2, "\012\004\355\037\047\056\032"}, - {0xFDB3, "\012\004\215\111\056\032"}, - {0xFDB4, "\012\004\355\037\047\111\055"}, - {0xFDB5, "\012\004\206\111\047\055"}, - {0xFDB6, "\012\004\355\027\047\056\032"}, - {0xFDB7, "\012\004\254\047\056\032"}, - {0xFDB8, "\012\004\215\115\111\055"}, - {0xFDB9, "\012\004\047\170\056\032"}, - {0xFDBA, "\012\004\206\115\047\055"}, - {0xFDBB, "\012\004\254\047\047\032"}, - {0xFDBC, "\012\004\206\115\047\032"}, - {0xFDBD, "\012\004\215\115\111\032"}, - {0xFDBE, "\012\004\115\111\056\032"}, - {0xFDBF, "\012\004\111\115\056\032"}, - {0xFDC0, "\012\004\047\115\056\032"}, - {0xFDC1, "\012\004\351\047\056\032"}, - {0xFDC2, "\012\004\324\111\056\032"}, - {0xFDC3, "\012\004\254\047\047\055"}, - {0xFDC4, "\012\004\355\027\115\047\055"}, - {0xFDC5, "\012\004\355\005\047\047\055"}, - {0xFDC6, "\012\004\245\170\056\032"}, - {0xFDC7, "\012\004\215\115\056\032"}, - {0xFDF0, "\012\004\361\277\036\362\060\355\246\057\360\154\360\141"}, - {0xFDF1, "\012\004\373\331\036\362\060\355\246\057\360\154\360\141"}, - {0xFDF2, "\012\004\362\314\036"}, - {0xFDF3, "\012\004\362\307\036"}, - {0xFDF4, "\012\004\371\007\036"}, - {0xFDF5, "\012\004\374\214\036"}, - {0xFDF6, "\012\004\374\041\036"}, - {0xFDF7, "\012\004\360\045\036"}, - {0xFDF8, "\012\004\362\102\036"}, - {0xFDF9, "\012\004\361\277\036"}, - {0xFDFA, "\012\004\374\215\360\045\362\102"}, - {0xFDFB, "\012\004\365\300"}, - {0xFE20, "\026\353\052\007\012"}, - {0xFE21, "\026\353\053\007\012"}, - {0xFE22, "\026\353\052\007\172\070"}, - {0xFE23, "\026\353\053\007\172\070"}, - {0xFE30, "\263\007\355\022\007\037\357\116\070\202"}, - {0xFE31, "\263\007\355\022\007\355\007\356\004\202"}, - {0xFE32, "\263\007\355\022\007\355\007\357\131\202"}, - {0xFE33, "\263\007\355\022\007\355\007\101\202"}, - {0xFE34, "\263\007\355\022\007\355\007\101\356\232\202"}, - {0xFE35, "\263\007\355\022\007\355\123\052\256"}, - {0xFE36, "\263\007\355\022\007\355\123\053\256"}, - {0xFE37, "\263\007\355\022\360\151\052\256"}, - {0xFE38, "\263\007\355\022\360\151\053\256"}, - {0xFE39, "\263\007\355\022\007\122\052\202\013\355\370"}, - {0xFE3A, "\263\007\355\022\007\122\221\202\013\355\370"}, - {0xFE3B, "\263\007\355\022\007\122\052\356\076\207\202"}, - {0xFE3C, "\263\007\355\022\007\122\221\356\076\207\202"}, - {0xFE3D, "\263\007\355\022\007\122\070\052\202"}, - {0xFE3E, "\263\007\355\022\007\122\070\221\202"}, - {0xFE3F, "\263\007\355\022\007\122\052\202"}, - {0xFE40, "\263\007\355\022\007\122\221\202"}, - {0xFE41, "\263\007\355\022\007\122\202\052\013\273"}, - {0xFE42, "\263\007\355\022\007\122\202\221\013\273"}, - {0xFE43, "\263\007\355\022\007\122\147\202\052\013\273"}, - {0xFE44, "\263\007\355\022\007\122\147\202\221\013\273"}, - {0xFE49, "\355\007\102\013\357\007"}, - {0xFE4A, "\355\007\102\044\037\360\110"}, - {0xFE4B, "\355\007\102\356\232"}, - {0xFE4C, "\355\007\102\070\356\232"}, - {0xFE4D, "\355\007\101\164\357\007"}, - {0xFE4E, "\355\007\101\044\037\360\110"}, - {0xFE4F, "\355\007\101\356\232"}, - {0xFE50, "\330\005"}, - {0xFE51, "\330\076\005"}, - {0xFE52, "\037\005"}, - {0xFE54, "\356\104\005"}, - {0xFE55, "\355\103\005"}, - {0xFE56, "\037\355\313\005"}, - {0xFE57, "\037\355\312\005"}, - {0xFE58, "\355\126\355\315\356\004\005"}, - {0xFE59, "\355\123\052\005"}, - {0xFE5A, "\355\123\053\005"}, - {0xFE5B, "\356\051\052\005"}, - {0xFE5C, "\356\051\053\005"}, - {0xFE5D, "\122\052\013\355\370\005"}, - {0xFE5E, "\122\221\013\355\370\005"}, - {0xFE5F, "\357\112\005"}, - {0xFE60, "\356\377\005"}, - {0xFE61, "\355\115\005"}, - {0xFE62, "\057\214\005"}, - {0xFE63, "\355\007\005"}, - {0xFE64, "\057\320\044\005"}, - {0xFE65, "\057\344\044\005"}, - {0xFE66, "\057\173\044\005"}, - {0xFE68, "\246\355\044\356\073\005"}, - {0xFE69, "\022\357\141\005"}, - {0xFE6A, "\022\355\057\355\245\005"}, - {0xFE6B, "\357\065\005"}, - {0xFE70, "\356\176\004\036"}, - {0xFE71, "\361\355\356\176\013\040\004"}, - {0xFE72, "\357\122\004\036"}, - {0xFE74, "\357\216\036\004"}, - {0xFE76, "\356\175\036\004"}, - {0xFE77, "\356\175\131\004"}, - {0xFE78, "\356\157\036\004"}, - {0xFE79, "\356\157\131\004"}, - {0xFE7A, "\356\215\036\004"}, - {0xFE7B, "\356\215\131\004"}, - {0xFE7C, "\355\154\036\004"}, - {0xFE7D, "\355\154\131\004"}, - {0xFE7E, "\357\036\036\004"}, - {0xFE7F, "\357\036\131\004"}, - {0xFE80, "\001\004\156\036"}, - {0xFE81, "\001\004\100\356\022\013\040\036"}, - {0xFE82, "\001\004\100\356\022\013\040\032"}, - {0xFE83, "\001\004\100\156\013\040\036"}, - {0xFE84, "\001\004\032"}, - {0xFE85, "\001\004\355\051\156\013\040\036"}, - {0xFE86, "\001\004\355\051\156\013\040\032"}, - {0xFE87, "\001\004\100\156\043\036"}, - {0xFE88, "\001\004\100\156\043\032"}, - {0xFE89, "\001\004\056\156\013\040\036"}, - {0xFE8A, "\001\004\056\156\013\040\032"}, - {0xFE8B, "\001\004\056\156\013\040\055"}, - {0xFE8C, "\001\004\056\156\013\040\131"}, - {0xFE8D, "\001\004\100\036"}, - {0xFE8E, "\001\004\100\032"}, - {0xFE8F, "\001\004\324\036"}, - {0xFE90, "\001\004\324\032"}, - {0xFE91, "\001\004\324\055"}, - {0xFE92, "\001\004\324\131"}, - {0xFE93, "\001\004\233\356\354\036"}, - {0xFE94, "\001\004\233\356\354\032"}, - {0xFE95, "\001\004\233\036"}, - {0xFE96, "\001\004\233\032"}, - {0xFE97, "\001\004\233\055"}, - {0xFE98, "\001\004\233\131"}, - {0xFE99, "\001\004\355\060\036"}, - {0xFE9A, "\001\004\355\060\032"}, - {0xFE9B, "\001\004\355\060\055"}, - {0xFE9C, "\001\004\355\060\131"}, - {0xFE9D, "\001\004\115\036"}, - {0xFE9E, "\001\004\115\032"}, - {0xFE9F, "\001\004\115\055"}, - {0xFEA0, "\001\004\115\131"}, - {0xFEA1, "\001\004\111\036"}, - {0xFEA2, "\001\004\111\032"}, - {0xFEA3, "\001\004\111\055"}, - {0xFEA4, "\001\004\111\131"}, - {0xFEA5, "\001\004\170\036"}, - {0xFEA6, "\001\004\170\032"}, - {0xFEA7, "\001\004\170\055"}, - {0xFEA8, "\001\004\170\131"}, - {0xFEA9, "\001\004\355\316\036"}, - {0xFEAA, "\001\004\355\316\032"}, - {0xFEAB, "\001\004\356\321\036"}, - {0xFEAC, "\001\004\356\321\032"}, - {0xFEAD, "\001\004\343\036"}, - {0xFEAE, "\001\004\343\032"}, - {0xFEAF, "\001\004\360\017\036"}, - {0xFEB0, "\001\004\360\017\032"}, - {0xFEB1, "\001\004\245\036"}, - {0xFEB2, "\001\004\245\032"}, - {0xFEB3, "\001\004\245\055"}, - {0xFEB4, "\001\004\245\131"}, - {0xFEB5, "\001\004\247\036"}, - {0xFEB6, "\001\004\247\032"}, - {0xFEB7, "\001\004\247\055"}, - {0xFEB8, "\001\004\247\131"}, - {0xFEB9, "\001\004\355\005\036"}, - {0xFEBA, "\001\004\355\005\032"}, - {0xFEBB, "\001\004\355\005\055"}, - {0xFEBC, "\001\004\355\005\131"}, - {0xFEBD, "\001\004\350\036"}, - {0xFEBE, "\001\004\350\032"}, - {0xFEBF, "\001\004\350\055"}, - {0xFEC0, "\001\004\350\131"}, - {0xFEC1, "\001\004\355\046\036"}, - {0xFEC2, "\001\004\355\046\032"}, - {0xFEC3, "\001\004\355\046\055"}, - {0xFEC4, "\001\004\355\046\131"}, - {0xFEC5, "\001\004\355\366\036"}, - {0xFEC6, "\001\004\355\366\032"}, - {0xFEC7, "\001\004\355\366\055"}, - {0xFEC8, "\001\004\355\366\131"}, - {0xFEC9, "\001\004\355\027\036"}, - {0xFECA, "\001\004\355\027\032"}, - {0xFECB, "\001\004\355\027\055"}, - {0xFECC, "\001\004\355\027\131"}, - {0xFECD, "\001\004\355\063\036"}, - {0xFECE, "\001\004\355\063\032"}, - {0xFECF, "\001\004\355\063\055"}, - {0xFED0, "\001\004\355\063\131"}, - {0xFED1, "\001\004\351\036"}, - {0xFED2, "\001\004\351\032"}, - {0xFED3, "\001\004\351\055"}, - {0xFED4, "\001\004\351\131"}, - {0xFED5, "\001\004\355\037\036"}, - {0xFED6, "\001\004\355\037\032"}, - {0xFED7, "\001\004\355\037\055"}, - {0xFED8, "\001\004\355\037\131"}, - {0xFED9, "\001\004\254\036"}, - {0xFEDA, "\001\004\254\032"}, - {0xFEDB, "\001\004\254\055"}, - {0xFEDC, "\001\004\254\131"}, - {0xFEDD, "\001\004\206\036"}, - {0xFEDE, "\001\004\206\032"}, - {0xFEDF, "\001\004\206\055"}, - {0xFEE0, "\001\004\206\131"}, - {0xFEE1, "\001\004\047\036"}, - {0xFEE2, "\001\004\047\032"}, - {0xFEE3, "\001\004\047\055"}, - {0xFEE4, "\001\004\047\131"}, - {0xFEE5, "\001\004\215\036"}, - {0xFEE6, "\001\004\215\032"}, - {0xFEE7, "\001\004\215\055"}, - {0xFEE8, "\001\004\215\131"}, - {0xFEE9, "\001\004\231\036"}, - {0xFEEA, "\001\004\231\032"}, - {0xFEEB, "\001\004\231\055"}, - {0xFEEC, "\001\004\231\131"}, - {0xFEED, "\001\004\355\051\036"}, - {0xFEEE, "\001\004\355\051\032"}, - {0xFEEF, "\001\004\100\160\036"}, - {0xFEF0, "\001\004\100\160\032"}, - {0xFEF1, "\001\004\056\036"}, - {0xFEF2, "\001\004\056\032"}, - {0xFEF3, "\001\004\056\055"}, - {0xFEF4, "\001\004\056\131"}, - {0xFEF5, "\012\004\206\100\356\022\013\040\036"}, - {0xFEF6, "\012\004\206\100\356\022\013\040\032"}, - {0xFEF7, "\012\004\206\100\156\013\040\036"}, - {0xFEF8, "\012\004\206\100\156\013\040\032"}, - {0xFEF9, "\012\004\206\100\156\043\036"}, - {0xFEFA, "\012\004\206\100\156\043\032"}, - {0xFEFB, "\012\004\206\100\036"}, - {0xFEFC, "\012\004\206\100\032"}, - {0xFEFF, "\355\073\357\201\270\105"}, - {0xFF01, "\037\355\312\073\105"}, - {0xFF02, "\355\135\073\105"}, - {0xFF03, "\357\112\073\105"}, - {0xFF04, "\022\357\141\073\105"}, - {0xFF05, "\022\355\057\355\245\073\105"}, - {0xFF06, "\356\377\073\105"}, - {0xFF07, "\355\306\073\105"}, - {0xFF08, "\355\123\052\073\105"}, - {0xFF09, "\355\123\053\073\105"}, - {0xFF0A, "\355\115\073\105"}, - {0xFF0B, "\057\214\073\105"}, - {0xFF0C, "\330\073\105"}, - {0xFF0D, "\355\007\073\105"}, - {0xFF0E, "\037\073\105"}, - {0xFF0F, "\246\355\044\073\105"}, - {0xFF10, "\024\331\073\105"}, - {0xFF11, "\024\110\073\105"}, - {0xFF12, "\024\127\073\105"}, - {0xFF13, "\024\136\073\105"}, - {0xFF14, "\024\220\073\105"}, - {0xFF15, "\024\230\073\105"}, - {0xFF16, "\024\255\073\105"}, - {0xFF17, "\024\252\073\105"}, - {0xFF18, "\024\226\073\105"}, - {0xFF19, "\024\257\073\105"}, - {0xFF1A, "\355\103\360\134\073\105"}, - {0xFF1B, "\356\104\073\105"}, - {0xFF1C, "\057\320\044\073\105"}, - {0xFF1D, "\057\173\044\073\105"}, - {0xFF1E, "\057\344\044\073\105"}, - {0xFF1F, "\037\355\313\073\105"}, - {0xFF20, "\357\065\073\105"}, - {0xFF21, "\001\010\006\063\073\105"}, - {0xFF22, "\001\010\006\334\073\105"}, - {0xFF23, "\001\010\006\313\073\105"}, - {0xFF24, "\001\010\006\275\073\105"}, - {0xFF25, "\001\010\006\130\073\105"}, - {0xFF26, "\001\010\006\355\062\073\105"}, - {0xFF27, "\001\010\006\266\073\105"}, - {0xFF28, "\001\010\006\237\073\105"}, - {0xFF29, "\001\010\006\103\073\105"}, - {0xFF2A, "\001\010\006\355\053\073\105"}, - {0xFF2B, "\001\010\006\352\073\105"}, - {0xFF2C, "\001\010\006\211\073\105"}, - {0xFF2D, "\001\010\006\276\073\105"}, - {0xFF2E, "\001\010\006\241\073\105"}, - {0xFF2F, "\001\010\006\064\073\105"}, - {0xFF30, "\001\010\006\355\021\073\105"}, - {0xFF31, "\001\010\006\355\173\073\105"}, - {0xFF32, "\001\010\006\167\073\105"}, - {0xFF33, "\001\010\006\223\073\105"}, - {0xFF34, "\001\010\006\261\073\105"}, - {0xFF35, "\001\010\006\132\073\105"}, - {0xFF36, "\001\010\006\355\025\073\105"}, - {0xFF37, "\001\010\006\347\073\105"}, - {0xFF38, "\001\010\006\355\026\073\105"}, - {0xFF39, "\001\010\006\265\073\105"}, - {0xFF3A, "\001\010\006\271\073\105"}, - {0xFF3B, "\122\052\073\105"}, - {0xFF3C, "\246\355\044\356\073\073\105"}, - {0xFF3D, "\122\221\073\105"}, - {0xFF3E, "\021\072\073\105"}, - {0xFF3F, "\355\007\101\073\105"}, - {0xFF40, "\021\067\073\105"}, - {0xFF41, "\001\005\006\063\073\105"}, - {0xFF42, "\001\005\006\334\073\105"}, - {0xFF43, "\001\005\006\313\073\105"}, - {0xFF44, "\001\005\006\275\073\105"}, - {0xFF45, "\001\005\006\130\073\105"}, - {0xFF46, "\001\005\006\355\062\073\105"}, - {0xFF47, "\001\005\006\266\073\105"}, - {0xFF48, "\001\005\006\237\073\105"}, - {0xFF49, "\001\005\006\103\073\105"}, - {0xFF4A, "\001\005\006\355\053\073\105"}, - {0xFF4B, "\001\005\006\352\073\105"}, - {0xFF4C, "\001\005\006\211\073\105"}, - {0xFF4D, "\001\005\006\276\073\105"}, - {0xFF4E, "\001\005\006\241\073\105"}, - {0xFF4F, "\001\005\006\064\073\105"}, - {0xFF50, "\001\005\006\355\021\073\105"}, - {0xFF51, "\001\005\006\355\173\073\105"}, - {0xFF52, "\001\005\006\167\073\105"}, - {0xFF53, "\001\005\006\223\073\105"}, - {0xFF54, "\001\005\006\261\073\105"}, - {0xFF55, "\001\005\006\132\073\105"}, - {0xFF56, "\001\005\006\355\025\073\105"}, - {0xFF57, "\001\005\006\347\073\105"}, - {0xFF58, "\001\005\006\355\026\073\105"}, - {0xFF59, "\001\005\006\265\073\105"}, - {0xFF5A, "\001\005\006\271\073\105"}, - {0xFF5B, "\356\051\052\073\105"}, - {0xFF5C, "\243\256\073\105"}, - {0xFF5D, "\356\051\053\073\105"}, - {0xFF5E, "\172\073\105"}, - {0xFF61, "\037\076\071"}, - {0xFF62, "\122\052\013\273\071"}, - {0xFF63, "\122\221\013\273\071"}, - {0xFF64, "\330\076\071"}, - {0xFF65, "\037\355\137\045\071"}, - {0xFF66, "\002\045\355\150\071"}, - {0xFF67, "\002\045\175\063\071"}, - {0xFF68, "\002\045\175\103\071"}, - {0xFF69, "\002\045\175\132\071"}, - {0xFF6A, "\002\045\175\130\071"}, - {0xFF6B, "\002\045\175\064\071"}, - {0xFF6C, "\002\045\175\305\071"}, - {0xFF6D, "\002\045\175\355\364\071"}, - {0xFF6E, "\002\045\175\355\040\071"}, - {0xFF6F, "\002\045\175\355\300\071"}, - {0xFF70, "\204\356\075\007\355\175\357\013\071"}, - {0xFF71, "\002\045\063\071"}, - {0xFF72, "\002\045\103\071"}, - {0xFF73, "\002\045\132\071"}, - {0xFF74, "\002\045\130\071"}, - {0xFF75, "\002\045\064\071"}, - {0xFF76, "\002\045\240\071"}, - {0xFF77, "\002\045\355\332\071"}, - {0xFF78, "\002\045\356\021\071"}, - {0xFF79, "\002\045\355\331\071"}, - {0xFF7A, "\002\045\355\167\071"}, - {0xFF7B, "\002\045\355\004\071"}, - {0xFF7C, "\002\045\355\275\071"}, - {0xFF7D, "\002\045\356\253\071"}, - {0xFF7E, "\002\045\356\042\071"}, - {0xFF7F, "\002\045\355\070\071"}, - {0xFF80, "\002\045\311\071"}, - {0xFF81, "\002\045\355\217\071"}, - {0xFF82, "\002\045\355\300\071"}, - {0xFF83, "\002\045\356\125\071"}, - {0xFF84, "\002\045\355\176\071"}, - {0xFF85, "\002\045\354\071"}, - {0xFF86, "\002\045\244\071"}, - {0xFF87, "\002\045\356\025\071"}, - {0xFF88, "\002\045\355\140\071"}, - {0xFF89, "\002\045\355\113\071"}, - {0xFF8A, "\002\045\314\071"}, - {0xFF8B, "\002\045\355\255\071"}, - {0xFF8C, "\002\045\356\336\071"}, - {0xFF8D, "\002\045\356\072\071"}, - {0xFF8E, "\002\045\355\107\071"}, - {0xFF8F, "\002\045\277\071"}, - {0xFF90, "\002\045\355\230\071"}, - {0xFF91, "\002\045\355\111\071"}, - {0xFF92, "\002\045\355\334\071"}, - {0xFF93, "\002\045\355\136\071"}, - {0xFF94, "\002\045\305\071"}, - {0xFF95, "\002\045\355\364\071"}, - {0xFF96, "\002\045\355\040\071"}, - {0xFF97, "\002\045\322\071"}, - {0xFF98, "\002\045\355\347\071"}, - {0xFF99, "\002\045\356\037\071"}, - {0xFF9A, "\002\045\356\035\071"}, - {0xFF9B, "\002\045\355\174\071"}, - {0xFF9C, "\002\045\355\050\071"}, - {0xFF9D, "\002\045\241\071"}, - {0xFF9E, "\204\045\007\355\175\356\266\071"}, - {0xFF9F, "\204\045\007\355\175\357\324\071"}, - {0xFFA0, "\356\145\014\071"}, - {0xFFA1, "\001\014\355\333\071"}, - {0xFFA2, "\001\014\357\040\071"}, - {0xFFA3, "\001\014\357\221\071"}, - {0xFFA4, "\001\014\355\337\071"}, - {0xFFA5, "\001\014\357\246\071"}, - {0xFFA6, "\001\014\357\245\071"}, - {0xFFA7, "\001\014\355\360\071"}, - {0xFFA8, "\001\014\357\340\071"}, - {0xFFA9, "\001\014\355\350\071"}, - {0xFFAA, "\001\014\357\307\071"}, - {0xFFAB, "\001\014\357\310\071"}, - {0xFFAC, "\001\014\357\312\071"}, - {0xFFAD, "\001\014\357\313\071"}, - {0xFFAE, "\001\014\357\314\071"}, - {0xFFAF, "\001\014\357\311\071"}, - {0xFFB0, "\001\014\357\023\071"}, - {0xFFB1, "\001\014\355\335\071"}, - {0xFFB2, "\001\014\355\345\071"}, - {0xFFB3, "\001\014\357\336\071"}, - {0xFFB4, "\001\014\357\002\071"}, - {0xFFB5, "\001\014\355\351\071"}, - {0xFFB6, "\001\014\357\041\071"}, - {0xFFB7, "\001\014\355\327\071"}, - {0xFFB8, "\001\014\355\276\071"}, - {0xFFB9, "\001\014\357\337\071"}, - {0xFFBA, "\001\014\355\356\071"}, - {0xFFBB, "\001\014\355\330\071"}, - {0xFFBC, "\001\014\355\355\071"}, - {0xFFBD, "\001\014\355\344\071"}, - {0xFFBE, "\001\014\355\325\071"}, - {0xFFC2, "\001\014\063\071"}, - {0xFFC3, "\001\014\356\136\071"}, - {0xFFC4, "\001\014\305\071"}, - {0xFFC5, "\001\014\360\016\071"}, - {0xFFC6, "\001\014\064\071"}, - {0xFFC7, "\001\014\217\071"}, - {0xFFCA, "\001\014\355\040\071"}, - {0xFFCB, "\001\014\355\303\071"}, - {0xFFCC, "\001\014\306\071"}, - {0xFFCD, "\001\014\355\050\071"}, - {0xFFCE, "\001\014\360\010\071"}, - {0xFFCF, "\001\014\356\011\071"}, - {0xFFD2, "\001\014\356\273\071"}, - {0xFFD3, "\001\014\113\071"}, - {0xFFD4, "\001\014\355\150\071"}, - {0xFFD5, "\001\014\356\271\071"}, - {0xFFD6, "\001\014\355\362\071"}, - {0xFFD7, "\001\014\355\151\071"}, - {0xFFDA, "\001\014\360\033\071"}, - {0xFFDB, "\001\014\360\034\071"}, - {0xFFDC, "\001\014\103\071"}, - {0xFFE0, "\022\357\074\073\105"}, - {0xFFE1, "\022\361\032\073\105"}, - {0xFFE2, "\057\356\364\073\105"}, - {0xFFE3, "\174\073\105"}, - {0xFFE4, "\243\360\100\073\105"}, - {0xFFE5, "\022\362\111\073\105"}, - {0xFFE6, "\022\362\103\073\105"}, - {0xFFE8, "\243\256\357\234\071"}, - {0xFFE9, "\061\015\033\052\071"}, - {0xFFEA, "\061\015\050\102\071"}, - {0xFFEB, "\061\015\033\053\071"}, - {0xFFEC, "\061\015\050\101\071"}, - {0xFFED, "\035\207\071"}, - {0xFFEE, "\272\147\071"}, - {0xFFF9, "\362\324\355\041\357\203"}, - {0xFFFA, "\355\045\355\041\357\203"}, - {0xFFFB, "\375\162\355\041\357\203"}, - {0xFFFC, "\335\007\357\022\365\162"}, - {0xFFFD, "\335\007\357\022"}, - }; diff --git a/src/freeze.c b/src/freeze.c deleted file mode 100644 index 0535311..0000000 --- a/src/freeze.c +++ /dev/null @@ -1,94 +0,0 @@ -/* Conversion of files between different charsets and surfaces. - Copyright © 1998, 99, 00 Free Software Foundation, Inc. - François Pinard , 1998. - - 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 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 General - Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/*===================================================================\ -| This module is merely a sand box for now, and is not operational. | -\===================================================================*/ - -#include "common.h" - -/* FIXME: From charset.c. */ -/* Hash table size for charset names. */ -#define HASH_TABLE_SIZE 997 - -/* This file takes care of dynamically loading supplementary tables in source - form, or later dumping them as compilable C code. */ - -void -recode_freeze_tables (RECODE_OUTER outer) -{ -#if 0 - /* Produce header block comment. */ - - fputs ("\ -/* DO NOT MODIFY THIS FILE! It was generated by `recode --freeze-tables'. */\n\ -\n\ -/* Conversion of files between different charsets and surfaces.\n\ - Copyright © 1998 Free Software Foundation, Inc.\n\ - Contributed by François Pinard , 1998.\n\ -\n\ - This library is free software; you can redistribute it and/or\n\ - modify it under the terms of the GNU Lesser General Public License\n\ - as published by the Free Software Foundation; either version 2 of the\n\ - License, or (at your option) any later version.\n\ -\n\ - This library is distributed in the hope that it will be\n\ - useful, but WITHOUT ANY WARRANTY; without even the implied warranty\n\ - of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n\ - Lesser General Public License for more details.\n\ -\n\ - You should have received a copy of the GNU Lesser General Public\n\ - License along with the Recode Library; see the file `COPYING.LIB'.\n\ - If not, write to the Free Software Foundation, Inc., 59 Temple Place -\n\ - Suite 330, Boston, MA 02111-1307, USA. */\n\ -\n\ -#include \"common.h\"\n", - stdout); -#endif - -#if 0 - /* Save the hash table. */ - - { - struct recode_hash *hash; - - fputs ("\n", stdout); - printf ("struct recode_hash hash_table[%d] =\n", HASH_TABLE_SIZE); - fputs (" {\n", stdout); - - for (hash = outer->hash_table; - hash < outer->hash_table + HASH_TABLE_SIZE; - hash++) - { - fputs (" {", stdout); - if (hash->name) - printf ("\"%s\"", hash->name); - else - fputs ("NULL", stdout); - fputs (", CHARSET", stdout); - fputs (", ", stdout); - if (hash->next) - printf ("NEXT", hash->next); - else - fputs ("NULL", stdout); - fputs ("},\n", stdout); - } - fputs (" };\n", stdout); - } -#endif -} diff --git a/src/hash.c b/src/hash.c deleted file mode 100644 index 8f9e1e3..0000000 --- a/src/hash.c +++ /dev/null @@ -1,1055 +0,0 @@ -/* hash - hashing table processing. - - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free - Software Foundation, Inc. - - Written by Jim Meyering, 1992. - - 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* A generic hash table package. */ - -/* Define USE_OBSTACK to 1 if you want the allocator to use obstacks instead - of malloc. If you change USE_OBSTACK, you have to recompile! */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include "hash.h" -#include "xalloc.h" - -#include -#include -#include - -#if USE_OBSTACK -# include "obstack.h" -# ifndef obstack_chunk_alloc -# define obstack_chunk_alloc malloc -# endif -# ifndef obstack_chunk_free -# define obstack_chunk_free free -# endif -#endif - -#ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -#endif - -struct hash_table - { - /* The array of buckets starts at BUCKET and extends to BUCKET_LIMIT-1, - for a possibility of N_BUCKETS. Among those, N_BUCKETS_USED buckets - are not empty, there are N_ENTRIES active entries in the table. */ - struct hash_entry *bucket; - struct hash_entry const *bucket_limit; - size_t n_buckets; - size_t n_buckets_used; - size_t n_entries; - - /* Tuning arguments, kept in a physicaly separate structure. */ - const Hash_tuning *tuning; - - /* Three functions are given to `hash_initialize', see the documentation - block for this function. In a word, HASHER randomizes a user entry - into a number up from 0 up to some maximum minus 1; COMPARATOR returns - true if two user entries compare equally; and DATA_FREER is the cleanup - function for a user entry. */ - Hash_hasher hasher; - Hash_comparator comparator; - Hash_data_freer data_freer; - - /* A linked list of freed struct hash_entry structs. */ - struct hash_entry *free_entry_list; - -#if USE_OBSTACK - /* Whenever obstacks are used, it is possible to allocate all overflowed - entries into a single stack, so they all can be freed in a single - operation. It is not clear if the speedup is worth the trouble. */ - struct obstack entry_stack; -#endif - }; - -/* A hash table contains many internal entries, each holding a pointer to - some user provided data (also called a user entry). An entry indistinctly - refers to both the internal entry and its associated user entry. A user - entry contents may be hashed by a randomization function (the hashing - function, or just `hasher' for short) into a number (or `slot') between 0 - and the current table size. At each slot position in the hash table, - starts a linked chain of entries for which the user data all hash to this - slot. A bucket is the collection of all entries hashing to the same slot. - - A good `hasher' function will distribute entries rather evenly in buckets. - In the ideal case, the length of each bucket is roughly the number of - entries divided by the table size. Finding the slot for a data is usually - done in constant time by the `hasher', and the later finding of a precise - entry is linear in time with the size of the bucket. Consequently, a - larger hash table size (that is, a larger number of buckets) is prone to - yielding shorter chains, *given* the `hasher' function behaves properly. - - Long buckets slow down the lookup algorithm. One might use big hash table - sizes in hope to reduce the average length of buckets, but this might - become inordinate, as unused slots in the hash table take some space. The - best bet is to make sure you are using a good `hasher' function (beware - that those are not that easy to write! :-), and to use a table size - larger than the actual number of entries. */ - -/* If an insertion makes the ratio of nonempty buckets to table size larger - than the growth threshold (a number between 0.0 and 1.0), then increase - the table size by multiplying by the growth factor (a number greater than - 1.0). The growth threshold defaults to 0.8, and the growth factor - defaults to 1.414, meaning that the table will have doubled its size - every second time 80% of the buckets get used. */ -#define DEFAULT_GROWTH_THRESHOLD 0.8 -#define DEFAULT_GROWTH_FACTOR 1.414 - -/* If a deletion empties a bucket and causes the ratio of used buckets to - table size to become smaller than the shrink threshold (a number between - 0.0 and 1.0), then shrink the table by multiplying by the shrink factor (a - number greater than the shrink threshold but smaller than 1.0). The shrink - threshold and factor default to 0.0 and 1.0, meaning that the table never - shrinks. */ -#define DEFAULT_SHRINK_THRESHOLD 0.0 -#define DEFAULT_SHRINK_FACTOR 1.0 - -/* Use this to initialize or reset a TUNING structure to - some sensible values. */ -static const Hash_tuning default_tuning = - { - DEFAULT_SHRINK_THRESHOLD, - DEFAULT_SHRINK_FACTOR, - DEFAULT_GROWTH_THRESHOLD, - DEFAULT_GROWTH_FACTOR, - false - }; - -/* Information and lookup. */ - -/* The following few functions provide information about the overall hash - table organization: the number of entries, number of buckets and maximum - length of buckets. */ - -/* Return the number of buckets in the hash table. The table size, the total - number of buckets (used plus unused), or the maximum number of slots, are - the same quantity. */ - -size_t -hash_get_n_buckets (const Hash_table *table) -{ - return table->n_buckets; -} - -/* Return the number of slots in use (non-empty buckets). */ - -size_t -hash_get_n_buckets_used (const Hash_table *table) -{ - return table->n_buckets_used; -} - -/* Return the number of active entries. */ - -size_t -hash_get_n_entries (const Hash_table *table) -{ - return table->n_entries; -} - -/* Return the length of the longest chain (bucket). */ - -size_t -hash_get_max_bucket_length (const Hash_table *table) -{ - struct hash_entry const *bucket; - size_t max_bucket_length = 0; - - for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) - { - if (bucket->data) - { - struct hash_entry const *cursor = bucket; - size_t bucket_length = 1; - - while (cursor = cursor->next, cursor) - bucket_length++; - - if (bucket_length > max_bucket_length) - max_bucket_length = bucket_length; - } - } - - return max_bucket_length; -} - -/* Do a mild validation of a hash table, by traversing it and checking two - statistics. */ - -bool -hash_table_ok (const Hash_table *table) -{ - struct hash_entry const *bucket; - size_t n_buckets_used = 0; - size_t n_entries = 0; - - for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) - { - if (bucket->data) - { - struct hash_entry const *cursor = bucket; - - /* Count bucket head. */ - n_buckets_used++; - n_entries++; - - /* Count bucket overflow. */ - while (cursor = cursor->next, cursor) - n_entries++; - } - } - - if (n_buckets_used == table->n_buckets_used && n_entries == table->n_entries) - return true; - - return false; -} - -void -hash_print_statistics (const Hash_table *table, FILE *stream) -{ - size_t n_entries = hash_get_n_entries (table); - size_t n_buckets = hash_get_n_buckets (table); - size_t n_buckets_used = hash_get_n_buckets_used (table); - size_t max_bucket_length = hash_get_max_bucket_length (table); - - fprintf (stream, "# entries: %lu\n", (unsigned long int) n_entries); - fprintf (stream, "# buckets: %lu\n", (unsigned long int) n_buckets); - fprintf (stream, "# buckets used: %lu (%.2f%%)\n", - (unsigned long int) n_buckets_used, - (100.0 * n_buckets_used) / n_buckets); - fprintf (stream, "max bucket length: %lu\n", - (unsigned long int) max_bucket_length); -} - -/* If ENTRY matches an entry already in the hash table, return the - entry from the table. Otherwise, return NULL. */ - -void * -hash_lookup (const Hash_table *table, const void *entry) -{ - struct hash_entry const *bucket - = table->bucket + table->hasher (entry, table->n_buckets); - struct hash_entry const *cursor; - - if (! (bucket < table->bucket_limit)) - abort (); - - if (bucket->data == NULL) - return NULL; - - for (cursor = bucket; cursor; cursor = cursor->next) - if (table->comparator (entry, cursor->data)) - return cursor->data; - - return NULL; -} - -/* Walking. */ - -/* The functions in this page traverse the hash table and process the - contained entries. For the traversal to work properly, the hash table - should not be resized nor modified while any particular entry is being - processed. In particular, entries should not be added or removed. */ - -/* Return the first data in the table, or NULL if the table is empty. */ - -void * -hash_get_first (const Hash_table *table) -{ - struct hash_entry const *bucket; - - if (table->n_entries == 0) - return NULL; - - for (bucket = table->bucket; ; bucket++) - if (! (bucket < table->bucket_limit)) - abort (); - else if (bucket->data) - return bucket->data; -} - -/* Return the user data for the entry following ENTRY, where ENTRY has been - returned by a previous call to either `hash_get_first' or `hash_get_next'. - Return NULL if there are no more entries. */ - -void * -hash_get_next (const Hash_table *table, const void *entry) -{ - struct hash_entry const *bucket - = table->bucket + table->hasher (entry, table->n_buckets); - struct hash_entry const *cursor; - - if (! (bucket < table->bucket_limit)) - abort (); - - /* Find next entry in the same bucket. */ - for (cursor = bucket; cursor; cursor = cursor->next) - if (cursor->data == entry && cursor->next) - return cursor->next->data; - - /* Find first entry in any subsequent bucket. */ - while (++bucket < table->bucket_limit) - if (bucket->data) - return bucket->data; - - /* None found. */ - return NULL; -} - -/* Fill BUFFER with pointers to active user entries in the hash table, then - return the number of pointers copied. Do not copy more than BUFFER_SIZE - pointers. */ - -size_t -hash_get_entries (const Hash_table *table, void **buffer, - size_t buffer_size) -{ - size_t counter = 0; - struct hash_entry const *bucket; - struct hash_entry const *cursor; - - for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) - { - if (bucket->data) - { - for (cursor = bucket; cursor; cursor = cursor->next) - { - if (counter >= buffer_size) - return counter; - buffer[counter++] = cursor->data; - } - } - } - - return counter; -} - -/* Call a PROCESSOR function for each entry of a hash table, and return the - number of entries for which the processor function returned success. A - pointer to some PROCESSOR_DATA which will be made available to each call to - the processor function. The PROCESSOR accepts two arguments: the first is - the user entry being walked into, the second is the value of PROCESSOR_DATA - as received. The walking continue for as long as the PROCESSOR function - returns nonzero. When it returns zero, the walking is interrupted. */ - -size_t -hash_do_for_each (const Hash_table *table, Hash_processor processor, - void *processor_data) -{ - size_t counter = 0; - struct hash_entry const *bucket; - struct hash_entry const *cursor; - - for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) - { - if (bucket->data) - { - for (cursor = bucket; cursor; cursor = cursor->next) - { - if (!(*processor) (cursor->data, processor_data)) - return counter; - counter++; - } - } - } - - return counter; -} - -/* Allocation and clean-up. */ - -/* Return a hash index for a NUL-terminated STRING between 0 and N_BUCKETS-1. - This is a convenience routine for constructing other hashing functions. */ - -#if USE_DIFF_HASH - -/* About hashings, Paul Eggert writes to me (FP), on 1994-01-01: "Please see - B. J. McKenzie, R. Harries & T. Bell, Selecting a hashing algorithm, - Software--practice & experience 20, 2 (Feb 1990), 209-224. Good hash - algorithms tend to be domain-specific, so what's good for [diffutils'] io.c - may not be good for your application." */ - -size_t -hash_string (const char *string, size_t n_buckets) -{ -# define ROTATE_LEFT(Value, Shift) \ - ((Value) << (Shift) | (Value) >> ((sizeof (size_t) * CHAR_BIT) - (Shift))) -# define HASH_ONE_CHAR(Value, Byte) \ - ((Byte) + ROTATE_LEFT (Value, 7)) - - size_t value = 0; - unsigned char ch; - - for (; (ch = *string); string++) - value = HASH_ONE_CHAR (value, ch); - return value % n_buckets; - -# undef ROTATE_LEFT -# undef HASH_ONE_CHAR -} - -#else /* not USE_DIFF_HASH */ - -/* This one comes from Recode, and performs a bit better than the above as - per a few experiments. It is inspired from a hashing routine found in the - very old Cyber `snoop', itself written in typical Greg Mansfield style. - (By the way, what happened to this excellent man? Is he still alive?) */ - -size_t -hash_string (const char *string, size_t n_buckets) -{ - size_t value = 0; - unsigned char ch; - - for (; (ch = *string); string++) - value = (value * 31 + ch) % n_buckets; - return value; -} - -#endif /* not USE_DIFF_HASH */ - -/* Return true if CANDIDATE is a prime number. CANDIDATE should be an odd - number at least equal to 11. */ - -static bool -is_prime (size_t candidate) -{ - size_t divisor = 3; - size_t square = divisor * divisor; - - while (square < candidate && (candidate % divisor)) - { - divisor++; - square += 4 * divisor; - divisor++; - } - - return (candidate % divisor ? true : false); -} - -/* Round a given CANDIDATE number up to the nearest prime, and return that - prime. Primes lower than 10 are merely skipped. */ - -static size_t -next_prime (size_t candidate) -{ - /* Skip small primes. */ - if (candidate < 10) - candidate = 10; - - /* Make it definitely odd. */ - candidate |= 1; - - while (!is_prime (candidate)) - candidate += 2; - - return candidate; -} - -void -hash_reset_tuning (Hash_tuning *tuning) -{ - *tuning = default_tuning; -} - -/* For the given hash TABLE, check the user supplied tuning structure for - reasonable values, and return true if there is no gross error with it. - Otherwise, definitively reset the TUNING field to some acceptable default - in the hash table (that is, the user loses the right of further modifying - tuning arguments), and return false. */ - -static bool -check_tuning (Hash_table *table) -{ - const Hash_tuning *tuning = table->tuning; - - /* Be a bit stricter than mathematics would require, so that - rounding errors in size calculations do not cause allocations to - fail to grow or shrink as they should. The smallest allocation - is 11 (due to next_prime's algorithm), so an epsilon of 0.1 - should be good enough. */ - float epsilon = 0.1f; - - if (epsilon < tuning->growth_threshold - && tuning->growth_threshold < 1 - epsilon - && 1 + epsilon < tuning->growth_factor - && 0 <= tuning->shrink_threshold - && tuning->shrink_threshold + epsilon < tuning->shrink_factor - && tuning->shrink_factor <= 1 - && tuning->shrink_threshold + epsilon < tuning->growth_threshold) - return true; - - table->tuning = &default_tuning; - return false; -} - -/* Allocate and return a new hash table, or NULL upon failure. The initial - number of buckets is automatically selected so as to _guarantee_ that you - may insert at least CANDIDATE different user entries before any growth of - the hash table size occurs. So, if have a reasonably tight a-priori upper - bound on the number of entries you intend to insert in the hash table, you - may save some table memory and insertion time, by specifying it here. If - the IS_N_BUCKETS field of the TUNING structure is true, the CANDIDATE - argument has its meaning changed to the wanted number of buckets. - - TUNING points to a structure of user-supplied values, in case some fine - tuning is wanted over the default behavior of the hasher. If TUNING is - NULL, the default tuning parameters are used instead. - - The user-supplied HASHER function should be provided. It accepts two - arguments ENTRY and TABLE_SIZE. It computes, by hashing ENTRY contents, a - slot number for that entry which should be in the range 0..TABLE_SIZE-1. - This slot number is then returned. - - The user-supplied COMPARATOR function should be provided. It accepts two - arguments pointing to user data, it then returns true for a pair of entries - that compare equal, or false otherwise. This function is internally called - on entries which are already known to hash to the same bucket index. - - The user-supplied DATA_FREER function, when not NULL, may be later called - with the user data as an argument, just before the entry containing the - data gets freed. This happens from within `hash_free' or `hash_clear'. - You should specify this function only if you want these functions to free - all of your `data' data. This is typically the case when your data is - simply an auxiliary struct that you have malloc'd to aggregate several - values. */ - -Hash_table * -hash_initialize (size_t candidate, const Hash_tuning *tuning, - Hash_hasher hasher, Hash_comparator comparator, - Hash_data_freer data_freer) -{ - Hash_table *table; - - if (hasher == NULL || comparator == NULL) - return NULL; - - table = (Hash_table *) malloc (sizeof *table); - if (table == NULL) - return NULL; - - if (!tuning) - tuning = &default_tuning; - table->tuning = tuning; - if (!check_tuning (table)) - { - /* Fail if the tuning options are invalid. This is the only occasion - when the user gets some feedback about it. Once the table is created, - if the user provides invalid tuning options, we silently revert to - using the defaults, and ignore further request to change the tuning - options. */ - goto fail; - } - - if (!tuning->is_n_buckets) - { - float new_candidate = candidate / tuning->growth_threshold; - if (SIZE_MAX <= new_candidate) - goto fail; - candidate = new_candidate; - } - - if (xalloc_oversized (candidate, sizeof *table->bucket)) - goto fail; - table->n_buckets = next_prime (candidate); - if (xalloc_oversized (table->n_buckets, sizeof *table->bucket)) - goto fail; - - table->bucket - = (struct hash_entry *) calloc (table->n_buckets, sizeof *table->bucket); - table->bucket_limit = table->bucket + table->n_buckets; - table->n_buckets_used = 0; - table->n_entries = 0; - - table->hasher = hasher; - table->comparator = comparator; - table->data_freer = data_freer; - - table->free_entry_list = NULL; -#if USE_OBSTACK - obstack_init (&table->entry_stack); -#endif - return table; - - fail: - free (table); - return NULL; -} - -/* Make all buckets empty, placing any chained entries on the free list. - Apply the user-specified function data_freer (if any) to the datas of any - affected entries. */ - -void -hash_clear (Hash_table *table) -{ - struct hash_entry *bucket; - - for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) - { - if (bucket->data) - { - struct hash_entry *cursor; - struct hash_entry *next; - - /* Free the bucket overflow. */ - for (cursor = bucket->next; cursor; cursor = next) - { - if (table->data_freer) - (*table->data_freer) (cursor->data); - cursor->data = NULL; - - next = cursor->next; - /* Relinking is done one entry at a time, as it is to be expected - that overflows are either rare or short. */ - cursor->next = table->free_entry_list; - table->free_entry_list = cursor; - } - - /* Free the bucket head. */ - if (table->data_freer) - (*table->data_freer) (bucket->data); - bucket->data = NULL; - bucket->next = NULL; - } - } - - table->n_buckets_used = 0; - table->n_entries = 0; -} - -/* Reclaim all storage associated with a hash table. If a data_freer - function has been supplied by the user when the hash table was created, - this function applies it to the data of each entry before freeing that - entry. */ - -void -hash_free (Hash_table *table) -{ - struct hash_entry *bucket; - struct hash_entry *cursor; - struct hash_entry *next; - - /* Call the user data_freer function. */ - if (table->data_freer && table->n_entries) - { - for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) - { - if (bucket->data) - { - for (cursor = bucket; cursor; cursor = cursor->next) - { - (*table->data_freer) (cursor->data); - } - } - } - } - -#if USE_OBSTACK - - obstack_free (&table->entry_stack, NULL); - -#else - - /* Free all bucket overflowed entries. */ - for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) - { - for (cursor = bucket->next; cursor; cursor = next) - { - next = cursor->next; - free (cursor); - } - } - - /* Also reclaim the internal list of previously freed entries. */ - for (cursor = table->free_entry_list; cursor; cursor = next) - { - next = cursor->next; - free (cursor); - } - -#endif - - /* Free the remainder of the hash table structure. */ - free (table->bucket); - free (table); -} - -/* Insertion and deletion. */ - -/* Get a new hash entry for a bucket overflow, possibly by reclying a - previously freed one. If this is not possible, allocate a new one. */ - -static struct hash_entry * -allocate_entry (Hash_table *table) -{ - struct hash_entry *new_; - - if (table->free_entry_list) - { - new_ = table->free_entry_list; - table->free_entry_list = new_->next; - } - else - { -#if USE_OBSTACK - new_ = (struct hash_entry *) obstack_alloc (&table->entry_stack, - sizeof *new_); -#else - new_ = (struct hash_entry *) malloc (sizeof *new_); -#endif - } - - return new_; -} - -/* Free a hash entry which was part of some bucket overflow, - saving it for later recycling. */ - -static void -free_entry (Hash_table *table, struct hash_entry *entry) -{ - entry->data = NULL; - entry->next = table->free_entry_list; - table->free_entry_list = entry; -} - -/* This private function is used to help with insertion and deletion. When - ENTRY matches an entry in the table, return a pointer to the corresponding - user data and set *BUCKET_HEAD to the head of the selected bucket. - Otherwise, return NULL. When DELETE is true and ENTRY matches an entry in - the table, unlink the matching entry. */ - -static void * -hash_find_entry (Hash_table *table, const void *entry, - struct hash_entry **bucket_head, bool delete_) -{ - struct hash_entry *bucket - = table->bucket + table->hasher (entry, table->n_buckets); - struct hash_entry *cursor; - - if (! (bucket < table->bucket_limit)) - abort (); - - *bucket_head = bucket; - - /* Test for empty bucket. */ - if (bucket->data == NULL) - return NULL; - - /* See if the entry is the first in the bucket. */ - if ((*table->comparator) (entry, bucket->data)) - { - void *data = bucket->data; - - if (delete_) - { - if (bucket->next) - { - struct hash_entry *next = bucket->next; - - /* Bump the first overflow entry into the bucket head, then save - the previous first overflow entry for later recycling. */ - *bucket = *next; - free_entry (table, next); - } - else - { - bucket->data = NULL; - } - } - - return data; - } - - /* Scan the bucket overflow. */ - for (cursor = bucket; cursor->next; cursor = cursor->next) - { - if ((*table->comparator) (entry, cursor->next->data)) - { - void *data = cursor->next->data; - - if (delete_) - { - struct hash_entry *next = cursor->next; - - /* Unlink the entry to delete, then save the freed entry for later - recycling. */ - cursor->next = next->next; - free_entry (table, next); - } - - return data; - } - } - - /* No entry found. */ - return NULL; -} - -/* For an already existing hash table, change the number of buckets through - specifying CANDIDATE. The contents of the hash table are preserved. The - new number of buckets is automatically selected so as to _guarantee_ that - the table may receive at least CANDIDATE different user entries, including - those already in the table, before any other growth of the hash table size - occurs. If TUNING->IS_N_BUCKETS is true, then CANDIDATE specifies the - exact number of buckets desired. */ - -bool -hash_rehash (Hash_table *table, size_t candidate) -{ - Hash_table *new_table; - struct hash_entry *bucket; - struct hash_entry *cursor; - struct hash_entry *next; - - new_table = hash_initialize (candidate, table->tuning, table->hasher, - table->comparator, table->data_freer); - if (new_table == NULL) - return false; - - /* Merely reuse the extra old space into the new table. */ -#if USE_OBSTACK - obstack_free (&new_table->entry_stack, NULL); - new_table->entry_stack = table->entry_stack; -#endif - new_table->free_entry_list = table->free_entry_list; - - for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) - if (bucket->data) - for (cursor = bucket; cursor; cursor = next) - { - void *data = cursor->data; - struct hash_entry *new_bucket - = (new_table->bucket - + new_table->hasher (data, new_table->n_buckets)); - - if (! (new_bucket < new_table->bucket_limit)) - abort (); - - next = cursor->next; - - if (new_bucket->data) - { - if (cursor == bucket) - { - /* Allocate or recycle an entry, when moving from a bucket - header into a bucket overflow. */ - struct hash_entry *new_entry = allocate_entry (new_table); - - if (new_entry == NULL) - { - hash_free (new_table); - return false; - } - - new_entry->data = data; - new_entry->next = new_bucket->next; - new_bucket->next = new_entry; - } - else - { - /* Merely relink an existing entry, when moving from a - bucket overflow into a bucket overflow. */ - cursor->next = new_bucket->next; - new_bucket->next = cursor; - } - } - else - { - /* Free an existing entry, when moving from a bucket - overflow into a bucket header. Also take care of the - simple case of moving from a bucket header into a bucket - header. */ - new_bucket->data = data; - new_table->n_buckets_used++; - if (cursor != bucket) - free_entry (new_table, cursor); - } - } - - free (table->bucket); - table->bucket = new_table->bucket; - table->bucket_limit = new_table->bucket_limit; - table->n_buckets = new_table->n_buckets; - table->n_buckets_used = new_table->n_buckets_used; - table->free_entry_list = new_table->free_entry_list; - /* table->n_entries already holds its value. */ -#if USE_OBSTACK - table->entry_stack = new_table->entry_stack; -#endif - free (new_table); - - return true; -} - -/* If ENTRY matches an entry already in the hash table, return the pointer - to the entry from the table. Otherwise, insert ENTRY and return ENTRY. - Return NULL if the storage required for insertion cannot be allocated. */ - -void * -hash_insert (Hash_table *table, const void *entry) -{ - void *data; - struct hash_entry *bucket; - - /* The caller cannot insert a NULL entry. */ - if (! entry) - abort (); - - /* If there's a matching entry already in the table, return that. */ - if ((data = hash_find_entry (table, entry, &bucket, false)) != NULL) - return data; - - /* ENTRY is not matched, it should be inserted. */ - - if (bucket->data) - { - struct hash_entry *new_entry = allocate_entry (table); - - if (new_entry == NULL) - return NULL; - - /* Add ENTRY in the overflow of the bucket. */ - - new_entry->data = (void *) entry; - new_entry->next = bucket->next; - bucket->next = new_entry; - table->n_entries++; - return (void *) entry; - } - - /* Add ENTRY right in the bucket head. */ - - bucket->data = (void *) entry; - table->n_entries++; - table->n_buckets_used++; - - /* If the growth threshold of the buckets in use has been reached, increase - the table size and rehash. There's no point in checking the number of - entries: if the hashing function is ill-conditioned, rehashing is not - likely to improve it. */ - - if (table->n_buckets_used - > table->tuning->growth_threshold * table->n_buckets) - { - /* Check more fully, before starting real work. If tuning arguments - became invalid, the second check will rely on proper defaults. */ - check_tuning (table); - if (table->n_buckets_used - > table->tuning->growth_threshold * table->n_buckets) - { - const Hash_tuning *tuning = table->tuning; - float candidate = - (tuning->is_n_buckets - ? (table->n_buckets * tuning->growth_factor) - : (table->n_buckets * tuning->growth_factor - * tuning->growth_threshold)); - - if (SIZE_MAX <= candidate) - return NULL; - - /* If the rehash fails, arrange to return NULL. */ - if (!hash_rehash (table, candidate)) - entry = NULL; - } - } - - return (void *) entry; -} - -/* If ENTRY is already in the table, remove it and return the just-deleted - data (the user may want to deallocate its storage). If ENTRY is not in the - table, don't modify the table and return NULL. */ - -void * -hash_delete (Hash_table *table, const void *entry) -{ - void *data; - struct hash_entry *bucket; - - data = hash_find_entry (table, entry, &bucket, true); - if (!data) - return NULL; - - table->n_entries--; - if (!bucket->data) - { - table->n_buckets_used--; - - /* If the shrink threshold of the buckets in use has been reached, - rehash into a smaller table. */ - - if (table->n_buckets_used - < table->tuning->shrink_threshold * table->n_buckets) - { - /* Check more fully, before starting real work. If tuning arguments - became invalid, the second check will rely on proper defaults. */ - check_tuning (table); - if (table->n_buckets_used - < table->tuning->shrink_threshold * table->n_buckets) - { - const Hash_tuning *tuning = table->tuning; - size_t candidate = - (tuning->is_n_buckets - ? table->n_buckets * tuning->shrink_factor - : (table->n_buckets * tuning->shrink_factor - * tuning->growth_threshold)); - - hash_rehash (table, candidate); - } - } - } - - return data; -} - -/* Testing. */ - -#if TESTING - -void -hash_print (const Hash_table *table) -{ - struct hash_entry const *bucket; - - for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) - { - struct hash_entry *cursor; - - if (bucket) - printf ("%lu:\n", (unsigned long int) (bucket - table->bucket)); - - for (cursor = bucket; cursor; cursor = cursor->next) - { - char const *s = cursor->data; - /* FIXME */ - if (s) - printf (" %s\n", s); - } - } -} - -#endif /* TESTING */ diff --git a/src/hash.h b/src/hash.h deleted file mode 100644 index ab63a86..0000000 --- a/src/hash.h +++ /dev/null @@ -1,88 +0,0 @@ -/* hash - hashing table processing. - Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc. - Written by Jim Meyering , 1998. - - 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* A generic hash table package. */ - -/* Make sure USE_OBSTACK is defined to 1 if you want the allocator to use - obstacks instead of malloc, and recompile `hash.c' with same setting. */ - -#ifndef HASH_H_ -# define HASH_H_ - -# include -# include - -typedef size_t (*Hash_hasher) (const void *, size_t); -typedef bool (*Hash_comparator) (const void *, const void *); -typedef void (*Hash_data_freer) (void *); -typedef bool (*Hash_processor) (void *, void *); - -struct hash_entry - { - void *data; - struct hash_entry *next; - }; - -struct hash_tuning - { - /* This structure is mainly used for `hash_initialize', see the block - documentation of `hash_reset_tuning' for more complete comments. */ - - float shrink_threshold; /* ratio of used buckets to trigger a shrink */ - float shrink_factor; /* ratio of new smaller size to original size */ - float growth_threshold; /* ratio of used buckets to trigger a growth */ - float growth_factor; /* ratio of new bigger size to original size */ - bool is_n_buckets; /* if CANDIDATE really means table size */ - }; - -typedef struct hash_tuning Hash_tuning; - -struct hash_table; - -typedef struct hash_table Hash_table; - -/* Information and lookup. */ -size_t hash_get_n_buckets (const Hash_table *); -size_t hash_get_n_buckets_used (const Hash_table *); -size_t hash_get_n_entries (const Hash_table *); -size_t hash_get_max_bucket_length (const Hash_table *); -bool hash_table_ok (const Hash_table *); -void hash_print_statistics (const Hash_table *, FILE *); -void *hash_lookup (const Hash_table *, const void *); - -/* Walking. */ -void *hash_get_first (const Hash_table *); -void *hash_get_next (const Hash_table *, const void *); -size_t hash_get_entries (const Hash_table *, void **, size_t); -size_t hash_do_for_each (const Hash_table *, Hash_processor, void *); - -/* Allocation and clean-up. */ -size_t hash_string (const char *, size_t); -void hash_reset_tuning (Hash_tuning *); -Hash_table *hash_initialize (size_t, const Hash_tuning *, - Hash_hasher, Hash_comparator, - Hash_data_freer); -void hash_clear (Hash_table *); -void hash_free (Hash_table *); - -/* Insertion and deletion. */ -bool hash_rehash (Hash_table *, size_t); -void *hash_insert (Hash_table *, const void *); -void *hash_delete (Hash_table *, const void *); - -#endif diff --git a/src/html.c b/src/html.c index 05e1fd5..f76696c 100644 --- a/src/html.c +++ b/src/html.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" #include "hash.h" /* FIXME: An @code{HTML} text which has spurious semi-colons to end entities @@ -27,7 +29,7 @@ /* Tables. */ /* The following entities, said to be from Emacs-w3, are ignored for the - time being, as recode is not too fond on graphical approximations: + time being, as recode is not too fond of graphical approximations:   \   \ \ @@ -381,7 +383,7 @@ static struct ucs2_to_string translations [] = #undef ENTRY -/* UCS-2 towards HTML. */ +/* UCS-2 to HTML. */ /*-------------------------------------. | Return hash value given TABLE_SIZE. | @@ -442,6 +444,7 @@ init_ucs2_html (RECODE_STEP step, step->step_type = RECODE_UCS2_TO_STRING; step->step_table = table; + step->step_table_term_routine = (void (*) (void *)) hash_free; return true; } @@ -515,7 +518,7 @@ transform_ucs2_html (RECODE_SUBTASK subtask) Hash_table *table = (Hash_table *) subtask->step->step_table; unsigned value; - while (get_ucs2 (&value, subtask)) + while (recode_get_ucs2 (&value, subtask)) { struct ucs2_to_string lookup; struct ucs2_to_string *entry; @@ -526,47 +529,47 @@ transform_ucs2_html (RECODE_SUBTASK subtask) { const char *cursor = entry->string; - put_byte ('&', subtask); + recode_put_byte ('&', subtask); while (*cursor) { - put_byte (*cursor, subtask); + recode_put_byte (*cursor, subtask); cursor++; } - put_byte (';', subtask); + recode_put_byte (';', subtask); } else if ((value < 32 && value != '\n' && value != '\t') || value >= 127) { unsigned divider = 10000; - put_byte ('&', subtask); - put_byte ('#', subtask); + recode_put_byte ('&', subtask); + recode_put_byte ('#', subtask); while (divider > value) divider /= 10; while (divider > 1) { - put_byte ('0' + value / divider, subtask); + recode_put_byte ('0' + value / divider, subtask); value %= divider; divider /= 10; } - put_byte ('0' + value, subtask); - put_byte (';', subtask); + recode_put_byte ('0' + value, subtask); + recode_put_byte (';', subtask); } else - put_byte(value, subtask); + recode_put_byte(value, subtask); } SUBTASK_RETURN (subtask); } -/* HTML towards UCS-2. */ +/* HTML to UCS-2. */ #define ENTITY_BUFFER_LENGTH 20 /* -" { if (request->diacritics_only) ECHO; else put_ucs2 (34, subtask); } -& { if (request->diacritics_only) ECHO; else put_ucs2 (38, subtask); } -< { if (request->diacritics_only) ECHO; else put_ucs2 (60, subtask); } -> { if (request->diacritics_only) ECHO; else put_ucs2 (62, subtask); } +" { if (request->diacritics_only) ECHO; else recode_put_ucs2 (34, subtask); } +& { if (request->diacritics_only) ECHO; else recode_put_ucs2 (38, subtask); } +< { if (request->diacritics_only) ECHO; else recode_put_ucs2 (60, subtask); } +> { if (request->diacritics_only) ECHO; else recode_put_ucs2 (62, subtask); } */ /*-------------------------------------. @@ -626,6 +629,7 @@ init_html_ucs2 (RECODE_STEP step, step->step_type = RECODE_STRING_TO_UCS2; step->step_table = table; + step->step_table_term_routine = (void (*) (void *)) hash_free; return true; } @@ -699,9 +703,15 @@ transform_html_ucs2 (RECODE_SUBTASK subtask) RECODE_CONST_REQUEST request = subtask->task->request; int input_char; - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); if (input_char != EOF) - put_ucs2 (BYTE_ORDER_MARK, subtask); /* FIXME: experimental */ + recode_put_ucs2 (BYTE_ORDER_MARK, subtask); /* FIXME: experimental */ + + /* According to RFC 2718 and the Unicode Standard, if you declare the + character encoding of your page using HTTP as either "UTF-16LE" or + "UTF-16BE" then you should not use a byte-order mark at the beginning + of the page. Only if the page is labelled in HTTP using IANA charset + name "UTF-16" is a byte-order mark appropriate. */ while (input_char != EOF) @@ -712,10 +722,10 @@ transform_html_ucs2 (RECODE_SUBTASK subtask) bool valid = true; bool echo = false; - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); if (input_char == '#') { - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); if (input_char == 'x' || input_char == 'X') { unsigned value = 0; @@ -724,7 +734,7 @@ transform_html_ucs2 (RECODE_SUBTASK subtask) *cursor++ = '#'; *cursor++ = input_char; - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); while (valid) { @@ -744,10 +754,14 @@ transform_html_ucs2 (RECODE_SUBTASK subtask) else { *cursor++ = input_char; - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); } } + /* No digit found at all? */ + if ((cursor - buffer) == 2) + valid = false; + if (valid) if (request->diacritics_only) { @@ -756,9 +770,9 @@ transform_html_ucs2 (RECODE_SUBTASK subtask) } else { - put_ucs2 (value, subtask); + recode_put_ucs2 (value, subtask); if (input_char == ';') - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); } else *cursor = '\0'; @@ -785,10 +799,14 @@ transform_html_ucs2 (RECODE_SUBTASK subtask) else { *cursor++ = input_char; - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); } } + /* No digit found at all? */ + if ((cursor - buffer) == 1) + valid = false; + if (valid) if (request->diacritics_only) { @@ -797,9 +815,9 @@ transform_html_ucs2 (RECODE_SUBTASK subtask) } else { - put_ucs2 (value, subtask); + recode_put_ucs2 (value, subtask); if (input_char == ';') - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); } else *cursor = '\0'; @@ -811,7 +829,7 @@ transform_html_ucs2 (RECODE_SUBTASK subtask) /* Scan &[A-Za-z][A-Za-z0-9]*; notation. */ *cursor++ = input_char; - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); while (valid && input_char != EOF @@ -823,7 +841,7 @@ transform_html_ucs2 (RECODE_SUBTASK subtask) else { *cursor++ = input_char; - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); } *cursor = '\0'; @@ -837,26 +855,33 @@ transform_html_ucs2 (RECODE_SUBTASK subtask) ((const Hash_table *) subtask->step->step_table, &lookup); if (entry) { - put_ucs2 (entry->code, subtask); + recode_put_ucs2 (entry->code, subtask); if (input_char == ';') - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); } else valid = false; } } + else /* Not '#' or A-z, so not a valid entity. */ + { + valid = false; + /* Push back '&', but do not output current input_char yet. */ + *cursor = '\0'; + } if (echo || !valid) { - put_ucs2 ('&', subtask); + recode_put_ucs2 ('&', subtask); for (cursor = buffer; *cursor; cursor++) - put_ucs2 (*cursor, subtask); + recode_put_ucs2 (*cursor, subtask); + /* input_char is processed again in the next iteration. */ } } else { - put_ucs2 (input_char, subtask); - input_char = get_byte (subtask); + recode_put_ucs2 (input_char, subtask); + input_char = recode_get_byte (subtask); } SUBTASK_RETURN (subtask); @@ -867,58 +892,58 @@ bool module_html (RECODE_OUTER outer) { return - declare_single (outer, "ISO-10646-UCS-2", "XML-standalone", + recode_declare_single (outer, "ISO-10646-UCS-2", "XML-standalone", outer->quality_byte_to_variable, init_ucs2_html_v00, transform_ucs2_html) - && declare_single (outer, "XML-standalone", "ISO-10646-UCS-2", + && recode_declare_single (outer, "XML-standalone", "ISO-10646-UCS-2", outer->quality_variable_to_byte, init_html_v00_ucs2, transform_html_ucs2) - && declare_single (outer, "ISO-10646-UCS-2", "HTML_1.1", + && recode_declare_single (outer, "ISO-10646-UCS-2", "HTML_1.1", outer->quality_byte_to_variable, init_ucs2_html_v11, transform_ucs2_html) - && declare_single (outer, "HTML_1.1", "ISO-10646-UCS-2", + && recode_declare_single (outer, "HTML_1.1", "ISO-10646-UCS-2", outer->quality_variable_to_byte, init_html_v11_ucs2, transform_html_ucs2) - && declare_single (outer, "ISO-10646-UCS-2", "HTML_2.0", + && recode_declare_single (outer, "ISO-10646-UCS-2", "HTML_2.0", outer->quality_byte_to_variable, init_ucs2_html_v20, transform_ucs2_html) - && declare_single (outer, "HTML_2.0", "ISO-10646-UCS-2", + && recode_declare_single (outer, "HTML_2.0", "ISO-10646-UCS-2", outer->quality_variable_to_byte, init_html_v20_ucs2, transform_html_ucs2) - && declare_single (outer, "ISO-10646-UCS-2", "HTML-i18n", + && recode_declare_single (outer, "ISO-10646-UCS-2", "HTML-i18n", outer->quality_byte_to_variable, init_ucs2_html_v27, transform_ucs2_html) - && declare_single (outer, "HTML-i18n", "ISO-10646-UCS-2", + && recode_declare_single (outer, "HTML-i18n", "ISO-10646-UCS-2", outer->quality_variable_to_byte, init_html_v27_ucs2, transform_html_ucs2) - && declare_single (outer, "ISO-10646-UCS-2", "HTML_3.2", + && recode_declare_single (outer, "ISO-10646-UCS-2", "HTML_3.2", outer->quality_byte_to_variable, init_ucs2_html_v32, transform_ucs2_html) - && declare_single (outer, "HTML_3.2", "ISO-10646-UCS-2", + && recode_declare_single (outer, "HTML_3.2", "ISO-10646-UCS-2", outer->quality_variable_to_byte, init_html_v32_ucs2, transform_html_ucs2) - && declare_single (outer, "ISO-10646-UCS-2", "HTML_4.0", + && recode_declare_single (outer, "ISO-10646-UCS-2", "HTML_4.0", outer->quality_byte_to_variable, init_ucs2_html_v40, transform_ucs2_html) - && declare_single (outer, "HTML_4.0", "ISO-10646-UCS-2", + && recode_declare_single (outer, "HTML_4.0", "ISO-10646-UCS-2", outer->quality_variable_to_byte, init_html_v40_ucs2, transform_html_ucs2) - && declare_alias (outer, "h0", "XML-standalone") - && declare_alias (outer, "h1", "HTML_1.1") - && declare_alias (outer, "RFC1866", "HTML_2.0") - && declare_alias (outer, "1866", "HTML_2.0") - && declare_alias (outer, "h2", "HTML_2.0") - && declare_alias (outer, "RFC2070", "HTML-i18n") - && declare_alias (outer, "2070", "HTML-i18n") - && declare_alias (outer, "h3", "HTML_3.2") - && declare_alias (outer, "h4", "HTML_4.0") + && recode_declare_alias (outer, "h0", "XML-standalone") + && recode_declare_alias (outer, "h1", "HTML_1.1") + && recode_declare_alias (outer, "RFC1866", "HTML_2.0") + && recode_declare_alias (outer, "1866", "HTML_2.0") + && recode_declare_alias (outer, "h2", "HTML_2.0") + && recode_declare_alias (outer, "RFC2070", "HTML-i18n") + && recode_declare_alias (outer, "2070", "HTML-i18n") + && recode_declare_alias (outer, "h3", "HTML_3.2") + && recode_declare_alias (outer, "h4", "HTML_4.0") /* HTML defaults to the highest level available. */ - && declare_alias (outer, "HTML", "HTML_4.0") - && declare_alias (outer, "h", "HTML_4.0"); + && recode_declare_alias (outer, "HTML", "HTML_4.0") + && recode_declare_alias (outer, "h", "HTML_4.0"); } void -delmodule_html (RECODE_OUTER outer) +delmodule_html (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/ibmpc.c b/src/ibmpc.c index 6fcdffa..10a479d 100644 --- a/src/ibmpc.c +++ b/src/ibmpc.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" /* Previously, the CR-LF surface was built-in. It is now handled through a separate, optional step. An optimisation might use a flag to trigger old @@ -170,20 +172,20 @@ static struct recode_known_pair known_pairs[] = static bool transform_latin1_ibmpc (RECODE_SUBTASK subtask) { - if (subtask->step->fallback_routine == reversibility) + if (subtask->step->fallback_routine == recode_reversibility) { const unsigned char *table = (const unsigned char *) subtask->step->step_table; int input_char; - while (input_char = get_byte (subtask), input_char != EOF) + while (input_char = recode_get_byte (subtask), input_char != EOF) if (input_char == '\n') { - put_byte (DOS_CR, subtask); - put_byte (DOS_LF, subtask); + recode_put_byte (DOS_CR, subtask); + recode_put_byte (DOS_LF, subtask); } else - put_byte (table[input_char], subtask); + recode_put_byte (table[input_char], subtask); } else { @@ -191,14 +193,14 @@ transform_latin1_ibmpc (RECODE_SUBTASK subtask) = (const char *const *) subtask->step->step_table; int input_char; - while (input_char = get_byte (subtask), input_char != EOF) + while (input_char = recode_get_byte (subtask), input_char != EOF) if (input_char == '\n') { - put_byte (DOS_CR, subtask); - put_byte (DOS_LF, subtask); + recode_put_byte (DOS_CR, subtask); + recode_put_byte (DOS_LF, subtask); } else if (table[input_char]) - put_byte (*table[input_char], subtask); + recode_put_byte (*table[input_char], subtask); else RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask); } @@ -208,11 +210,11 @@ transform_latin1_ibmpc (RECODE_SUBTASK subtask) static bool transform_ibmpc_latin1 (RECODE_SUBTASK subtask) { - if (subtask->step->fallback_routine == reversibility) + if (subtask->step->fallback_routine == recode_reversibility) { const unsigned char *table = (const unsigned char *) subtask->step->step_table; - int input_char = get_byte (subtask); + int input_char = recode_get_byte (subtask); while (input_char != EOF) switch (input_char) @@ -223,30 +225,30 @@ transform_ibmpc_latin1 (RECODE_SUBTASK subtask) break; case DOS_CR: - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); if (input_char == DOS_LF) { - put_byte ('\n', subtask); - input_char = get_byte (subtask); + recode_put_byte ('\n', subtask); + input_char = recode_get_byte (subtask); } else - put_byte (table[DOS_CR], subtask); + recode_put_byte (table[DOS_CR], subtask); break; case DOS_LF: RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - /* Fall through. */ + FALLTHROUGH; default: - put_byte (table[input_char], subtask); - input_char = get_byte (subtask); + recode_put_byte (table[input_char], subtask); + input_char = recode_get_byte (subtask); } } else { const char *const *table = (const char *const *) subtask->step->step_table; - int input_char = get_byte (subtask); + int input_char = recode_get_byte (subtask); while (input_char != EOF) switch (input_char) @@ -257,28 +259,28 @@ transform_ibmpc_latin1 (RECODE_SUBTASK subtask) break; case DOS_CR: - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); if (input_char == DOS_LF) { - put_byte ('\n', subtask); - input_char = get_byte (subtask); + recode_put_byte ('\n', subtask); + input_char = recode_get_byte (subtask); } else if (table[DOS_CR]) - put_byte (*table[DOS_CR], subtask); + recode_put_byte (*table[DOS_CR], subtask); else RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask); break; case DOS_LF: RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - /* Fall through. */ + FALLTHROUGH; default: if (table[input_char]) - put_byte (*table[input_char], subtask); + recode_put_byte (*table[input_char], subtask); else RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask); - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); } } @@ -294,16 +296,16 @@ init_latin1_ibmpc (RECODE_STEP step, if (before_options || after_options) return false; - if (!complete_pairs (request->outer, step, + if (!recode_complete_pairs (request->outer, step, known_pairs, NUMBER_OF_PAIRS, true, true)) return false; if (auto_crlf) step->transform_routine = transform_latin1_ibmpc; - else if (step->fallback_routine == reversibility) - step->transform_routine = transform_byte_to_byte; + else if (step->fallback_routine == recode_reversibility) + step->transform_routine = recode_transform_byte_to_byte; else - step->transform_routine = transform_byte_to_variable; + step->transform_routine = recode_transform_byte_to_variable; return true; } @@ -320,16 +322,16 @@ init_ibmpc_latin1 (RECODE_STEP step, if (before_options || after_options) return false; - if (!complete_pairs (outer, step, + if (!recode_complete_pairs (outer, step, known_pairs, NUMBER_OF_PAIRS, true, false)) return false; if (auto_crlf) step->transform_routine = transform_ibmpc_latin1; - else if (step->fallback_routine == reversibility) - step->transform_routine = transform_byte_to_byte; + else if (step->fallback_routine == recode_reversibility) + step->transform_routine = recode_transform_byte_to_byte; else - step->transform_routine = transform_byte_to_variable; + step->transform_routine = recode_transform_byte_to_variable; /* FIXME: Allow ascii_graphics even with strict mapping. Reported by David E. A. Wilson . */ @@ -352,43 +354,39 @@ module_ibmpc (RECODE_OUTER outer) { RECODE_ALIAS alias; - if (!declare_single (outer, "Latin-1", "IBM-PC", + if (!recode_declare_single (outer, "Latin-1", "IBM-PC", outer->quality_byte_to_variable, init_latin1_ibmpc, transform_latin1_ibmpc)) return false; - if (!declare_single (outer, "IBM-PC", "Latin-1", + if (!recode_declare_single (outer, "IBM-PC", "Latin-1", outer->quality_variable_to_variable, init_ibmpc_latin1, transform_ibmpc_latin1)) return false; - if (alias = declare_alias (outer, "IBM-PC", "IBM-PC"), !alias) + if (alias = recode_declare_alias (outer, "IBM-PC", "IBM-PC"), !alias) return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) + if (!recode_declare_implied_surface (outer, alias, outer->crlf_surface)) return false; - if (alias = declare_alias (outer, "dos", "IBM-PC"), !alias) + if (alias = recode_declare_alias (outer, "dos", "IBM-PC"), !alias) return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) + if (!recode_declare_implied_surface (outer, alias, outer->crlf_surface)) return false; - if (alias = declare_alias (outer, "MSDOS", "IBM-PC"), !alias) + if (alias = recode_declare_alias (outer, "MSDOS", "IBM-PC"), !alias) return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) + if (!recode_declare_implied_surface (outer, alias, outer->crlf_surface)) return false; - if (alias = declare_alias (outer, "pc", "IBM-PC"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) + if (alias = recode_declare_alias (outer, "pc", "IBM-PC"), !alias) return false; -#if 0 - /* FIXME! */ - if (!declare_alias (outer, "IBM-PC", "ibm437")) + if (!recode_declare_implied_surface (outer, alias, outer->crlf_surface)) return false; -#endif + return true; } void -delmodule_ibmpc (RECODE_OUTER outer) +delmodule_ibmpc (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/iconqnx.c b/src/iconqnx.c index 9d5f4a8..6f8475c 100644 --- a/src/iconqnx.c +++ b/src/iconqnx.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" #define DOS_CR 13 /* carriage return */ #define DOS_LF 10 /* line feed */ @@ -27,10 +29,10 @@ #define ENDLINE 30 /* end-line code for QNX */ #define TRANSLATE_AND_BREAK(c2, c3) \ - put_byte (ESCAPE, subtask); \ - put_byte (c2, subtask); \ - put_byte (c3, subtask); \ - input_char = get_byte (subtask); \ + recode_put_byte (ESCAPE, subtask); \ + recode_put_byte (c2, subtask); \ + recode_put_byte (c3, subtask); \ + input_char = recode_get_byte (subtask); \ break; static bool @@ -38,13 +40,13 @@ transform_ibmpc_iconqnx (RECODE_SUBTASK subtask) { int input_char; - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); while (true) switch (input_char) { case DOS_EOF: RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); - /* Fall through. */ + FALLTHROUGH; case EOF: SUBTASK_RETURN (subtask); @@ -66,24 +68,24 @@ transform_ibmpc_iconqnx (RECODE_SUBTASK subtask) case 128: TRANSLATE_AND_BREAK ('K', 'C'); case DOS_CR: - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); if (input_char == DOS_LF) { - put_byte (ENDLINE, subtask); - input_char = get_byte (subtask); + recode_put_byte (ENDLINE, subtask); + input_char = recode_get_byte (subtask); } else - put_byte (DOS_CR, subtask); + recode_put_byte (DOS_CR, subtask); break; case ENDLINE: case ESCAPE: RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - /* Fall through. */ + FALLTHROUGH; default: - put_byte (input_char, subtask); - input_char = get_byte (subtask); + recode_put_byte (input_char, subtask); + input_char = recode_get_byte (subtask); } } @@ -92,7 +94,7 @@ transform_iconqnx_ibmpc (RECODE_SUBTASK subtask) { int input_char; /* current character */ - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); while (true) switch (input_char) { @@ -100,24 +102,24 @@ transform_iconqnx_ibmpc (RECODE_SUBTASK subtask) SUBTASK_RETURN (subtask); case ENDLINE: - put_byte (DOS_CR, subtask); - put_byte (DOS_LF, subtask); - input_char = get_byte (subtask); + recode_put_byte (DOS_CR, subtask); + recode_put_byte (DOS_LF, subtask); + input_char = recode_get_byte (subtask); break; case DOS_CR: - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); if (input_char == DOS_LF) RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - put_byte (DOS_CR, subtask); + recode_put_byte (DOS_CR, subtask); break; case ESCAPE: - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); switch (input_char) { case 'A': - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); switch (input_char) { case 'a': input_char = 133; break; @@ -126,15 +128,15 @@ transform_iconqnx_ibmpc (RECODE_SUBTASK subtask) default: RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte (ESCAPE, subtask); - put_byte ('A', subtask); + recode_put_byte (ESCAPE, subtask); + recode_put_byte ('A', subtask); if (input_char == EOF) SUBTASK_RETURN (subtask); } break; case 'B': - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); switch (input_char) { case 'e': input_char = 130; break; @@ -142,15 +144,15 @@ transform_iconqnx_ibmpc (RECODE_SUBTASK subtask) default: RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte (ESCAPE, subtask); - put_byte ('B', subtask); + recode_put_byte (ESCAPE, subtask); + recode_put_byte ('B', subtask); if (input_char == EOF) SUBTASK_RETURN (subtask); } break; case 'C': - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); switch (input_char) { case 'a': input_char = 131; break; @@ -161,15 +163,15 @@ transform_iconqnx_ibmpc (RECODE_SUBTASK subtask) default: RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte (ESCAPE, subtask); - put_byte ('C', subtask); + recode_put_byte (ESCAPE, subtask); + recode_put_byte ('C', subtask); if (input_char == EOF) SUBTASK_RETURN (subtask); } break; case 'H': - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); switch (input_char) { case 'e': input_char = 137; break; @@ -178,15 +180,15 @@ transform_iconqnx_ibmpc (RECODE_SUBTASK subtask) default: RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte (ESCAPE, subtask); - put_byte ('H', subtask); + recode_put_byte (ESCAPE, subtask); + recode_put_byte ('H', subtask); if (input_char == EOF) SUBTASK_RETURN (subtask); } break; case 'K': - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); switch (input_char) { case 'c': input_char = 135; break; @@ -194,8 +196,8 @@ transform_iconqnx_ibmpc (RECODE_SUBTASK subtask) default: RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte (ESCAPE, subtask); - put_byte ('K', subtask); + recode_put_byte (ESCAPE, subtask); + recode_put_byte ('K', subtask); if (input_char == EOF) SUBTASK_RETURN (subtask); } @@ -203,15 +205,15 @@ transform_iconqnx_ibmpc (RECODE_SUBTASK subtask) default: RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte (ESCAPE, subtask); + recode_put_byte (ESCAPE, subtask); if (input_char == EOF) SUBTASK_RETURN (subtask); } - /* Fall through. */ + FALLTHROUGH; default: - put_byte (input_char, subtask); - input_char = get_byte (subtask); + recode_put_byte (input_char, subtask); + input_char = recode_get_byte (subtask); } } @@ -219,16 +221,16 @@ bool module_iconqnx (RECODE_OUTER outer) { return - declare_single (outer, "IBM-PC", "Icon-QNX", + recode_declare_single (outer, "IBM-PC", "Icon-QNX", outer->quality_variable_to_variable, NULL, transform_ibmpc_iconqnx) - && declare_single (outer, "Icon-QNX", "IBM-PC", + && recode_declare_single (outer, "Icon-QNX", "IBM-PC", outer->quality_variable_to_variable, NULL, transform_iconqnx_ibmpc) - && declare_alias (outer, "QNX", "Icon-QNX"); + && recode_declare_alias (outer, "QNX", "Icon-QNX"); } void -delmodule_iconqnx (RECODE_OUTER outer) +delmodule_iconqnx (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/iconv.c b/src/iconv.c index a16c10f..a44fd8c 100644 --- a/src/iconv.c +++ b/src/iconv.c @@ -1,11 +1,11 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1999, 2000, 2001, 2008 Free Software Foundation, Inc. + Copyright © 1999-2022 Free Software Foundation, Inc. Contributed by François Pinard , 1999, and Bruno Haible , 2000. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -15,10 +15,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" #include #include "iconvdecl.h" @@ -26,6 +28,18 @@ | Use `iconv' to handle a double step. | `--------------------------------------*/ +static void +do_iconv (RECODE_OUTER outer, + iconv_t conversion, + char **input, size_t *input_left, + char **output, size_t *output_left, + int *saved_errno) +{ + size_t converted = iconv (conversion, input, input_left, output, output_left); + if (converted == (size_t) -1 && !(errno == EILSEQ && outer->force)) + *saved_errno = errno; +} + #define BUFFER_SIZE 2048 static bool @@ -33,28 +47,29 @@ wrapped_transform (iconv_t conversion, RECODE_SUBTASK subtask) { char output_buffer[BUFFER_SIZE]; char input_buffer[BUFFER_SIZE]; - int input_char = get_byte (subtask); + int input_char = recode_get_byte (subtask); char *cursor = input_buffer; bool drain_first = false; while (true) { - /* The output buffer is fully avaible at this point. */ + /* The output buffer is fully available at this point. */ char *input = input_buffer; char *output = output_buffer; size_t input_left = 0; size_t output_left = BUFFER_SIZE; int saved_errno = 0; - size_t converted; if (drain_first) { /* Drain all accumulated partial state and emit output to return to the initial shift state. */ - converted = iconv (conversion, NULL, NULL, &output, &output_left); - if (converted == (size_t) -1) - saved_errno = errno; + do_iconv (subtask->task->request->outer, + conversion, + NULL, NULL, + &output, &output_left, + &saved_errno); } if (saved_errno == 0) @@ -63,7 +78,7 @@ wrapped_transform (iconv_t conversion, RECODE_SUBTASK subtask) while (input_char != EOF && cursor < input_buffer + BUFFER_SIZE) { *cursor++ = input_char; - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); } if (cursor == input_buffer) @@ -82,17 +97,17 @@ wrapped_transform (iconv_t conversion, RECODE_SUBTASK subtask) /* Convert accumulated input and add it to the output buffer. */ input = input_buffer; input_left = cursor - input_buffer; - converted = iconv (conversion, - &input, &input_left, - &output, &output_left); - if (converted == (size_t) -1) - saved_errno = errno; + do_iconv (subtask->task->request->outer, + conversion, + &input, &input_left, + &output, &output_left, + &saved_errno); } } /* Send the converted result, so freeing the output buffer. */ for (cursor = output_buffer; cursor < output; cursor++) - put_byte (*cursor, subtask); + recode_put_byte (*cursor, subtask); /* Act according to the outcome of the iconv call. */ @@ -101,13 +116,46 @@ wrapped_transform (iconv_t conversion, RECODE_SUBTASK subtask) { if (saved_errno == EILSEQ) { - /* Invalid input. Skip one byte. */ - RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); + /* Check whether the input was really just untranslatable. */ + enum recode_error recode_error = RECODE_INVALID_INPUT; + RECODE_CONST_STEP step = subtask->step; + iconv_t check_conversion = iconv_open (step->before->iconv_name, + step->before->iconv_name); + + /* On error, give up and assume input is invalid. */ + if (input_left > 0 && check_conversion != (iconv_t) -1) + { + /* Assume iconv does not modify its input. */ + char *check_input = input; + size_t check_input_left = input_left; + size_t check_output_left = input_left; + char *check_output_buffer, *check_output; + RECODE_OUTER outer = subtask->task->request->outer; + + if ((check_output = ALLOC (check_output_buffer, input_left, char)) != NULL) + { + size_t check_converted = iconv (check_conversion, + &check_input, &check_input_left, + &check_output, &check_output_left); + + if (check_converted != (size_t) -1) + recode_error = RECODE_UNTRANSLATABLE; + + free (check_output_buffer); + } + + iconv_close (check_conversion); + } + + /* Invalid or untranslatable input. */ + RETURN_IF_NOGO (recode_error, subtask); + /* Ensure we skip at least one byte. + FIXME: We cannot tell how many bytes to skip for + untranslatable input. The likely result is that we'll + get an "invalid input" error on the next step. */ assert (input_left > 0); input++; input_left--; - /* Why is draining required? */ - drain_first = true; } else if (saved_errno == EINVAL) { @@ -131,23 +179,54 @@ wrapped_transform (iconv_t conversion, RECODE_SUBTASK subtask) SUBTASK_RETURN (subtask); } +static bool +ends_with (const char *s, size_t s_len, const char *suff, size_t suff_len) +{ + return suff_len <= s_len && !memcmp (s + s_len - suff_len, suff, suff_len); +} + +static char * +iconv_fix_options (RECODE_OUTER outer, const char *charset) +{ + size_t charset_len = strlen (charset); + bool translit = false; + + if (ends_with (charset, charset_len, "-translit", strlen ("-translit"))) + { + translit = true; + charset_len -= strlen ("-translit"); + } + + char *result; + if (asprintf (&result, "%.*s%s%s", (int) charset_len, charset, + translit ? "//TRANSLIT" : "", + outer->strict_mapping ? "//IGNORE": "") + == -1) + return NULL; + return result; +} + bool -transform_with_iconv (RECODE_SUBTASK subtask) +recode_transform_with_iconv (RECODE_SUBTASK subtask) { + RECODE_OUTER outer = subtask->task->request->outer; RECODE_CONST_STEP step = subtask->step; - iconv_t conversion = iconv_open (step->after->iconv_name, - step->before->iconv_name); - bool status; + char *tocode = iconv_fix_options (outer, step->after->iconv_name); + const char *fromcode = step->before->iconv_name; + iconv_t conversion = (iconv_t) -1; + if (tocode) + conversion = iconv_open (tocode, fromcode); if (conversion == (iconv_t) -1) { - SET_SUBTASK_ERROR (RECODE_SYSTEM_ERROR, subtask); + recode_if_nogo (RECODE_SYSTEM_ERROR, subtask); + free (tocode); SUBTASK_RETURN (subtask); } - status = wrapped_transform (conversion, subtask); - + bool status = wrapped_transform (conversion, subtask); iconv_close (conversion); + free (tocode); return status; } @@ -171,7 +250,7 @@ module_iconv (RECODE_OUTER outer) while (*cursor) { RECODE_ALIAS alias - = find_alias (outer, *cursor, ALIAS_FIND_AS_CHARSET); + = recode_find_alias (outer, *cursor, ALIAS_FIND_AS_CHARSET); if (alias) { @@ -181,22 +260,22 @@ module_iconv (RECODE_OUTER outer) cursor++; } - if (!declare_iconv (outer, charset_name, *aliases)) + if (!recode_declare_iconv (outer, charset_name, *aliases)) return false; /* Declare all aliases, given they bring something we do not already know. Even then, we still declare too many useless aliases, as the - desambiguating tables are not recomputed as we go. FIXME! */ + disambiguating tables are not recomputed as we go. FIXME! */ for (cursor = aliases; *cursor; cursor++) { RECODE_ALIAS alias - = find_alias (outer, *cursor, ALIAS_FIND_AS_CHARSET); + = recode_find_alias (outer, *cursor, ALIAS_FIND_AS_CHARSET); - /* If there is a charset contradiction, call declare_alias + /* If there is a charset contradiction, call recode_declare_alias nevertheless, as the error processing will occur there. */ if (!alias || alias->symbol->name != charset_name) - if (!declare_alias (outer, *cursor, charset_name)) + if (!recode_declare_alias (outer, *cursor, charset_name)) return false; } } @@ -205,6 +284,6 @@ module_iconv (RECODE_OUTER outer) } void -delmodule_iconv (RECODE_OUTER outer) +delmodule_iconv (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/iconvdecl.h b/src/iconvdecl.h deleted file mode 100644 index a1b95cc..0000000 --- a/src/iconvdecl.h +++ /dev/null @@ -1,987 +0,0 @@ -/* DO NOT MODIFY THIS FILE! It was generated by `recode/tables.py'. */ - -/* Conversion of files between different charsets and surfaces. - Copyright © 1999 Free Software Foundation, Inc. - Contributed by François Pinard , 1993, 1997. - - This 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. - - 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the Recode Library; see the file `COPYING.LIB'. - If not, write to the Free Software Foundation, Inc., 59 Temple Place - - Suite 330, Boston, MA 02111-1307, USA. */ - -/* This is derived from Bruno Haible's `libiconv' package. */ -static const char *iconv_name_list[1923] = - { - "437", NULL, - "500", NULL, - "500V1", NULL, - "850", NULL, - "851", NULL, - "852", NULL, - "855", NULL, - "856", NULL, - "857", NULL, - "860", NULL, - "861", NULL, - "862", NULL, - "863", NULL, - "864", NULL, - "865", NULL, - "866", NULL, - "866NAV", NULL, - "869", NULL, - "874", NULL, - "904", NULL, - "1026", NULL, - "1046", NULL, - "1047", NULL, - "8859_1", NULL, - "8859_2", NULL, - "8859_3", NULL, - "8859_4", NULL, - "8859_5", NULL, - "8859_6", NULL, - "8859_7", NULL, - "8859_8", NULL, - "8859_9", NULL, - "10646-1:1993", NULL, - "UCS4", NULL, - "ANSI_X3.4-1968", NULL, - "ANSI_X3.4-1986", NULL, - "ANSI_X3.4", NULL, - "ANSI_X3.110-1983", NULL, - "ANSI_X3.110", NULL, - "ARABIC", NULL, - "ARABIC7", NULL, - "ARMSCII-8", NULL, - "ASCII", NULL, - "ASMO-708", NULL, - "ASMO_449", NULL, - "BALTIC", NULL, - "BIG-5", NULL, - "BIG-FIVE", NULL, - "BIG5-HKSCS", NULL, - "BIG5", NULL, - "BIG5HKSCS", NULL, - "BIGFIVE", NULL, - "BS_4730", NULL, - "CA", NULL, - "CN-BIG5", NULL, - "CN-GB", NULL, - "CN", NULL, - "CP-AR", NULL, - "CP-GR", NULL, - "CP-HU", NULL, - "CP037", NULL, - "CP038", NULL, - "CP273", NULL, - "CP274", NULL, - "CP275", NULL, - "CP278", NULL, - "CP280", NULL, - "CP281", NULL, - "CP282", NULL, - "CP284", NULL, - "CP285", NULL, - "CP290", NULL, - "CP297", NULL, - "CP367", NULL, - "CP420", NULL, - "CP423", NULL, - "CP424", NULL, - "CP437", NULL, - "CP500", NULL, - "CP737", NULL, - "CP775", NULL, - "CP813", NULL, - "CP819", NULL, - "CP850", NULL, - "CP851", NULL, - "CP852", NULL, - "CP855", NULL, - "CP856", NULL, - "CP857", NULL, - "CP860", NULL, - "CP861", NULL, - "CP862", NULL, - "CP863", NULL, - "CP864", NULL, - "CP865", NULL, - "CP866", NULL, - "CP866NAV", NULL, - "CP868", NULL, - "CP869", NULL, - "CP870", NULL, - "CP871", NULL, - "CP874", NULL, - "CP875", NULL, - "CP880", NULL, - "CP891", NULL, - "CP903", NULL, - "CP904", NULL, - "CP905", NULL, - "CP912", NULL, - "CP915", NULL, - "CP916", NULL, - "CP918", NULL, - "CP920", NULL, - "CP922", NULL, - "CP930", NULL, - "CP932", NULL, - "CP933", NULL, - "CP935", NULL, - "CP936", NULL, - "CP937", NULL, - "CP939", NULL, - "CP949", NULL, - "CP950", NULL, - "CP1004", NULL, - "CP1026", NULL, - "CP1046", NULL, - "CP1047", NULL, - "CP1070", NULL, - "CP1079", NULL, - "CP1081", NULL, - "CP1084", NULL, - "CP1089", NULL, - "CP1124", NULL, - "CP1125", NULL, - "CP1129", NULL, - "CP1132", NULL, - "CP1133", NULL, - "CP1160", NULL, - "CP1161", NULL, - "CP1162", NULL, - "CP1163", NULL, - "CP1164", NULL, - "CP1250", NULL, - "CP1251", NULL, - "CP1252", NULL, - "CP1253", NULL, - "CP1254", NULL, - "CP1255", NULL, - "CP1256", NULL, - "CP1257", NULL, - "CP1258", NULL, - "CP1361", NULL, - "CP10007", NULL, - "CPIBM861", NULL, - "CSA7-1", NULL, - "CSA7-2", NULL, - "CSASCII", NULL, - "CSA_T500-1983", NULL, - "CSA_T500", NULL, - "CSA_Z243.4-1985-1", NULL, - "CSA_Z243.4-1985-2", NULL, - "CSA_Z243.419851", NULL, - "CSA_Z243.419852", NULL, - "CSDECMCS", NULL, - "CSEBCDICATDE", NULL, - "CSEBCDICATDEA", NULL, - "CSEBCDICCAFR", NULL, - "CSEBCDICDKNO", NULL, - "CSEBCDICDKNOA", NULL, - "CSEBCDICES", NULL, - "CSEBCDICESA", NULL, - "CSEBCDICESS", NULL, - "CSEBCDICFISE", NULL, - "CSEBCDICFISEA", NULL, - "CSEBCDICFR", NULL, - "CSEBCDICIT", NULL, - "CSEBCDICPT", NULL, - "CSEBCDICUK", NULL, - "CSEBCDICUS", NULL, - "CSEUCKR", NULL, - "CSEUCPKDFMTJAPANESE", NULL, - "CSGB2312", NULL, - "CSHPROMAN8", NULL, - "CSIBM037", NULL, - "CSIBM038", NULL, - "CSIBM273", NULL, - "CSIBM274", NULL, - "CSIBM275", NULL, - "CSIBM277", NULL, - "CSIBM278", NULL, - "CSIBM280", NULL, - "CSIBM281", NULL, - "CSIBM284", NULL, - "CSIBM285", NULL, - "CSIBM290", NULL, - "CSIBM297", NULL, - "CSIBM420", NULL, - "CSIBM423", NULL, - "CSIBM424", NULL, - "CSIBM500", NULL, - "CSIBM851", NULL, - "CSIBM855", NULL, - "CSIBM856", NULL, - "CSIBM857", NULL, - "CSIBM860", NULL, - "CSIBM863", NULL, - "CSIBM864", NULL, - "CSIBM865", NULL, - "CSIBM866", NULL, - "CSIBM868", NULL, - "CSIBM869", NULL, - "CSIBM870", NULL, - "CSIBM871", NULL, - "CSIBM880", NULL, - "CSIBM891", NULL, - "CSIBM903", NULL, - "CSIBM904", NULL, - "CSIBM905", NULL, - "CSIBM918", NULL, - "CSIBM922", NULL, - "CSIBM930", NULL, - "CSIBM932", NULL, - "CSIBM933", NULL, - "CSIBM935", NULL, - "CSIBM937", NULL, - "CSIBM939", NULL, - "CSIBM943", NULL, - "CSIBM1026", NULL, - "CSIBM1124", NULL, - "CSIBM1129", NULL, - "CSIBM1132", NULL, - "CSIBM1133", NULL, - "CSIBM1160", NULL, - "CSIBM1161", NULL, - "CSIBM1163", NULL, - "CSIBM1164", NULL, - "CSIBM11621162", NULL, - "CSISO4UNITEDKINGDOM", NULL, - "CSISO10SWEDISH", NULL, - "CSISO11SWEDISHFORNAMES", NULL, - "CSISO14JISC6220RO", NULL, - "CSISO15ITALIAN", NULL, - "CSISO16PORTUGESE", NULL, - "CSISO17SPANISH", NULL, - "CSISO18GREEK7OLD", NULL, - "CSISO19LATINGREEK", NULL, - "CSISO21GERMAN", NULL, - "CSISO25FRENCH", NULL, - "CSISO27LATINGREEK1", NULL, - "CSISO49INIS", NULL, - "CSISO50INIS8", NULL, - "CSISO51INISCYRILLIC", NULL, - "CSISO58GB1988", NULL, - "CSISO60DANISHNORWEGIAN", NULL, - "CSISO60NORWEGIAN1", NULL, - "CSISO61NORWEGIAN2", NULL, - "CSISO69FRENCH", NULL, - "CSISO84PORTUGUESE2", NULL, - "CSISO85SPANISH2", NULL, - "CSISO86HUNGARIAN", NULL, - "CSISO88GREEK7", NULL, - "CSISO89ASMO449", NULL, - "CSISO90", NULL, - "CSISO92JISC62991984B", NULL, - "CSISO99NAPLPS", NULL, - "CSISO103T618BIT", NULL, - "CSISO111ECMACYRILLIC", NULL, - "CSISO121CANADIAN1", NULL, - "CSISO122CANADIAN2", NULL, - "CSISO139CSN369103", NULL, - "CSISO141JUSIB1002", NULL, - "CSISO143IECP271", NULL, - "CSISO150", NULL, - "CSISO150GREEKCCITT", NULL, - "CSISO151CUBA", NULL, - "CSISO153GOST1976874", NULL, - "CSISO646DANISH", NULL, - "CSISO2022CN", NULL, - "CSISO2022JP", NULL, - "CSISO2022JP2", NULL, - "CSISO2022KR", NULL, - "CSISO2033", NULL, - "CSISO5427CYRILLIC", NULL, - "CSISO5427CYRILLIC1981", NULL, - "CSISO5428GREEK", NULL, - "CSISO10367BOX", NULL, - "CSISOLATIN1", NULL, - "CSISOLATIN2", NULL, - "CSISOLATIN3", NULL, - "CSISOLATIN4", NULL, - "CSISOLATIN5", NULL, - "CSISOLATIN6", NULL, - "CSISOLATINARABIC", NULL, - "CSISOLATINCYRILLIC", NULL, - "CSISOLATINGREEK", NULL, - "CSISOLATINHEBREW", NULL, - "CSKOI8R", NULL, - "CSKSC5636", NULL, - "CSMACINTOSH", NULL, - "CSNATSDANO", NULL, - "CSNATSSEFI", NULL, - "CSN_369103", NULL, - "CSPC8CODEPAGE437", NULL, - "CSPC775BALTIC", NULL, - "CSPC850MULTILINGUAL", NULL, - "CSPC862LATINHEBREW", NULL, - "CSPCP852", NULL, - "CSSHIFTJIS", NULL, - "CSUCS4", NULL, - "CSUNICODE", NULL, - "CSWINDOWS31J", NULL, - "CUBA", NULL, - "CWI-2", NULL, - "CWI", NULL, - "CYRILLIC", NULL, - "DE", NULL, - "DEC-MCS", NULL, - "DEC", NULL, - "DECMCS", NULL, - "DIN_66003", NULL, - "DK", NULL, - "DS2089", NULL, - "DS_2089", NULL, - "E13B", NULL, - "EBCDIC-AT-DE-A", NULL, - "EBCDIC-AT-DE", NULL, - "EBCDIC-BE", NULL, - "EBCDIC-BR", NULL, - "EBCDIC-CA-FR", NULL, - "EBCDIC-CP-AR1", NULL, - "EBCDIC-CP-AR2", NULL, - "EBCDIC-CP-BE", NULL, - "EBCDIC-CP-CA", NULL, - "EBCDIC-CP-CH", NULL, - "EBCDIC-CP-DK", NULL, - "EBCDIC-CP-ES", NULL, - "EBCDIC-CP-FI", NULL, - "EBCDIC-CP-FR", NULL, - "EBCDIC-CP-GB", NULL, - "EBCDIC-CP-GR", NULL, - "EBCDIC-CP-HE", NULL, - "EBCDIC-CP-IS", NULL, - "EBCDIC-CP-IT", NULL, - "EBCDIC-CP-NL", NULL, - "EBCDIC-CP-NO", NULL, - "EBCDIC-CP-ROECE", NULL, - "EBCDIC-CP-SE", NULL, - "EBCDIC-CP-TR", NULL, - "EBCDIC-CP-US", NULL, - "EBCDIC-CP-WT", NULL, - "EBCDIC-CP-YU", NULL, - "EBCDIC-CYRILLIC", NULL, - "EBCDIC-DK-NO-A", NULL, - "EBCDIC-DK-NO", NULL, - "EBCDIC-ES-A", NULL, - "EBCDIC-ES-S", NULL, - "EBCDIC-ES", NULL, - "EBCDIC-FI-SE-A", NULL, - "EBCDIC-FI-SE", NULL, - "EBCDIC-FR", NULL, - "EBCDIC-GREEK", NULL, - "EBCDIC-INT", NULL, - "EBCDIC-INT1", NULL, - "EBCDIC-IS-FRISS", NULL, - "EBCDIC-IT", NULL, - "EBCDIC-JP-E", NULL, - "EBCDIC-JP-KANA", NULL, - "EBCDIC-PT", NULL, - "EBCDIC-UK", NULL, - "EBCDIC-US", NULL, - "EBCDICATDE", NULL, - "EBCDICATDEA", NULL, - "EBCDICCAFR", NULL, - "EBCDICDKNO", NULL, - "EBCDICDKNOA", NULL, - "EBCDICES", NULL, - "EBCDICESA", NULL, - "EBCDICESS", NULL, - "EBCDICFISE", NULL, - "EBCDICFISEA", NULL, - "EBCDICFR", NULL, - "EBCDICISFRISS", NULL, - "EBCDICIT", NULL, - "EBCDICPT", NULL, - "EBCDICUK", NULL, - "EBCDICUS", NULL, - "ECMA-114", NULL, - "ECMA-118", NULL, - "ECMA-128", NULL, - "ECMA-CYRILLIC", NULL, - "ECMACYRILLIC", NULL, - "ELOT_928", NULL, - "ES", NULL, - "ES2", NULL, - "EUC-CN", NULL, - "EUC-JISX0213", NULL, - "EUC-JP-MS", NULL, - "EUC-JP", NULL, - "EUC-KR", NULL, - "EUC-TW", NULL, - "EUCCN", NULL, - "EUCJP-MS", NULL, - "EUCJP-OPEN", NULL, - "EUCJP-WIN", NULL, - "EUCJP", NULL, - "EUCKR", NULL, - "EUCTW", NULL, - "FI", NULL, - "FR", NULL, - "GB", NULL, - "GB2312", NULL, - "GB13000", NULL, - "GB18030", NULL, - "GBK", NULL, - "GB_1988-80", NULL, - "GB_198880", NULL, - "GEORGIAN-ACADEMY", NULL, - "GEORGIAN-PS", NULL, - "GOST_19768-74", NULL, - "GOST_19768", NULL, - "GOST_1976874", NULL, - "GREEK-CCITT", NULL, - "GREEK", NULL, - "GREEK7-OLD", NULL, - "GREEK7", NULL, - "GREEK7OLD", NULL, - "GREEK8", NULL, - "GREEKCCITT", NULL, - "HEBREW", NULL, - "HP-ROMAN8", NULL, - "HPROMAN8", NULL, - "HU", NULL, - "IBM-856", NULL, - "IBM-922", NULL, - "IBM-930", NULL, - "IBM-932", NULL, - "IBM-933", NULL, - "IBM-935", NULL, - "IBM-937", NULL, - "IBM-939", NULL, - "IBM-943", NULL, - "IBM-1046", NULL, - "IBM-1047", NULL, - "IBM-1124", NULL, - "IBM-1129", NULL, - "IBM-1132", NULL, - "IBM-1133", NULL, - "IBM-1160", NULL, - "IBM-1161", NULL, - "IBM-1162", NULL, - "IBM-1163", NULL, - "IBM-1164", NULL, - "IBM037", NULL, - "IBM038", NULL, - "IBM256", NULL, - "IBM273", NULL, - "IBM274", NULL, - "IBM275", NULL, - "IBM277", NULL, - "IBM278", NULL, - "IBM280", NULL, - "IBM281", NULL, - "IBM284", NULL, - "IBM285", NULL, - "IBM290", NULL, - "IBM297", NULL, - "IBM367", NULL, - "IBM420", NULL, - "IBM423", NULL, - "IBM424", NULL, - "IBM437", NULL, - "IBM500", NULL, - "IBM775", NULL, - "IBM813", NULL, - "IBM819", NULL, - "IBM848", NULL, - "IBM850", NULL, - "IBM851", NULL, - "IBM852", NULL, - "IBM855", NULL, - "IBM856", NULL, - "IBM857", NULL, - "IBM860", NULL, - "IBM861", NULL, - "IBM862", NULL, - "IBM863", NULL, - "IBM864", NULL, - "IBM865", NULL, - "IBM866", NULL, - "IBM866NAV", NULL, - "IBM868", NULL, - "IBM869", NULL, - "IBM870", NULL, - "IBM871", NULL, - "IBM874", NULL, - "IBM875", NULL, - "IBM880", NULL, - "IBM891", NULL, - "IBM903", NULL, - "IBM904", NULL, - "IBM905", NULL, - "IBM912", NULL, - "IBM915", NULL, - "IBM916", NULL, - "IBM918", NULL, - "IBM920", NULL, - "IBM922", NULL, - "IBM930", NULL, - "IBM932", NULL, - "IBM933", NULL, - "IBM935", NULL, - "IBM937", NULL, - "IBM939", NULL, - "IBM943", NULL, - "IBM1004", NULL, - "IBM1026", NULL, - "IBM1046", NULL, - "IBM1047", NULL, - "IBM1089", NULL, - "IBM1124", NULL, - "IBM1129", NULL, - "IBM1132", NULL, - "IBM1133", NULL, - "IBM1160", NULL, - "IBM1161", NULL, - "IBM1162", NULL, - "IBM1163", NULL, - "IBM1164", NULL, - "IEC_P27-1", NULL, - "IEC_P271", NULL, - "INIS-8", NULL, - "INIS-CYRILLIC", NULL, - "INIS", NULL, - "INIS8", NULL, - "INISCYRILLIC", NULL, - "ISIRI-3342", NULL, - "ISIRI3342", NULL, - "ISO-2022-CN-EXT", NULL, - "ISO-2022-CN", NULL, - "ISO-2022-JP-2", NULL, - "ISO-2022-JP-3", NULL, - "ISO-2022-JP", NULL, - "ISO-2022-KR", NULL, - "ISO-8859-1", NULL, - "ISO-8859-2", NULL, - "ISO-8859-3", NULL, - "ISO-8859-4", NULL, - "ISO-8859-5", NULL, - "ISO-8859-6", NULL, - "ISO-8859-7", NULL, - "ISO-8859-8", NULL, - "ISO-8859-9", NULL, - "ISO-8859-10", NULL, - "ISO-8859-11", NULL, - "ISO-8859-13", NULL, - "ISO-8859-14", NULL, - "ISO-8859-15", NULL, - "ISO-8859-16", NULL, - "ISO-10646", NULL, - "UCS2", NULL, - "UCS4", NULL, - "UTF-8", NULL, - "UTF8", NULL, - "ISO-CELTIC", NULL, - "ISO-IR-4", NULL, - "ISO-IR-6", NULL, - "ISO-IR-8-1", NULL, - "ISO-IR-9-1", NULL, - "ISO-IR-10", NULL, - "ISO-IR-11", NULL, - "ISO-IR-14", NULL, - "ISO-IR-15", NULL, - "ISO-IR-16", NULL, - "ISO-IR-17", NULL, - "ISO-IR-18", NULL, - "ISO-IR-19", NULL, - "ISO-IR-21", NULL, - "ISO-IR-25", NULL, - "ISO-IR-27", NULL, - "ISO-IR-37", NULL, - "ISO-IR-49", NULL, - "ISO-IR-50", NULL, - "ISO-IR-51", NULL, - "ISO-IR-54", NULL, - "ISO-IR-55", NULL, - "ISO-IR-57", NULL, - "ISO-IR-60", NULL, - "ISO-IR-61", NULL, - "ISO-IR-69", NULL, - "ISO-IR-84", NULL, - "ISO-IR-85", NULL, - "ISO-IR-86", NULL, - "ISO-IR-88", NULL, - "ISO-IR-89", NULL, - "ISO-IR-90", NULL, - "ISO-IR-92", NULL, - "ISO-IR-98", NULL, - "ISO-IR-99", NULL, - "ISO-IR-100", NULL, - "ISO-IR-101", NULL, - "ISO-IR-103", NULL, - "ISO-IR-109", NULL, - "ISO-IR-110", NULL, - "ISO-IR-111", NULL, - "ISO-IR-121", NULL, - "ISO-IR-122", NULL, - "ISO-IR-126", NULL, - "ISO-IR-127", NULL, - "ISO-IR-138", NULL, - "ISO-IR-139", NULL, - "ISO-IR-141", NULL, - "ISO-IR-143", NULL, - "ISO-IR-144", NULL, - "ISO-IR-148", NULL, - "ISO-IR-150", NULL, - "ISO-IR-151", NULL, - "ISO-IR-153", NULL, - "ISO-IR-155", NULL, - "ISO-IR-156", NULL, - "ISO-IR-157", NULL, - "ISO-IR-166", NULL, - "ISO-IR-179", NULL, - "ISO-IR-193", NULL, - "ISO-IR-197", NULL, - "ISO-IR-199", NULL, - "ISO-IR-203", NULL, - "ISO-IR-209", NULL, - "ISO-IR-226", NULL, - "ISO646-CA", NULL, - "ISO646-CA2", NULL, - "ISO646-CN", NULL, - "ISO646-CU", NULL, - "ISO646-DE", NULL, - "ISO646-DK", NULL, - "ISO646-ES", NULL, - "ISO646-ES2", NULL, - "ISO646-FI", NULL, - "ISO646-FR", NULL, - "ISO646-FR1", NULL, - "ISO646-GB", NULL, - "ISO646-HU", NULL, - "ISO646-IT", NULL, - "ISO646-JP-OCR-B", NULL, - "ISO646-JP", NULL, - "ISO646-KR", NULL, - "ISO646-NO", NULL, - "ISO646-NO2", NULL, - "ISO646-PT", NULL, - "ISO646-PT2", NULL, - "ISO646-SE", NULL, - "ISO646-SE2", NULL, - "ISO646-US", NULL, - "ISO646-YU", NULL, - "ISO2022CN", NULL, - "ISO2022CNEXT", NULL, - "ISO2022JP", NULL, - "ISO2022JP2", NULL, - "ISO2022KR", NULL, - "ISO6937", NULL, - "ISO8859-1", NULL, - "ISO8859-2", NULL, - "ISO8859-3", NULL, - "ISO8859-4", NULL, - "ISO8859-5", NULL, - "ISO8859-6", NULL, - "ISO8859-7", NULL, - "ISO8859-8", NULL, - "ISO8859-9", NULL, - "ISO8859-10", NULL, - "ISO8859-11", NULL, - "ISO8859-13", NULL, - "ISO8859-14", NULL, - "ISO8859-15", NULL, - "ISO8859-16", NULL, - "ISO88591", NULL, - "ISO88592", NULL, - "ISO88593", NULL, - "ISO88594", NULL, - "ISO88595", NULL, - "ISO88596", NULL, - "ISO88597", NULL, - "ISO88598", NULL, - "ISO88599", NULL, - "ISO885910", NULL, - "ISO885911", NULL, - "ISO885913", NULL, - "ISO885914", NULL, - "ISO885915", NULL, - "ISO885916", NULL, - "ISO_646.IRV:1991", NULL, - "ISO_2033-1983", NULL, - "ISO_2033", NULL, - "ISO_5427-EXT", NULL, - "ISO_5427", NULL, - "ISO_5427:1981", NULL, - "ISO_5427EXT", NULL, - "ISO_5428", NULL, - "ISO_5428:1980", NULL, - "ISO_6937-2", NULL, - "ISO_6937-2:1983", NULL, - "ISO_6937", NULL, - "ISO_6937:1992", NULL, - "ISO_8859-1", NULL, - "ISO_8859-1:1987", NULL, - "ISO_8859-2", NULL, - "ISO_8859-2:1987", NULL, - "ISO_8859-3", NULL, - "ISO_8859-3:1988", NULL, - "ISO_8859-4", NULL, - "ISO_8859-4:1988", NULL, - "ISO_8859-5", NULL, - "ISO_8859-5:1988", NULL, - "ISO_8859-6", NULL, - "ISO_8859-6:1987", NULL, - "ISO_8859-7", NULL, - "ISO_8859-7:1987", NULL, - "ISO_8859-7:2003", NULL, - "ISO_8859-8", NULL, - "ISO_8859-8:1988", NULL, - "ISO_8859-9", NULL, - "ISO_8859-9:1989", NULL, - "ISO_8859-10", NULL, - "ISO_8859-10:1992", NULL, - "ISO_8859-14", NULL, - "ISO_8859-14:1998", NULL, - "ISO_8859-15", NULL, - "ISO_8859-15:1998", NULL, - "ISO_8859-16", NULL, - "ISO_8859-16:2001", NULL, - "ISO_9036", NULL, - "ISO_10367-BOX", NULL, - "ISO_10367BOX", NULL, - "ISO_69372", NULL, - "IT", NULL, - "JIS_C6220-1969-RO", NULL, - "JIS_C6229-1984-B", NULL, - "JIS_C62201969RO", NULL, - "JIS_C62291984B", NULL, - "JOHAB", NULL, - "JP-OCR-B", NULL, - "JP", NULL, - "JS", NULL, - "JUS_I.B1.002", NULL, - "KOI-7", NULL, - "KOI-8", NULL, - "KOI8-R", NULL, - "KOI8-T", NULL, - "KOI8-U", NULL, - "KOI8", NULL, - "KOI8R", NULL, - "KOI8U", NULL, - "KSC5636", NULL, - "L1", NULL, - "L2", NULL, - "L3", NULL, - "L4", NULL, - "L5", NULL, - "L6", NULL, - "L7", NULL, - "L8", NULL, - "L10", NULL, - "LATIN-9", NULL, - "LATIN-GREEK-1", NULL, - "LATIN-GREEK", NULL, - "LATIN1", NULL, - "LATIN2", NULL, - "LATIN3", NULL, - "LATIN4", NULL, - "LATIN5", NULL, - "LATIN6", NULL, - "LATIN7", NULL, - "LATIN8", NULL, - "LATIN10", NULL, - "LATINGREEK", NULL, - "LATINGREEK1", NULL, - "MAC-CYRILLIC", NULL, - "MAC-IS", NULL, - "MAC-SAMI", NULL, - "MAC-UK", NULL, - "MAC", NULL, - "MACCYRILLIC", NULL, - "MACINTOSH", NULL, - "MACIS", NULL, - "MACUK", NULL, - "MACUKRAINIAN", NULL, - "MS-ANSI", NULL, - "MS-ARAB", NULL, - "MS-CYRL", NULL, - "MS-EE", NULL, - "MS-GREEK", NULL, - "MS-HEBR", NULL, - "MS-MAC-CYRILLIC", NULL, - "MS-TURK", NULL, - "MS932", NULL, - "MS936", NULL, - "MSCP949", NULL, - "MSCP1361", NULL, - "MSMACCYRILLIC", NULL, - "MSZ_7795.3", NULL, - "MS_KANJI", NULL, - "NAPLPS", NULL, - "NATS-DANO", NULL, - "NATS-SEFI", NULL, - "NATSDANO", NULL, - "NATSSEFI", NULL, - "NC_NC0010", NULL, - "NC_NC00-10", NULL, - "NC_NC00-10:81", NULL, - "NF_Z_62-010", NULL, - "NF_Z_62-010_(1973)", NULL, - "NF_Z_62-010_1973", NULL, - "NF_Z_62010", NULL, - "NF_Z_62010_1973", NULL, - "NO", NULL, - "NO2", NULL, - "NS_4551-1", NULL, - "NS_4551-2", NULL, - "NS_45511", NULL, - "NS_45512", NULL, - "OS2LATIN1", NULL, - "OSF00010001", NULL, - "OSF00010002", NULL, - "OSF00010003", NULL, - "OSF00010004", NULL, - "OSF00010005", NULL, - "OSF00010006", NULL, - "OSF00010007", NULL, - "OSF00010008", NULL, - "OSF00010009", NULL, - "OSF0001000A", NULL, - "OSF00010020", NULL, - "OSF00010100", NULL, - "OSF00010101", NULL, - "OSF00010102", NULL, - "OSF00010104", NULL, - "OSF00010105", NULL, - "OSF00010106", NULL, - "OSF00030010", NULL, - "OSF0004000A", NULL, - "OSF0005000A", NULL, - "OSF05010001", NULL, - "OSF100201A4", NULL, - "OSF100201A8", NULL, - "OSF100201B5", NULL, - "OSF100201F4", NULL, - "OSF100203B5", NULL, - "OSF1002011C", NULL, - "OSF1002011D", NULL, - "OSF1002035D", NULL, - "OSF1002035E", NULL, - "OSF1002035F", NULL, - "OSF1002036B", NULL, - "OSF1002037B", NULL, - "OSF10010001", NULL, - "OSF10020025", NULL, - "OSF10020111", NULL, - "OSF10020115", NULL, - "OSF10020116", NULL, - "OSF10020118", NULL, - "OSF10020122", NULL, - "OSF10020129", NULL, - "OSF10020352", NULL, - "OSF10020354", NULL, - "OSF10020357", NULL, - "OSF10020359", NULL, - "OSF10020360", NULL, - "OSF10020364", NULL, - "OSF10020365", NULL, - "OSF10020366", NULL, - "OSF10020367", NULL, - "OSF10020370", NULL, - "OSF10020387", NULL, - "OSF10020388", NULL, - "OSF10020396", NULL, - "OSF10020402", NULL, - "OSF10020417", NULL, - "PT", NULL, - "PT2", NULL, - "PT154", NULL, - "R8", NULL, - "RK1048", NULL, - "ROMAN8", NULL, - "RUSCII", NULL, - "SE", NULL, - "SE2", NULL, - "SEN_850200_B", NULL, - "SEN_850200_C", NULL, - "SHIFT-JIS", NULL, - "SHIFT_JIS", NULL, - "SHIFT_JISX0213", NULL, - "SJIS-OPEN", NULL, - "SJIS-WIN", NULL, - "SJIS", NULL, - "SS636127", NULL, - "STRK1048-2002", NULL, - "ST_SEV_358-88", NULL, - "T.61-8BIT", NULL, - "T.61", NULL, - "T.618BIT", NULL, - "TCVN-5712", NULL, - "TCVN", NULL, - "TCVN5712-1", NULL, - "TCVN5712-1:1993", NULL, - "TIS-620", NULL, - "TIS620-0", NULL, - "TIS620.2529-1", NULL, - "TIS620.2533-0", NULL, - "TIS620", NULL, - "TS-5881", NULL, - "TSCII", NULL, - "UCS-2", NULL, - "UCS-2BE", NULL, - "UCS-2LE", NULL, - "UCS-4", NULL, - "UCS-4BE", NULL, - "UCS-4LE", NULL, - "UCS2", NULL, - "UCS4", NULL, - "UHC", NULL, - "UJIS", NULL, - "UK", NULL, - "UNICODE", NULL, - "UNICODEBIG", NULL, - "UNICODELITTLE", NULL, - "US-ASCII", NULL, - "US", NULL, - "UTF-7", NULL, - "UTF-8", NULL, - "UTF-16", NULL, - "UTF-16BE", NULL, - "UTF-16LE", NULL, - "UTF-32", NULL, - "UTF-32BE", NULL, - "UTF-32LE", NULL, - "UTF7", NULL, - "UTF8", NULL, - "UTF16", NULL, - "UTF16BE", NULL, - "UTF16LE", NULL, - "UTF32", NULL, - "UTF32BE", NULL, - "UTF32LE", NULL, - "VISCII", NULL, - "WCHAR_T", NULL, - "WIN-SAMI-2", NULL, - "WINBALTRIM", NULL, - "WINDOWS-31J", NULL, - "WINDOWS-874", NULL, - "WINDOWS-936", NULL, - "WINDOWS-1250", NULL, - "WINDOWS-1251", NULL, - "WINDOWS-1252", NULL, - "WINDOWS-1253", NULL, - "WINDOWS-1254", NULL, - "WINDOWS-1255", NULL, - "WINDOWS-1256", NULL, - "WINDOWS-1257", NULL, - "WINDOWS-1258", NULL, - "WINSAMI2", NULL, - "WS2", NULL, - "YU", NULL, - NULL - }; diff --git a/src/inisteps.h b/src/inisteps.h deleted file mode 100644 index b276803..0000000 --- a/src/inisteps.h +++ /dev/null @@ -1,34 +0,0 @@ - if (!module_african (outer)) return false; - if (!module_afrtran (outer)) return false; - if (!module_applemac (outer)) return false; - if (!module_atarist (outer)) return false; - if (!module_bangbang (outer)) return false; - if (!module_cdcnos (outer)) return false; - if (!module_ebcdic (outer)) return false; - if (!module_ibmpc (outer)) return false; - if (!module_iconqnx (outer)) return false; - if (!module_latin1_ascii (outer)) return false; - if (!module_java (outer)) return false; - if (!module_mule (outer)) return false; - if (!module_strips (outer)) return false; - if (!module_testdump (outer)) return false; - if (!module_ucs (outer)) return false; - if (!module_utf16 (outer)) return false; - if (!module_utf7 (outer)) return false; - if (!module_utf8 (outer)) return false; - if (!module_varia (outer)) return false; - if (!module_vietnamese (outer)) return false; - if (!module_flat (outer)) return false; - if (!module_html (outer)) return false; - if (!module_latin1_latex (outer)) return false; - if (!module_latin1_texte (outer)) return false; - if (!module_rfc1345 (outer)) return false; - if (!module_texinfo (outer)) return false; - if (!module_base64 (outer)) return false; - if (!module_dump (outer)) return false; - if (!module_endline (outer)) return false; - if (!module_permutations (outer)) return false; - if (!module_quoted_printable (outer)) return false; - if (!module_ascii_latin1 (outer)) return false; - if (!module_latex_latin1 (outer)) return false; - if (!module_texte_latin1 (outer)) return false; diff --git a/src/iso5426lat1.l b/src/iso5426lat1.l new file mode 100644 index 0000000..ea665c3 --- /dev/null +++ b/src/iso5426lat1.l @@ -0,0 +1,207 @@ +/* + * Copyright (c) 1998, Wolfram Schneider + * Konrad Zuse Zentrum für Informationstechnik Berlin. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * + * iso5426 to iso8859-1 conversion. This file support only a subset + * of ISO 5426:1983. It is incomplete due the lack of free + * available documentation ;-( + * + * The character conversion based on the german MAB2 (Maschinelles + * Austauschformat für Bibliotheken) documentation, October 1996, + * die Deutsche Bibliothek, Frankfurt am Main. + * URL: http://www.ddb.de, ftp://ftp.ddb.de/pub/mab/ + * + * + * http://lcweb.loc.gov/loc/standards/isotc46/sc4standards.html + * Character sets: + * ISO 5426:1983 - Extension of the Latin alphabet coded character + * set for bibliographic information interchange + * ISO 5426-2:1996 - Extension of the Latin alphabet coded character set + * for bibliographic information interchange + * Part 2: Latin characters used in minor European + * languages and obsolete typography + * + * + * ISO 5426:1983 + * + * Extension of the Latin alphabet coded character set for bibliographic + * information interchange + * + * Contains a set of 76 graphic characters with their coded + * representations. It includes a code table and a legend showing each + * graphic, its name and use, and explanatory notes. Primarily intended + * for information interchange among data processing systems and within + * message transmission systems, this character set is designed to handle + * information in 39 specified languages, as well as transliterated or + * romanized forms of an additional 32 languages. These characters, + * together with the characters in the international reference version of + * ISO 646 (ISO escape sequence ESC 2/8 4/0), constitute a character set + * for the international interchange of bibliographic citations, + * including their annotations, in the Latin alphabet. + * + * ISO 5426-2:1996 + * + * Extension of the Latin alphabet coded character set for bibliographic + * information interchange Part 2: Latin characters used in minor + * European languages and obsolete typography + * + * Contains a set of 70 graphic characters, and their coded + * representations. These characters form a supplement to those provided + * in ISO 5426 by addressing less common and obsolete languages which use + * the Latin script and obsolete printing conventions. Included is a code + * table and a legend showing each graphic, its name and use, and + * explanatory notes. This character set is primarily intended for + * information interchange among data processing systems and within + * message transmission systems. These characters, together with the + * characters from ISO 646/IEC and ISO 5426, is intended to handle + * information in the following languages: Anglo-Saxon, Greenlandic, + * Lappish, Latin, Latvian (older forms), and Maltese. It is also + * intended to cover printing conventions associated with older books, in + * particular marks associated with binding signatures. + * + */ + + +/* Step name: iso5426_latin1. */ + + +%% +\173 { recode_put_byte (123, subtask); } +\174 { recode_put_byte (124, subtask); } +\175 { recode_put_byte (125, subtask); } +\37 { recode_put_byte (36, subtask); } +\266 { recode_put_byte (158, subtask); } +\241 { recode_put_byte (161, subtask); } +\243 { recode_put_byte (163, subtask); } +\244 { recode_put_byte (36, subtask); } +\247 { recode_put_byte (167, subtask); } + +\210 { recode_put_byte (172, subtask); } +\211 { recode_put_byte (172, subtask); } + +\253 { recode_put_byte (171, subtask); } +\273 { recode_put_byte (187, subtask); } +\277 { recode_put_byte (191, subtask); } + +\341 { recode_put_byte (198, subtask); } +\342 { recode_put_byte (208, subtask); } + +\350 { recode_put_byte (76, subtask); } +\351 { recode_put_byte (216, subtask); } +\354 { recode_put_byte (254, subtask); } +\361 { recode_put_byte (230, subtask); } +\362 { recode_put_byte (100, subtask); } +\363 { recode_put_byte (240, subtask); } +\365 { recode_put_byte (134, subtask); } +\370 { recode_put_byte (108, subtask); } +\371 { recode_put_byte (248, subtask); } +\373 { recode_put_byte (223, subtask); } +\374 { recode_put_byte (222, subtask); } + +\301a { recode_put_byte (224, subtask); } +\301e { recode_put_byte (232, subtask); } +\301i { recode_put_byte (236, subtask); } +\301o { recode_put_byte (242, subtask); } +\301u { recode_put_byte (249, subtask); } + +\301A { recode_put_byte (192, subtask); } +\301E { recode_put_byte (200, subtask); } +\301I { recode_put_byte (204, subtask); } +\301O { recode_put_byte (210, subtask); } +\301U { recode_put_byte (217, subtask); } + +\302a { recode_put_byte (225, subtask); } +\302e { recode_put_byte (233, subtask); } +\302i { recode_put_byte (237, subtask); } +\302o { recode_put_byte (243, subtask); } +\302u { recode_put_byte (250, subtask); } +\302y { recode_put_byte (253, subtask); } + +\302A { recode_put_byte (193, subtask); } +\302E { recode_put_byte (201, subtask); } +\302I { recode_put_byte (205, subtask); } +\302O { recode_put_byte (211, subtask); } +\302U { recode_put_byte (218, subtask); } +\302Y { recode_put_byte (221, subtask); } + +\303a { recode_put_byte (226, subtask); } +\303e { recode_put_byte (234, subtask); } +\303i { recode_put_byte (238, subtask); } +\303o { recode_put_byte (244, subtask); } +\303u { recode_put_byte (251, subtask); } + +\303A { recode_put_byte (194, subtask); } +\303E { recode_put_byte (202, subtask); } +\303I { recode_put_byte (206, subtask); } +\303O { recode_put_byte (212, subtask); } +\303U { recode_put_byte (219, subtask); } + +\304a { recode_put_byte (227, subtask); } +\304o { recode_put_byte (245, subtask); } +\304n { recode_put_byte (241, subtask); } + +\304A { recode_put_byte (195, subtask); } +\304O { recode_put_byte (213, subtask); } +\304N { recode_put_byte (209, subtask); } + +\310e { recode_put_byte (235, subtask); } +\310i { recode_put_byte (239, subtask); } +\310y { recode_put_byte (255, subtask); } + +\310E { recode_put_byte (203, subtask); } +\310I { recode_put_byte (207, subtask); } + +\312a { recode_put_byte (229, subtask); } +\312A { recode_put_byte (197, subtask); } + +\320c { recode_put_byte (231, subtask); } +\320C { recode_put_byte (199, subtask); } + +\311a { recode_put_byte (228, subtask); } +\311o { recode_put_byte (246, subtask); } +\311u { recode_put_byte (252, subtask); } +\311A { recode_put_byte (196, subtask); } +\311O { recode_put_byte (214, subtask); } +\311U { recode_put_byte (220, subtask); } +%% + +bool +module_iso5426_latin1 (RECODE_OUTER outer) +{ + return recode_declare_single (outer, "ISO_5426:1983-DB-MAB2", "Latin-1", + outer->quality_variable_to_byte, NULL, + transform_iso5426_latin1) + && recode_declare_alias (outer, "ISO_5426", "ISO_5426:1983-DB-MAB2") + && recode_declare_alias (outer, "DB-MAB2", "ISO_5426:1983-DB-MAB2") + && recode_declare_alias (outer, "MAB2", "ISO_5426:1983-DB-MAB2") + && recode_declare_alias (outer, "MAB", "ISO_5426:1983-DB-MAB2") + && recode_declare_alias (outer, "DDB", "ISO_5426:1983-DB-MAB2"); /* Die Deutsche Bibliothek */ +} + +void +delmodule_iso5426_latin1 (RECODE_OUTER outer) +{ +} diff --git a/src/java.c b/src/java.c index f90dc0e..1170b23 100644 --- a/src/java.c +++ b/src/java.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 2008 Free Software Foundation, Inc. + Copyright © 2008-2019 Free Software Foundation, Inc. Contributed by François Pinard , 2008. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,15 +14,17 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" static bool transform_java_utf16 (RECODE_SUBTASK subtask) { - int character = get_byte (subtask); + int character = recode_get_byte (subtask); while (character != EOF) if (character == '\\') @@ -33,13 +35,13 @@ transform_java_utf16 (RECODE_SUBTASK subtask) bool canonical = true; *cursor++ = character; - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == 'u' || character == 'U') { if (character == 'U') canonical = false; *cursor++ = character; - character = get_byte (subtask); + character = recode_get_byte (subtask); while (cursor < buffer + 6) { if (character >= '0' && character <= '9') @@ -54,24 +56,24 @@ transform_java_utf16 (RECODE_SUBTASK subtask) else break; *cursor++ = character; - character = get_byte (subtask); + character = recode_get_byte (subtask); } if (cursor == buffer + 6) { if (!canonical) RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); - put_ucs2 (value, subtask); + recode_put_ucs2 (value, subtask); continue; } } *cursor = '\0'; for (cursor = buffer; *cursor; cursor++) - put_ucs2 (*cursor, subtask); + recode_put_ucs2 (*cursor, subtask); } else { - put_ucs2 (character, subtask); - character = get_byte (subtask); + recode_put_ucs2 (character, subtask); + character = recode_get_byte (subtask); } SUBTASK_RETURN (subtask); @@ -82,17 +84,17 @@ transform_utf16_java (RECODE_SUBTASK subtask) { unsigned value; - while (get_ucs2 (&value, subtask)) + while (recode_get_ucs2 (&value, subtask)) if (value < 128) - put_byte (value, subtask); + recode_put_byte (value, subtask); else { - char buffer[7]; + char buffer[11]; char *cursor; sprintf (buffer, "\\u%04x", value); for (cursor = buffer; *cursor; cursor++) - put_byte (*cursor, subtask); + recode_put_byte (*cursor, subtask); } SUBTASK_RETURN (subtask); @@ -102,15 +104,15 @@ bool module_java (RECODE_OUTER outer) { return - declare_single (outer, "UTF-16", "Java", + recode_declare_single (outer, "UTF-16", "Java", outer->quality_ucs2_to_variable, NULL, transform_utf16_java) - && declare_single (outer, "Java", "UTF-16", + && recode_declare_single (outer, "Java", "UTF-16", outer->quality_variable_to_ucs2, NULL, transform_java_utf16); } void -delmodule_java (RECODE_OUTER outer) +delmodule_java (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/lat1ansel.c b/src/lat1ansel.c new file mode 100644 index 0000000..fca588f --- /dev/null +++ b/src/lat1ansel.c @@ -0,0 +1,91 @@ +/* Conversion of files between different charsets and usages. + Copyright (C) 1990-2018 Free Software Foundation, Inc. + Francois Pinard , 1988. + + 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 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 + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +/* + * Copyright (c) 1998, Wolfram Schneider + * Konrad Zuse Zentrum für Informationstechnik Berlin. + * All rights reserved. + * + * Read the file ansellat1.l for more information about Z39.47-1993. + * + */ + + +#include "config.h" +#include "common.h" +#include "decsteps.h" + +struct translation + { + int code; /* code being translated */ + const char *string; /* translation string */ + }; + +static struct translation diacritic_translations [] = + { +#include "lat1ansel.h" + {0, NULL}, + }; + +static bool +init_latin1_ansel (RECODE_STEP step, + const struct recode_request *request, + RECODE_CONST_OPTION_LIST before_options _GL_UNUSED, + RECODE_CONST_OPTION_LIST after_options _GL_UNUSED) +{ + RECODE_OUTER outer = request->outer; + + char *pool; + const char **table; + unsigned counter; + struct translation const *cursor; + + if (!ALLOC_SIZE (table, 256 * sizeof (char *) + 256, const char *)) + return false; + pool = (char *) (table + 256); + + for (counter = 0; counter < 128; counter++) + { + pool[2 * counter] = counter; + pool[2 * counter + 1] = '\0'; + table[counter] = pool + 2 * counter; + } + for (counter = 128; counter < 256; counter++) + table[counter] = NULL; + for (cursor = diacritic_translations; cursor->code; cursor++) + table[cursor->code] = cursor->string; + + step->step_table = table; + step->step_table_term_routine = free; + + return true; +} + +bool +module_latin1_ansel (RECODE_OUTER outer) +{ + return recode_declare_single (outer, "Latin-1", "Z39.47:1993", + outer->quality_variable_to_byte, init_latin1_ansel, + recode_transform_byte_to_variable); +} + +void +delmodule_latin1_ansel (_GL_UNUSED RECODE_OUTER outer) +{ +} diff --git a/src/lat1asci.c b/src/lat1asci.c index 8355b83..534d7f4 100644 --- a/src/lat1asci.c +++ b/src/lat1asci.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" static const char *const translation_table[128] = { @@ -182,21 +184,22 @@ init_latin1_ascii (RECODE_STEP step, step->step_type = RECODE_BYTE_TO_STRING; step->step_table = table; + step->step_table_term_routine = free; return true; } bool module_latin1_ascii (RECODE_OUTER outer) { - if (!declare_single (outer, "Latin-1", "ASCII-BS", + if (!recode_declare_single (outer, "Latin-1", "ASCII-BS", outer->quality_byte_to_variable, - init_latin1_ascii, transform_byte_to_variable)) + init_latin1_ascii, recode_transform_byte_to_variable)) return false; return true; } void -delmodule_latin1_ascii (RECODE_OUTER outer) +delmodule_latin1_ascii (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/lat1btex.c b/src/lat1btex.c new file mode 100644 index 0000000..f3b8367 --- /dev/null +++ b/src/lat1btex.c @@ -0,0 +1,184 @@ +/* Conversion of files between different charsets and surfaces. + Copyright © 2006-2018 Free Software Foundation, Inc. + Contributed by Vincent Danjean , 2006. + Modified from lat1ltex.c + + This 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 3 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the `recode' Library; see the file `COPYING.LIB'. + If not, see . + Suite 330, Boston, MA 02111-1307, USA. */ + +#include "config.h" +#include "common.h" +#include "decsteps.h" + +struct translation + { + unsigned code; /* code being translated */ + const char *string; /* translation string */ + }; + +static struct translation const diacritic_translations [] = + { + {192, "{\\`A}"}, /* capital A with grave accent */ + {193, "{\\'A}"}, /* capital A with acute accent */ + {194, "{\\^A}"}, /* capital A with circumflex accent */ + {195, "{\\~A}"}, /* capital A with tilde */ + {196, "{\\\"A}"}, /* capital A diaeresis */ + {197, "{\\AA{}}"}, /* capital A with ring above */ + {198, "{\\AE{}}"}, /* capital diphthong A with E */ + {199, "{\\c{C}}"}, /* capital C with cedilla */ + {200, "{\\`E}"}, /* capital E with grave accent */ + {201, "{\\'E}"}, /* capital E with acute accent */ + {202, "{\\^E}"}, /* capital E with circumflex accent */ + {203, "{\\\"E}"}, /* capital E with diaeresis */ + {204, "{\\`I}"}, /* capital I with grave accent */ + {205, "{\\'I}"}, /* capital I with acute accent */ + {206, "{\\^I}"}, /* capital I with circumflex accent */ + {207, "{\\\"I}"}, /* capital I with diaeresis */ + {209, "{\\~N}"}, /* capital N with tilde */ + {210, "{\\`O}"}, /* capital O with grave accent */ + {211, "{\\'O}"}, /* capital O with acute accent */ + {212, "{\\^O}"}, /* capital O with circumflex accent */ + {213, "{\\~O}"}, /* capital O with tilde */ + {214, "{\\\"O}"}, /* capital O with diaeresis */ + {216, "{\\O{}}"}, /* capital O with oblique stroke */ + {217, "{\\`U}"}, /* capital U with grave accent */ + {218, "{\\'U}"}, /* capital U with acute accent */ + {219, "{\\^U}"}, /* capital U with circumflex accent */ + {220, "{\\\"U}"}, /* capital U with diaeresis */ + {221, "{\\'Y}"}, /* capital Y with acute accent */ + {223, "{\\ss{}}"}, /* small german sharp s */ + {224, "{\\`a}"}, /* small a with grave accent */ + {225, "{\\'a}"}, /* small a with acute accent */ + {226, "{\\^a}"}, /* small a with circumflex accent */ + {227, "{\\~a}"}, /* small a with tilde */ + {228, "{\\\"a}"}, /* small a with diaeresis */ + {229, "{\\aa{}}"}, /* small a with ring above */ + {230, "{\\ae{}}"}, /* small diphthong a with e */ + {231, "{\\c{c}}"}, /* small c with cedilla */ + {232, "{\\`e}"}, /* small e with grave accent */ + {233, "{\\'e}"}, /* small e with acute accent */ + {234, "{\\^e}"}, /* small e with circumflex accent */ + {235, "{\\\"e}"}, /* small e with diaeresis */ + {236, "{\\`{\\i}}"}, /* small i with grave accent */ + {237, "{\\'{\\i}}"}, /* small i with acute accent */ + {238, "{\\^{\\i}}"}, /* small i with circumflex accent */ + {239, "{\\\"{\\i}}"}, /* small i with diaeresis */ + {241, "{\\~n}"}, /* small n with tilde */ + {242, "{\\`o}"}, /* small o with grave accent */ + {243, "{\\'o}"}, /* small o with acute accent */ + {244, "{\\^o}"}, /* small o with circumflex accent */ + {245, "{\\~o}"}, /* small o with tilde */ + {246, "{\\\"o}"}, /* small o with diaeresis */ + {248, "{\\o{}}"}, /* small o with oblique stroke */ + {249, "{\\`u}"}, /* small u with grave accent */ + {250, "{\\'u}"}, /* small u with acute accent */ + {251, "{\\^u}"}, /* small u with circumflex accent */ + {252, "{\\\"u}"}, /* small u with diaeresis */ + {253, "{\\'y}"}, /* small y with acute accent */ + {255, "{\\\"y}"}, /* small y with diaeresis */ + {0, NULL} + }; + +static struct translation const other_translations [] = + { + { 35, "\\#"}, + { 36, "\\$"}, + { 37, "\\%"}, + { 38, "\\&"}, + { 92, "\\backslash{}"}, + { 95, "\\_"}, + {123, "\\{"}, + {125, "\\}"}, + {160, "~"}, /* no-break space */ + {161, "!`"}, /* inverted exclamation mark */ + {163, "\\pound{}"}, /* pound sign */ + {167, "\\S{}"}, /* paragraph sign, section sign */ + {168, "\\\"{}"}, /* diaeresis */ + {169, "\\copyright{}"}, /* copyright sign */ + {171, "``"}, /* left angle quotation mark */ + {172, "\\neg{}"}, /* not sign */ + {173, "\\-"}, /* soft hyphen */ + {176, "\\mbox{$^\\circ$}"}, /* degree sign */ + {177, "\\mbox{$\\pm$}"}, /* plus-minus sign */ + {178, "\\mbox{$^2$}"}, /* superscript two */ + {179, "\\mbox{$^3$}"}, /* superscript three */ + {180, "\\'{}"}, /* acute accent */ + {181, "\\mbox{$\\mu$}"}, /* small greek mu, micro sign */ + {183, "\\cdotp"}, /* middle dot */ + {184, "\\,{}"}, /* cedilla */ + {185, "\\mbox{$^1$}"}, /* superscript one */ + {187, "''"}, /* right angle quotation mark */ + {188, "\\frac1/4{}"}, /* vulgar fraction one quarter */ + {189, "\\frac1/2{}"}, /* vulgar fraction one half */ + {190, "\\frac3/4{}"}, /* vulgar fraction three quarters */ + {191, "?`"}, /* inverted question mark */ + {0, NULL} + }; + +static bool +init_latin1_bibtex (RECODE_STEP step, + RECODE_CONST_REQUEST request, + RECODE_CONST_OPTION_LIST before_options, + RECODE_CONST_OPTION_LIST after_options) +{ + RECODE_OUTER outer = request->outer; + char *pool; + const char **table; + unsigned counter; + struct translation const *cursor; + + if (before_options || after_options) + return false; + + if (!ALLOC_SIZE (table, 256 * sizeof (char *) + 256, const char *)) + return false; + pool = (char *) (table + 256); + + for (counter = 0; counter < 128; counter++) + { + table[counter] = pool; + *pool++ = counter; + *pool++ = NUL; + } + for (counter = 128; counter < 256; counter++) + table[counter] = NULL; + for (cursor = diacritic_translations; cursor->code; cursor++) + table[cursor->code] = cursor->string; + + if (!request->diacritics_only) + for (cursor = other_translations; cursor->code; cursor++) + table[cursor->code] = cursor->string; + + step->step_type = RECODE_BYTE_TO_STRING; + step->step_table = table; + step->step_table_term_routine = free; + return true; +} + +bool +module_latin1_bibtex (RECODE_OUTER outer) +{ + return + recode_declare_single (outer, "Latin-1", "BibTeX", + outer->quality_byte_to_variable, + init_latin1_bibtex, recode_transform_byte_to_variable) + && recode_declare_alias (outer, "bibtex", "BibTeX") + && recode_declare_alias (outer, "btex", "BibTeX"); +} + +void +delmodule_latin1_bibtex (_GL_UNUSED RECODE_OUTER outer) +{ +} diff --git a/src/lat1iso5426.c b/src/lat1iso5426.c new file mode 100644 index 0000000..aa81b30 --- /dev/null +++ b/src/lat1iso5426.c @@ -0,0 +1,91 @@ +/* Conversion of files between different charsets and usages. + Copyright (C) 1990-2018 Free Software Foundation, Inc. + Francois Pinard , 1988. + + 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 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 + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +/* + * Copyright (c) 1998, Wolfram Schneider + * Konrad Zuse Zentrum für Informationstechnik Berlin. + * All rights reserved. + * + * Read the file iso5426lat1.l for more information about iso5426. + * + */ + + +#include "config.h" +#include "common.h" +#include "decsteps.h" + +struct translation + { + int code; /* code being translated */ + const char *string; /* translation string */ + }; + +static struct translation diacritic_translations [] = + { +#include "lat1iso5426.h" + {0, NULL}, + }; + +static bool +init_latin1_iso5426 (RECODE_STEP step, + const struct recode_request *request, + RECODE_CONST_OPTION_LIST before_options _GL_UNUSED, + RECODE_CONST_OPTION_LIST after_options _GL_UNUSED) +{ + RECODE_OUTER outer = request->outer; + + char *pool; + const char **table; + unsigned counter; + struct translation const *cursor; + + if (!ALLOC_SIZE (table, 256 * sizeof (char *) + 256, const char *)) + return false; + pool = (char *) (table + 256); + + for (counter = 0; counter < 128; counter++) + { + pool[2 * counter] = counter; + pool[2 * counter + 1] = '\0'; + table[counter] = pool + 2 * counter; + } + for (counter = 128; counter < 256; counter++) + table[counter] = NULL; + for (cursor = diacritic_translations; cursor->code; cursor++) + table[cursor->code] = cursor->string; + + step->step_table = table; + step->step_table_term_routine = free; + + return true; +} + +bool +module_latin1_iso5426 (RECODE_OUTER outer) +{ + return recode_declare_single (outer, "Latin-1", "ISO_5426:1983-DB-MAB2", + outer->quality_variable_to_byte, init_latin1_iso5426, + recode_transform_byte_to_variable); +} + +void +delmodule_latin1_iso5426 (_GL_UNUSED RECODE_OUTER outer) +{ +} diff --git a/src/lat1ltex.c b/src/lat1ltex.c index db388a1..06b4277 100644 --- a/src/lat1ltex.c +++ b/src/lat1ltex.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" struct translation { @@ -94,7 +96,10 @@ static struct translation const other_translations [] = { 36, "\\$"}, { 37, "\\%"}, { 38, "\\&"}, + { 60, "$<$"}, + { 62, "$>$"}, { 92, "\\backslash{}"}, + { 94, "\\textasciicircum{}"}, { 95, "\\_"}, {123, "\\{"}, {125, "\\}"}, @@ -160,6 +165,7 @@ init_latin1_latex (RECODE_STEP step, step->step_type = RECODE_BYTE_TO_STRING; step->step_table = table; + step->step_table_term_routine = free; return true; } @@ -167,14 +173,14 @@ bool module_latin1_latex (RECODE_OUTER outer) { return - declare_single (outer, "Latin-1", "LaTeX", + recode_declare_single (outer, "Latin-1", "LaTeX", outer->quality_byte_to_variable, - init_latin1_latex, transform_byte_to_variable) - && declare_alias (outer, "TeX", "LaTeX") - && declare_alias (outer, "ltex", "LaTeX"); + init_latin1_latex, recode_transform_byte_to_variable) + && recode_declare_alias (outer, "TeX", "LaTeX") + && recode_declare_alias (outer, "ltex", "LaTeX"); } void -delmodule_latin1_latex (RECODE_OUTER outer) +delmodule_latin1_latex (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/lat1txte.c b/src/lat1txte.c index cc68f8b..d4547ba 100644 --- a/src/lat1txte.c +++ b/src/lat1txte.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" static const char *const translation_table[128] = { @@ -209,6 +211,7 @@ init_latin1_texte (RECODE_STEP step, step->step_type = RECODE_BYTE_TO_STRING; step->step_table = table; + step->step_table_term_routine = free; return true; } @@ -216,13 +219,13 @@ bool module_latin1_texte (RECODE_OUTER outer) { return - declare_single (outer, "Latin-1", "Texte", + recode_declare_single (outer, "Latin-1", "Texte", outer->quality_byte_to_variable, - init_latin1_texte, transform_byte_to_variable) - && declare_alias (outer, "txte", "Texte"); + init_latin1_texte, recode_transform_byte_to_variable) + && recode_declare_alias (outer, "txte", "Texte"); } void -delmodule_latin1_texte (RECODE_OUTER outer) +delmodule_latin1_texte (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/localcharset.c b/src/localcharset.c deleted file mode 100644 index 564b2d7..0000000 --- a/src/localcharset.c +++ /dev/null @@ -1,263 +0,0 @@ -/* Determine a canonical name for the current locale's character encoding. - - Copyright (C) 2000 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 - 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. - - You should have received a copy of the GNU Library General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. */ - -/* Written by Bruno Haible . */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#if HAVE_STDDEF_H -# include -#endif - -#include -#if HAVE_STRING_H -# include -#else -# include -#endif -#if HAVE_STDLIB_H -# include -#endif - -#if defined _WIN32 || defined __WIN32__ -# undef WIN32 /* avoid warning on mingw32 */ -# define WIN32 -#endif - -#ifndef WIN32 -# if HAVE_LANGINFO_CODESET -# include -# else -# if HAVE_SETLOCALE -# include -# endif -# endif -#else /* WIN32 */ -# define WIN32_LEAN_AND_MEAN -# include -#endif - -#ifndef DIRECTORY_SEPARATOR -# define DIRECTORY_SEPARATOR '/' -#endif - -#ifndef ISSLASH -# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) -#endif - -/* The following static variable is declared 'volatile' to avoid a - possible multithread problem in the function get_charset_aliases. If we - are running in a threaded environment, and if two threads initialize - 'charset_aliases' simultaneously, both will produce the same value, - and everything will be ok if the two assignments to 'charset_aliases' - are atomic. But I don't know what will happen if the two assignments mix. */ -/* Pointer to the contents of the charset.alias file, if it has already been - read, else NULL. Its format is: - ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ -static char * volatile charset_aliases; - -/* Return a pointer to the contents of the charset.alias file. */ -static const char * -get_charset_aliases (void) -{ - static char empty[1] = ""; - char *cp; - - cp = charset_aliases; - if (cp == NULL) - { -#ifndef WIN32 - FILE *fp; - const char *dir = LIBDIR; - const char *base = "charset.alias"; - char *file_name; - - /* Concatenate dir and base into freshly allocated file_name. */ - { - size_t dir_len = strlen (dir); - size_t base_len = strlen (base); - int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); - file_name = (char *) malloc (dir_len + add_slash + base_len + 1); - if (file_name != NULL) - { - memcpy (file_name, dir, dir_len); - if (add_slash) - file_name[dir_len] = DIRECTORY_SEPARATOR; - memcpy (file_name + dir_len + add_slash, base, base_len + 1); - } - } - - if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL) - /* Out of memory or file not found, treat it as empty. */ - cp = empty; - else - { - /* Parse the file's contents. */ - int c; - char buf1[50+1]; - char buf2[50+1]; - char *res_ptr = NULL; - size_t res_size = 0; - size_t l1, l2; - - for (;;) - { - c = getc (fp); - if (c == EOF) - break; - if (c == '\n' || c == ' ' || c == '\t') - continue; - if (c == '#') - { - /* Skip comment, to end of line. */ - do - c = getc (fp); - while (!(c == EOF || c == '\n')); - if (c == EOF) - break; - continue; - } - ungetc (c, fp); - if (fscanf(fp, "%50s %50s", buf1, buf2) < 2) - break; - l1 = strlen (buf1); - l2 = strlen (buf2); - if (res_size == 0) - { - res_size = l1 + 1 + l2 + 1; - res_ptr = (char *) malloc (res_size + 1); - } - else - { - res_size += l1 + 1 + l2 + 1; - res_ptr = (char *) realloc (res_ptr, res_size + 1); - } - if (res_ptr == NULL) - { - /* Out of memory. */ - res_size = 0; - break; - } - strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); - strcpy (res_ptr + res_size - (l2 + 1), buf2); - } - fclose (fp); - if (res_size == 0) - cp = empty; - else - { - *(res_ptr + res_size) = '\0'; - cp = res_ptr; - } - } - - if (file_name != NULL) - free (file_name); - -#else /* WIN32 */ - - /* To avoid the troubles of installing a separate file in the same - directory as the DLL and of retrieving the DLL's directory at - runtime, simply inline the aliases here. */ - - cp = "CP936" "\0" "GBK" "\0" - "CP1361" "\0" "JOHAB" "\0"; -#endif - - charset_aliases = cp; - } - - return cp; -} - -/* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed in config.charset. - The result must not be freed; it is statically allocated. - If the canonical name cannot be determined, the result is a non-canonical - name or NULL. */ - -#ifdef STATIC -STATIC -#endif -const char * -locale_charset (void) -{ - const char *codeset; - const char *aliases; - -#ifndef WIN32 - -# if HAVE_LANGINFO_CODESET - - /* Most systems support nl_langinfo (CODESET) nowadays. */ - codeset = nl_langinfo (CODESET); - -# else - - /* On old systems which lack it, use setlocale and getenv. */ - const char *locale = NULL; - -# if HAVE_SETLOCALE - locale = setlocale (LC_CTYPE, NULL); -# endif - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_ALL"); - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_CTYPE"); - if (locale == NULL || locale[0] == '\0') - locale = getenv ("LANG"); - } - } - - /* On some old systems, one used to set locale = "iso8859_1". On others, - you set it to "language_COUNTRY.charset". In any case, we resolve it - through the charset.alias file. */ - codeset = locale; - -# endif - -#else /* WIN32 */ - - static char buf[2 + 10 + 1]; - - /* Win32 has a function returning the locale's codepage as a number. */ - sprintf (buf, "CP%u", GetACP ()); - codeset = buf; - -#endif - - if (codeset != NULL && codeset[0] != '\0') - { - /* Resolve alias. */ - for (aliases = get_charset_aliases (); - *aliases != '\0'; - aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) - if (!strcmp (codeset, aliases)) - { - codeset = aliases + strlen (aliases) + 1; - break; - } - } - - return codeset; -} diff --git a/src/ltexlat1.l b/src/ltexlat1.l index 493bd6b..0011e39 100644 --- a/src/ltexlat1.l +++ b/src/ltexlat1.l @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,8 +14,8 @@ You should have received a copy of the GNU Library General Public License along with the Recode 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. */ + If not, see . +*/ /* Step name: latex_latin1. */ @@ -28,10 +28,13 @@ Braces [ \t]*(\{\})? \\"$" { PUT_NON_DIACRITIC_BYTE ('$', subtask); } \\"%" { PUT_NON_DIACRITIC_BYTE ('%', subtask); } \\"&" { PUT_NON_DIACRITIC_BYTE ('&', subtask); } +\\mbox"{$<$}" { PUT_NON_DIACRITIC_BYTE ('<', subtask); } +\\mbox"{$>$}" { PUT_NON_DIACRITIC_BYTE ('>', subtask); } \\"_" { PUT_NON_DIACRITIC_BYTE ('_', subtask); } \\"{" { PUT_NON_DIACRITIC_BYTE ('{', subtask); } \\"}" { PUT_NON_DIACRITIC_BYTE ('}', subtask); } +\\textasciicircum{Braces} { PUT_NON_DIACRITIC_BYTE ('^', subtask); } \\backslash{Braces} { PUT_NON_DIACRITIC_BYTE ('\\', subtask); } "~" { PUT_NON_DIACRITIC_BYTE (160, subtask); } @@ -58,64 +61,64 @@ Braces [ \t]*(\{\})? \\frac"3/4"{Braces} { PUT_NON_DIACRITIC_BYTE (190, subtask); } "?`" { PUT_NON_DIACRITIC_BYTE (191, subtask); } -\\"`"A|\\"`{A}" { put_byte (192, subtask); } -\\"'"A|\\"'{A}" { put_byte (193, subtask); } -\\"^"A|\\"^{A}" { put_byte (194, subtask); } -\\"~"A|\\"~{A}" { put_byte (195, subtask); } -\\\"A|\\\""{A}" { put_byte (196, subtask); } -\\AA{Braces} { put_byte (197, subtask); } -\\AE{Braces} { put_byte (198, subtask); } -\\c[ \t]+C|\\c"{C}" { put_byte (199, subtask); } -\\"`"E|\\"`{E}" { put_byte (200, subtask); } -\\"'"E|\\"'{E}" { put_byte (201, subtask); } -\\"^"E|\\"^{E}" { put_byte (202, subtask); } -\\\"E|\\\""{E}" { put_byte (203, subtask); } -\\"`"I|\\"`{I}" { put_byte (204, subtask); } -\\"'"I|\\"'{I}" { put_byte (205, subtask); } -\\"^"I|\\"^{I}" { put_byte (206, subtask); } -\\\"I|\\\""{I}" { put_byte (207, subtask); } -\\"~"N|\\"~{N}" { put_byte (209, subtask); } -\\"`"O|\\"`{O}" { put_byte (210, subtask); } -\\"'"O|\\"'{O}" { put_byte (211, subtask); } -\\"^"O|\\"^{O}" { put_byte (212, subtask); } -\\"~"O|\\"~{O}" { put_byte (213, subtask); } -\\\"O|\\\""{O}" { put_byte (214, subtask); } -\\O{Braces} { put_byte (216, subtask); } -\\"`"U|\\"`{U}" { put_byte (217, subtask); } -\\"'"U|\\"'{U}" { put_byte (218, subtask); } -\\"^"U|\\"^{U}" { put_byte (219, subtask); } -\\\"U|\\\""{U}" { put_byte (220, subtask); } -\\"'"Y|\\"'{Y}" { put_byte (221, subtask); } -\\ss{Braces} { put_byte (223, subtask); } -\\"`"a|\\"`{a}" { put_byte (224, subtask); } -\\"'"a|\\"'{a}" { put_byte (225, subtask); } -\\"^"a|\\"^{a}" { put_byte (226, subtask); } -\\"~"a|\\"~{a}" { put_byte (227, subtask); } -\\\"a|\\\""{a}" { put_byte (228, subtask); } -\\aa{Braces} { put_byte (229, subtask); } -\\ae{Braces} { put_byte (230, subtask); } -\\c[ \t]+c|\\c"{c}" { put_byte (231, subtask); } -\\"`"e|\\"`{e}" { put_byte (232, subtask); } -\\"'"e|\\"'{e}" { put_byte (233, subtask); } -\\"^"e|\\"^{e}" { put_byte (234, subtask); } -\\\"e|\\\""{e}" { put_byte (235, subtask); } -\\"`"\\i{Braces}|\\"`{\\i}" { put_byte (236, subtask); } -\\"'"\\i{Braces}|\\"'{\\i}" { put_byte (237, subtask); } -\\"^"\\i{Braces}|\\"^{\\i}" { put_byte (238, subtask); } -\\\"\\i{Braces}|\\\""{\\i}" { put_byte (239, subtask); } -\\"~"n|\\"~{n}" { put_byte (241, subtask); } -\\"`"o|\\"`{o}" { put_byte (242, subtask); } -\\"'"o|\\"'{o}" { put_byte (243, subtask); } -\\"^"o|\\"^{o}" { put_byte (244, subtask); } -\\"~"o|\\"~{o}" { put_byte (245, subtask); } -\\\"o|\\\""{o}" { put_byte (246, subtask); } -\\o{Braces} { put_byte (248, subtask); } -\\"`"u|\\"`{u}" { put_byte (249, subtask); } -\\"'"u|\\"'{u}" { put_byte (250, subtask); } -\\"^"u|\\"^{u}" { put_byte (251, subtask); } -\\\"u|\\\""{u}" { put_byte (252, subtask); } -\\"'"y|\\"'{y}" { put_byte (253, subtask); } -\\\"y|\\\""{y}" { put_byte (255, subtask); } +\\"`"A|\\"`{A}" { recode_put_byte (192, subtask); } +\\"'"A|\\"'{A}" { recode_put_byte (193, subtask); } +\\"^"A|\\"^{A}" { recode_put_byte (194, subtask); } +\\"~"A|\\"~{A}" { recode_put_byte (195, subtask); } +\\\"A|\\\""{A}" { recode_put_byte (196, subtask); } +\\AA{Braces} { recode_put_byte (197, subtask); } +\\AE{Braces} { recode_put_byte (198, subtask); } +\\c[ \t]+C|\\c"{C}" { recode_put_byte (199, subtask); } +\\"`"E|\\"`{E}" { recode_put_byte (200, subtask); } +\\"'"E|\\"'{E}" { recode_put_byte (201, subtask); } +\\"^"E|\\"^{E}" { recode_put_byte (202, subtask); } +\\\"E|\\\""{E}" { recode_put_byte (203, subtask); } +\\"`"I|\\"`{I}" { recode_put_byte (204, subtask); } +\\"'"I|\\"'{I}" { recode_put_byte (205, subtask); } +\\"^"I|\\"^{I}" { recode_put_byte (206, subtask); } +\\\"I|\\\""{I}" { recode_put_byte (207, subtask); } +\\"~"N|\\"~{N}" { recode_put_byte (209, subtask); } +\\"`"O|\\"`{O}" { recode_put_byte (210, subtask); } +\\"'"O|\\"'{O}" { recode_put_byte (211, subtask); } +\\"^"O|\\"^{O}" { recode_put_byte (212, subtask); } +\\"~"O|\\"~{O}" { recode_put_byte (213, subtask); } +\\\"O|\\\""{O}" { recode_put_byte (214, subtask); } +\\O{Braces} { recode_put_byte (216, subtask); } +\\"`"U|\\"`{U}" { recode_put_byte (217, subtask); } +\\"'"U|\\"'{U}" { recode_put_byte (218, subtask); } +\\"^"U|\\"^{U}" { recode_put_byte (219, subtask); } +\\\"U|\\\""{U}" { recode_put_byte (220, subtask); } +\\"'"Y|\\"'{Y}" { recode_put_byte (221, subtask); } +\\ss{Braces} { recode_put_byte (223, subtask); } +\\"`"a|\\"`{a}" { recode_put_byte (224, subtask); } +\\"'"a|\\"'{a}" { recode_put_byte (225, subtask); } +\\"^"a|\\"^{a}" { recode_put_byte (226, subtask); } +\\"~"a|\\"~{a}" { recode_put_byte (227, subtask); } +\\\"a|\\\""{a}" { recode_put_byte (228, subtask); } +\\aa{Braces} { recode_put_byte (229, subtask); } +\\ae{Braces} { recode_put_byte (230, subtask); } +\\c[ \t]+c|\\c"{c}" { recode_put_byte (231, subtask); } +\\"`"e|\\"`{e}" { recode_put_byte (232, subtask); } +\\"'"e|\\"'{e}" { recode_put_byte (233, subtask); } +\\"^"e|\\"^{e}" { recode_put_byte (234, subtask); } +\\\"e|\\\""{e}" { recode_put_byte (235, subtask); } +\\"`"\\i{Braces}|\\"`{\\i}" { recode_put_byte (236, subtask); } +\\"'"\\i{Braces}|\\"'{\\i}" { recode_put_byte (237, subtask); } +\\"^"\\i{Braces}|\\"^{\\i}" { recode_put_byte (238, subtask); } +\\\"\\i{Braces}|\\\""{\\i}" { recode_put_byte (239, subtask); } +\\"~"n|\\"~{n}" { recode_put_byte (241, subtask); } +\\"`"o|\\"`{o}" { recode_put_byte (242, subtask); } +\\"'"o|\\"'{o}" { recode_put_byte (243, subtask); } +\\"^"o|\\"^{o}" { recode_put_byte (244, subtask); } +\\"~"o|\\"~{o}" { recode_put_byte (245, subtask); } +\\\"o|\\\""{o}" { recode_put_byte (246, subtask); } +\\o{Braces} { recode_put_byte (248, subtask); } +\\"`"u|\\"`{u}" { recode_put_byte (249, subtask); } +\\"'"u|\\"'{u}" { recode_put_byte (250, subtask); } +\\"^"u|\\"^{u}" { recode_put_byte (251, subtask); } +\\\"u|\\\""{u}" { recode_put_byte (252, subtask); } +\\"'"y|\\"'{y}" { recode_put_byte (253, subtask); } +\\\"y|\\\""{y}" { recode_put_byte (255, subtask); } \\[`'^"]\\i{Letter}*{Braces} { ECHO; } \\{Letter}+{Braces} { ECHO; } @@ -126,11 +129,11 @@ bool module_latex_latin1 (RECODE_OUTER outer) { return - declare_single (outer, "LaTeX", "Latin-1", + recode_declare_single (outer, "LaTeX", "Latin-1", outer->quality_variable_to_byte, NULL, transform_latex_latin1) - && declare_alias (outer, "TeX", "LaTeX") - && declare_alias (outer, "ltex", "LaTeX"); + && recode_declare_alias (outer, "TeX", "LaTeX") + && recode_declare_alias (outer, "ltex", "LaTeX"); } void diff --git a/src/main.c b/src/main.c index 8f99ac4..01e7dc9 100644 --- a/src/main.c +++ b/src/main.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990,92,93,94,96,97,98,99,00 Free Software Foundation, Inc. + Copyright © 1990-2023 Free Software Foundation, Inc. François Pinard , 1990. 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 2, or (at your option) any later + Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but @@ -13,42 +13,23 @@ Public License for more details. You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + along with this program; if not, see . +*/ +#include "config.h" #include "common.h" #include - #include #include - -#include "getopt.h" - -#if HAVE_UNISTD_H -# include -#endif - -#if HAVE_STRUCT_UTIMBUF -# if HAVE_UTIME_H -# include -# endif -#else - -struct utimbuf -{ - time_t actime; - time_t modtime; -}; - -#endif - +#include +#include +#include #include +#include -#if OS2 -# include -# include -#endif +#include "getopt.h" +#include "xbinary-io.h" /* Variables. */ @@ -64,9 +45,6 @@ static int show_version = 0; /* If true, show a list of one or all known charsets, then exit. */ static bool show_symbols = false; -/* If true, dump all tables as a big C module. */ -static bool freeze_tables = false; - /* If true, check all charsets for subsets, then exit. */ static bool find_subsets = false; @@ -90,9 +68,9 @@ static bool verbose_flag = false; it does not prevent recodings to be aborted or exit status to be set. */ static bool quiet_flag = false; -/* If the recoding yields some problems in reversibility in some file, this +/* If the recoding yields some problems in recode_reversibility in some file, this file replacement is denied and it is left unrecoded or, if recode is used - as a mere filter, the recoding is interrupted. The following flag forces + as a mere filter, the recoding is aborted. The following flag forces the recoding to run to completion and the replacement to be done even if the recoding is not reversible. */ static bool force_flag = false; @@ -104,25 +82,17 @@ static bool force_flag = false; thus effectively `touching' the file. */ static bool touch_option = false; -/* With strict mapping, all reversibility fallbacks get defeated. */ +/* With strict mapping, all recode_reversibility fallbacks get defeated. */ static bool strict_mapping = false; +/* Use iconv if possible. */ +static bool prefer_iconv = false; + /* The following charset name will be ignored, if given. */ static const char *ignored_name = NULL; -#if 0 -/* Unabridged names of BEFORE and AFTER charsets, even if still aliases. - These are used for naming the array in produced C code. */ -static const char *before_full_name; -static const char *after_full_name; -#endif - /* Ordinals of list, BEFORE and AFTER charset. */ static RECODE_SYMBOL list_charset; -#if 0 -static RECODE_SYMBOL before_charset; -static RECODE_SYMBOL after_charset; -#endif /* Flag telling usage that we are decoding charsets. */ bool decoding_charset_flag = false; @@ -163,38 +133,6 @@ task_perror (RECODE_CONST_TASK task) return _("Internal recoding bug"); } } - -/*-----------------. -| Signal handler. | -`-----------------*/ - -#if FIXME -static jmp_buf signal_label; /* where to jump when signal received */ -#endif -static bool interrupted = 0; /* set when some signal has been received */ - -static RETSIGTYPE -signal_handler (int number) -{ - interrupted = 1; - signal (number, signal_handler); -} - -/*------------------------------------------------------------------------. -| Prepare to handle signals, intercept willingful requests for stopping. | -`------------------------------------------------------------------------*/ - -static void -setup_signals (void) -{ -#ifdef SIGPIPE - signal (SIGPIPE, signal_handler); -#endif -#if 0 - signal (SIGINT, signal_handler); - signal (SIGTERM, signal_handler); -#endif -} /* Main control. */ @@ -208,7 +146,7 @@ print_copyright (void) fputs (_("\ This program is free software; you can redistribute it and/or modify\n\ it under the terms of the GNU General Public License as published by\n\ -the Free Software Foundation; either version 2, or (at your option)\n\ +the Free Software Foundation; either version 3, or (at your option)\n\ any later version.\n\ \n\ This program is distributed in the hope that it will be useful,\n\ @@ -217,8 +155,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\ GNU General Public License for more details.\n\ \n\ You should have received a copy of the GNU General Public License\n\ -along with this program; if not, write to the Free Software Foundation,\n\ -Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"), +along with this program; if not, see .\n"), stdout); } @@ -253,9 +190,8 @@ Listings:\n\ -l, --list[=FORMAT] list one or all known charsets and aliases\n\ -k, --known=PAIRS restrict charsets according to known PAIRS list\n\ -h, --header[=[LN/]NAME] write table NAME on stdout using LN, then exit\n\ - -F, --freeze-tables write out a C module holding all tables\n\ -T, --find-subsets report all charsets being subset of others\n\ - -C, --copyright display Copyright and copying conditions\n\ + -C, --copyright display copyright and copying conditions\n\ --help display this help and exit\n\ --version output version information and exit\n\ "), @@ -267,30 +203,20 @@ Operation modes:\n\ -q, --quiet, --silent inhibit messages about irreversible recodings\n\ -f, --force force recodings even when not reversible\n\ -t, --touch touch the recoded files after replacement\n\ - -i, --sequence=files use intermediate files for sequencing passes\n\ - --sequence=memory use memory buffers for sequencing passes\n\ + -i, -p, --sequence=STRATEGY ignored for backwards compatibility\n\ "), stdout); -#if HAVE_PIPE - fputs (_("\ - -p, --sequence=pipe use pipe machinery for sequencing passes\n\ -"), - stdout); -#else - fputs (_("\ - -p, --sequence=pipe same as -i (on this system)\n\ -"), - stdout); -#endif fputs (_("\ \n\ Fine tuning:\n\ - -s, --strict use strict mappings, even loose characters\n\ - -d, --diacritics convert only diacritics or alike for HTML/LaTeX\n\ + -s, --strict use strict mappings; discard untranslatable characters\n\ + -d, --diacritics convert only diacritics and special characters for\n\ + HTML/LaTeX/BibTeX\n\ -S, --source[=LN] limit recoding to strings and comments as for LN\n\ -c, --colons use colons instead of double quotes for diaeresis\n\ -g, --graphics approximate IBMPC rulers by ASCII graphics\n\ -x, --ignore=CHARSET ignore CHARSET while choosing a recoding path\n\ + -I, --prefer-iconv use iconv if possible\n\ "), stdout); fputs (_("\ @@ -322,13 +248,12 @@ with an empty surface name means no surfaces at all. See the manual.\n"), stdout); fputs (_("\ \n\ -If none of -i and -p are given, presume -p if no FILE, else -i.\n\ Each FILE is recoded over itself, destroying the original. If no\n\ FILE is specified, then act as a filter and recode stdin to stdout.\n"), stdout); fputs (_("\ \n\ -Report bugs to .\n"), +Report bugs at https://github.com/rrthomas/recode\n"), stdout); } exit (status); @@ -347,12 +272,12 @@ static const struct option long_options[] = {"diacritics", no_argument, NULL, 'd'}, {"find-subsets", no_argument, NULL, 'T'}, {"force", no_argument, NULL, 'f'}, - {"freeze-tables", no_argument, NULL, 'F'}, {"header", optional_argument, NULL, 'h'}, {"help", no_argument, &show_help, 1}, {"ignore", required_argument, NULL, 'x'}, {"known", required_argument, NULL, 'k'}, {"list", optional_argument, NULL, 'l'}, + {"prefer-iconv", no_argument, NULL, 'I'}, {"quiet", no_argument, NULL, 'q'}, {"sequence", required_argument, NULL, '\n'}, {"source", optional_argument, NULL, 'S'}, @@ -373,20 +298,66 @@ static const char *const language_strings[] static const char *const sequence_strings[] = { "memory", "files", "pipe", NULL }; + +static RECODE_OUTER +new_outer(unsigned flags) +{ + /* Register all modules and build internal tables. */ + + RECODE_OUTER outer = + recode_new_outer (flags | RECODE_AUTO_ABORT_FLAG); + if (!outer) + abort (); + + /* If using strict mapping, remove fallbacks. */ + + if (outer->strict_mapping) + for (RECODE_SINGLE single = outer->single_list; + single; + single = single->next) + single->fallback_routine = NULL; + + /* Set the ignored charset. */ + + if (ignored_name) + { + RECODE_ALIAS alias + = recode_find_alias (outer, ignored_name, ALIAS_FIND_AS_CHARSET); + + if (!alias) + { + error (0, 0, _("Symbol `%s' is unknown"), ignored_name); + usage (EXIT_FAILURE, 1); + } + + alias->symbol->ignore = true; + } + + return outer; +} + +static RECODE_REQUEST +new_request(RECODE_OUTER outer, struct recode_request *request_option) +{ + RECODE_REQUEST request = recode_new_request (outer); + request->ascii_graphics = request_option->ascii_graphics; + request->diacritics_only = request_option->diacritics_only; + request->diaeresis_char = request_option->diaeresis_char; + request->make_header_flag = request_option->make_header_flag; + return request; +} + int main (int argc, char *const *argv) { int option_char; /* option character */ - bool success = true; /* reversibility of all recodings */ + bool success = true; /* recode_reversibility of all recodings */ - static bool (*processor) PARAMS ((RECODE_TASK)); + static bool (*processor) (RECODE_TASK); struct recode_outer outer_option; struct recode_request request_option; struct recode_task task_option; - RECODE_OUTER outer; - RECODE_REQUEST request; - program_name = argv[0]; /* libtool creates a temporary executable whose names is prefixed with "lt-". Remove this prefix here. */ @@ -407,13 +378,12 @@ main (int argc, char *const *argv) memset (&task_option, 0, sizeof (struct recode_task)); request_option.diaeresis_char = '"'; - task_option.strategy = RECODE_STRATEGY_UNDECIDED; task_option.fail_level = RECODE_AMBIGUOUS_OUTPUT; task_option.abort_level = RECODE_AMBIGUOUS_OUTPUT; - while (option_char = getopt_long (argc, argv, "CFS::Tcdfgh::ik:l::pqstvx:", + while (option_char = getopt_long (argc, argv, "CIFS::Tcdfgh::ik:l::pqstvx:", long_options, NULL), - option_char != EOF) + option_char != -1) switch (option_char) { default: @@ -428,22 +398,21 @@ main (int argc, char *const *argv) case -2: error (0, 0, _("Sequence `%s' is ambiguous"), optarg); usage (EXIT_FAILURE, 0); + break; case -1: error (0, 0, _("Sequence `%s' is unknown"), optarg); usage (EXIT_FAILURE, 0); + break; + /* Ignore for backwards compatibility with version 3.6. */ case 0: - task_option.strategy = RECODE_SEQUENCE_IN_MEMORY; - break; - case 1: - task_option.strategy = RECODE_SEQUENCE_WITH_FILES; - break; - case 2: - task_option.strategy = RECODE_SEQUENCE_WITH_PIPE; break; + + default: + break; } break; @@ -451,9 +420,9 @@ main (int argc, char *const *argv) print_copyright (); exit (EXIT_SUCCESS); - case 'F': - freeze_tables = true; - break; + case 'I': + prefer_iconv = true; + break; case 'S': if (optarg) @@ -462,21 +431,23 @@ main (int argc, char *const *argv) case -2: error (0, 0, _("Language `%s' is ambiguous"), optarg); usage (EXIT_FAILURE, 0); + break; default: /* -1 */ error (0, 0, _("Language `%s' is unknown"), optarg); usage (EXIT_FAILURE, 0); + break; case 0: - processor = transform_c_source; + processor = recode_transform_c_source; break; case 2: - processor = transform_po_source; + processor = recode_transform_po_source; break; } else - processor = transform_c_source; + processor = recode_transform_c_source; break; case 'T': @@ -494,6 +465,7 @@ main (int argc, char *const *argv) case 'f': task_option.fail_level = RECODE_SYSTEM_ERROR; task_option.abort_level = RECODE_USER_ERROR; + force_flag = true; break; case 'g': @@ -520,10 +492,12 @@ main (int argc, char *const *argv) case -2: error (0, 0, _("Language `%s' is ambiguous"), buffer); usage (EXIT_FAILURE, 0); + break; default: /* -1 */ error (0, 0, _("Language `%s' is unknown"), buffer); usage (EXIT_FAILURE, 0); + break; case 0: header_language = RECODE_LANGUAGE_C; @@ -543,7 +517,7 @@ main (int argc, char *const *argv) break; case 'i': - task_option.strategy = RECODE_SEQUENCE_WITH_FILES; + /* Ignore for backwards compatibility with version 3.6. */ break; case 'k': @@ -558,10 +532,12 @@ main (int argc, char *const *argv) case -2: error (0, 0, _("Format `%s' is ambiguous"), optarg); usage (EXIT_FAILURE, 0); + break; case -1: error (0, 0, _("Format `%s' is unknown"), optarg); usage (EXIT_FAILURE, 0); + break; case 0: list_format = RECODE_DECIMAL_FORMAT; @@ -578,11 +554,14 @@ main (int argc, char *const *argv) case 3: list_format = RECODE_FULL_FORMAT; break; + + default: + break; } break; case 'p': - task_option.strategy = RECODE_SEQUENCE_WITH_PIPE; + /* Ignore for backwards compatibility with version 3.6. */ break; case 'q': @@ -601,8 +580,7 @@ main (int argc, char *const *argv) case 'v': verbose_flag = true; - request_option.verbose_flag = true; - break; + break; case 'x': ignored_name = optarg; @@ -618,11 +596,11 @@ main (int argc, char *const *argv) { printf ("%s %s\n", PACKAGE, VERSION); fputs (_("\ -Written by Franc,ois Pinard .\n"), +Written by François Pinard .\n"), stdout); fputs (_("\ \n\ -Copyright (C) 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc.\n"), +Copyright (C) 1990-2023 Free Software Foundation, Inc.\n"), stdout); fputs (_("\ This is free software; see the source for copying conditions. There is NO\n\ @@ -634,68 +612,34 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), if (show_help) usage (EXIT_SUCCESS, 0); - /* Register all modules and build internal tables. */ - - { - unsigned flags = RECODE_AUTO_ABORT_FLAG; - if (ignored_name && *ignored_name == ':') - flags |= RECODE_NO_ICONV_FLAG; - if (request_option.make_header_flag) - flags |= RECODE_NO_ICONV_FLAG; - outer = recode_new_outer (flags); - if (!outer) - abort (); - } - - if (freeze_tables) - { - recode_freeze_tables (outer); - exit (EXIT_SUCCESS); - } - - /* Set strict mapping. */ + /* Set up the outer level. */ + unsigned flags = 0; + if ((ignored_name && *ignored_name == ':') + || request_option.make_header_flag) + flags |= RECODE_NO_ICONV_FLAG; if (strict_mapping) - { - RECODE_SINGLE single; - - for (single = outer->single_list; single; single = single->next) - single->fallback_routine = NULL; - } - - /* Set the ignored charset. */ - - if (ignored_name) - { - RECODE_ALIAS alias - = find_alias (outer, ignored_name, ALIAS_FIND_AS_CHARSET); - - if (!alias) - { - error (0, 0, _("Symbol `%s' is unknown"), ignored_name); - usage (EXIT_FAILURE, 1); - } - - alias->symbol->ignore = true; - } + flags |= RECODE_STRICT_MAPPING_FLAG; + if (force_flag) + flags |= RECODE_FORCE_FLAG; + RECODE_OUTER outer = new_outer (flags); /* Process charset listing options. */ if (find_subsets) { - if (find_and_report_subsets (outer)) - exit (EXIT_SUCCESS); - else - exit (EXIT_FAILURE); + recode_find_and_report_subsets (outer); + exit (EXIT_SUCCESS); } if (show_symbols || charset_restrictions) { if (charset_restrictions) - if (!decode_known_pairs (outer, charset_restrictions)) + if (!recode_decode_known_pairs (outer, charset_restrictions)) { error (0, 0, "Could not understand `%s'", charset_restrictions); usage (EXIT_FAILURE, 0); + } if (optind + 1 < argc) { @@ -708,7 +652,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), if (optind < argc) { RECODE_ALIAS alias - = find_alias (outer, argv[optind], ALIAS_FIND_AS_CHARSET); + = recode_find_alias (outer, argv[optind], ALIAS_FIND_AS_CHARSET); if (!alias) { @@ -722,7 +666,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), else if (list_format != RECODE_NO_FORMAT || charset_restrictions) { RECODE_ALIAS alias - = find_alias (outer, NULL, ALIAS_FIND_AS_CHARSET); + = recode_find_alias (outer, NULL, ALIAS_FIND_AS_CHARSET); if (!alias) { @@ -739,14 +683,14 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), /* List the charset(s) appropriately. */ if (charset_restrictions) - list_all_symbols (outer, list_charset); + recode_list_all_symbols (outer, list_charset); else if (list_charset) if (list_format == RECODE_FULL_FORMAT) - list_full_charset (outer, list_charset); + recode_list_full_charset (outer, list_charset); else - list_concise_charset (outer, list_charset, list_format); + recode_list_concise_charset (outer, list_charset, list_format); else - list_all_symbols (outer, NULL); + recode_list_all_symbols (outer, NULL); /* Then get out. */ @@ -761,55 +705,12 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), usage (EXIT_FAILURE, 0); } - request = recode_new_request (outer); - request->ascii_graphics = request_option.ascii_graphics; - request->diacritics_only = request_option.diacritics_only; - request->diaeresis_char = request_option.diaeresis_char; - request->make_header_flag = request_option.make_header_flag; - request->verbose_flag = request_option.verbose_flag; - - { - const char *user_request = argv[optind++]; - char *rewritten_request = NULL; - const char *colon = strchr (user_request, ':'); - - /* Try to detect old syntax, that is, no `..' and a single `:'. In such - case, issue a warning, and rewrite the request to new syntax. */ - - if (colon && !strchr (colon + 1, ':')) - { - const char *cursor; - - for (cursor = user_request; *cursor; cursor++) - if (cursor[0] == '.' && cursor[1] == '.') - break; + RECODE_REQUEST request = new_request (outer, &request_option); - if (!*cursor) - { - char *cursor2; - - rewritten_request = (char *) xmalloc (strlen (user_request) + 2); - cursor2 = rewritten_request; - for (cursor = user_request; *cursor != ':'; cursor++) - *cursor2++ = *cursor; - *cursor2++ = '.'; - *cursor2++ = '.'; - for (cursor++; *cursor; cursor++) - *cursor2++ = *cursor; - *cursor2 = NUL; - - user_request = rewritten_request; - if (!quiet_flag) - error (0, 0, _("Syntax is deprecated, please prefer `%s'"), - user_request); - } - } + const char *user_request = argv[optind]; - if (!recode_scan_request (request, user_request)) - error (EXIT_FAILURE, 0, _("Request `%s' is erroneous"), user_request); - if (rewritten_request) - free (rewritten_request); - } + if (!recode_scan_request (request, user_request)) + error (EXIT_FAILURE, 0, _("Request `%s' is erroneous"), user_request); /* If we merely want source code, do it and get out. */ @@ -819,13 +720,38 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), exit (EXIT_SUCCESS); } - setup_signals (); + /* If we are recoding, and we are allowed to use iconv, and --prefer-iconv + was not used, see if we can do it without iconv. */ + + if ((flags & RECODE_NO_ICONV_FLAG) == 0 && !prefer_iconv) + { + RECODE_OUTER no_iconv_outer = new_outer (RECODE_NO_ICONV_FLAG); + RECODE_REQUEST no_iconv_request = + new_request (no_iconv_outer, &request_option); + + if (recode_scan_request (no_iconv_request, user_request)) + { + recode_delete_request (request); + recode_delete_outer (outer); + outer = no_iconv_outer; + request = no_iconv_request; + } + } + + /* Scan the request once more to get output if in verbose mode. */ + if (verbose_flag) + { + request->verbose_flag = true; + recode_scan_request (request, user_request); + } + + /* Discard the request argument. */ + optind++; { RECODE_TASK task; task = recode_new_task (request); - task->strategy = task_option.strategy; task->fail_level = task_option.fail_level; task->abort_level = task_option.fail_level; @@ -834,15 +760,6 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), if (optind < argc) { - /* When reading and writing files, unless the user selected - otherwise, avoid forking and use intermediate files. */ - - /* FIXME: On a file per file basis, force recoding to be done in - memory whenever files are small, which is the usual case. */ - - if (task->strategy == RECODE_STRATEGY_UNDECIDED) - task->strategy = RECODE_SEQUENCE_WITH_FILES; - /* In case files are recoded over themselves and there is no recoding step at all, do not even try to touch the files. */ @@ -853,56 +770,43 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), for (; optind < argc; optind++) { const char *input_name; - char output_name[200]; /* FIXME: dangerous limit */ FILE *file; struct stat file_stat; struct utimbuf file_utime; - input_name = argv[optind]; + input_name = realpath (argv[optind], NULL); + if (input_name == NULL) + error (EXIT_FAILURE, errno, "realpath (%s)", argv[optind]); /* Check if the file can be read and rewritten. */ if (file = fopen (input_name, "r+"), file == NULL) error (EXIT_FAILURE, errno, "fopen (%s)", input_name); - /* Save the input file attrobites. */ + /* Save the input file attributes. */ fstat (fileno (file), &file_stat); fclose (file); - { - char *cursor; - - /* Choose an output file in the same directory. */ - - /* FIXME: Scott Schwartz writes: - "There's no reason to think that that name is unique." */ - - strcpy (output_name, input_name); -#if DOSWIN_OR_OS2 - for (cursor = output_name + strlen (output_name); - cursor > output_name && cursor[-1] != '/' - && cursor[-1] != '\\' && cursor[-1] != ':'; - cursor--) - ; -# if __DJGPP__ - sprintf (cursor, "rec%d.tmp", getpid ()); -# else - strcpy (cursor, "recodeXX.TMP"); -# endif -#else - for (cursor = output_name + strlen (output_name); - cursor > output_name && cursor[-1] != '/'; - cursor--) - ; - sprintf (cursor, "rec%d.tmp", getpid ()); -#endif - } + /* Choose an output file in the same directory. */ + + char *input_name_copy = xstrdup (input_name); + char *output_dir = dirname (input_name_copy); + char *output_name; + if (asprintf (&output_name, "%s/recode-XXXXXX.tmp", output_dir) == -1) + error (EXIT_FAILURE, errno, "asprintf"); + int fd = mkstemps (output_name, 4); + if (fd == -1) + error (EXIT_FAILURE, errno, "mkstemps (%s)", output_name); + xset_binary_mode (fd, O_BINARY); /* Recode the file. */ task->input.name = input_name; - task->output.name = output_name; + task->output.name = NULL; + task->output.file = fdopen (fd, "w+"); + if (task->output.file == NULL) + error (EXIT_FAILURE, errno, "fdopen ()"); if (verbose_flag) { @@ -920,26 +824,23 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), fflush (stderr); } + /* Close the file. */ + + if (fclose (task->output.file) == EOF) + error (EXIT_FAILURE, errno, "close ()"); + /* Move the new file over the original. */ if (unlink (input_name) < 0) error (EXIT_FAILURE, errno, "unlink (%s)", input_name); - /* Preserve the file permissions. */ + /* Preserve the file permissions if possible. */ + + chmod (output_name, file_stat.st_mode & 07777); - if (chmod (output_name, file_stat.st_mode & 07777) < 0) - error (EXIT_FAILURE, errno, "chmod (%s)", output_name); -#if HAVE_RENAME if (rename (output_name, input_name) < 0) error (EXIT_FAILURE, errno, "rename (%s, %s)", output_name, input_name); -#else - if (link (output_name, input_name) < 0) - error (EXIT_FAILURE, errno, "link (%s, %s)", - output_name, input_name); - if (unlink (output_name) < 0) - error (EXIT_FAILURE, errno, "unlink (%s)", output_name); -#endif /* Adjust the time stamp for the new file. */ @@ -957,40 +858,45 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"), success = false; if (verbose_flag) { - fprintf (stderr, _(" failed: %s in step `%s..%s'\n"), + fprintf (stderr, _(" failed: %s%s%s%s%s%s\n"), task_perror (task), - task->error_at_step->before->name, - task->error_at_step->after->name); + task->error_at_step ? _(" in step `") : "", + task->error_at_step ? task->error_at_step->before->name : "", + task->error_at_step ? _("..") : "", + task->error_at_step ? task->error_at_step->after->name : "", + task->error_at_step ? _("'") : ""); fflush (stderr); } else if (!quiet_flag) - error (0, 0, _("%s failed: %s in step `%s..%s'"), + error (0, 0, _("%s failed: %s%s%s%s%s%s"), input_name, task_perror (task), - task->error_at_step->before->name, - task->error_at_step->after->name); + task->error_at_step ? _(" in step `") : "", + task->error_at_step ? task->error_at_step->before->name : "", + task->error_at_step ? _("..") : "", + task->error_at_step ? task->error_at_step->after->name : "", + task->error_at_step ? _("'") : ""); unlink (output_name); } + free (output_name); + free (input_name_copy); } } else { - /* When reading stdin and writing stdout, unless the user selected - otherwise, fork processes interconnected with pipes. */ - - if (task->strategy == RECODE_STRATEGY_UNDECIDED) - task->strategy = RECODE_SEQUENCE_WITH_PIPE; - task->input.name = ""; task->output.name = ""; if (!(*processor) (task)) { success = false; if (!quiet_flag) - error (0, 0, _("%s in step `%s..%s'"), + error (0, 0, _("%s%s%s%s%s%s"), task_perror (task), - task->error_at_step->before->name, - task->error_at_step->after->name); + task->error_at_step ? _(" in step `") : "", + task->error_at_step ? task->error_at_step->before->name : "", + task->error_at_step ? _("..") : "", + task->error_at_step ? task->error_at_step->after->name : "", + task->error_at_step ? _("'") : ""); } } } diff --git a/src/merged.c b/src/merged.c deleted file mode 100644 index 83c08c5..0000000 --- a/src/merged.c +++ /dev/null @@ -1,3257 +0,0 @@ - - -#define YY_INT_ALIGNED short int - -/* A lexical scanner generated by flex */ - -#define yy_create_buffer librecode_yy_create_buffer -#define yy_delete_buffer librecode_yy_delete_buffer -#define yy_flex_debug librecode_yy_flex_debug -#define yy_init_buffer librecode_yy_init_buffer -#define yy_flush_buffer librecode_yy_flush_buffer -#define yy_load_buffer_state librecode_yy_load_buffer_state -#define yy_switch_to_buffer librecode_yy_switch_to_buffer -#define yyin librecode_yyin -#define yyleng librecode_yyleng -#define yylex librecode_yylex -#define yylineno librecode_yylineno -#define yyout librecode_yyout -#define yyrestart librecode_yyrestart -#define yytext librecode_yytext -#define yywrap librecode_yywrap -#define yyalloc librecode_yyalloc -#define yyrealloc librecode_yyrealloc -#define yyfree librecode_yyfree - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 -#if YY_FLEX_SUBMINOR_VERSION > 0 -#define FLEX_BETA -#endif - -/* First, we deal with platform-specific or compiler-specific issues. */ - -/* begin standard C headers. */ -#include -#include -#include -#include - -/* end standard C headers. */ - -/* flex integer type definitions */ - -#ifndef FLEXINT_H -#define FLEXINT_H - -/* C99 systems have . Non-C99 systems may or may not. */ - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, - * if you want the limit (max/min) macros for int types. - */ -#ifndef __STDC_LIMIT_MACROS -#define __STDC_LIMIT_MACROS 1 -#endif - -#include -typedef int8_t flex_int8_t; -typedef uint8_t flex_uint8_t; -typedef int16_t flex_int16_t; -typedef uint16_t flex_uint16_t; -typedef int32_t flex_int32_t; -typedef uint32_t flex_uint32_t; -#else -typedef signed char flex_int8_t; -typedef short int flex_int16_t; -typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; -typedef unsigned short int flex_uint16_t; -typedef unsigned int flex_uint32_t; - -/* Limits of integral types. */ -#ifndef INT8_MIN -#define INT8_MIN (-128) -#endif -#ifndef INT16_MIN -#define INT16_MIN (-32767-1) -#endif -#ifndef INT32_MIN -#define INT32_MIN (-2147483647-1) -#endif -#ifndef INT8_MAX -#define INT8_MAX (127) -#endif -#ifndef INT16_MAX -#define INT16_MAX (32767) -#endif -#ifndef INT32_MAX -#define INT32_MAX (2147483647) -#endif -#ifndef UINT8_MAX -#define UINT8_MAX (255U) -#endif -#ifndef UINT16_MAX -#define UINT16_MAX (65535U) -#endif -#ifndef UINT32_MAX -#define UINT32_MAX (4294967295U) -#endif - -#endif /* ! C99 */ - -#endif /* ! FLEXINT_H */ - -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST -#define yyconst const -#else -#define yyconst -#endif - -/* Returned upon end-of-file. */ -#define YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. - */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN (yy_start) = 1 + 2 * - -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START (((yy_start) - 1) / 2) -#define YYSTATE YY_START - -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE librecode_yyrestart(librecode_yyin ) - -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#ifndef YY_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k. - * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. - * Ditto for the __ia64__ case accordingly. - */ -#define YY_BUF_SIZE 32768 -#else -#define YY_BUF_SIZE 16384 -#endif /* __ia64__ */ -#endif - -/* The state buf must be large enough to hold one state per character in the main buffer. - */ -#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) - -#ifndef YY_TYPEDEF_YY_BUFFER_STATE -#define YY_TYPEDEF_YY_BUFFER_STATE -typedef struct yy_buffer_state *YY_BUFFER_STATE; -#endif - -extern int librecode_yyleng; - -extern FILE *librecode_yyin, *librecode_yyout; - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - - #define YY_LESS_LINENO(n) - -/* Return all but the first "n" matched characters back to the input stream. */ -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up librecode_yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - *yy_cp = (yy_hold_char); \ - YY_RESTORE_YY_MORE_OFFSET \ - (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up librecode_yytext again */ \ - } \ - while ( 0 ) - -#define unput(c) yyunput( c, (yytext_ptr) ) - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - -#ifndef YY_STRUCT_YY_BUFFER_STATE -#define YY_STRUCT_YY_BUFFER_STATE -struct yy_buffer_state - { - FILE *yy_input_file; - - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; - - int yy_bs_lineno; /**< The line count. */ - int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - - int yy_buffer_status; - -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via librecode_yyrestart()), so that the user can continue scanning by - * just pointing librecode_yyin at a new input file. - */ -#define YY_BUFFER_EOF_PENDING 2 - - }; -#endif /* !YY_STRUCT_YY_BUFFER_STATE */ - -/* Stack of input buffers. */ -static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ -static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - * - * Returns the top of the stack, or NULL. - */ -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ - ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ - : NULL) - -/* Same as previous macro, but useful when we know that the buffer stack is not - * NULL or when we need an lvalue. For internal use only. - */ -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] - -/* yy_hold_char holds the character lost when librecode_yytext is formed. */ -static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int librecode_yyleng; - -/* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; -static int yy_init = 0; /* whether we need to initialize */ -static int yy_start = 0; /* start state number */ - -/* Flag which is used to allow librecode_yywrap()'s to do buffer switches - * instead of setting up a fresh librecode_yyin. A bit of a hack ... - */ -static int yy_did_buffer_switch_on_eof; - -void librecode_yyrestart (FILE *input_file ); -void librecode_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE librecode_yy_create_buffer (FILE *file,int size ); -void librecode_yy_delete_buffer (YY_BUFFER_STATE b ); -void librecode_yy_flush_buffer (YY_BUFFER_STATE b ); -void librecode_yypush_buffer_state (YY_BUFFER_STATE new_buffer ); -void librecode_yypop_buffer_state (void ); - -static void librecode_yyensure_buffer_stack (void ); -static void librecode_yy_load_buffer_state (void ); -static void librecode_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); - -#define YY_FLUSH_BUFFER librecode_yy_flush_buffer(YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE librecode_yy_scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE librecode_yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE librecode_yy_scan_bytes (yyconst char *bytes,int len ); - -void *librecode_yyalloc (yy_size_t ); -void *librecode_yyrealloc (void *,yy_size_t ); -void librecode_yyfree (void * ); - -#define yy_new_buffer librecode_yy_create_buffer - -#define yy_set_interactive(is_interactive) \ - { \ - if ( ! YY_CURRENT_BUFFER ){ \ - librecode_yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - librecode_yy_create_buffer(librecode_yyin,YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ - } - -#define yy_set_bol(at_bol) \ - { \ - if ( ! YY_CURRENT_BUFFER ){\ - librecode_yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - librecode_yy_create_buffer(librecode_yyin,YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ - } - -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) - -/* Begin user sect3 */ - -#define librecode_yywrap(n) 1 -#define YY_SKIP_YYWRAP - -typedef unsigned char YY_CHAR; - -FILE *librecode_yyin = (FILE *) 0, *librecode_yyout = (FILE *) 0; - -typedef int yy_state_type; - -extern int librecode_yylineno; - -int librecode_yylineno = 1; - -extern char *librecode_yytext; -#define yytext_ptr librecode_yytext - -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yy_fatal_error (yyconst char msg[] ); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up librecode_yytext. - */ -#define YY_DO_BEFORE_ACTION \ - (yytext_ptr) = yy_bp; \ - librecode_yyleng = (size_t) (yy_cp - yy_bp); \ - (yy_hold_char) = *yy_cp; \ - *yy_cp = '\0'; \ - (yy_c_buf_p) = yy_cp; - -#define YY_NUM_RULES 208 -#define YY_END_OF_BUFFER 209 -/* This struct is not used in this scanner, - but its presence is necessary. */ -struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static yyconst flex_int16_t yy_accept[598] = - { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 209, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 65, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 66, 83, 87, 69, 57, - 58, 59, 60, 78, 81, 73, 147, 147, 110, 68, - - 0, 61, 0, 147, 147, 147, 147, 147, 147, 139, - 147, 147, 62, 63, 0, 71, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 149, 0, 151, 150, - 0, 0, 161, 162, 158, 0, 171, 170, 0, 0, - 177, 176, 0, 183, 182, 148, 0, 154, 153, 0, - 0, 167, 168, 164, 0, 174, 173, 0, 180, 179, - 0, 186, 185, 1, 2, 7, 12, 16, 22, 27, - 34, 39, 43, 49, 29, 54, 56, 4, 10, 14, - 19, 25, 28, 31, 37, 41, 46, 52, 55, 8, - 35, 23, 50, 5, 3, 6, 11, 9, 15, 13, - - 17, 20, 18, 21, 26, 24, 32, 38, 42, 47, - 53, 30, 36, 40, 45, 51, 33, 44, 48, 92, - 99, 103, 109, 114, 0, 121, 128, 138, 143, 145, - 0, 89, 97, 101, 106, 112, 115, 0, 118, 126, - 135, 141, 144, 0, 147, 93, 94, 0, 110, 0, - 68, 0, 90, 98, 102, 107, 113, 0, 119, 127, - 136, 142, 0, 88, 96, 100, 105, 111, 0, 117, - 125, 134, 140, 0, 122, 123, 147, 147, 147, 147, - 0, 147, 147, 147, 139, 0, 147, 116, 91, 104, - 108, 120, 133, 137, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 152, 156, 163, 160, 172, 0, 178, 184, 155, 157, - 169, 166, 175, 181, 187, 132, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 93, 0, 94, 0, 147, 110, 68, 131, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, - 0, 123, 0, 147, 95, 124, 147, 147, 0, 0, - 147, 147, 72, 139, 147, 116, 0, 0, 0, 0, - - 0, 0, 0, 196, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 159, 0, 165, 132, 146, 0, 0, 130, 0, - 0, 93, 94, 131, 0, 0, 129, 0, 0, 122, - 123, 147, 147, 147, 147, 147, 72, 0, 147, 116, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 0, 202, 0, 0, 0, 0, 0, 201, 146, - 0, 132, 132, 130, 130, 131, 131, 129, 129, 147, - 80, 147, 0, 0, 0, 72, 67, 0, 0, 0, - 0, 0, 0, 0, 207, 0, 0, 0, 0, 0, - - 0, 204, 0, 146, 147, 147, 0, 0, 0, 67, - 0, 190, 0, 0, 206, 189, 0, 0, 0, 0, - 200, 0, 0, 0, 205, 147, 147, 85, 84, 86, - 0, 0, 67, 0, 0, 197, 0, 193, 0, 0, - 0, 0, 147, 147, 85, 0, 84, 0, 86, 0, - 0, 0, 0, 0, 0, 0, 191, 0, 0, 199, - 203, 0, 0, 64, 70, 85, 84, 86, 0, 0, - 0, 0, 0, 0, 188, 192, 194, 195, 64, 0, - 70, 0, 0, 0, 82, 76, 77, 0, 64, 70, - 79, 75, 0, 0, 0, 74, 0 - - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 4, 5, 6, 7, 8, 9, 10, 1, - 1, 1, 1, 11, 12, 1, 13, 1, 14, 15, - 16, 17, 1, 1, 1, 1, 1, 18, 1, 19, - 1, 20, 21, 1, 22, 23, 24, 25, 26, 25, - 27, 28, 29, 30, 25, 30, 25, 31, 32, 25, - 25, 25, 33, 34, 35, 25, 25, 25, 36, 25, - 1, 37, 1, 38, 39, 40, 41, 42, 43, 44, - - 45, 46, 47, 48, 49, 30, 50, 51, 52, 53, - 54, 55, 25, 56, 57, 58, 59, 25, 25, 60, - 61, 25, 62, 1, 63, 64, 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, 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, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int32_t yy_meta[65] = - { 0, - 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 2, 1, 1 - } ; - -static yyconst flex_int16_t yy_base[611] = - { 0, - 0, 0, 0, 0, 2, 23, 87, 0, 943, 944, - 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, - 930, 929, 928, 927, 926, 925, 924, 923, 922, 921, - 920, 919, 918, 917, 916, 915, 876, 905, 874, 147, - 873, 944, 190, 902, 10, 900, 216, 29, 900, 222, - 223, 0, 869, 231, 897, 240, 237, 241, 246, 268, - 308, 13, 14, 902, 901, 286, 894, 301, 318, 840, - 341, 326, 893, 384, 422, 337, 891, 350, 358, 837, - 382, 895, 392, 4, 251, 944, 944, 944, 460, 944, - 944, 944, 944, 501, 944, 944, 250, 0, 13, 14, - - 542, 944, 583, 254, 181, 329, 15, 332, 316, 18, - 212, 22, 944, 944, 396, 944, 3, 854, 24, 25, - 844, 856, 843, 211, 112, 835, 944, 0, 944, 944, - 382, 0, 884, 944, 944, 0, 944, 944, 29, 0, - 944, 944, 0, 944, 944, 944, 0, 944, 944, 420, - 0, 883, 944, 944, 0, 944, 944, 0, 944, 944, - 0, 944, 944, 944, 944, 944, 944, 944, 944, 944, - 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, - 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, - 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, - - 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, - 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, - 944, 944, 944, 944, 843, 944, 944, 944, 944, 944, - 624, 944, 944, 944, 944, 944, 944, 842, 944, 944, - 944, 944, 944, 664, 158, 227, 290, 827, 318, 826, - 345, 825, 944, 944, 944, 944, 944, 838, 944, 944, - 944, 944, 704, 944, 944, 944, 944, 944, 837, 944, - 944, 944, 944, 742, 362, 369, 383, 397, 406, 432, - 410, 436, 408, 444, 453, 822, 466, 462, 944, 944, - 944, 944, 944, 944, 512, 470, 842, 826, 829, 834, - - 827, 838, 829, 828, 827, 821, 34, 16, 833, 823, - 944, 944, 944, 862, 944, 236, 944, 944, 944, 944, - 944, 861, 944, 944, 944, 469, 807, 806, 805, 804, - 803, 816, 801, 800, 799, 798, 797, 477, 796, 795, - 794, 793, 792, 791, 804, 789, 788, 787, 786, 785, - 487, 784, 490, 783, 944, 944, 944, 496, 782, 781, - 780, 779, 778, 791, 776, 775, 774, 773, 497, 772, - 771, 770, 769, 768, 781, 766, 765, 764, 763, 499, - 762, 505, 761, 507, 944, 944, 523, 529, 760, 759, - 508, 513, 510, 944, 544, 526, 758, 757, 756, 755, - - 754, 753, 752, 944, 755, 764, 771, 757, 751, 260, - 750, 753, 296, 297, 740, 315, 739, 756, 754, 745, - 752, 944, 366, 944, 532, 537, 729, 728, 538, 727, - 726, 944, 944, 545, 723, 722, 551, 721, 719, 944, - 944, 573, 577, 592, 600, 579, 581, 718, 589, 944, - 733, 729, 726, 728, 727, 729, 718, 371, 707, 944, - 715, 713, 944, 705, 711, 710, 394, 707, 944, 590, - 692, 944, 944, 944, 944, 944, 944, 944, 944, 619, - 595, 614, 741, 740, 352, 944, 605, 478, 693, 704, - 502, 584, 699, 700, 944, 699, 702, 605, 701, 693, - - 691, 944, 616, 944, 633, 626, 147, 711, 130, 622, - 641, 944, 637, 621, 944, 944, 622, 616, 626, 622, - 944, 577, 560, 552, 944, 635, 646, 644, 652, 655, - 330, 697, 944, 659, 541, 944, 533, 944, 661, 684, - 511, 505, 684, 657, 665, 482, 669, 455, 688, 449, - 450, 452, 496, 478, 477, 435, 944, 698, 702, 944, - 944, 717, 719, 695, 707, 944, 944, 944, 459, 457, - 345, 340, 330, 321, 944, 944, 944, 944, 718, 282, - 726, 275, 247, 245, 944, 944, 944, 242, 944, 944, - 944, 944, 225, 260, 181, 944, 944, 801, 803, 226, - - 222, 162, 160, 78, 71, 27, 5, 4, 1, 805 - } ; - -static yyconst flex_int16_t yy_def[611] = - { 0, - 598, 598, 598, 3, 598, 598, 597, 7, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 43, 597, 597, 597, 597, 597, 597, - 597, 43, 43, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 599, 599, 599, 599, - - 597, 597, 597, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 600, 597, 597, - 597, 601, 597, 597, 597, 602, 597, 597, 597, 603, - 597, 597, 604, 597, 597, 597, 605, 597, 597, 597, - 606, 597, 597, 597, 607, 597, 597, 608, 597, 597, - 609, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 599, 599, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 599, 599, 599, 597, 599, 599, - 597, 599, 599, 599, 597, 597, 599, 599, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 610, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 610, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 610, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 610, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 599, 597, 597, 599, 599, 597, 597, - 599, 599, 599, 597, 599, 597, 597, 597, 597, 597, - - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 610, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 599, 599, 599, 599, 599, 597, 597, 599, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 599, - 599, 599, 597, 597, 597, 597, 599, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - - 597, 597, 597, 597, 599, 599, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 599, 599, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 599, 599, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 599, 599, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 0, 597, 597, 597, - - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597 - } ; - -static yyconst flex_int16_t yy_nxt[1009] = - { 0, - 597, 597, 245, 325, 11, 37, 324, 323, 177, 12, - 13, 38, 14, 189, 128, 249, 251, 245, 15, 16, - 285, 17, 39, 18, 245, 19, 37, 128, 20, 321, - 21, 22, 38, 136, 23, 24, 190, 25, 40, 26, - 27, 41, 28, 39, 29, 192, 136, 129, 30, 130, - 316, 296, 31, 32, 297, 191, 33, 418, 34, 40, - 35, 248, 41, 36, 299, 42, 137, 193, 138, 316, - 282, 419, 300, 319, 250, 252, 248, 301, 288, 286, - 318, 302, 416, 248, 303, 417, 42, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 44, 43, 43, 43, - - 43, 43, 43, 43, 43, 43, 43, 43, 45, 10, - 46, 10, 47, 10, 10, 48, 49, 10, 50, 10, - 49, 51, 10, 43, 52, 43, 53, 54, 10, 55, - 10, 56, 10, 10, 10, 57, 10, 49, 10, 10, - 58, 10, 10, 10, 49, 59, 10, 10, 43, 43, - 43, 89, 90, 91, 92, 93, 94, 95, 96, 309, - 245, 528, 317, 529, 315, 310, 531, 532, 97, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 99, 100, - 98, 98, 98, 245, 101, 102, 103, 104, 105, 106, - 98, 98, 107, 98, 98, 98, 98, 98, 108, 109, - - 110, 111, 98, 112, 98, 98, 98, 98, 113, 114, - 115, 117, 118, 119, 245, 120, 121, 122, 123, 248, - 132, 277, 124, 125, 313, 133, 140, 143, 311, 351, - 117, 118, 119, 132, 126, 147, 121, 122, 123, 140, - 143, 155, 248, 596, 151, 158, 124, 125, 147, 152, - 161, 307, 245, 134, 155, 135, 245, 151, 158, 141, - 144, 142, 145, 161, 423, 287, 595, 594, 148, 308, - 149, 246, 196, 248, 156, 247, 157, 153, 159, 154, - 160, 201, 204, 162, 423, 163, 164, 165, 352, 166, - 166, 217, 353, 167, 275, 178, 168, 593, 276, 169, - - 460, 461, 170, 218, 219, 167, 456, 592, 171, 591, - 179, 248, 172, 460, 461, 248, 173, 457, 245, 463, - 249, 174, 168, 194, 175, 195, 176, 180, 177, 178, - 170, 278, 463, 179, 245, 182, 180, 590, 197, 181, - 198, 171, 182, 183, 589, 169, 184, 251, 184, 196, - 181, 354, 185, 192, 172, 199, 186, 200, 509, 185, - 284, 187, 173, 205, 380, 206, 188, 186, 189, 588, - 469, 382, 279, 283, 207, 495, 212, 248, 202, 250, - 203, 551, 280, 469, 552, 245, 174, 208, 495, 213, - 281, 187, 587, 248, 193, 209, 176, 214, 502, 278, - - 217, 188, 586, 312, 204, 194, 252, 585, 245, 197, - 245, 502, 199, 312, 355, 202, 312, 289, 205, 210, - 385, 215, 312, 381, 207, 384, 290, 291, 208, 211, - 383, 216, 209, 389, 245, 312, 292, 210, 245, 386, - 312, 320, 211, 195, 248, 219, 245, 198, 293, 294, - 200, 320, 390, 203, 320, 285, 206, 295, 248, 387, - 320, 392, 212, 584, 396, 583, 213, 248, 245, 248, - 214, 425, 355, 320, 404, 215, 391, 574, 320, 429, - 216, 220, 512, 573, 572, 221, 388, 404, 222, 351, - 393, 223, 353, 248, 224, 512, 225, 248, 434, 437, - - 226, 380, 571, 570, 227, 248, 515, 382, 569, 245, - 245, 568, 447, 228, 286, 245, 405, 567, 229, 515, - 230, 231, 232, 397, 395, 245, 233, 248, 396, 234, - 427, 245, 235, 398, 425, 236, 237, 238, 430, 470, - 429, 239, 399, 400, 566, 240, 245, 434, 352, 563, - 445, 354, 401, 437, 241, 562, 442, 435, 438, 242, - 381, 243, 244, 253, 402, 403, 383, 254, 248, 248, - 255, 448, 446, 256, 248, 245, 257, 559, 258, 245, - 443, 245, 259, 447, 248, 558, 260, 397, 516, 444, - 248, 245, 470, 427, 245, 261, 449, 245, 471, 430, - - 262, 516, 245, 263, 264, 248, 435, 510, 265, 521, - 542, 266, 438, 483, 267, 484, 245, 268, 541, 269, - 525, 245, 521, 270, 510, 540, 536, 271, 245, 480, - 538, 481, 487, 525, 248, 245, 272, 245, 248, 536, - 485, 273, 448, 538, 274, 327, 545, 482, 245, 328, - 248, 471, 329, 248, 547, 330, 248, 549, 331, 245, - 332, 248, 506, 557, 333, 560, 511, 545, 334, 505, - 539, 547, 527, 526, 537, 248, 557, 335, 560, 535, - 248, 534, 336, 511, 337, 339, 245, 248, 561, 340, - 549, 543, 341, 544, 248, 342, 248, 579, 343, 344, - - 345, 561, 575, 533, 346, 546, 576, 248, 347, 581, - 553, 554, 555, 548, 565, 575, 550, 348, 248, 576, - 579, 577, 349, 578, 350, 359, 546, 530, 581, 360, - 548, 564, 361, 556, 577, 362, 578, 524, 363, 523, - 364, 522, 520, 519, 365, 248, 518, 517, 366, 550, - 514, 513, 508, 507, 504, 503, 580, 367, 501, 500, - 499, 498, 368, 370, 497, 496, 494, 371, 582, 493, - 372, 492, 491, 373, 490, 489, 374, 488, 375, 580, - 486, 479, 376, 478, 477, 476, 377, 582, 475, 474, - 473, 472, 468, 467, 466, 378, 465, 464, 462, 459, - - 379, 10, 10, 10, 98, 98, 426, 426, 458, 455, - 454, 453, 452, 451, 294, 293, 292, 291, 290, 289, - 450, 386, 385, 441, 440, 273, 272, 271, 270, 439, - 268, 267, 266, 265, 264, 262, 261, 260, 259, 436, - 257, 256, 255, 254, 253, 433, 432, 243, 242, 241, - 240, 239, 431, 237, 236, 235, 234, 233, 232, 230, - 229, 228, 227, 226, 428, 224, 223, 222, 221, 220, - 424, 422, 421, 420, 415, 414, 413, 412, 411, 410, - 409, 408, 407, 406, 394, 369, 358, 357, 356, 355, - 338, 326, 322, 314, 303, 306, 305, 304, 298, 175, - - 218, 191, 183, 201, 190, 165, 164, 150, 146, 139, - 131, 127, 116, 88, 87, 86, 85, 84, 83, 82, - 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, - 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, - 61, 60, 597, 9, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - - 597, 597, 597, 597, 597, 597, 597, 597 - } ; - -static yyconst flex_int16_t yy_chk[1009] = - { 0, - 0, 0, 98, 609, 3, 5, 608, 607, 84, 3, - 3, 5, 3, 84, 45, 99, 100, 107, 3, 3, - 110, 3, 5, 3, 112, 3, 6, 45, 3, 606, - 3, 3, 6, 48, 3, 3, 62, 3, 5, 3, - 3, 5, 3, 6, 3, 63, 48, 45, 3, 45, - 139, 117, 3, 3, 117, 62, 3, 308, 3, 6, - 3, 98, 6, 3, 119, 5, 48, 63, 48, 139, - 107, 308, 119, 605, 99, 100, 107, 119, 112, 110, - 604, 120, 307, 112, 120, 307, 6, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 40, 40, 40, 40, 40, 40, 40, 40, 125, - 245, 507, 603, 507, 602, 125, 509, 509, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 105, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 43, 43, 43, 111, 43, 43, 43, 43, 245, - 47, 105, 43, 43, 601, 47, 50, 51, 600, 246, - 43, 43, 43, 47, 43, 54, 43, 43, 43, 50, - 51, 57, 105, 595, 56, 58, 43, 43, 54, 56, - 59, 124, 97, 47, 57, 47, 104, 56, 58, 50, - 51, 50, 51, 59, 316, 111, 594, 593, 54, 124, - 54, 97, 85, 111, 57, 97, 57, 56, 58, 56, - 58, 85, 85, 59, 316, 59, 60, 60, 246, 60, - 66, 85, 247, 60, 104, 66, 60, 588, 104, 60, - - 413, 414, 60, 85, 85, 68, 410, 584, 60, 583, - 68, 97, 60, 413, 414, 104, 60, 410, 109, 416, - 249, 60, 69, 66, 60, 66, 60, 69, 60, 61, - 72, 106, 416, 61, 108, 72, 61, 582, 68, 61, - 68, 76, 61, 61, 580, 71, 76, 251, 61, 66, - 71, 247, 61, 71, 78, 69, 61, 69, 485, 78, - 109, 61, 79, 72, 275, 72, 61, 79, 61, 574, - 423, 276, 106, 108, 76, 458, 76, 109, 71, 249, - 71, 531, 106, 423, 531, 277, 81, 78, 458, 78, - 106, 81, 573, 108, 81, 79, 83, 79, 467, 278, - - 76, 83, 572, 131, 71, 74, 251, 571, 279, 74, - 283, 467, 74, 131, 485, 74, 131, 115, 74, 81, - 278, 81, 131, 275, 74, 277, 115, 115, 74, 83, - 276, 83, 74, 281, 280, 131, 115, 74, 282, 278, - 131, 150, 74, 75, 277, 81, 284, 75, 115, 115, - 75, 150, 281, 75, 150, 285, 75, 115, 278, 279, - 150, 283, 75, 570, 288, 569, 75, 279, 287, 283, - 75, 326, 281, 150, 296, 75, 282, 556, 150, 338, - 75, 89, 488, 555, 554, 89, 280, 296, 89, 351, - 284, 89, 353, 280, 89, 488, 89, 282, 358, 369, - - 89, 380, 553, 552, 89, 284, 491, 382, 551, 384, - 391, 550, 393, 89, 285, 392, 296, 548, 89, 491, - 89, 89, 94, 288, 287, 387, 94, 287, 396, 94, - 326, 388, 94, 295, 425, 94, 94, 94, 338, 426, - 429, 94, 295, 295, 546, 94, 395, 434, 351, 542, - 391, 353, 295, 437, 94, 541, 384, 358, 369, 94, - 380, 94, 94, 101, 295, 295, 382, 101, 384, 391, - 101, 393, 392, 101, 392, 442, 101, 537, 101, 443, - 387, 446, 101, 447, 387, 535, 101, 396, 492, 388, - 388, 449, 470, 425, 444, 101, 395, 481, 426, 429, - - 101, 492, 445, 101, 103, 395, 434, 487, 103, 498, - 524, 103, 437, 445, 103, 445, 482, 103, 523, 103, - 503, 480, 498, 103, 510, 522, 517, 103, 506, 442, - 519, 443, 449, 503, 442, 505, 103, 526, 443, 517, - 446, 103, 447, 519, 103, 231, 528, 444, 527, 231, - 449, 470, 231, 444, 529, 231, 481, 530, 231, 544, - 231, 445, 482, 534, 231, 539, 487, 545, 231, 480, - 520, 547, 506, 505, 518, 482, 534, 231, 539, 514, - 480, 513, 231, 510, 231, 244, 543, 506, 540, 244, - 549, 526, 244, 527, 505, 244, 526, 564, 244, 244, - - 244, 540, 558, 511, 244, 528, 559, 527, 244, 565, - 532, 532, 532, 529, 544, 558, 530, 244, 544, 559, - 579, 562, 244, 563, 244, 263, 545, 508, 581, 263, - 547, 543, 263, 532, 562, 263, 563, 501, 263, 500, - 263, 499, 497, 496, 263, 543, 494, 493, 263, 549, - 490, 489, 484, 483, 471, 468, 564, 263, 466, 465, - 464, 462, 263, 274, 461, 459, 457, 274, 565, 456, - 274, 455, 454, 274, 453, 452, 274, 451, 274, 579, - 448, 439, 274, 438, 436, 435, 274, 581, 431, 430, - 428, 427, 421, 420, 419, 274, 418, 417, 415, 412, - - 274, 598, 598, 598, 599, 599, 610, 610, 411, 409, - 408, 407, 406, 405, 403, 402, 401, 400, 399, 398, - 397, 390, 389, 383, 381, 379, 378, 377, 376, 375, - 374, 373, 372, 371, 370, 368, 367, 366, 365, 364, - 363, 362, 361, 360, 359, 354, 352, 350, 349, 348, - 347, 346, 345, 344, 343, 342, 341, 340, 339, 337, - 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, - 322, 314, 310, 309, 306, 305, 304, 303, 302, 301, - 300, 299, 298, 297, 286, 269, 258, 252, 250, 248, - 238, 225, 152, 133, 126, 123, 122, 121, 118, 82, - - 80, 77, 73, 70, 67, 65, 64, 55, 53, 49, - 46, 44, 41, 39, 38, 37, 36, 35, 34, 33, - 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, - 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, - 12, 11, 9, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, - - 597, 597, 597, 597, 597, 597, 597, 597 - } ; - -static yy_state_type yy_last_accepting_state; -static char *yy_last_accepting_cpos; - -extern int librecode_yy_flex_debug; -int librecode_yy_flex_debug = 0; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 -#define YY_RESTORE_YY_MORE_OFFSET -char *librecode_yytext; -/* This file is generated automatically by `mergelex.py'. */ -#include "common.h" -static RECODE_CONST_REQUEST request; -static RECODE_SUBTASK subtask; - -#define YY_INPUT(buf, result, max_size) { int c = get_byte (subtask); result = (c == EOF) ? YY_NULL : (buf[0] = c, 1); } - - -void texte_latin1_diaeresis PARAMS ((void)); - - -#define INITIAL 0 -#define ascii_latin1 1 -#define latex_latin1 2 -#define texte_latin1 3 - -#ifndef YY_NO_UNISTD_H -/* Special case for "unistd.h", since it is non-ANSI. We include it way - * down here because we want the user's section 1 to have been scanned first. - * The user has a chance to override it with an option. - */ -#include -#endif - -#ifndef YY_EXTRA_TYPE -#define YY_EXTRA_TYPE void * -#endif - -static int yy_init_globals (void ); - -/* Accessor methods to globals. - These are made visible to non-reentrant scanners for convenience. */ - -int librecode_yylex_destroy (void ); - -int librecode_yyget_debug (void ); - -void librecode_yyset_debug (int debug_flag ); - -YY_EXTRA_TYPE librecode_yyget_extra (void ); - -void librecode_yyset_extra (YY_EXTRA_TYPE user_defined ); - -FILE *librecode_yyget_in (void ); - -void librecode_yyset_in (FILE * in_str ); - -FILE *librecode_yyget_out (void ); - -void librecode_yyset_out (FILE * out_str ); - -int librecode_yyget_leng (void ); - -char *librecode_yyget_text (void ); - -int librecode_yyget_lineno (void ); - -void librecode_yyset_lineno (int line_number ); - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef YY_SKIP_YYWRAP -#ifdef __cplusplus -extern "C" int librecode_yywrap (void ); -#else -extern int librecode_yywrap (void ); -#endif -#endif - -#ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); -#endif - -#ifndef YY_NO_INPUT - -#ifdef __cplusplus -static int yyinput (void ); -#else -static int input (void ); -#endif - -#endif - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#ifdef __ia64__ -/* On IA-64, the buffer size is 16k, not 8k */ -#define YY_READ_BUF_SIZE 16384 -#else -#define YY_READ_BUF_SIZE 8192 -#endif /* __ia64__ */ -#endif - -/* Copy whatever the last rule matched to the standard output. */ -#ifndef ECHO -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define ECHO do { if (fwrite( librecode_yytext, librecode_yyleng, 1, librecode_yyout )) {} } while (0) -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, - * is returned in "result". - */ -#ifndef YY_INPUT -#define YY_INPUT(buf,result,max_size) \ - if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ - { \ - int c = '*'; \ - size_t n; \ - for ( n = 0; n < max_size && \ - (c = getc( librecode_yyin )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ - if ( c == '\n' ) \ - buf[n++] = (char) c; \ - if ( c == EOF && ferror( librecode_yyin ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - result = n; \ - } \ - else \ - { \ - errno=0; \ - while ( (result = fread(buf, 1, max_size, librecode_yyin))==0 && ferror(librecode_yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(librecode_yyin); \ - } \ - }\ -\ - -#endif - -/* No semi-colon after return; correct usage is to write "yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef yyterminate -#define yyterminate() return YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef YY_START_STACK_INCR -#define YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef YY_FATAL_ERROR -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) -#endif - -/* end tables serialization structures and prototypes */ - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef YY_DECL -#define YY_DECL_IS_OURS 1 - -extern int librecode_yylex (void); - -#define YY_DECL int librecode_yylex (void) -#endif /* !YY_DECL */ - -/* Code executed at the beginning of each rule, after librecode_yytext and librecode_yyleng - * have been set up. - */ -#ifndef YY_USER_ACTION -#define YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef YY_BREAK -#define YY_BREAK break; -#endif - -#define YY_RULE_SETUP \ - YY_USER_ACTION - -/** The main scanner function which does all the work. - */ -YY_DECL -{ - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - - - - if ( !(yy_init) ) - { - (yy_init) = 1; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! (yy_start) ) - (yy_start) = 1; /* first start state */ - - if ( ! librecode_yyin ) - librecode_yyin = stdin; - - if ( ! librecode_yyout ) - librecode_yyout = stdout; - - if ( ! YY_CURRENT_BUFFER ) { - librecode_yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - librecode_yy_create_buffer(librecode_yyin,YY_BUF_SIZE ); - } - - librecode_yy_load_buffer_state( ); - } - - while ( 1 ) /* loops until end-of-file is reached */ - { - yy_cp = (yy_c_buf_p); - - /* Support of librecode_yytext. */ - *yy_cp = (yy_hold_char); - - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = (yy_start); -yy_match: - do - { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 598 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 944 ); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - yy_act = yy_accept[yy_current_state]; - } - - YY_DO_BEFORE_ACTION; - -do_action: /* This label is used only to access EOF actions. */ - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = (yy_hold_char); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - -case YY_STATE_EOF(INITIAL): -case YY_STATE_EOF(ascii_latin1): -case YY_STATE_EOF(latex_latin1): -case YY_STATE_EOF(texte_latin1): -{ return 1; } - YY_BREAK - -case 1: -YY_RULE_SETUP -{ put_byte (171, subtask); } - YY_BREAK -case 2: -YY_RULE_SETUP -{ put_byte (187, subtask); } - YY_BREAK -case 3: -YY_RULE_SETUP -{ put_byte (192, subtask); } - YY_BREAK -case 4: -YY_RULE_SETUP -{ put_byte (193, subtask); } - YY_BREAK -case 5: -YY_RULE_SETUP -{ put_byte (194, subtask); } - YY_BREAK -case 6: -YY_RULE_SETUP -{ put_byte (195, subtask); } - YY_BREAK -case 7: -YY_RULE_SETUP -{ put_byte (196, subtask); } - YY_BREAK -case 8: -YY_RULE_SETUP -{ put_byte (199, subtask); } - YY_BREAK -case 9: -YY_RULE_SETUP -{ put_byte (200, subtask); } - YY_BREAK -case 10: -YY_RULE_SETUP -{ put_byte (201, subtask); } - YY_BREAK -case 11: -YY_RULE_SETUP -{ put_byte (202, subtask); } - YY_BREAK -case 12: -YY_RULE_SETUP -{ put_byte (203, subtask); } - YY_BREAK -case 13: -YY_RULE_SETUP -{ put_byte (204, subtask); } - YY_BREAK -case 14: -YY_RULE_SETUP -{ put_byte (205, subtask); } - YY_BREAK -case 15: -YY_RULE_SETUP -{ put_byte (206, subtask); } - YY_BREAK -case 16: -YY_RULE_SETUP -{ put_byte (207, subtask); } - YY_BREAK -case 17: -YY_RULE_SETUP -{ put_byte (209, subtask); } - YY_BREAK -case 18: -YY_RULE_SETUP -{ put_byte (210, subtask); } - YY_BREAK -case 19: -YY_RULE_SETUP -{ put_byte (211, subtask); } - YY_BREAK -case 20: -YY_RULE_SETUP -{ put_byte (212, subtask); } - YY_BREAK -case 21: -YY_RULE_SETUP -{ put_byte (213, subtask); } - YY_BREAK -case 22: -YY_RULE_SETUP -{ put_byte (214, subtask); } - YY_BREAK -case 23: -YY_RULE_SETUP -{ put_byte (216, subtask); } - YY_BREAK -case 24: -YY_RULE_SETUP -{ put_byte (217, subtask); } - YY_BREAK -case 25: -YY_RULE_SETUP -{ put_byte (218, subtask); } - YY_BREAK -case 26: -YY_RULE_SETUP -{ put_byte (219, subtask); } - YY_BREAK -case 27: -YY_RULE_SETUP -{ put_byte (220, subtask); } - YY_BREAK -case 28: -YY_RULE_SETUP -{ put_byte (221, subtask); } - YY_BREAK -case 29: -YY_RULE_SETUP -{ put_byte (223, subtask); } - YY_BREAK -case 30: -YY_RULE_SETUP -{ put_byte (224, subtask); } - YY_BREAK -case 31: -YY_RULE_SETUP -{ put_byte (225, subtask); } - YY_BREAK -case 32: -YY_RULE_SETUP -{ put_byte (226, subtask); } - YY_BREAK -case 33: -YY_RULE_SETUP -{ put_byte (227, subtask); } - YY_BREAK -case 34: -YY_RULE_SETUP -{ put_byte (228, subtask); } - YY_BREAK -case 35: -YY_RULE_SETUP -{ put_byte (231, subtask); } - YY_BREAK -case 36: -YY_RULE_SETUP -{ put_byte (232, subtask); } - YY_BREAK -case 37: -YY_RULE_SETUP -{ put_byte (233, subtask); } - YY_BREAK -case 38: -YY_RULE_SETUP -{ put_byte (234, subtask); } - YY_BREAK -case 39: -YY_RULE_SETUP -{ put_byte (235, subtask); } - YY_BREAK -case 40: -YY_RULE_SETUP -{ put_byte (236, subtask); } - YY_BREAK -case 41: -YY_RULE_SETUP -{ put_byte (237, subtask); } - YY_BREAK -case 42: -YY_RULE_SETUP -{ put_byte (238, subtask); } - YY_BREAK -case 43: -YY_RULE_SETUP -{ put_byte (239, subtask); } - YY_BREAK -case 44: -YY_RULE_SETUP -{ put_byte (241, subtask); } - YY_BREAK -case 45: -YY_RULE_SETUP -{ put_byte (242, subtask); } - YY_BREAK -case 46: -YY_RULE_SETUP -{ put_byte (243, subtask); } - YY_BREAK -case 47: -YY_RULE_SETUP -{ put_byte (244, subtask); } - YY_BREAK -case 48: -YY_RULE_SETUP -{ put_byte (245, subtask); } - YY_BREAK -case 49: -YY_RULE_SETUP -{ put_byte (246, subtask); } - YY_BREAK -case 50: -YY_RULE_SETUP -{ put_byte (248, subtask); } - YY_BREAK -case 51: -YY_RULE_SETUP -{ put_byte (249, subtask); } - YY_BREAK -case 52: -YY_RULE_SETUP -{ put_byte (250, subtask); } - YY_BREAK -case 53: -YY_RULE_SETUP -{ put_byte (251, subtask); } - YY_BREAK -case 54: -YY_RULE_SETUP -{ put_byte (252, subtask); } - YY_BREAK -case 55: -YY_RULE_SETUP -{ put_byte (253, subtask); } - YY_BREAK -case 56: -YY_RULE_SETUP -{ put_byte (255, subtask); } - YY_BREAK - - -case 57: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE ('#', subtask); } - YY_BREAK -case 58: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE ('$', subtask); } - YY_BREAK -case 59: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE ('%', subtask); } - YY_BREAK -case 60: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE ('&', subtask); } - YY_BREAK -case 61: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE ('_', subtask); } - YY_BREAK -case 62: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE ('{', subtask); } - YY_BREAK -case 63: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE ('}', subtask); } - YY_BREAK -case 64: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE ('\\', subtask); } - YY_BREAK -case 65: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (160, subtask); } - YY_BREAK -case 66: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (161, subtask); } - YY_BREAK -case 67: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (163, subtask); } - YY_BREAK -case 68: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (167, subtask); } - YY_BREAK -case 69: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (168, subtask); } - YY_BREAK -case 70: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (169, subtask); } - YY_BREAK -case 71: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (171, subtask); } - YY_BREAK -case 72: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (172, subtask); } - YY_BREAK -case 73: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (173, subtask); } - YY_BREAK -case 74: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (176, subtask); } - YY_BREAK -case 75: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (177, subtask); } - YY_BREAK -case 76: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (178, subtask); } - YY_BREAK -case 77: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (179, subtask); } - YY_BREAK -case 78: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (180, subtask); } - YY_BREAK -case 79: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (181, subtask); } - YY_BREAK -case 80: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (183, subtask); } - YY_BREAK -case 81: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (184, subtask); } - YY_BREAK -case 82: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (185, subtask); } - YY_BREAK -case 83: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (187, subtask); } - YY_BREAK -case 84: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (188, subtask); } - YY_BREAK -case 85: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (189, subtask); } - YY_BREAK -case 86: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (190, subtask); } - YY_BREAK -case 87: -YY_RULE_SETUP -{ PUT_NON_DIACRITIC_BYTE (191, subtask); } - YY_BREAK -case 88: -YY_RULE_SETUP -{ put_byte (192, subtask); } - YY_BREAK -case 89: -YY_RULE_SETUP -{ put_byte (193, subtask); } - YY_BREAK -case 90: -YY_RULE_SETUP -{ put_byte (194, subtask); } - YY_BREAK -case 91: -YY_RULE_SETUP -{ put_byte (195, subtask); } - YY_BREAK -case 92: -YY_RULE_SETUP -{ put_byte (196, subtask); } - YY_BREAK -case 93: -YY_RULE_SETUP -{ put_byte (197, subtask); } - YY_BREAK -case 94: -YY_RULE_SETUP -{ put_byte (198, subtask); } - YY_BREAK -case 95: -YY_RULE_SETUP -{ put_byte (199, subtask); } - YY_BREAK -case 96: -YY_RULE_SETUP -{ put_byte (200, subtask); } - YY_BREAK -case 97: -YY_RULE_SETUP -{ put_byte (201, subtask); } - YY_BREAK -case 98: -YY_RULE_SETUP -{ put_byte (202, subtask); } - YY_BREAK -case 99: -YY_RULE_SETUP -{ put_byte (203, subtask); } - YY_BREAK -case 100: -YY_RULE_SETUP -{ put_byte (204, subtask); } - YY_BREAK -case 101: -YY_RULE_SETUP -{ put_byte (205, subtask); } - YY_BREAK -case 102: -YY_RULE_SETUP -{ put_byte (206, subtask); } - YY_BREAK -case 103: -YY_RULE_SETUP -{ put_byte (207, subtask); } - YY_BREAK -case 104: -YY_RULE_SETUP -{ put_byte (209, subtask); } - YY_BREAK -case 105: -YY_RULE_SETUP -{ put_byte (210, subtask); } - YY_BREAK -case 106: -YY_RULE_SETUP -{ put_byte (211, subtask); } - YY_BREAK -case 107: -YY_RULE_SETUP -{ put_byte (212, subtask); } - YY_BREAK -case 108: -YY_RULE_SETUP -{ put_byte (213, subtask); } - YY_BREAK -case 109: -YY_RULE_SETUP -{ put_byte (214, subtask); } - YY_BREAK -case 110: -YY_RULE_SETUP -{ put_byte (216, subtask); } - YY_BREAK -case 111: -YY_RULE_SETUP -{ put_byte (217, subtask); } - YY_BREAK -case 112: -YY_RULE_SETUP -{ put_byte (218, subtask); } - YY_BREAK -case 113: -YY_RULE_SETUP -{ put_byte (219, subtask); } - YY_BREAK -case 114: -YY_RULE_SETUP -{ put_byte (220, subtask); } - YY_BREAK -case 115: -YY_RULE_SETUP -{ put_byte (221, subtask); } - YY_BREAK -case 116: -YY_RULE_SETUP -{ put_byte (223, subtask); } - YY_BREAK -case 117: -YY_RULE_SETUP -{ put_byte (224, subtask); } - YY_BREAK -case 118: -YY_RULE_SETUP -{ put_byte (225, subtask); } - YY_BREAK -case 119: -YY_RULE_SETUP -{ put_byte (226, subtask); } - YY_BREAK -case 120: -YY_RULE_SETUP -{ put_byte (227, subtask); } - YY_BREAK -case 121: -YY_RULE_SETUP -{ put_byte (228, subtask); } - YY_BREAK -case 122: -YY_RULE_SETUP -{ put_byte (229, subtask); } - YY_BREAK -case 123: -YY_RULE_SETUP -{ put_byte (230, subtask); } - YY_BREAK -case 124: -YY_RULE_SETUP -{ put_byte (231, subtask); } - YY_BREAK -case 125: -YY_RULE_SETUP -{ put_byte (232, subtask); } - YY_BREAK -case 126: -YY_RULE_SETUP -{ put_byte (233, subtask); } - YY_BREAK -case 127: -YY_RULE_SETUP -{ put_byte (234, subtask); } - YY_BREAK -case 128: -YY_RULE_SETUP -{ put_byte (235, subtask); } - YY_BREAK -case 129: -YY_RULE_SETUP -{ put_byte (236, subtask); } - YY_BREAK -case 130: -YY_RULE_SETUP -{ put_byte (237, subtask); } - YY_BREAK -case 131: -YY_RULE_SETUP -{ put_byte (238, subtask); } - YY_BREAK -case 132: -YY_RULE_SETUP -{ put_byte (239, subtask); } - YY_BREAK -case 133: -YY_RULE_SETUP -{ put_byte (241, subtask); } - YY_BREAK -case 134: -YY_RULE_SETUP -{ put_byte (242, subtask); } - YY_BREAK -case 135: -YY_RULE_SETUP -{ put_byte (243, subtask); } - YY_BREAK -case 136: -YY_RULE_SETUP -{ put_byte (244, subtask); } - YY_BREAK -case 137: -YY_RULE_SETUP -{ put_byte (245, subtask); } - YY_BREAK -case 138: -YY_RULE_SETUP -{ put_byte (246, subtask); } - YY_BREAK -case 139: -YY_RULE_SETUP -{ put_byte (248, subtask); } - YY_BREAK -case 140: -YY_RULE_SETUP -{ put_byte (249, subtask); } - YY_BREAK -case 141: -YY_RULE_SETUP -{ put_byte (250, subtask); } - YY_BREAK -case 142: -YY_RULE_SETUP -{ put_byte (251, subtask); } - YY_BREAK -case 143: -YY_RULE_SETUP -{ put_byte (252, subtask); } - YY_BREAK -case 144: -YY_RULE_SETUP -{ put_byte (253, subtask); } - YY_BREAK -case 145: -YY_RULE_SETUP -{ put_byte (255, subtask); } - YY_BREAK -case 146: -YY_RULE_SETUP -{ ECHO; } - YY_BREAK -case 147: -YY_RULE_SETUP -{ ECHO; } - YY_BREAK - - -case 148: -YY_RULE_SETUP -{ put_byte (171, subtask); } - YY_BREAK -case 149: -YY_RULE_SETUP -{ put_byte (187, subtask); } - YY_BREAK -case 150: -YY_RULE_SETUP -{ put_byte (192, subtask); } - YY_BREAK -case 151: -YY_RULE_SETUP -{ put_byte (194, subtask); } - YY_BREAK -case 152: -*yy_cp = (yy_hold_char); /* undo effects of setting up librecode_yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up librecode_yytext again */ -YY_RULE_SETUP -{ if (librecode_yytext[1] == request->diaeresis_char) - put_byte (196, subtask); - else - ECHO; - } - YY_BREAK -case 153: -YY_RULE_SETUP -{ put_byte (224, subtask); } - YY_BREAK -case 154: -YY_RULE_SETUP -{ put_byte (226, subtask); } - YY_BREAK -case 155: -*yy_cp = (yy_hold_char); /* undo effects of setting up librecode_yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up librecode_yytext again */ -YY_RULE_SETUP -{ if (librecode_yytext[1] == request->diaeresis_char) - put_byte (228, subtask); - else - ECHO; - } - YY_BREAK -case 156: -*yy_cp = (yy_hold_char); /* undo effects of setting up librecode_yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up librecode_yytext again */ -YY_RULE_SETUP -{ put_byte (199, subtask); } - YY_BREAK -case 157: -*yy_cp = (yy_hold_char); /* undo effects of setting up librecode_yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up librecode_yytext again */ -YY_RULE_SETUP -{ put_byte (231, subtask); } - YY_BREAK -case 158: -YY_RULE_SETUP -{ put_byte (200, subtask); } - YY_BREAK -case 159: -YY_RULE_SETUP -{ put_byte (201, subtask); put_byte (187, subtask); } - YY_BREAK -case 160: -YY_RULE_SETUP -{ put_byte ('E', subtask); put_byte (187, subtask); } - YY_BREAK -case 161: -YY_RULE_SETUP -{ put_byte (201, subtask); } - YY_BREAK -case 162: -YY_RULE_SETUP -{ put_byte (202, subtask); } - YY_BREAK -case 163: -*yy_cp = (yy_hold_char); /* undo effects of setting up librecode_yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up librecode_yytext again */ -YY_RULE_SETUP -{ if (librecode_yytext[1] == request->diaeresis_char) - put_byte (203, subtask); - else - ECHO; - } - YY_BREAK -case 164: -YY_RULE_SETUP -{ put_byte (232, subtask); } - YY_BREAK -case 165: -YY_RULE_SETUP -{ put_byte (233, subtask); put_byte (187, subtask); } - YY_BREAK -case 166: -YY_RULE_SETUP -{ put_byte ('e', subtask); put_byte (187, subtask); } - YY_BREAK -case 167: -YY_RULE_SETUP -{ put_byte (233, subtask); } - YY_BREAK -case 168: -YY_RULE_SETUP -{ put_byte (234, subtask); } - YY_BREAK -case 169: -*yy_cp = (yy_hold_char); /* undo effects of setting up librecode_yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up librecode_yytext again */ -YY_RULE_SETUP -{ if (librecode_yytext[1] == request->diaeresis_char) - put_byte (235, subtask); - else - ECHO; - } - YY_BREAK -case 170: -YY_RULE_SETUP -{ put_byte (204, subtask); } - YY_BREAK -case 171: -YY_RULE_SETUP -{ put_byte (206, subtask); } - YY_BREAK -case 172: -*yy_cp = (yy_hold_char); /* undo effects of setting up librecode_yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up librecode_yytext again */ -YY_RULE_SETUP -{ if (librecode_yytext[1] == request->diaeresis_char) - put_byte (207, subtask); - else - ECHO; - } - YY_BREAK -case 173: -YY_RULE_SETUP -{ put_byte (236, subtask); } - YY_BREAK -case 174: -YY_RULE_SETUP -{ put_byte (238, subtask); } - YY_BREAK -case 175: -*yy_cp = (yy_hold_char); /* undo effects of setting up librecode_yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up librecode_yytext again */ -YY_RULE_SETUP -{ if (librecode_yytext[1] == request->diaeresis_char) - put_byte (239, subtask); - else - ECHO; - } - YY_BREAK -case 176: -YY_RULE_SETUP -{ put_byte (210, subtask); } - YY_BREAK -case 177: -YY_RULE_SETUP -{ put_byte (212, subtask); } - YY_BREAK -case 178: -*yy_cp = (yy_hold_char); /* undo effects of setting up librecode_yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up librecode_yytext again */ -YY_RULE_SETUP -{ if (librecode_yytext[1] == request->diaeresis_char) - put_byte (214, subtask); - else - ECHO; - } - YY_BREAK -case 179: -YY_RULE_SETUP -{ put_byte (242, subtask); } - YY_BREAK -case 180: -YY_RULE_SETUP -{ put_byte (244, subtask); } - YY_BREAK -case 181: -*yy_cp = (yy_hold_char); /* undo effects of setting up librecode_yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up librecode_yytext again */ -YY_RULE_SETUP -{ if (librecode_yytext[1] == request->diaeresis_char) - put_byte (246, subtask); - else - ECHO; - } - YY_BREAK -case 182: -YY_RULE_SETUP -{ put_byte (217, subtask); } - YY_BREAK -case 183: -YY_RULE_SETUP -{ put_byte (219, subtask); } - YY_BREAK -case 184: -*yy_cp = (yy_hold_char); /* undo effects of setting up librecode_yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up librecode_yytext again */ -YY_RULE_SETUP -{ if (librecode_yytext[1] == request->diaeresis_char) - put_byte (220, subtask); - else - ECHO; - } - YY_BREAK -case 185: -YY_RULE_SETUP -{ put_byte (249, subtask); } - YY_BREAK -case 186: -YY_RULE_SETUP -{ put_byte (251, subtask); } - YY_BREAK -case 187: -*yy_cp = (yy_hold_char); /* undo effects of setting up librecode_yytext */ -(yy_c_buf_p) = yy_cp = yy_bp + 2; -YY_DO_BEFORE_ACTION; /* set up librecode_yytext again */ -YY_RULE_SETUP -{ if (librecode_yytext[1] == request->diaeresis_char) - put_byte (252, subtask); - else - ECHO; - } - YY_BREAK -case 188: -/* rule 188 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 189: -/* rule 189 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 190: -/* rule 190 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 191: -/* rule 191 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 192: -/* rule 192 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 193: -/* rule 193 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 194: -/* rule 194 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 195: -/* rule 195 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 196: -/* rule 196 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 197: -/* rule 197 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 198: -/* rule 198 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 199: -/* rule 199 can match eol */ -YY_RULE_SETUP -{ if (librecode_yytext[4] == request->diaeresis_char) - texte_latin1_diaeresis (); - else - ECHO; - } - YY_BREAK -case 200: -/* rule 200 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 201: -YY_RULE_SETUP -{ ECHO; } - YY_BREAK -case 202: -/* rule 202 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 203: -/* rule 203 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 204: -/* rule 204 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 205: -/* rule 205 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 206: -/* rule 206 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK -case 207: -/* rule 207 can match eol */ -YY_RULE_SETUP -{ texte_latin1_diaeresis (); } - YY_BREAK - -case 208: -YY_RULE_SETUP -ECHO; - YY_BREAK - - case YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = (yy_hold_char); - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed librecode_yyin at a new source and called - * librecode_yylex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = librecode_yyin; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - - if ( yy_next_state ) - { - /* Consume the NUL. */ - yy_cp = ++(yy_c_buf_p); - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { - yy_cp = (yy_c_buf_p); - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_END_OF_FILE: - { - (yy_did_buffer_switch_on_eof) = 0; - - if ( librecode_yywrap( ) ) - { - /* Note: because we've taken care in - * yy_get_next_buffer() to have set up - * librecode_yytext, we can now set up - * yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * YY_NULL, it'll still work - another - * YY_NULL will get returned. - */ - (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; - - yy_act = YY_STATE_EOF(YY_START); - goto do_action; - } - - else - { - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = - (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - (yy_c_buf_p) = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_find_action; - } - break; - } - - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -} /* end of librecode_yylex */ - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ -static int yy_get_next_buffer (void) -{ - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; - int ret_val; - - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; - - else - { - int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - - int yy_c_buf_p_offset = - (int) ((yy_c_buf_p) - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - librecode_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; - - } - - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; - - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), (size_t) num_to_read ); - - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - if ( (yy_n_chars) == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - librecode_yyrestart(librecode_yyin ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) librecode_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - } - - (yy_n_chars) += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - - (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; -} - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - - static yy_state_type yy_get_previous_state (void) -{ - register yy_state_type yy_current_state; - register char *yy_cp; - - yy_current_state = (yy_start); - - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) - { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 598 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - - return yy_current_state; -} - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = yy_try_NUL_trans( current_state ); - */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) -{ - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); - - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 598 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 597); - - return yy_is_jam ? 0 : yy_current_state; -} - -#ifndef YY_NO_INPUT -#ifdef __cplusplus - static int yyinput (void) -#else - static int input (void) -#endif - -{ - int c; - - *(yy_c_buf_p) = (yy_hold_char); - - if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - /* This was really a NUL. */ - *(yy_c_buf_p) = '\0'; - - else - { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); - ++(yy_c_buf_p); - - switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - librecode_yyrestart(librecode_yyin ); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( librecode_yywrap( ) ) - return EOF; - - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; -#ifdef __cplusplus - return yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = (yytext_ptr) + offset; - break; - } - } - } - - c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve librecode_yytext */ - (yy_hold_char) = *++(yy_c_buf_p); - - return c; -} -#endif /* ifndef YY_NO_INPUT */ - -/** Immediately switch to a different input stream. - * @param input_file A readable stream. - * - * @note This function does not reset the start condition to @c INITIAL . - */ - void librecode_yyrestart (FILE * input_file ) -{ - - if ( ! YY_CURRENT_BUFFER ){ - librecode_yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - librecode_yy_create_buffer(librecode_yyin,YY_BUF_SIZE ); - } - - librecode_yy_init_buffer(YY_CURRENT_BUFFER,input_file ); - librecode_yy_load_buffer_state( ); -} - -/** Switch to a different input buffer. - * @param new_buffer The new input buffer. - * - */ - void librecode_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) -{ - - /* TODO. We should be able to replace this entire function body - * with - * librecode_yypop_buffer_state(); - * librecode_yypush_buffer_state(new_buffer); - */ - librecode_yyensure_buffer_stack (); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - librecode_yy_load_buffer_state( ); - - /* We don't actually know whether we did this switch during - * EOF (librecode_yywrap()) processing, but the only time this flag - * is looked at is after librecode_yywrap() is called, so it's safe - * to go ahead and always set it. - */ - (yy_did_buffer_switch_on_eof) = 1; -} - -static void librecode_yy_load_buffer_state (void) -{ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - librecode_yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - (yy_hold_char) = *(yy_c_buf_p); -} - -/** Allocate and initialize an input buffer state. - * @param file A readable stream. - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - * - * @return the allocated buffer state. - */ - YY_BUFFER_STATE librecode_yy_create_buffer (FILE * file, int size ) -{ - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) librecode_yyalloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in librecode_yy_create_buffer()" ); - - b->yy_buf_size = size; - - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) librecode_yyalloc(b->yy_buf_size + 2 ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in librecode_yy_create_buffer()" ); - - b->yy_is_our_buffer = 1; - - librecode_yy_init_buffer(b,file ); - - return b; -} - -/** Destroy the buffer. - * @param b a buffer created with librecode_yy_create_buffer() - * - */ - void librecode_yy_delete_buffer (YY_BUFFER_STATE b ) -{ - - if ( ! b ) - return; - - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - - if ( b->yy_is_our_buffer ) - librecode_yyfree((void *) b->yy_ch_buf ); - - librecode_yyfree((void *) b ); -} - -#ifndef __cplusplus -extern int isatty (int ); -#endif /* __cplusplus */ - -/* Initializes or reinitializes a buffer. - * This function is sometimes called more than once on the same buffer, - * such as during a librecode_yyrestart() or at EOF. - */ - static void librecode_yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) - -{ - int oerrno = errno; - - librecode_yy_flush_buffer(b ); - - b->yy_input_file = file; - b->yy_fill_buffer = 1; - - /* If b is the current buffer, then librecode_yy_init_buffer was _probably_ - * called from librecode_yyrestart() or through yy_get_next_buffer. - * In that case, we don't want to reset the lineno or column. - */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; - - errno = oerrno; -} - -/** Discard all buffered characters. On the next scan, YY_INPUT will be called. - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - * - */ - void librecode_yy_flush_buffer (YY_BUFFER_STATE b ) -{ - if ( ! b ) - return; - - b->yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - - b->yy_buf_pos = &b->yy_ch_buf[0]; - - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; - - if ( b == YY_CURRENT_BUFFER ) - librecode_yy_load_buffer_state( ); -} - -/** Pushes the new state onto the stack. The new state becomes - * the current state. This function will allocate the stack - * if necessary. - * @param new_buffer The new state. - * - */ -void librecode_yypush_buffer_state (YY_BUFFER_STATE new_buffer ) -{ - if (new_buffer == NULL) - return; - - librecode_yyensure_buffer_stack(); - - /* This block is copied from librecode_yy_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - (yy_buffer_stack_top)++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from librecode_yy_switch_to_buffer. */ - librecode_yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; -} - -/** Removes and deletes the top of the stack, if present. - * The next element becomes the new top. - * - */ -void librecode_yypop_buffer_state (void) -{ - if (!YY_CURRENT_BUFFER) - return; - - librecode_yy_delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - if ((yy_buffer_stack_top) > 0) - --(yy_buffer_stack_top); - - if (YY_CURRENT_BUFFER) { - librecode_yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; - } -} - -/* Allocates the stack if it does not exist. - * Guarantees space for at least one push. - */ -static void librecode_yyensure_buffer_stack (void) -{ - int num_to_alloc; - - if (!(yy_buffer_stack)) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)librecode_yyalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in librecode_yyensure_buffer_stack()" ); - - memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - (yy_buffer_stack_max) = num_to_alloc; - (yy_buffer_stack_top) = 0; - return; - } - - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)librecode_yyrealloc - ((yy_buffer_stack), - num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in librecode_yyensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); - (yy_buffer_stack_max) = num_to_alloc; - } -} - -/** Setup the input buffer state to scan directly from a user-specified character buffer. - * @param base the character buffer - * @param size the size in bytes of the character buffer - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE librecode_yy_scan_buffer (char * base, yy_size_t size ) -{ - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (YY_BUFFER_STATE) librecode_yyalloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in librecode_yy_scan_buffer()" ); - - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = 0; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - librecode_yy_switch_to_buffer(b ); - - return b; -} - -/** Setup the input buffer state to scan a string. The next call to librecode_yylex() will - * scan from a @e copy of @a str. - * @param yystr a NUL-terminated string to scan - * - * @return the newly allocated buffer state object. - * @note If you want to scan bytes that may contain NUL values, then use - * librecode_yy_scan_bytes() instead. - */ -YY_BUFFER_STATE librecode_yy_scan_string (yyconst char * yystr ) -{ - - return librecode_yy_scan_bytes(yystr,strlen(yystr) ); -} - -/** Setup the input buffer state to scan the given bytes. The next call to librecode_yylex() will - * scan from a @e copy of @a bytes. - * @param yybytes the byte buffer to scan - * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE librecode_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) -{ - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) librecode_yyalloc(n ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in librecode_yy_scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = librecode_yy_scan_buffer(buf,n ); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in librecode_yy_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; - - return b; -} - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -static void yy_fatal_error (yyconst char* msg ) -{ - (void) fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); -} - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up librecode_yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - librecode_yytext[librecode_yyleng] = (yy_hold_char); \ - (yy_c_buf_p) = librecode_yytext + yyless_macro_arg; \ - (yy_hold_char) = *(yy_c_buf_p); \ - *(yy_c_buf_p) = '\0'; \ - librecode_yyleng = yyless_macro_arg; \ - } \ - while ( 0 ) - -/* Accessor methods (get/set functions) to struct members. */ - -/** Get the current line number. - * - */ -int librecode_yyget_lineno (void) -{ - - return librecode_yylineno; -} - -/** Get the input stream. - * - */ -FILE *librecode_yyget_in (void) -{ - return librecode_yyin; -} - -/** Get the output stream. - * - */ -FILE *librecode_yyget_out (void) -{ - return librecode_yyout; -} - -/** Get the length of the current token. - * - */ -int librecode_yyget_leng (void) -{ - return librecode_yyleng; -} - -/** Get the current token. - * - */ - -char *librecode_yyget_text (void) -{ - return librecode_yytext; -} - -/** Set the current line number. - * @param line_number - * - */ -void librecode_yyset_lineno (int line_number ) -{ - - librecode_yylineno = line_number; -} - -/** Set the input stream. This does not discard the current - * input buffer. - * @param in_str A readable stream. - * - * @see librecode_yy_switch_to_buffer - */ -void librecode_yyset_in (FILE * in_str ) -{ - librecode_yyin = in_str ; -} - -void librecode_yyset_out (FILE * out_str ) -{ - librecode_yyout = out_str ; -} - -int librecode_yyget_debug (void) -{ - return librecode_yy_flex_debug; -} - -void librecode_yyset_debug (int bdebug ) -{ - librecode_yy_flex_debug = bdebug ; -} - -static int yy_init_globals (void) -{ - /* Initialization is the same as for the non-reentrant scanner. - * This function is called from librecode_yylex_destroy(), so don't allocate here. - */ - - (yy_buffer_stack) = 0; - (yy_buffer_stack_top) = 0; - (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; - (yy_init) = 0; - (yy_start) = 0; - -/* Defined in main.c */ -#ifdef YY_STDINIT - librecode_yyin = stdin; - librecode_yyout = stdout; -#else - librecode_yyin = (FILE *) 0; - librecode_yyout = (FILE *) 0; -#endif - - /* For future reference: Set errno on error, since we are called by - * librecode_yylex_init() - */ - return 0; -} - -/* librecode_yylex_destroy is for both reentrant and non-reentrant scanners. */ -int librecode_yylex_destroy (void) -{ - - /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - librecode_yy_delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - librecode_yypop_buffer_state(); - } - - /* Destroy the stack itself. */ - librecode_yyfree((yy_buffer_stack) ); - (yy_buffer_stack) = NULL; - - /* Reset the globals. This is important in a non-reentrant scanner so the next time - * librecode_yylex() is called, initialization will occur. */ - yy_init_globals( ); - - return 0; -} - -/* - * Internal utility routines. - */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) -{ - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; -} -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) -{ - register int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; -} -#endif - -void *librecode_yyalloc (yy_size_t size ) -{ - return (void *) malloc( size ); -} - -void *librecode_yyrealloc (void * ptr, yy_size_t size ) -{ - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); -} - -void librecode_yyfree (void * ptr ) -{ - free( (char *) ptr ); /* see librecode_yyrealloc() for (char *) cast */ -} - -#define YYTABLES_NAME "yytables" - - - -/* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 97, 98, 99, 00 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by François Pinard , 1988. - - This 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. - - 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. - - You should have received a copy of the GNU Library General Public - License along with the Recode 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. */ - - -static bool -transform_ascii_latin1 (RECODE_SUBTASK subtask_argument) -{ - subtask = subtask_argument; - request = subtask->task->request; - yy_init = 0; - librecode_yyin = subtask->input.file; - librecode_yyout = subtask->output.file; - BEGIN ascii_latin1; - return librecode_yylex (); -} - -bool -module_ascii_latin1 (RECODE_OUTER outer) -{ - if (!declare_single (outer, "ASCII-BS", "Latin-1", - outer->quality_variable_to_byte, - NULL, transform_ascii_latin1)) - return false; - - return true; -} - -void -delmodule_ascii_latin1 (RECODE_OUTER outer) -{ -} -/* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 97, 98, 99, 00 Free Software Foundation, Inc. - Contributed by François Pinard , 1988. - - This 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. - - 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. - - You should have received a copy of the GNU Library General Public - License along with the Recode 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. */ - - -static bool -transform_latex_latin1 (RECODE_SUBTASK subtask_argument) -{ - subtask = subtask_argument; - request = subtask->task->request; - yy_init = 0; - librecode_yyin = subtask->input.file; - librecode_yyout = subtask->output.file; - BEGIN latex_latin1; - return librecode_yylex (); -} - -bool -module_latex_latin1 (RECODE_OUTER outer) -{ - return - declare_single (outer, "LaTeX", "Latin-1", - outer->quality_variable_to_byte, - NULL, transform_latex_latin1) - && declare_alias (outer, "TeX", "LaTeX") - && declare_alias (outer, "ltex", "LaTeX"); -} - -void -delmodule_latex_latin1 (RECODE_OUTER outer) -{ -} -/* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 97, 98, 99, 00 Free Software Foundation, Inc. - Contributed by François Pinard , 1989. - - This 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. - - 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. - - You should have received a copy of the GNU Library General Public - License along with the Recode 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. */ - - -static bool -transform_texte_latin1 (RECODE_SUBTASK subtask_argument) -{ - subtask = subtask_argument; - request = subtask->task->request; - yy_init = 0; - librecode_yyin = subtask->input.file; - librecode_yyout = subtask->output.file; - BEGIN texte_latin1; - return librecode_yylex (); -} - -void -texte_latin1_diaeresis (void) -{ - unsigned counter; - - for (counter = 0; counter < librecode_yyleng; counter++) - if (librecode_yytext[counter+1] == request->diaeresis_char) - { - switch (librecode_yytext[counter]) - { - /* The next "case 'A'" line once triggered a `NULL in input' - diagnostic in flex. This astonishing bug has been hard to - isolate, so I'll leave this comment around for a while. */ - - case 'A': put_byte (196, subtask); break; - case 'E': put_byte (203, subtask); break; - case 'I': put_byte (207, subtask); break; - case 'O': put_byte (214, subtask); break; - case 'U': put_byte (220, subtask); break; - case 'a': put_byte (228, subtask); break; - case 'e': put_byte (235, subtask); break; - case 'i': put_byte (239, subtask); break; - case 'o': put_byte (246, subtask); break; - case 'u': put_byte (252, subtask); break; - case 'y': put_byte (255, subtask); break; - default: put_byte (librecode_yytext[counter], subtask); - } - counter++; - } - else - put_byte (librecode_yytext[counter], subtask); -} - -bool -module_texte_latin1 (RECODE_OUTER outer) -{ - return - declare_single (outer, "Texte", "Latin-1", - outer->quality_variable_to_byte, NULL, - transform_texte_latin1) - && declare_alias (outer, "txte", "Texte"); -} - -void -delmodule_texte_latin1 (RECODE_OUTER outer) -{ -} - diff --git a/src/mergelex.py b/src/mergelex.py index 67233cf..3e8c940 100644 --- a/src/mergelex.py +++ b/src/mergelex.py @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- # Conversion of files between different charsets and surfaces. -# Copyright © 1990, 93, 94, 95, 97, 99, 00 Free Software Foundation, Inc. +# Copyright © 1990-2019 Free Software Foundation, Inc. # François Pinard , 1990. # # 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 2, or (at your option) +# the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, but @@ -14,8 +14,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# along with this program; if not, see . # This Python script merges several Flex sources intended for Recode. # It requires Flex 2.5 or later. @@ -38,7 +37,7 @@ #define YY_INPUT(buf, result, max_size) \ { \ - int c = get_byte (subtask); \ + int c = recode_get_byte (subtask); \ result = (c == EOF) ? YY_NULL : (buf[0] = c, 1); \ } %} diff --git a/src/mixed.c b/src/mixed.c index ec0ff60..2fd60c1 100644 --- a/src/mixed.c +++ b/src/mixed.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990,92,93,94,96,97,98,99,00 Free Software Foundation, Inc. + Copyright © 1990-2023 Free Software Foundation, Inc. François Pinard , 1990. 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 2, or (at your option) any later + Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but @@ -13,9 +13,10 @@ Public License for more details. You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + along with this program; if not, see . +*/ +#include "config.h" #include "common.h" /*================================\ @@ -40,14 +41,13 @@ open_mixed (struct mixed *mixed, RECODE_TASK task) { mixed->input_name = task->input.name; mixed->output_name = task->output.name; - task->strategy = RECODE_SEQUENCE_IN_MEMORY; task->byte_order_mark = false; /* Open both files ourselves. */ if (!*(task->input.name)) task->input.file = stdin; - else if (task->input.file = fopen (mixed->input_name, "r"), + else if (task->input.file = fopen (mixed->input_name, "rb"), !task->input.file) { recode_perror (NULL, "fopen (%s)", task->input.name); @@ -57,12 +57,11 @@ open_mixed (struct mixed *mixed, RECODE_TASK task) if (!*(task->output.name)) task->output.file = stdout; - else if (task->output.file = fopen (mixed->output_name, "w"), + else if (task->output.file = fopen (mixed->output_name, "wb"), !task->output.file) { recode_perror (NULL, "fopen (%s)", task->output.name); - if (task->input.file != stdin) - fclose (task->input.file); + fclose (task->input.file); return false; } task->output.name = NULL; @@ -78,25 +77,28 @@ open_mixed (struct mixed *mixed, RECODE_TASK task) return true; } -static void +static bool close_mixed (struct mixed *mixed) { /* Clean up. */ - if (*(mixed->input_name)) - fclose (mixed->subtask.task->input.file); - if (*(mixed->output_name)) - fclose (mixed->subtask.task->output.file); + if (mixed->subtask.task->input.file + && fclose (mixed->subtask.task->input.file) != 0) + return false; + if (mixed->subtask.task->output.file + && fclose (mixed->subtask.task->output.file) != 0) + return false; + return true; } -static /*inline*/ void +static void start_accumulation (struct mixed *mixed) { mixed->buffer.cursor = mixed->buffer.buffer; mixed->subtask.output = mixed->buffer; } -static /*inline*/ bool +static bool recode_accumulated (struct mixed *mixed) { RECODE_TASK task = mixed->subtask.task; @@ -122,164 +124,166 @@ recode_accumulated (struct mixed *mixed) `-----------------------------------------------------------------------*/ bool -transform_c_source (RECODE_TASK task) +recode_transform_c_source (RECODE_TASK task) { struct mixed mixed; - bool status = true; int character; if (!open_mixed (&mixed, task)) - return false; - - character = get_byte (&mixed.subtask); - while (character != EOF) - switch (character) - { - case '\'': - /* Skip character constant, while copying it untranslated. */ - - put_byte ('\'', &mixed.subtask); - character = get_byte (&mixed.subtask); - - if (character == EOF) - { - status = false; - break; - } - - if (character == '\\') - { - put_byte ('\\', &mixed.subtask); - character = get_byte (&mixed.subtask); - if (character == EOF) - { - status = false; - break; - } - put_byte (character, &mixed.subtask); - character = get_byte (&mixed.subtask); - } - - if (character == '\'') + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); + else + { + character = recode_get_byte (&mixed.subtask); + while (character != EOF) + switch (character) { - put_byte ('\'', &mixed.subtask); - character = get_byte (&mixed.subtask); - } - else - status = false; - break; + case '\'': + /* Skip character constant, while copying it untranslated. */ - case '"': - /* Copy the string, translated. */ + recode_put_byte ('\'', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); - put_byte ('"', &mixed.subtask); - character = get_byte (&mixed.subtask); - - /* Read in string. */ - - start_accumulation (&mixed); - - while (true) - { if (character == EOF) { - recode_accumulated (&mixed); - status = false; + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); break; } - if (character == '"') - break; if (character == '\\') { - put_byte ('\\', &mixed.subtask); - character = get_byte (&mixed.subtask); + recode_put_byte ('\\', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); if (character == EOF) { - recode_accumulated (&mixed); - status = false; + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); break; } + recode_put_byte (character, &mixed.subtask); + character = recode_get_byte (&mixed.subtask); } - put_byte (character, &mixed.subtask); - character = get_byte (&mixed.subtask); - } - if (character == EOF) - break; - - /* Translate string and dump it. */ - - if (!recode_accumulated (&mixed)) - status = false; - put_byte ('"', &mixed.subtask); - character = get_byte (&mixed.subtask); - break; - - case '/': - put_byte ('/', &mixed.subtask); - character = get_byte (&mixed.subtask); - if (character == EOF) - break; - if (character == '*') - { - /* Copy the comment, translated. */ - put_byte ('*', &mixed.subtask); - character = get_byte (&mixed.subtask); + if (character == '\'') + { + recode_put_byte ('\'', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + } + else + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); + break; + + case '"': + /* Copy the string, translated. */ - /* Read in comment. */ + recode_put_byte ('"', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + + /* Read in string. */ start_accumulation (&mixed); + while (true) { if (character == EOF) { recode_accumulated (&mixed); - status = false; + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); break; } - if (character == '*') + if (character == '"') + break; + + if (character == '\\') { - character = get_byte (&mixed.subtask); + recode_put_byte ('\\', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); if (character == EOF) { recode_accumulated (&mixed); - status = false; - put_byte ('*', &mixed.subtask); + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); break; } - if (character == '/') - break; - put_byte ('*', &mixed.subtask); - } - else - { - put_byte (character, &mixed.subtask); - character = get_byte (&mixed.subtask); } + recode_put_byte (character, &mixed.subtask); + character = recode_get_byte (&mixed.subtask); } - if (character == EOF) break; - /* Translate comment and dump it. */ + /* Translate string and dump it. */ if (!recode_accumulated (&mixed)) - status = false; - put_byte ('*', &mixed.subtask); - put_byte ('/', &mixed.subtask); - character = get_byte (&mixed.subtask); - } - break; + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); + recode_put_byte ('"', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + break; - default: - put_byte (character, &mixed.subtask); - character = get_byte (&mixed.subtask); - break; - } + case '/': + recode_put_byte ('/', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + if (character == EOF) + break; + if (character == '*') + { + /* Copy the comment, translated. */ - close_mixed (&mixed); - return status; + recode_put_byte ('*', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + + /* Read in comment. */ + + start_accumulation (&mixed); + while (true) + { + if (character == EOF) + { + recode_accumulated (&mixed); + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); + break; + } + if (character == '*') + { + character = recode_get_byte (&mixed.subtask); + if (character == EOF) + { + recode_accumulated (&mixed); + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); + recode_put_byte ('*', &mixed.subtask); + break; + } + if (character == '/') + break; + recode_put_byte ('*', &mixed.subtask); + } + else + { + recode_put_byte (character, &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + } + } + + if (character == EOF) + break; + + /* Translate comment and dump it. */ + + if (!recode_accumulated (&mixed)) + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); + recode_put_byte ('*', &mixed.subtask); + recode_put_byte ('/', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + } + break; + + default: + recode_put_byte (character, &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + break; + } + } + + if (!close_mixed (&mixed)) + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); + SUBTASK_RETURN (&mixed.subtask); } /*------------------------------------------------------------------------. @@ -295,143 +299,138 @@ transform_c_source (RECODE_TASK task) with a real case, to believe it is worth adding the complexity. */ bool -transform_po_source (RECODE_TASK task) +recode_transform_po_source (RECODE_TASK task) { struct mixed mixed; - bool status = true; bool recode = false; bool msgstr = false; - int character; if (!open_mixed (&mixed, task)) - return false; - - character = get_byte (&mixed.subtask); - while (character != EOF) - switch (character) - { - case '#': - /* Copy a comment, recoding only those written by translators. */ + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); + else + { + int character = recode_get_byte (&mixed.subtask); + while (character != EOF) + switch (character) + { + case '#': + /* Copy a comment, recoding only those written by translators. */ - put_byte ('#', &mixed.subtask); - character = get_byte (&mixed.subtask); - if (character == EOF) - break; - recode = character == ' ' || character == '\t'; + recode_put_byte ('#', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + if (character == EOF) + break; + recode = character == ' ' || character == '\t'; - if (recode) - start_accumulation (&mixed); + if (recode) + start_accumulation (&mixed); - while (character != '\n' && character != EOF) - { - put_byte (character, &mixed.subtask); - character = get_byte (&mixed.subtask); - } + while (character != '\n' && character != EOF) + { + recode_put_byte (character, &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + } - if (recode) - { - if (!recode_accumulated (&mixed)) - status = false; - } + if (recode && !recode_accumulated (&mixed)) + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); - if (character == EOF) - break; - put_byte ('\n', &mixed.subtask); - character = get_byte (&mixed.subtask); - break; - - case 'm': - /* Attempt to recognise `msgstr'. */ - - msgstr = false; - - put_byte ('m', &mixed.subtask); - character = get_byte (&mixed.subtask); - if (character != 's') - break; - put_byte ('s', &mixed.subtask); - character = get_byte (&mixed.subtask); - if (character != 'g') - break; - put_byte ('g', &mixed.subtask); - character = get_byte (&mixed.subtask); - if (character != 's') - break; - put_byte ('s', &mixed.subtask); - character = get_byte (&mixed.subtask); - if (character != 't') - break; - put_byte ('t', &mixed.subtask); - character = get_byte (&mixed.subtask); - if (character != 'r') - break; - put_byte ('r', &mixed.subtask); - character = get_byte (&mixed.subtask); - - msgstr = true; - break; - - case '"': - /* Copy the string, translating only the `msgstr' ones. */ - - put_byte ('"', &mixed.subtask); - character = get_byte (&mixed.subtask); - recode = msgstr; - - if (recode) - start_accumulation (&mixed); - - while (true) - { if (character == EOF) - { - if (recode) - { - recode_accumulated (&mixed); - status = false; - } - break; - } - if (character == '"') break; + recode_put_byte ('\n', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + break; - if (character == '\\') + case 'm': + /* Attempt to recognise `msgstr'. */ + + msgstr = false; + + recode_put_byte ('m', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + if (character != 's') + break; + recode_put_byte ('s', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + if (character != 'g') + break; + recode_put_byte ('g', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + if (character != 's') + break; + recode_put_byte ('s', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + if (character != 't') + break; + recode_put_byte ('t', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + if (character != 'r') + break; + recode_put_byte ('r', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + + msgstr = true; + break; + + case '"': + /* Copy the string, translating only the `msgstr' ones. */ + + recode_put_byte ('"', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + recode = msgstr; + + if (recode) + start_accumulation (&mixed); + + while (true) { - put_byte ('\\', &mixed.subtask); - character = get_byte (&mixed.subtask); if (character == EOF) { if (recode) { recode_accumulated (&mixed); - status = false; + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); } break; } + if (character == '"') + break; + + if (character == '\\') + { + recode_put_byte ('\\', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + if (character == EOF) + { + if (recode) + { + recode_accumulated (&mixed); + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); + } + break; + } + } + recode_put_byte (character, &mixed.subtask); + character = recode_get_byte (&mixed.subtask); } - put_byte (character, &mixed.subtask); - character = get_byte (&mixed.subtask); - } - if (character == EOF) - break; + if (character == EOF) + break; - if (recode) - { - if (!recode_accumulated (&mixed)) - status = false; - } + if (recode && !recode_accumulated (&mixed)) + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); - put_byte ('"', &mixed.subtask); - character = get_byte (&mixed.subtask); - break; + recode_put_byte ('"', &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + break; - default: - put_byte (character, &mixed.subtask); - character = get_byte (&mixed.subtask); - break; - } + default: + recode_put_byte (character, &mixed.subtask); + character = recode_get_byte (&mixed.subtask); + break; + } + } - close_mixed (&mixed); - return status; + if (!close_mixed (&mixed)) + recode_if_nogo (RECODE_SYSTEM_ERROR, &mixed.subtask); + SUBTASK_RETURN (&mixed.subtask); } diff --git a/src/mule.c b/src/mule.c index 83c06d0..5bdfc1a 100644 --- a/src/mule.c +++ b/src/mule.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1997, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1997-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1997. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" static bool transform_latin_mule (RECODE_SUBTASK subtask, @@ -25,11 +27,11 @@ transform_latin_mule (RECODE_SUBTASK subtask, { int character; - while (character = get_byte (subtask), character != EOF) + while (character = recode_get_byte (subtask), character != EOF) { if (!IS_ASCII (character)) - put_byte (prefix, subtask); - put_byte (character, subtask); + recode_put_byte (prefix, subtask); + recode_put_byte (character, subtask); } SUBTASK_RETURN (subtask); } @@ -40,20 +42,20 @@ transform_mule_latin (RECODE_SUBTASK subtask, { int character; - while (character = get_byte (subtask), character != EOF) + while (character = recode_get_byte (subtask), character != EOF) if (IS_ASCII (character)) - put_byte (character, subtask); - else if ((character & MASK (8)) == prefix) + recode_put_byte (character, subtask); + else if ((character & BIT_MASK (8)) == prefix) { - character = get_byte (subtask); + character = recode_get_byte (subtask); - while ((character & MASK (8)) == prefix) + while ((character & BIT_MASK (8)) == prefix) { /* This happens in practice, sometimes, that Emacs goes a bit berzerk and generates strings of prefix characters. Remove all succeeding prefixes in a row. This is irreversible. */ RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); - character = get_byte (subtask); + character = recode_get_byte (subtask); } if (character == EOF) @@ -64,7 +66,7 @@ transform_mule_latin (RECODE_SUBTASK subtask, if (IS_ASCII (character)) RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); - put_byte (character, subtask); + recode_put_byte (character, subtask); } else RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask); @@ -97,21 +99,21 @@ bool module_mule (RECODE_OUTER outer) { return - declare_single (outer, "ISO-8859-1", "Mule", + recode_declare_single (outer, "ISO-8859-1", "Mule", outer->quality_byte_to_variable, NULL, transform_latin1_mule) - && declare_single (outer, "Mule", "ISO-8859-1", + && recode_declare_single (outer, "Mule", "ISO-8859-1", outer->quality_variable_to_byte, NULL, transform_mule_latin1) - && declare_single (outer, "ISO-8859-2", "Mule", + && recode_declare_single (outer, "ISO-8859-2", "Mule", outer->quality_byte_to_variable, NULL, transform_latin2_mule) - && declare_single (outer, "Mule", "ISO-8859-2", + && recode_declare_single (outer, "Mule", "ISO-8859-2", outer->quality_variable_to_byte, NULL, transform_mule_latin2); } void -delmodule_mule (RECODE_OUTER outer) +delmodule_mule (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/names.c b/src/names.c index bf94bf4..e3bdb55 100644 --- a/src/names.c +++ b/src/names.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1993, 94, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1993-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1993. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,11 +14,14 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include + #include "hash.h" /*-------------------------------------------------------------------------. @@ -26,22 +29,26 @@ | negative number if this symbol is not defined. | `-------------------------------------------------------------------------*/ -int -code_to_ucs2 (RECODE_CONST_SYMBOL charset, unsigned code) +_GL_ATTRIBUTE_PURE int +recode_code_to_ucs2 (RECODE_CONST_SYMBOL charset, unsigned code) { + /* FIXME: if no specific UCS-2 translation, assume an identity map. */ + if (charset->data_type != RECODE_STRIP_DATA) + return code; + const struct strip_data *data = (const struct strip_data *) charset->data; const recode_ucs2 *pool = data->pool; unsigned offset = data->offset[code / STRIP_SIZE]; unsigned value = pool[offset + code % STRIP_SIZE]; - return value == MASK (16) ? -1 : (int) value; + return value == BIT_MASK (16) ? -1 : (int) value; } /*---------------------------------------------------------. | Return true if BEFORE to AFTER is currently restricted. | `---------------------------------------------------------*/ -static bool +static _GL_ATTRIBUTE_PURE bool check_restricted (RECODE_CONST_OUTER outer, RECODE_CONST_SYMBOL before, RECODE_CONST_SYMBOL after) @@ -50,12 +57,6 @@ check_restricted (RECODE_CONST_OUTER outer, int left; int right; - /* Reject the charset if no UCS-2 translation known for it. */ - - if (before->data_type != RECODE_STRIP_DATA - || after->data_type != RECODE_STRIP_DATA) - return true; - for (pair = outer->pair_restriction; pair < outer->pair_restriction + outer->pair_restrictions; pair++) @@ -63,10 +64,10 @@ check_restricted (RECODE_CONST_OUTER outer, /* Reject the charset if the characters in the pair do not exist of if their respective definition do not match. */ - left = code_to_ucs2 (before, pair->left); + left = recode_code_to_ucs2 (before, pair->left); if (left < 0) return true; - right = code_to_ucs2 (after, pair->right); + right = recode_code_to_ucs2 (after, pair->right); if (right < 0) return true; if (left != right) @@ -116,7 +117,7 @@ alias_free (void *void_alias) } bool -prepare_for_aliases (RECODE_OUTER outer) +recode_prepare_for_aliases (RECODE_OUTER outer) { outer->symbol_list = NULL; outer->number_of_symbols = 0; @@ -185,13 +186,8 @@ disambiguate_name (RECODE_OUTER outer, case ALIAS_FIND_AS_CHARSET: case ALIAS_FIND_AS_EITHER: name = getenv ("DEFAULT_CHARSET"); -#ifdef DEFAULT_CHARSET - if (!name || !*name) - name = DEFAULT_CHARSET; -#else if (!name || !*name) name = locale_charset(); -#endif if (!name || !*name) return NULL; break; @@ -208,45 +204,48 @@ disambiguate_name (RECODE_OUTER outer, { case SYMBOL_CREATE_CHARSET: case SYMBOL_CREATE_DATA_SURFACE: - case SYMBOL_CREATE_TREE_SURFACE: abort (); case ALIAS_FIND_AS_CHARSET: - /* FIXME: How to avoid those ugly casts? */ - ordinal = argmatch (hashname, - (const char *const *) outer->argmatch_charset_array, - NULL, 0); + ordinal = argmatch (hashname, outer->argmatch_charset_array, NULL, 0); result = ordinal < 0 ? NULL : outer->realname_charset_array[ordinal]; break; case ALIAS_FIND_AS_SURFACE: - ordinal = argmatch (hashname, - (const char *const *) outer->argmatch_surface_array, - NULL, 0); + ordinal = argmatch (hashname, outer->argmatch_surface_array, NULL, 0); result = ordinal < 0 ? NULL : outer->realname_surface_array[ordinal]; break; case ALIAS_FIND_AS_EITHER: - ordinal = argmatch (hashname, - (const char *const *) outer->argmatch_charset_array, - NULL, 0); + ordinal = argmatch (hashname, outer->argmatch_charset_array, NULL, 0); if (ordinal >= 0) result = outer->realname_charset_array[ordinal]; else { - ordinal = argmatch (hashname, - (const char *const *) - outer->argmatch_surface_array, - NULL, 0); + ordinal = argmatch (hashname, outer->argmatch_surface_array, NULL, 0); result = ordinal < 0 ? NULL : outer->realname_surface_array[ordinal]; } break; + + default: + break; } free (hashname); return result; } +/*----------------------------------------------------------------------------. +| Delete the given alias. | +`----------------------------------------------------------------------------*/ + +void +recode_delete_alias (RECODE_ALIAS alias) +{ + free (alias->symbol); + free (alias); +} + /*----------------------------------------------------------------------------. | Return the alias from its given NAME, possibly abbreviated. If FIND_TYPE | | is any of SYMBOL_CREATE_*, NAME is not abbreviated, create a new symbol if | @@ -256,7 +255,7 @@ disambiguate_name (RECODE_OUTER outer, `----------------------------------------------------------------------------*/ RECODE_ALIAS -find_alias (RECODE_OUTER outer, const char *name, +recode_find_alias (RECODE_OUTER outer, const char *name, enum alias_find_type find_type) { struct recode_alias lookup; @@ -274,10 +273,6 @@ find_alias (RECODE_OUTER outer, const char *name, type = RECODE_DATA_SURFACE; break; - case SYMBOL_CREATE_TREE_SURFACE: - type = RECODE_TREE_SURFACE; - break; - default: /* Clean and disambiguate first as requested. */ @@ -321,8 +316,7 @@ find_alias (RECODE_OUTER outer, const char *name, alias->implied_surfaces = NULL; if (!hash_insert ((Hash_table *) outer->alias_table, alias)) { - free (symbol); - free (alias); + recode_delete_alias (alias); return NULL; } @@ -338,7 +332,7 @@ find_alias (RECODE_OUTER outer, const char *name, `-----------------------------------------------------------------------*/ RECODE_ALIAS -declare_alias (RECODE_OUTER outer, const char *name, const char *old_name) +recode_declare_alias (RECODE_OUTER outer, const char *name, const char *old_name) { struct recode_alias lookup; RECODE_ALIAS alias; @@ -346,7 +340,7 @@ declare_alias (RECODE_OUTER outer, const char *name, const char *old_name) /* Find the symbol. */ - if (alias = find_alias (outer, old_name, SYMBOL_CREATE_CHARSET), !alias) + if (alias = recode_find_alias (outer, old_name, SYMBOL_CREATE_CHARSET), !alias) return NULL; symbol = alias->symbol; @@ -383,7 +377,7 @@ declare_alias (RECODE_OUTER outer, const char *name, const char *old_name) `-------------------------------------------------------------------------*/ bool -declare_implied_surface (RECODE_OUTER outer, RECODE_ALIAS alias, +recode_declare_implied_surface (RECODE_OUTER outer, RECODE_ALIAS alias, RECODE_CONST_SYMBOL surface) { struct recode_surface_list *list; @@ -465,25 +459,21 @@ make_argmatch_walker_2 (void *void_alias, void *void_walk) } bool -make_argmatch_arrays (RECODE_OUTER outer) +recode_make_argmatch_arrays (RECODE_OUTER outer) { struct make_argmatch_walk walk; /* wanderer's data */ -#if HASH_STATS - hash_print_statistics (outer->alias_table, stderr); -#endif - /* It may happen that new modules are added only once all initialisation completed. To handle that case, free previous arrays if any. */ if (outer->argmatch_charset_array) { - char **cursor; + const char **cursor; for (cursor = outer->argmatch_charset_array; *cursor; cursor++) - free (*cursor); + free ((char *) *cursor); for (cursor = outer->argmatch_surface_array; *cursor; cursor++) - free (*cursor); + free ((char *) *cursor); free (outer->argmatch_charset_array); } @@ -498,10 +488,10 @@ make_argmatch_arrays (RECODE_OUTER outer) /* Allocate the argmatch and realname arrays, each with a NULL sentinel. */ { - char **cursor; + const char **cursor; if (!ALLOC (cursor, 2*walk.charset_counter + 2*walk.surface_counter + 4, - char *)) + const char *)) return false; outer->argmatch_charset_array = cursor; @@ -536,7 +526,7 @@ make_argmatch_arrays (RECODE_OUTER outer) | values for run of decimal digits at first. | `-------------------------------------------------------------------------*/ -static int +static _GL_ATTRIBUTE_PURE int compare_strings (const char *stringA, const char *stringB) { int delayed = 0; @@ -671,7 +661,7 @@ list_symbols_walker_2 (void *void_alias, void *void_walk) } bool -list_all_symbols (RECODE_OUTER outer, RECODE_CONST_SYMBOL after) +recode_list_all_symbols (RECODE_OUTER outer, RECODE_CONST_SYMBOL after) { struct list_symbols_walk walk; /* wanderer's data */ RECODE_ALIAS alias; /* cursor into sorted array */ @@ -753,7 +743,7 @@ list_all_symbols (RECODE_OUTER outer, RECODE_CONST_SYMBOL after) `-----------------------------------------------------------------*/ bool -decode_known_pairs (RECODE_OUTER outer, const char *string) +recode_decode_known_pairs (RECODE_OUTER outer, const char *string) { const char *cursor; char *after; @@ -839,9 +829,9 @@ decode_known_pairs (RECODE_OUTER outer, const char *string) `-----------------------------------------------------------------*/ bool -list_concise_charset (RECODE_OUTER outer, - RECODE_CONST_SYMBOL charset, - const enum recode_list_format list_format) +recode_list_concise_charset (RECODE_OUTER outer, + RECODE_CONST_SYMBOL charset, + const enum recode_list_format list_format) { unsigned half; /* half 0, half 1 of the table */ const char *format; /* format string */ @@ -893,7 +883,7 @@ list_concise_charset (RECODE_OUTER outer, /* Skip printing this half if it is empty. */ for (code = 128 * half; code < 128 * (half + 1); code++) - if (code_to_ucs2 (charset, code) >= 0) + if (recode_code_to_ucs2 (charset, code) >= 0) break; if (code == 128 * (half + 1)) continue; @@ -911,15 +901,18 @@ list_concise_charset (RECODE_OUTER outer, printf (" "); code = counter + counter2; - ucs2 = code_to_ucs2 (charset, code); - mnemonic = ucs2 >= 0 ? ucs2_to_rfc1345 (ucs2) : NULL; + ucs2 = recode_code_to_ucs2 (charset, code); + mnemonic = ucs2 >= 0 ? recode_ucs2_to_rfc1345 (ucs2) : NULL; /* FIXME: Trailing space elimination is not always effective. */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wformat-nonliteral" if (ucs2 >= 0) printf (format, code); else if (mnemonic || counter2 != 112) fputs (blanks, stdout); +#pragma GCC diagnostic pop if (mnemonic) printf (counter2 == 112 ? " %s\n" : " %-3s", mnemonic); @@ -938,11 +931,11 @@ list_concise_charset (RECODE_OUTER outer, static void list_full_charset_line (int code, recode_ucs2 ucs2, bool french) { - const char *mnemonic = ucs2_to_rfc1345 (ucs2); + const char *mnemonic = recode_ucs2_to_rfc1345 (ucs2); const char *charname; if (code >= 0) - printf ("%3d %.3o %.2x", code, code, code); + printf ("%3d %.3o %.2x", code, (unsigned)code, (unsigned)code); else fputs (" + + + ", stdout); @@ -955,15 +948,15 @@ list_full_charset_line (int code, recode_ucs2 ucs2, bool french) if (french) { - charname = ucs2_to_french_charname (ucs2); + charname = recode_ucs2_to_french_charname (ucs2); if (!charname) - charname = ucs2_to_charname (ucs2); + charname = recode_ucs2_to_charname (ucs2); } else { - charname = ucs2_to_charname (ucs2); + charname = recode_ucs2_to_charname (ucs2); if (!charname) - charname = ucs2_to_french_charname (ucs2); + charname = recode_ucs2_to_french_charname (ucs2); } if (charname) @@ -979,7 +972,7 @@ list_full_charset_line (int code, recode_ucs2 ucs2, bool french) `-----------------------------------------------*/ bool -should_prefer_french (void) +recode_should_prefer_french (void) { const char *string = setlocale(LC_MESSAGES, NULL); @@ -987,9 +980,9 @@ should_prefer_french (void) } bool -list_full_charset (RECODE_OUTER outer, RECODE_CONST_SYMBOL charset) +recode_list_full_charset (RECODE_OUTER outer, RECODE_CONST_SYMBOL charset) { - bool french = should_prefer_french(); + bool french = recode_should_prefer_french(); /* See which data is available. */ @@ -1054,7 +1047,7 @@ list_full_charset (RECODE_OUTER outer, RECODE_CONST_SYMBOL charset) insert_white = true; for (code = 0; code < 256; code++) - if ((ucs2 = code_to_ucs2 (charset, code)), ucs2 >= 0) + if ((ucs2 = recode_code_to_ucs2 (charset, code)), ucs2 >= 0) { if (insert_white) { @@ -1081,7 +1074,7 @@ list_full_charset (RECODE_OUTER outer, RECODE_CONST_SYMBOL charset) `----------------------------------------------------------------------------*/ bool -find_and_report_subsets (RECODE_OUTER outer) +recode_find_and_report_subsets (RECODE_OUTER outer) { bool success = true; RECODE_SYMBOL charset1; @@ -1129,7 +1122,7 @@ find_and_report_subsets (RECODE_OUTER outer) if (value1 != value2) { - if (value1 == MASK (16)) + if (value1 == BIT_MASK (16)) distance++; else { @@ -1148,7 +1141,7 @@ find_and_report_subsets (RECODE_OUTER outer) printf ("[ 0] %s == %s\n", charset1->name, charset2->name); else - printf ("[%3d] %s < %s\n", distance, + printf ("[%3u] %s < %s\n", distance, charset1->name, charset2->name); success = false; diff --git a/src/outer.c b/src/outer.c index 77bc183..651162b 100644 --- a/src/outer.c +++ b/src/outer.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990,92,93,94,96,97,98,99,00 Free Software Foundation, Inc. + Copyright © 1990-2022 Free Software Foundation, Inc. Contributed by François Pinard , 1990. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,9 +14,10 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" #include "hash.h" @@ -25,8 +26,8 @@ | coding as a fallback, which is the traditional Recode behaviour. | `-----------------------------------------------------------------------*/ -bool -reversibility (RECODE_SUBTASK subtask, unsigned code) +_GL_ATTRIBUTE_CONST bool +recode_reversibility (_GL_UNUSED RECODE_SUBTASK subtask, _GL_UNUSED unsigned code) { return false; } @@ -50,7 +51,7 @@ new_single_step (RECODE_OUTER outer) single->initial_step_table = NULL; single->init_routine = NULL; single->transform_routine = NULL; - single->fallback_routine = reversibility; + single->fallback_routine = recode_reversibility; return single; } @@ -62,12 +63,13 @@ new_single_step (RECODE_OUTER outer) `-------------------------------------------------------------------------*/ RECODE_SINGLE -declare_single (RECODE_OUTER outer, +recode_declare_single (RECODE_OUTER outer, const char *before_name, const char *after_name, struct recode_quality quality, Recode_init init_routine, Recode_transform transform_routine) { RECODE_SINGLE single = new_single_step (outer); + RECODE_ALIAS before = NULL, after = NULL; if (!single) return NULL; @@ -75,59 +77,46 @@ declare_single (RECODE_OUTER outer, if (strcmp (before_name, "data") == 0) { single->before = outer->data_symbol; - single->after = find_alias (outer, after_name, - SYMBOL_CREATE_DATA_SURFACE)->symbol; + after = recode_find_alias (outer, after_name, SYMBOL_CREATE_DATA_SURFACE); + single->after = after->symbol; } else if (strcmp(after_name, "data") == 0) { - single->before = find_alias (outer, before_name, - SYMBOL_CREATE_DATA_SURFACE)->symbol; + before = recode_find_alias (outer, before_name, SYMBOL_CREATE_DATA_SURFACE); + single->before = before->symbol; single->after = outer->data_symbol; } - else if (strcmp (before_name, "tree") == 0) - { - single->before = outer->tree_symbol; - single->after = find_alias (outer, after_name, - SYMBOL_CREATE_TREE_SURFACE)->symbol; - } - else if (strcmp(after_name, "tree") == 0) - { - single->before = find_alias (outer, before_name, - SYMBOL_CREATE_TREE_SURFACE)->symbol; - single->after = outer->tree_symbol; - } else { - single->before = find_alias (outer, before_name, - SYMBOL_CREATE_CHARSET)->symbol; - single->after = find_alias (outer, after_name, - SYMBOL_CREATE_CHARSET)->symbol; + before = recode_find_alias (outer, before_name, SYMBOL_CREATE_CHARSET); + single->before = before->symbol; + after = recode_find_alias (outer, after_name, SYMBOL_CREATE_CHARSET); + single->after = after->symbol; } -#if 0 - /* FIXME: We should delink from the list of charsets before freeing. - The alias should also be freed. */ - if (!before || !after) + if (!single->before || !single->after) { - free (single->before); + if (before) + recode_delete_alias (before); + if (after) + recode_delete_alias (after); + outer->single_list = single->next; + free (single); return NULL; } -#endif single->quality = quality; single->init_routine = init_routine; single->transform_routine = transform_routine; - if (single->before == outer->data_symbol - || single->before == outer->tree_symbol) + if (single->before == outer->data_symbol) { if (single->after->resurfacer) recode_error (outer, _("Resurfacer set more than once for `%s'"), after_name); single->after->resurfacer = single; } - else if (single->after == outer->data_symbol - || single->after == outer->tree_symbol) + else if (single->after == outer->data_symbol) { if (single->before->unsurfacer) recode_error (outer, _("Unsurfacer set more than once for `%s'"), @@ -138,40 +127,6 @@ declare_single (RECODE_OUTER outer, return single; } -#if 0 - -/*-------------------------------------------. -| Create and initialize a new data surface. | -`-------------------------------------------*/ - -bool -declare_data_surface (RECODE_OUTER outer, const char *name, - struct recode_quality resurfacer_quality, - Recode_init resurfacer_init_routine, - Recode_transform resurfacer_transform_routine, - struct recode_quality unsurfacer_quality, - Recode_init unsurfacer_init_routine, - Recode_transform unsurfacer_transform_routine) -{ -} - -/*-------------------------------------------------. -| Create and initialize a new structural surface. | -`-------------------------------------------------*/ - -bool -declare_tree_surface (RECODE_OUTER outer, const char *name, - struct recode_quality resurfacer_quality, - Recode_init resurfacer_init_routine, - Recode_transform resurfacer_transform_routine, - struct recode_quality unsurfacer_quality, - Recode_init unsurfacer_init_routine, - Recode_transform unsurfacer_transform_routine) -{ -} - -#endif - /*---------------------------------------------------------------. | Declare a charset available through `iconv', given the NAME of | | this charset (which might already exist as an alias), and the | @@ -182,19 +137,19 @@ declare_tree_surface (RECODE_OUTER outer, const char *name, static bool internal_iconv (RECODE_SUBTASK subtask) { - SET_SUBTASK_ERROR (RECODE_USER_ERROR, subtask); + recode_if_nogo (RECODE_USER_ERROR, subtask); SUBTASK_RETURN (subtask); } bool -declare_iconv (RECODE_OUTER outer, const char *name, const char *iconv_name) +recode_declare_iconv (RECODE_OUTER outer, const char *name, const char *iconv_name) { RECODE_ALIAS alias; RECODE_SINGLE single; - if (alias = find_alias (outer, name, ALIAS_FIND_AS_EITHER), + if (alias = recode_find_alias (outer, name, ALIAS_FIND_AS_EITHER), !alias) - if (alias = find_alias (outer, name, SYMBOL_CREATE_CHARSET), + if (alias = recode_find_alias (outer, name, SYMBOL_CREATE_CHARSET), !alias) return false; assert(alias->symbol->type == RECODE_CHARSET); @@ -221,34 +176,6 @@ declare_iconv (RECODE_OUTER outer, const char *name, const char *iconv_name) return true; } -#if 0 - -/*------------------------------------------------. -| Save explode data within the symbol structure. | -`------------------------------------------------*/ - -bool register_explode_data - PARAMS ((RECODE_OUTER, const char *, const unsigned short *)); - -bool -register_explode_data (RECODE_OUTER outer, - const char *name, const unsigned short *data) -{ - RECODE_SYMBOL symbol; - - symbol = find_alias (outer, name, SYMBOL_CREATE_CHARSET); - if (!symbol) - return false; - - assert(symbol->type = RECODE_CHARSET); - symbol->data_type = RECODE_EXPLODE_DATA; - /* The cast is a way to silently discard the const. */ - symbol->data = (void *) data; - return true; -} - -#endif - /*--------------------------------------------------------------------------. | Associate an explode format DATA structure with charset NAME_COMBINED, an | | 8-bit charset. A NULL value for NAME_EXPLODED implies UCS-2. Otherwise, | @@ -256,7 +183,7 @@ register_explode_data (RECODE_OUTER outer, `--------------------------------------------------------------------------*/ bool -declare_explode_data (RECODE_OUTER outer, const unsigned short *data, +recode_declare_explode_data (RECODE_OUTER outer, const unsigned short *data, const char *name_combined, const char *name_exploded) { RECODE_ALIAS alias; @@ -264,7 +191,7 @@ declare_explode_data (RECODE_OUTER outer, const unsigned short *data, RECODE_SYMBOL charset_exploded; RECODE_SINGLE single; - if (alias = find_alias (outer, name_combined, SYMBOL_CREATE_CHARSET), + if (alias = recode_find_alias (outer, name_combined, SYMBOL_CREATE_CHARSET), !alias) return false; @@ -273,7 +200,7 @@ declare_explode_data (RECODE_OUTER outer, const unsigned short *data, if (name_exploded) { - if (alias = find_alias (outer, name_exploded, SYMBOL_CREATE_CHARSET), + if (alias = recode_find_alias (outer, name_exploded, SYMBOL_CREATE_CHARSET), !alias) return false; @@ -295,9 +222,9 @@ declare_explode_data (RECODE_OUTER outer, const unsigned short *data, single->after = charset_exploded; single->quality = outer->quality_byte_to_variable; single->initial_step_table = (void *) data; - single->init_routine = init_explode; + single->init_routine = recode_init_explode; single->transform_routine - = name_exploded ? explode_byte_byte : explode_byte_ucs2; + = name_exploded ? recode_explode_byte_byte : recode_explode_byte_ucs2; single = new_single_step (outer); if (!single) @@ -307,9 +234,9 @@ declare_explode_data (RECODE_OUTER outer, const unsigned short *data, single->after = charset_combined; single->quality = outer->quality_variable_to_byte; single->initial_step_table = (void *) data; - single->init_routine = init_combine; + single->init_routine = recode_init_combine; single->transform_routine - = name_exploded ? combine_byte_byte : combine_ucs2_byte; + = name_exploded ? recode_combine_byte_byte : recode_combine_ucs2_byte; return true; } @@ -319,14 +246,14 @@ declare_explode_data (RECODE_OUTER outer, const unsigned short *data, `-------------------------------------------------------------------*/ bool -declare_strip_data (RECODE_OUTER outer, struct strip_data *data, +recode_declare_strip_data (RECODE_OUTER outer, struct strip_data *data, const char *name) { RECODE_ALIAS alias; RECODE_SYMBOL charset; RECODE_SINGLE single; - if (alias = find_alias (outer, name, SYMBOL_CREATE_CHARSET), !alias) + if (alias = recode_find_alias (outer, name, SYMBOL_CREATE_CHARSET), !alias) return false; charset = alias->symbol; @@ -341,7 +268,7 @@ declare_strip_data (RECODE_OUTER outer, struct strip_data *data, single->before = charset; single->after = outer->ucs2_charset; single->quality = outer->quality_byte_to_ucs2; - single->transform_routine = transform_byte_to_ucs2; + single->transform_routine = recode_transform_byte_to_ucs2; single = new_single_step (outer); if (!single) @@ -350,8 +277,8 @@ declare_strip_data (RECODE_OUTER outer, struct strip_data *data, single->before = outer->ucs2_charset; single->after = charset; single->quality = outer->quality_ucs2_to_byte; - single->init_routine = init_ucs2_to_byte; - single->transform_routine = transform_ucs2_to_byte; + single->init_routine = recode_init_ucs2_to_byte; + single->transform_routine = recode_transform_ucs2_to_byte; return true; } @@ -361,7 +288,7 @@ declare_strip_data (RECODE_OUTER outer, struct strip_data *data, `---------------------------------------------------------------*/ static void -estimate_single_cost (RECODE_OUTER outer, RECODE_SINGLE single) +estimate_single_cost (_GL_UNUSED RECODE_OUTER outer, RECODE_SINGLE single) { int cost; @@ -392,6 +319,9 @@ estimate_single_cost (RECODE_OUTER outer, RECODE_SINGLE single) case RECODE_N: /* Analysing varysizes is surely much harder than producing them. */ cost += 60; + + default: + break; } switch (single->quality.out_size) @@ -415,6 +345,9 @@ estimate_single_cost (RECODE_OUTER outer, RECODE_SINGLE single) /* Writing varysizes requires loops and such. */ cost += 35; break; + + default: + break; } /* Consider speed for fine tuning the cost. */ @@ -435,8 +368,8 @@ estimate_single_cost (RECODE_OUTER outer, RECODE_SINGLE single) `----------------------------------------*/ #include "decsteps.h" -bool module_iconv PARAMS ((struct recode_outer *)); -void delmodule_iconv PARAMS ((struct recode_outer *)); +bool module_iconv (struct recode_outer *); +void delmodule_iconv (struct recode_outer *); static bool register_all_modules (RECODE_OUTER outer) @@ -452,65 +385,53 @@ register_all_modules (RECODE_OUTER outer) table[counter] = counter; outer->one_to_same = table; - prepare_for_aliases (outer); + recode_prepare_for_aliases (outer); outer->single_list = NULL; outer->number_of_singles = 0; - if (alias = find_alias (outer, "data", SYMBOL_CREATE_CHARSET), !alias) + if (alias = recode_find_alias (outer, "data", SYMBOL_CREATE_CHARSET), !alias) return false; outer->data_symbol = alias->symbol; - if (alias = find_alias (outer, "tree", SYMBOL_CREATE_CHARSET), !alias) - return false; - outer->tree_symbol = alias->symbol; - - if (alias = find_alias (outer, "ISO-10646-UCS-2", SYMBOL_CREATE_CHARSET), + if (alias = recode_find_alias (outer, "ISO-10646-UCS-2", SYMBOL_CREATE_CHARSET), !alias) return false; assert(alias->symbol->type == RECODE_CHARSET); outer->ucs2_charset = alias->symbol; - if (alias = find_alias (outer, ":iconv:", SYMBOL_CREATE_CHARSET), + if (alias = recode_find_alias (outer, ":iconv:", SYMBOL_CREATE_CHARSET), !alias) return false; assert(alias->symbol->type == RECODE_CHARSET); outer->iconv_pivot = alias->symbol; - if (!declare_alias (outer, ":", ":iconv:")) + if (!recode_declare_alias (outer, ":", ":iconv:")) return false; /* Needed for compatibility with Recode 3.6. */ - if (!declare_alias (outer, ":libiconv:", ":iconv:")) + if (!recode_declare_alias (outer, ":libiconv:", ":iconv:")) return false; - if (alias = find_alias (outer, "CR-LF", SYMBOL_CREATE_CHARSET), !alias) + if (alias = recode_find_alias (outer, "CR-LF", SYMBOL_CREATE_CHARSET), !alias) return false; alias->symbol->type = RECODE_DATA_SURFACE; outer->crlf_surface = alias->symbol; - if (alias = find_alias (outer, "CR", SYMBOL_CREATE_CHARSET), !alias) + if (alias = recode_find_alias (outer, "CR", SYMBOL_CREATE_CHARSET), !alias) return false; alias->symbol->type = RECODE_DATA_SURFACE; outer->cr_surface = alias->symbol; -#if 0 - /* `.' might be later used for asking recode to guess the charset. */ - if (!declare_alias (outer, ".", "RFC 1345")) - return false; -#endif - if (!declare_alias (outer, "ASCII", "ANSI_X3.4-1968")) + if (!recode_declare_alias (outer, "ASCII", "ANSI_X3.4-1968")) return false; - if (!declare_alias (outer, "BS", "ASCII-BS")) + if (!recode_declare_alias (outer, "BS", "ASCII-BS")) return false; - if (!declare_alias (outer, "Latin-1", "ISO-8859-1")) - return false; - /* Needed for compatibility with Recode 3.2. */ - if (!declare_alias (outer, "lat1", "Latin-1")) + if (!recode_declare_alias (outer, "Latin-1", "ISO-8859-1")) return false; #include "inisteps.h" /* Force this one last: it does not segregate between charsets and aliases, confusing some other initialisations that would come after it. */ - if (!make_argmatch_arrays (outer)) + if (!recode_make_argmatch_arrays (outer)) return false; if (outer->use_iconv) if (!module_iconv (outer)) @@ -522,7 +443,7 @@ register_all_modules (RECODE_OUTER outer) return true; } -void static +static void unregister_all_modules (RECODE_OUTER outer) { #include "tersteps.h" @@ -542,21 +463,22 @@ unregister_all_modules (RECODE_OUTER outer) RECODE_OUTER recode_new_outer (unsigned flags) { - RECODE_OUTER outer = (RECODE_OUTER) malloc (sizeof (struct recode_outer)); + RECODE_OUTER outer = (RECODE_OUTER) calloc (1, sizeof (struct recode_outer)); if (!outer) { - /* Diagnostic? FIXME! */ + recode_error (NULL, _("Virtual memory exhausted")); if (flags & RECODE_AUTO_ABORT_FLAG) exit (1); return NULL; } - memset (outer, 0, sizeof (struct recode_outer)); outer->auto_abort = (flags & RECODE_AUTO_ABORT_FLAG) != 0; outer->use_iconv = (flags & RECODE_NO_ICONV_FLAG) == 0; + outer->strict_mapping = (flags & RECODE_STRICT_MAPPING_FLAG) != 0; + outer->force = (flags & RECODE_FORCE_FLAG) != 0; - if (!register_all_modules (outer) || !make_argmatch_arrays (outer)) + if (!register_all_modules (outer) || !recode_make_argmatch_arrays (outer)) { recode_delete_outer (outer); return NULL; @@ -618,22 +540,20 @@ recode_delete_outer (RECODE_OUTER outer) outer->number_of_singles--; free (single); } - if (outer->pair_restriction) - free (outer->pair_restriction); + free (outer->pair_restriction); if (outer->alias_table) hash_free ((Hash_table *) outer->alias_table); if (outer->argmatch_charset_array) { - char **cursor; + const char **cursor; for (cursor = outer->argmatch_charset_array; *cursor; cursor++) - free (*cursor); + free ((char *) *cursor); for (cursor = outer->argmatch_surface_array; *cursor; cursor++) - free (*cursor); + free ((char *) *cursor); free (outer->argmatch_charset_array); } - if (outer->one_to_same) - free ((void *) outer->one_to_same); + free ((void *) outer->one_to_same); free (outer); return true; } diff --git a/src/permut.c b/src/permut.c index 4722983..819ba73 100644 --- a/src/permut.c +++ b/src/permut.c @@ -1,11 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1997, 98, 99, 00 Free Software Foundation, Inc. - This file is part of the GNU C Library. + Copyright © 1997-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1997. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -15,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" static bool permute_21 (RECODE_SUBTASK subtask) @@ -28,19 +29,19 @@ permute_21 (RECODE_SUBTASK subtask) while (true) { - character1 = get_byte (subtask); + character1 = recode_get_byte (subtask); if (character1 == EOF) break; - character2 = get_byte (subtask); + character2 = recode_get_byte (subtask); if (character2 == EOF) { - put_byte (character1, subtask); + recode_put_byte (character1, subtask); break; } - put_byte (character2, subtask); - put_byte (character1, subtask); + recode_put_byte (character2, subtask); + recode_put_byte (character1, subtask); } SUBTASK_RETURN (subtask); @@ -56,38 +57,38 @@ permute_4321 (RECODE_SUBTASK subtask) while (true) { - character1 = get_byte (subtask); + character1 = recode_get_byte (subtask); if (character1 == EOF) break; - character2 = get_byte (subtask); + character2 = recode_get_byte (subtask); if (character2 == EOF) { - put_byte (character1, subtask); + recode_put_byte (character1, subtask); break; } - character3 = get_byte (subtask); + character3 = recode_get_byte (subtask); if (character3 == EOF) { - put_byte (character2, subtask); - put_byte (character1, subtask); + recode_put_byte (character2, subtask); + recode_put_byte (character1, subtask); break; } - character4 = get_byte (subtask); + character4 = recode_get_byte (subtask); if (character4 == EOF) { - put_byte (character3, subtask); - put_byte (character2, subtask); - put_byte (character1, subtask); + recode_put_byte (character3, subtask); + recode_put_byte (character2, subtask); + recode_put_byte (character1, subtask); break; } - put_byte (character4, subtask); - put_byte (character3, subtask); - put_byte (character2, subtask); - put_byte (character1, subtask); + recode_put_byte (character4, subtask); + recode_put_byte (character3, subtask); + recode_put_byte (character2, subtask); + recode_put_byte (character1, subtask); } SUBTASK_RETURN (subtask); @@ -97,22 +98,22 @@ bool module_permutations (RECODE_OUTER outer) { return - declare_single (outer, "data", "21-Permutation", + recode_declare_single (outer, "data", "21-Permutation", outer->quality_variable_to_variable, NULL, permute_21) - && declare_single (outer, "21-Permutation", "data", + && recode_declare_single (outer, "21-Permutation", "data", outer->quality_variable_to_variable, NULL, permute_21) - && declare_single (outer, "data", "4321-Permutation", + && recode_declare_single (outer, "data", "4321-Permutation", outer->quality_variable_to_variable, NULL, permute_4321) - && declare_single (outer, "4321-Permutation", "data", + && recode_declare_single (outer, "4321-Permutation", "data", outer->quality_variable_to_variable, NULL, permute_4321) - && declare_alias (outer, "swabytes", "21-Permutation"); + && recode_declare_alias (outer, "swabytes", "21-Permutation"); } void -delmodule_permutations (RECODE_OUTER outer) +delmodule_permutations (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/quotearg.c b/src/quotearg.c deleted file mode 100644 index 0bef8cb..0000000 --- a/src/quotearg.c +++ /dev/null @@ -1,403 +0,0 @@ -/* quotearg.c - quote arguments for output - Copyright (C) 1998, 1999 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Paul Eggert */ - -/* FIXME: Multibyte characters are not supported yet. */ - -#if HAVE_CONFIG_H -# include -#endif - -#include -#include -#include - -#include -#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) -# define ISASCII(c) 1 -#else -# define ISASCII(c) isascii (c) -#endif -#ifdef isgraph -# define ISGRAPH(c) (ISASCII (c) && isgraph (c)) -#else -# define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c)) -#endif - -#if ENABLE_NLS -# include -# define _(text) gettext (text) -#else -# define _(text) text -#endif - -#if HAVE_LIMITS_H -# include -#endif -#ifndef CHAR_BIT -# define CHAR_BIT 8 -#endif -#ifndef UCHAR_MAX -# define UCHAR_MAX ((unsigned char) -1) -#endif - -#if HAVE_STDLIB_H -# include -#endif - -#if HAVE_STRING_H -# include -#endif - -#define INT_BITS (sizeof (int) * CHAR_BIT) - -struct quoting_options -{ - /* Basic quoting style. */ - enum quoting_style style; - - /* Quote the chararacters indicated by this bit vector even if the - quoting style would not normally require them to be quoted. */ - int quote_these_too[((UCHAR_MAX + 1) / INT_BITS - + ((UCHAR_MAX + 1) % INT_BITS != 0))]; -}; - -/* Names of quoting styles. */ -char const *const quoting_style_args[] = -{ - "literal", - "shell", - "shell-always", - "c", - "escape", - "locale", - 0 -}; - -/* Correspondances to quoting style names. */ -enum quoting_style const quoting_style_vals[] = -{ - literal_quoting_style, - shell_quoting_style, - shell_always_quoting_style, - c_quoting_style, - escape_quoting_style, - locale_quoting_style -}; - -/* The default quoting options. */ -static struct quoting_options default_quoting_options; - -/* Allocate a new set of quoting options, with contents initially identical - to O if O is not null, or to the default if O is null. - It is the caller's responsibility to free the result. */ -struct quoting_options * -clone_quoting_options (struct quoting_options *o) -{ - struct quoting_options *p - = (struct quoting_options *) xmalloc (sizeof (struct quoting_options)); - *p = *(o ? o : &default_quoting_options); - return p; -} - -/* Get the value of O's quoting style. If O is null, use the default. */ -enum quoting_style -get_quoting_style (struct quoting_options *o) -{ - return (o ? o : &default_quoting_options)->style; -} - -/* In O (or in the default if O is null), - set the value of the quoting style to S. */ -void -set_quoting_style (struct quoting_options *o, enum quoting_style s) -{ - (o ? o : &default_quoting_options)->style = s; -} - -/* In O (or in the default if O is null), - set the value of the quoting options for character C to I. - Return the old value. Currently, the only values defined for I are - 0 (the default) and 1 (which means to quote the character even if - it would not otherwise be quoted). */ -int -set_char_quoting (struct quoting_options *o, char c, int i) -{ - unsigned char uc = c; - int *p = (o ? o : &default_quoting_options)->quote_these_too + uc / INT_BITS; - int shift = uc % INT_BITS; - int r = (*p >> shift) & 1; - *p ^= ((i & 1) ^ r) << shift; - return r; -} - -/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of - argument ARG (of size ARGSIZE), using O to control quoting. - If O is null, use the default. - Terminate the output with a null character, and return the written - size of the output, not counting the terminating null. - If BUFFERSIZE is too small to store the output string, return the - value that would have been returned had BUFFERSIZE been large enough. - If ARGSIZE is -1, use the string length of the argument for ARGSIZE. */ -size_t -quotearg_buffer (char *buffer, size_t buffersize, - char const *arg, size_t argsize, - struct quoting_options const *o) -{ - unsigned char c; - size_t i; - size_t len = 0; - char const *quote_string; - size_t quote_string_len; - struct quoting_options const *p = o ? o : &default_quoting_options; - enum quoting_style quoting_style = p->style; -#define STORE(c) \ - do \ - { \ - if (len < buffersize) \ - buffer[len] = (c); \ - len++; \ - } \ - while (0) - - switch (quoting_style) - { - case shell_quoting_style: - if (! (argsize == (size_t) -1 ? arg[0] == '\0' : argsize == 0)) - { - switch (arg[0]) - { - case '#': case '~': - break; - - default: - for (i = 0; ; i++) - { - if (argsize == (size_t) -1 ? arg[i] == '\0' : i == argsize) - goto done; - - c = arg[i]; - - switch (c) - { - case '\t': case '\n': case ' ': - case '!': /* special in csh */ - case '"': case '$': case '&': case '\'': - case '(': case ')': case '*': case ';': - case '<': case '>': case '?': case '[': case '\\': - case '^': /* special in old /bin/sh, e.g. SunOS 4.1.4 */ - case '`': case '|': - goto needs_quoting; - } - - if (p->quote_these_too[c / INT_BITS] & (1 << (c % INT_BITS))) - goto needs_quoting; - - STORE (c); - } - needs_quoting:; - - len = 0; - break; - } - } - /* Fall through. */ - - case shell_always_quoting_style: - STORE ('\''); - quote_string = "'"; - quote_string_len = 1; - break; - - case c_quoting_style: - STORE ('"'); - quote_string = "\""; - quote_string_len = 1; - break; - - case locale_quoting_style: - for (quote_string = _("`"); *quote_string; quote_string++) - STORE (*quote_string); - quote_string = _("'"); - quote_string_len = strlen (quote_string); - break; - - default: - quote_string = 0; - quote_string_len = 0; - break; - } - - for (i = 0; ! (argsize == (size_t) -1 ? arg[i] == '\0' : i == argsize); i++) - { - c = arg[i]; - - switch (quoting_style) - { - case literal_quoting_style: - break; - - case shell_quoting_style: - case shell_always_quoting_style: - if (c == '\'') - { - STORE ('\''); - STORE ('\\'); - STORE ('\''); - } - break; - - case c_quoting_style: - case escape_quoting_style: - case locale_quoting_style: - switch (c) - { - case '?': /* Do not generate trigraphs. */ - case '\\': goto store_escape; - /* Not all C compilers know what \a means. */ - case 7 : c = 'a'; goto store_escape; - case '\b': c = 'b'; goto store_escape; - case '\f': c = 'f'; goto store_escape; - case '\n': c = 'n'; goto store_escape; - case '\r': c = 'r'; goto store_escape; - case '\t': c = 't'; goto store_escape; - case '\v': c = 'v'; goto store_escape; - - case ' ': break; - - default: - if (quote_string_len - && strncmp (arg + i, quote_string, quote_string_len) == 0) - goto store_escape; - if (!ISGRAPH (c)) - { - STORE ('\\'); - STORE ('0' + (c >> 6)); - STORE ('0' + ((c >> 3) & 7)); - c = '0' + (c & 7); - goto store_c; - } - break; - } - - if (! (p->quote_these_too[c / INT_BITS] & (1 << (c % INT_BITS)))) - goto store_c; - - store_escape: - STORE ('\\'); - } - - store_c: - STORE (c); - } - - if (quote_string) - for (; *quote_string; quote_string++) - STORE (*quote_string); - - done: - if (len < buffersize) - buffer[len] = '\0'; - return len; -} - -/* Use storage slot N to return a quoted version of the string ARG. - OPTIONS specifies the quoting options. - The returned value points to static storage that can be - reused by the next call to this function with the same value of N. - N must be nonnegative. N is deliberately declared with type `int' - to allow for future extensions (using negative values). */ -static char * -quotearg_n_options (int n, char const *arg, - struct quoting_options const *options) -{ - static unsigned int nslots; - static struct slotvec - { - size_t size; - char *val; - } *slotvec; - - if (nslots <= n) - { - int n1 = n + 1; - size_t s = n1 * sizeof (struct slotvec); - if (! (0 < n1 && n1 == s / sizeof (struct slotvec))) - abort (); - slotvec = (struct slotvec *) xrealloc (slotvec, s); - memset (slotvec + nslots, 0, (n1 - nslots) * sizeof (struct slotvec)); - nslots = n; - } - - { - size_t size = slotvec[n].size; - char *val = slotvec[n].val; - size_t qsize = quotearg_buffer (val, size, arg, (size_t) -1, options); - - if (size <= qsize) - { - slotvec[n].size = size = qsize + 1; - slotvec[n].val = val = (char *) xrealloc (val, size); - quotearg_buffer (val, size, arg, (size_t) -1, options); - } - - return val; - } -} - -char * -quotearg_n (unsigned int n, char const *arg) -{ - return quotearg_n_options (n, arg, &default_quoting_options); -} - -char * -quotearg (char const *arg) -{ - return quotearg_n (0, arg); -} - -char * -quotearg_n_style (unsigned int n, enum quoting_style s, char const *arg) -{ - struct quoting_options o; - o.style = s; - memset (o.quote_these_too, 0, sizeof o.quote_these_too); - return quotearg_n_options (n, arg, &o); -} - -char * -quotearg_style (enum quoting_style s, char const *arg) -{ - return quotearg_n_style (0, s, arg); -} - -char * -quotearg_char (char const *arg, char ch) -{ - struct quoting_options options; - options = default_quoting_options; - set_char_quoting (&options, ch, 1); - return quotearg_n_options (0, arg, &options); -} - -char * -quotearg_colon (char const *arg) -{ - return quotearg_char (arg, ':'); -} diff --git a/src/quotearg.h b/src/quotearg.h deleted file mode 100644 index 2a600e7..0000000 --- a/src/quotearg.h +++ /dev/null @@ -1,109 +0,0 @@ -/* quotearg.h - quote arguments for output - Copyright (C) 1998, 1999 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Paul Eggert */ - -/* Basic quoting styles. */ -enum quoting_style - { - literal_quoting_style, /* --quoting-style=literal */ - shell_quoting_style, /* --quoting-style=shell */ - shell_always_quoting_style, /* --quoting-style=shell-always */ - c_quoting_style, /* --quoting-style=c */ - escape_quoting_style, /* --quoting-style=escape */ - locale_quoting_style /* --quoting-style=locale */ - }; - -/* For now, --quoting-style=literal is the default, but this may change. */ -#ifndef DEFAULT_QUOTING_STYLE -# define DEFAULT_QUOTING_STYLE literal_quoting_style -#endif - -/* Names of quoting styles and their corresponding values. */ -extern char const *const quoting_style_args[]; -extern enum quoting_style const quoting_style_vals[]; - -struct quoting_options; - -#ifndef PARAMS -# if defined PROTOTYPES || defined __STDC__ -# define PARAMS(Args) Args -# else -# define PARAMS(Args) () -# endif -#endif - -/* The functions listed below set and use a hidden variable - that contains the default quoting style options. */ - -/* Allocate a new set of quoting options, with contents initially identical - to O if O is not null, or to the default if O is null. - It is the caller's responsibility to free the result. */ -struct quoting_options *clone_quoting_options - PARAMS ((struct quoting_options *o)); - -/* Get the value of O's quoting style. If O is null, use the default. */ -enum quoting_style get_quoting_style PARAMS ((struct quoting_options *o)); - -/* In O (or in the default if O is null), - set the value of the quoting style to S. */ -void set_quoting_style PARAMS ((struct quoting_options *o, - enum quoting_style s)); - -/* In O (or in the default if O is null), - set the value of the quoting options for character C to I. - Return the old value. Currently, the only values defined for I are - 0 (the default) and 1 (which means to quote the character even if - it would not otherwise be quoted). */ -int set_char_quoting PARAMS ((struct quoting_options *o, char c, int i)); - -/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of - argument ARG (of size ARGSIZE), using O to control quoting. - If O is null, use the default. - Terminate the output with a null character, and return the written - size of the output, not counting the terminating null. - If BUFFERSIZE is too small to store the output string, return the - value that would have been returned had BUFFERSIZE been large enough. - If ARGSIZE is -1, use the string length of the argument for ARGSIZE. */ -size_t quotearg_buffer PARAMS ((char *buffer, size_t buffersize, - char const *arg, size_t argsize, - struct quoting_options const *o)); - -/* Use storage slot N to return a quoted version of the string ARG. - Use the default quoting options. - The returned value points to static storage that can be - reused by the next call to this function with the same value of N. - N must be nonnegative. */ -char *quotearg_n PARAMS ((unsigned int n, char const *arg)); - -/* Equivalent to quotearg_n (0, ARG). */ -char *quotearg PARAMS ((char const *arg)); - -/* Use style S and storage slot N to return a quoted version of the string ARG. - This is like quotearg_n (N, ARG), except that it uses S with no other - options to specify the quoting method. */ -char *quotearg_n_style PARAMS ((unsigned int n, enum quoting_style s, - char const *arg)); - -/* Equivalent to quotearg_n_style (0, S, ARG). */ -char *quotearg_style PARAMS ((enum quoting_style s, char const *arg)); - -/* Like quotearg (ARG), except also quote any instances of CH. */ -char *quotearg_char PARAMS ((char const *arg, char ch)); - -/* Equivalent to quotearg_char (ARG, ':'). */ -char *quotearg_colon PARAMS ((char const *arg)); diff --git a/src/quoted.c b/src/quoted.c index 9f25761..2914da4 100644 --- a/src/quoted.c +++ b/src/quoted.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1996, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1996-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1996. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,13 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" + static const bool bitnet_flag = false; /* Maximum number of characters per MIME line. */ @@ -54,11 +57,11 @@ static const char safe_char_bitnet[1 << 7] = do { \ unsigned nibble; \ \ - put_byte ('=', subtask); \ - nibble = MASK (4) & (Character) >> 4; \ - put_byte ((nibble < 10 ? '0' : 'A' - 10) + nibble, subtask); \ - nibble = MASK (4) & (Character); \ - put_byte ((nibble < 10 ? '0' : 'A' - 10) + nibble, subtask); \ + recode_put_byte ('=', subtask); \ + nibble = BIT_MASK (4) & (Character) >> 4; \ + recode_put_byte ((nibble < 10 ? '0' : 'A' - 10) + nibble, subtask); \ + nibble = BIT_MASK (4) & (Character); \ + recode_put_byte ((nibble < 10 ? '0' : 'A' - 10) + nibble, subtask); \ } while (false) static bool @@ -66,7 +69,7 @@ transform_data_quoted_printable (RECODE_SUBTASK subtask) { const char *safe_char = bitnet_flag ? safe_char_bitnet : safe_char_usual; unsigned available = MIME_LINE_LENGTH; - int character = get_byte (subtask); + int character = recode_get_byte (subtask); int next_character; /* Proper maximum filling of quoted-printable lines, avoiding a line buffer @@ -79,31 +82,31 @@ transform_data_quoted_printable (RECODE_SUBTASK subtask) if (available > 1) { - put_byte (character, subtask); + recode_put_byte (character, subtask); available--; - character = get_byte (subtask); + character = recode_get_byte (subtask); } else { - next_character = get_byte (subtask); + next_character = recode_get_byte (subtask); if (next_character == '\n') { - put_byte (character, subtask); - put_byte ('\n', subtask); + recode_put_byte (character, subtask); + recode_put_byte ('\n', subtask); available = MIME_LINE_LENGTH; - character = get_byte (subtask); + character = recode_get_byte (subtask); } else if (next_character == EOF) { - put_byte (character, subtask); + recode_put_byte (character, subtask); available--; character = EOF; } else { - put_byte ('=', subtask); - put_byte ('\n', subtask); - put_byte (character, subtask); + recode_put_byte ('=', subtask); + recode_put_byte ('\n', subtask); + recode_put_byte (character, subtask); available = MIME_LINE_LENGTH - 1; character = next_character; } @@ -115,9 +118,9 @@ transform_data_quoted_printable (RECODE_SUBTASK subtask) /* Case of a newline. */ - put_byte ('\n', subtask); + recode_put_byte ('\n', subtask); available = MIME_LINE_LENGTH; - character = get_byte (subtask); + character = recode_get_byte (subtask); break; case '\t': @@ -125,25 +128,25 @@ transform_data_quoted_printable (RECODE_SUBTASK subtask) /* Case of a space character. */ - next_character = get_byte (subtask); + next_character = recode_get_byte (subtask); if (next_character == '\n') { if (available < 3) { - put_byte ('=', subtask); - put_byte ('\n', subtask); + recode_put_byte ('=', subtask); + recode_put_byte ('\n', subtask); } PUT_QUOTED (character); - put_byte ('\n', subtask); + recode_put_byte ('\n', subtask); available = MIME_LINE_LENGTH; - character = get_byte (subtask); + character = recode_get_byte (subtask); } else if (next_character == EOF) { if (available < 3) { - put_byte ('=', subtask); - put_byte ('\n', subtask); + recode_put_byte ('=', subtask); + recode_put_byte ('\n', subtask); available = MIME_LINE_LENGTH; } PUT_QUOTED (character); @@ -154,11 +157,11 @@ transform_data_quoted_printable (RECODE_SUBTASK subtask) { if (available == 1) { - put_byte ('=', subtask); - put_byte ('\n', subtask); + recode_put_byte ('=', subtask); + recode_put_byte ('\n', subtask); available = MIME_LINE_LENGTH; } - put_byte (character, subtask); + recode_put_byte (character, subtask); available--; character = next_character; } @@ -172,17 +175,17 @@ transform_data_quoted_printable (RECODE_SUBTASK subtask) { PUT_QUOTED (character); available -= 3; - character = get_byte (subtask); + character = recode_get_byte (subtask); } else { - next_character = get_byte (subtask); + next_character = recode_get_byte (subtask); if (available == 3 && next_character == '\n') { PUT_QUOTED (character); - put_byte ('\n', subtask); + recode_put_byte ('\n', subtask); available = MIME_LINE_LENGTH; - character = get_byte (subtask); + character = recode_get_byte (subtask); } else if (next_character == EOF) { @@ -192,8 +195,8 @@ transform_data_quoted_printable (RECODE_SUBTASK subtask) } else { - put_byte ('=', subtask); - put_byte ('\n', subtask); + recode_put_byte ('=', subtask); + recode_put_byte ('\n', subtask); PUT_QUOTED (character); available = MIME_LINE_LENGTH - 3; character = next_character; @@ -205,8 +208,8 @@ transform_data_quoted_printable (RECODE_SUBTASK subtask) { /* The last line was incomplete. */ - put_byte ('=', subtask); - put_byte ('\n', subtask); + recode_put_byte ('=', subtask); + recode_put_byte ('\n', subtask); } SUBTASK_RETURN (subtask); @@ -217,7 +220,7 @@ transform_quoted_printable_data (RECODE_SUBTASK subtask) { const char *safe_char = bitnet_flag ? safe_char_bitnet : safe_char_usual; unsigned counter = 0; - int character = get_byte (subtask); + int character = recode_get_byte (subtask); char buffer[MIME_LINE_LENGTH + 1]; char *cursor; unsigned value; @@ -231,8 +234,8 @@ transform_quoted_printable_data (RECODE_SUBTASK subtask) if (counter > MIME_LINE_LENGTH) RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); counter = 0; - put_byte ('\n', subtask); - character = get_byte (subtask); + recode_put_byte ('\n', subtask); + character = recode_get_byte (subtask); break; case ' ': @@ -248,11 +251,11 @@ transform_quoted_printable_data (RECODE_SUBTASK subtask) for (cursor = buffer; cursor < buffer + MIME_LINE_LENGTH; cursor++) - put_byte (*cursor, subtask); + recode_put_byte (*cursor, subtask); } counter++; *cursor++ = character; - character = get_byte (subtask); + character = recode_get_byte (subtask); } if (character == '\n' || character == EOF) { @@ -262,12 +265,12 @@ transform_quoted_printable_data (RECODE_SUBTASK subtask) } *cursor = '\0'; for (cursor = buffer; *cursor; cursor++) - put_byte (*cursor, subtask); + recode_put_byte (*cursor, subtask); break; case '=': counter++; - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == ' ' || character == '\t' || character == '\n') { /* Process soft line break. */ @@ -278,7 +281,7 @@ transform_quoted_printable_data (RECODE_SUBTASK subtask) while (character == ' ' || character == '\t') { counter++; - character = get_byte (subtask); + character = recode_get_byte (subtask); } } if (character != '\n') @@ -289,7 +292,7 @@ transform_quoted_printable_data (RECODE_SUBTASK subtask) if (counter > MIME_LINE_LENGTH) RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); counter = 0; - character = get_byte (subtask); + character = recode_get_byte (subtask); break; } @@ -307,7 +310,7 @@ transform_quoted_printable_data (RECODE_SUBTASK subtask) RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); break; } - character = get_byte (subtask); + character = recode_get_byte (subtask); counter++; if (character >= '0' && character <= '9') value |= character - '0'; @@ -323,8 +326,8 @@ transform_quoted_printable_data (RECODE_SUBTASK subtask) if (!(value & (1 << 7)) && safe_char[value]) RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); - put_byte (value, subtask); - character = get_byte (subtask); + recode_put_byte (value, subtask); + character = recode_get_byte (subtask); break; default: @@ -333,8 +336,8 @@ transform_quoted_printable_data (RECODE_SUBTASK subtask) counter++; if (character & (1 << 7) || !safe_char[character]) RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - put_byte (character, subtask); - character = get_byte (subtask); + recode_put_byte (character, subtask); + character = recode_get_byte (subtask); } if (counter != 0) @@ -348,17 +351,17 @@ bool module_quoted_printable (RECODE_OUTER outer) { return - declare_single (outer, "data", "Quoted-Printable", + recode_declare_single (outer, "data", "Quoted-Printable", outer->quality_variable_to_variable, NULL, transform_data_quoted_printable) - && declare_single (outer, "Quoted-Printable", "data", + && recode_declare_single (outer, "Quoted-Printable", "data", outer->quality_variable_to_variable, NULL, transform_quoted_printable_data) - && declare_alias (outer, "quote-printable", "Quoted-Printable") - && declare_alias (outer, "QP", "Quoted-Printable"); + && recode_declare_alias (outer, "quote-printable", "Quoted-Printable") + && recode_declare_alias (outer, "QP", "Quoted-Printable"); } void -delmodule_quoted_printable (RECODE_OUTER outer) +delmodule_quoted_printable (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/recode.1 b/src/recode.1 deleted file mode 100644 index 870f56c..0000000 --- a/src/recode.1 +++ /dev/null @@ -1,118 +0,0 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.35. -.TH RECODE "1" "December 2013" "recode 3.7-beta2" "User Commands" -.SH NAME -recode \- converts files between character sets -.SH SYNOPSIS -.B lt-recode -[\fIOPTION\fR]... [ [\fICHARSET\fR] \fI| REQUEST \fR[\fIFILE\fR]... ] -.SH DESCRIPTION -Recode converts files between various character sets and surfaces. -.PP -If a long option shows an argument as mandatory, then it is mandatory -for the equivalent short option also. Similarly for optional arguments. -.SS "Listings:" -.TP -\fB\-l\fR, \fB\-\-list\fR[=\fIFORMAT\fR] -list one or all known charsets and aliases -.TP -\fB\-k\fR, \fB\-\-known\fR=\fIPAIRS\fR -restrict charsets according to known PAIRS list -.TP -\fB\-h\fR, \fB\-\-header[\fR=\fI[LN\fR/]NAME] -write table NAME on stdout using LN, then exit -.TP -\fB\-F\fR, \fB\-\-freeze\-tables\fR -write out a C module holding all tables -.TP -\fB\-T\fR, \fB\-\-find\-subsets\fR -report all charsets being subset of others -.TP -\fB\-C\fR, \fB\-\-copyright\fR -display Copyright and copying conditions -.TP -\fB\-\-help\fR -display this help and exit -.TP -\fB\-\-version\fR -output version information and exit -.SS "Operation modes:" -.TP -\fB\-v\fR, \fB\-\-verbose\fR -explain sequence of steps and report progress -.TP -\fB\-q\fR, \fB\-\-quiet\fR, \fB\-\-silent\fR -inhibit messages about irreversible recodings -.TP -\fB\-f\fR, \fB\-\-force\fR -force recodings even when not reversible -.TP -\fB\-t\fR, \fB\-\-touch\fR -touch the recoded files after replacement -.TP -\fB\-i\fR, \fB\-\-sequence\fR=\fIfiles\fR -use intermediate files for sequencing passes -.TP -\fB\-\-sequence\fR=\fImemory\fR -use memory buffers for sequencing passes -.TP -\fB\-p\fR, \fB\-\-sequence\fR=\fIpipe\fR -use pipe machinery for sequencing passes -.SS "Fine tuning:" -.TP -\fB\-s\fR, \fB\-\-strict\fR -use strict mappings, even loose characters -.TP -\fB\-d\fR, \fB\-\-diacritics\fR -convert only diacritics or alike for HTML/LaTeX -.TP -\fB\-S\fR, \fB\-\-source\fR[=\fILN\fR] -limit recoding to strings and comments as for LN -.TP -\fB\-c\fR, \fB\-\-colons\fR -use colons instead of double quotes for diaeresis -.TP -\fB\-g\fR, \fB\-\-graphics\fR -approximate IBMPC rulers by ASCII graphics -.TP -\fB\-x\fR, \fB\-\-ignore\fR=\fICHARSET\fR -ignore CHARSET while choosing a recoding path -.PP -Option \fB\-l\fR with no FORMAT nor CHARSET list available charsets and surfaces. -FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf'). -Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the locale -dependent encoding, determined by LC_ALL, LC_CTYPE, LANG. -With \fB\-k\fR, possible before charsets are listed for the given after CHARSET, -both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...' -and BEFs and AFTs being codes are given as decimal numbers. -LN is some language, it may be `c', `perl' or `po'; `c' is the default. -.PP -REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[..ENCODING]... -ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE..AFTER, -with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual -charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a / -with an empty surface name means no surfaces at all. See the manual. -.PP -If none of \fB\-i\fR and \fB\-p\fR are given, presume \fB\-p\fR if no FILE, else \fB\-i\fR. -Each FILE is recoded over itself, destroying the original. If no -FILE is specified, then act as a filter and recode stdin to stdout. -.SH AUTHOR -Written by Franc,ois Pinard . -.SH "REPORTING BUGS" -Report bugs to . -.SH COPYRIGHT -Copyright \(co 1990, 92-94, 96, 97, 99, 08 Free Software Foundation, Inc. -.br -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -.SH "SEE ALSO" -The full documentation for -.B recode -is maintained as a Texinfo manual. If the -.B info -and -.B recode -programs are properly installed at your site, the command -.IP -.B info recode -.PP -should give you access to the complete manual. diff --git a/src/recode.c b/src/recode.c index 776451b..fd7c44a 100644 --- a/src/recode.c +++ b/src/recode.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990,92,93,94,96,97,98,99,00 Free Software Foundation, Inc. + Copyright © 1990-2022 Free Software Foundation, Inc. Contributed by François Pinard , 1990. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,22 +14,17 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" /* Global declarations and definitions. */ +#include #include - -#if HAVE_UNISTD_H -# include -#endif - -#if WITH_DMALLOC -# include -#endif +#include #include "hash.h" @@ -37,80 +32,39 @@ extern const char *program_name; /* Error handling. */ -#if HAVE_VPRINTF || HAVE_DOPRNT -# if __STDC__ -# include -# define VA_START(args, lastarg) va_start(args, lastarg) -# else -# include -# define VA_START(args, lastarg) va_start(args) -# endif -#else -# define va_alist a1, a2, a3, a4, a5, a6, a7, a8 -# define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8; -#endif - -void -#if defined(VA_START) && __STDC__ -recode_error (RECODE_OUTER outer, const char *format, ...) -#else -recode_error (outer, format, va_alist) - RECODE_OUTER outer; - const char *format; - va_dcl -#endif +#include + +_GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) void +recode_error (_GL_UNUSED RECODE_OUTER outer, const char *format, ...) { -#ifdef VA_START va_list args; - VA_START (args, format); -# if HAVE_VPRINTF + va_start (args, format); vfprintf (stderr, format, args); -# else - _doprnt (format, args, stderr); -# endif va_end (args); -#else - fprintf (stderr, format, a1, a2, a3, a4, a5, a6, a7, a8); -#endif putc ('\n', stderr); fflush (stderr); } -void -#if defined(VA_START) && __STDC__ -recode_perror (RECODE_OUTER outer, const char *format, ...) -#else -recode_perror (outer, format, va_alist) - RECODE_OUTER outer; - const char *format; - va_dcl -#endif +_GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) void +recode_perror (_GL_UNUSED RECODE_OUTER outer, const char *format, ...) { int saved_errno = errno; -#ifdef VA_START va_list args; - VA_START (args, format); -# if HAVE_VPRINTF + va_start (args, format); vfprintf (stderr, format, args); -# else - _doprnt (format, args, stderr); -# endif va_end (args); -#else - fprintf (stderr, format, a1, a2, a3, a4, a5, a6, a7, a8); -#endif fprintf (stderr, ": %s\n", strerror (saved_errno)); fflush (stderr); } -void * +_GL_ATTRIBUTE_MALLOC void * recode_malloc (RECODE_OUTER outer, size_t size) { void *result; - result = malloc (size); + result = calloc (1, size); if (!result) recode_error (outer, _("Virtual memory exhausted")); @@ -136,7 +90,7 @@ recode_realloc (RECODE_OUTER outer, void *pointer, size_t size) `------------------------------------------------------------------*/ unsigned char * -invert_table (RECODE_OUTER outer, const unsigned char *table) +recode_invert_table (RECODE_OUTER outer, const unsigned char *table) { unsigned char flag[256]; unsigned char *result; @@ -152,7 +106,7 @@ invert_table (RECODE_OUTER outer, const unsigned char *table) { if (flag[table[counter]]) { - recode_error (outer, _("Codes %3d and %3d both recode to %3d"), + recode_error (outer, _("Codes %3d and %3u both recode to %3d"), result[table[counter]], counter, table[counter]); table_error = true; } @@ -166,7 +120,7 @@ invert_table (RECODE_OUTER outer, const unsigned char *table) { for (counter = 0; counter < 256; counter++) if (!flag[counter]) - recode_error (outer, _("No character recodes to %3d"), counter); + recode_error (outer, _("No character recodes to %3u"), counter); recode_error (outer, _("Cannot invert given one-to-one table")); } return result; @@ -178,11 +132,11 @@ invert_table (RECODE_OUTER outer, const unsigned char *table) | NUMBER_OF_PAIRS constraints. If FIRST_HALF_IMPLIED is not zero, default | | the unconstrained characters of the first 128 to the identity mapping. If | | REVERSE is not zero, use right_table instead of left_table to complete the | -| table, yet new pairs are created only when fallback is reversibility. | +| table, yet new pairs are created only when fallback is recode_reversibility. | `---------------------------------------------------------------------------*/ bool -complete_pairs (RECODE_OUTER outer, RECODE_STEP step, +recode_complete_pairs (RECODE_OUTER outer, RECODE_STEP step, const struct recode_known_pair *known_pairs, unsigned number_of_pairs, bool first_half_implied, bool reverse) { @@ -228,7 +182,7 @@ complete_pairs (RECODE_OUTER outer, RECODE_STEP step, table_error = true; } recode_error (outer, - _("Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>"), + _("Pair no. %u: <%3d, %3d> conflicts with <%3d, %3d>"), counter, left, right, left, left_table[left]); } else if (right_flag[right]) @@ -240,7 +194,7 @@ complete_pairs (RECODE_OUTER outer, RECODE_STEP step, table_error = true; } recode_error (outer, - _("Pair no. %d: <%3d, %3d> conflicts with <%3d, %3d>"), + _("Pair no. %u: <%3d, %3d> conflicts with <%3d, %3d>"), counter, left, right, right_table[right], right); } else @@ -264,7 +218,7 @@ complete_pairs (RECODE_OUTER outer, RECODE_STEP step, right_table[counter] = counter; } - if (step->fallback_routine == reversibility) + if (step->fallback_routine == recode_reversibility) { /* If the recoding is not strict, compute a reversible one to one table. */ @@ -289,12 +243,13 @@ complete_pairs (RECODE_OUTER outer, RECODE_STEP step, /* Save a copy of the proper table. */ - step->transform_routine = transform_byte_to_byte; + step->transform_routine = recode_transform_byte_to_byte; if (!ALLOC (table, 256, unsigned char)) return false; memcpy (table, reverse ? right_table : left_table, 256); step->step_type = RECODE_BYTE_TO_BYTE; step->step_table = table; + step->step_table_term_routine = free; /* Upgrade step quality to reversible. */ @@ -343,9 +298,10 @@ complete_pairs (RECODE_OUTER outer, RECODE_STEP step, /* Save a one to many recoding table. */ - step->transform_routine = transform_byte_to_variable; + step->transform_routine = recode_transform_byte_to_variable; step->step_type = RECODE_BYTE_TO_STRING; step->step_table = table2; + step->step_table_term_routine = free; } return true; @@ -358,28 +314,28 @@ complete_pairs (RECODE_OUTER outer, RECODE_STEP step, `-------------------------------------------------------------------------*/ bool -transform_byte_to_ucs2 (RECODE_SUBTASK subtask) +recode_transform_byte_to_ucs2 (RECODE_SUBTASK subtask) { int input_char; /* current character */ int output_value; /* value being output */ - if (input_char = get_byte (subtask), input_char != EOF) + if (input_char = recode_get_byte (subtask), input_char != EOF) { if (subtask->task->byte_order_mark) - put_ucs2 (BYTE_ORDER_MARK, subtask); + recode_put_ucs2 (BYTE_ORDER_MARK, subtask); while (input_char != EOF) { - output_value = code_to_ucs2 (subtask->step->before, input_char); + output_value = recode_code_to_ucs2 (subtask->step->before, input_char); if (output_value < 0) { RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask); - put_ucs2 (REPLACEMENT_CHARACTER, subtask); + recode_put_ucs2 (REPLACEMENT_CHARACTER, subtask); } else - put_ucs2 (output_value, subtask); + recode_put_ucs2 (output_value, subtask); - input_char = get_byte (subtask); + input_char = recode_get_byte (subtask); } } @@ -390,6 +346,18 @@ transform_byte_to_ucs2 (RECODE_SUBTASK subtask) | Recode a file from double byte UCS-2 characters to one byte characters. | `-------------------------------------------------------------------------*/ +struct ucs2_to_byte + { + recode_ucs2 code; /* UCS-2 value */ + unsigned char byte; /* corresponding byte */ + }; + +struct ucs2_to_byte_local + { + Hash_table *table; + struct ucs2_to_byte *data; + }; + static size_t ucs2_to_byte_hash (const void *void_data, size_t table_size) { @@ -407,8 +375,17 @@ ucs2_to_byte_compare (const void *void_first, const void *void_second) return first->code == second->code; } +static bool +term_ucs2_to_byte (RECODE_STEP step) +{ + hash_free (((struct ucs2_to_byte_local *) step->local)->table); + free (((struct ucs2_to_byte_local *) step->local)->data); + free (step->local); + return true; +} + bool -init_ucs2_to_byte (RECODE_STEP step, +recode_init_ucs2_to_byte (RECODE_STEP step, RECODE_CONST_REQUEST request, RECODE_CONST_OPTION_LIST before_options, RECODE_CONST_OPTION_LIST after_options) @@ -434,7 +411,7 @@ init_ucs2_to_byte (RECODE_STEP step, for (counter = 0; counter < 256; counter++) { - data[counter].code = code_to_ucs2 (step->after, counter); + data[counter].code = recode_code_to_ucs2 (step->after, counter); data[counter].byte = counter; if (!hash_insert (table, data + counter)) { @@ -444,24 +421,33 @@ init_ucs2_to_byte (RECODE_STEP step, } } - step->local = table; + if (!ALLOC (step->local, 1, struct ucs2_to_byte_local)) + { + hash_free (table); + free (data); + return false; + } + ((struct ucs2_to_byte_local *) step->local)->table = table; + ((struct ucs2_to_byte_local *) step->local)->data = data; + + step->term_routine = term_ucs2_to_byte; return true; } bool -transform_ucs2_to_byte (RECODE_SUBTASK subtask) +recode_transform_ucs2_to_byte (RECODE_SUBTASK subtask) { - Hash_table *table = (Hash_table *) subtask->step->local; + Hash_table *table = ((struct ucs2_to_byte_local *) subtask->step->local)->table; struct ucs2_to_byte lookup; struct ucs2_to_byte *entry; unsigned input_value; /* current UCS-2 character */ - while (get_ucs2 (&input_value, subtask)) + while (recode_get_ucs2 (&input_value, subtask)) { lookup.code = input_value; entry = (struct ucs2_to_byte *) hash_lookup (table, &lookup); if (entry) - put_byte (entry->byte, subtask); + recode_put_byte (entry->byte, subtask); else RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask); } @@ -538,7 +524,7 @@ recode_format_table (RECODE_REQUEST request, printf (_("%sConversion table generated mechanically by %s %s"), start_comment, PACKAGE, VERSION); printf (_("%sfor sequence %s.%s"), - wrap_comment, edit_sequence (request, 1), end_comment); + wrap_comment, recode_edit_sequence (request, 1), end_comment); printf ("\n"); /* Construct the name of the resulting table. */ @@ -550,7 +536,7 @@ recode_format_table (RECODE_REQUEST request, strcpy (name, header_name); } else - name = edit_sequence (request, 0); + name = recode_edit_sequence (request, 0); /* Ensure the table name contains only valid characters for a C identifier. */ @@ -565,7 +551,7 @@ recode_format_table (RECODE_REQUEST request, if (underline) { *cursor++ = '_'; - underline =false; + underline = false; } *cursor++ = *cursor2; } @@ -595,12 +581,15 @@ recode_format_table (RECODE_REQUEST request, printf ("@%s =\n", name); printf (" (\n"); break; + + default: + break; } for (counter = 0; counter < 256; counter++) { printf ("%s%3d,", counter % 8 == 0 ? " " : " ", table[counter]); if (counter % 8 == 7) - printf ("\t%s%3d - %3d%s", + printf ("\t%s%3u - %3u%s", start_comment, counter - 7, counter, end_comment); } switch (header_language) @@ -615,6 +604,9 @@ recode_format_table (RECODE_REQUEST request, case RECODE_LANGUAGE_PERL: printf (" );\n"); break; + + default: + break; } } else if (step->step_type == RECODE_BYTE_TO_STRING) @@ -637,6 +629,9 @@ recode_format_table (RECODE_REQUEST request, printf ("@%s =\n", name); printf (" (\n"); break; + + default: + break; } for (counter = 0; counter < 256; counter++) { @@ -686,6 +681,7 @@ recode_format_table (RECODE_REQUEST request, column += 2; break; } + FALLTHROUGH; default: if (isprint (*cursor2)) @@ -717,6 +713,9 @@ recode_format_table (RECODE_REQUEST request, printf ("''"); column += 2; break; + + default: + break; } printf (","); column++; @@ -725,7 +724,7 @@ recode_format_table (RECODE_REQUEST request, printf ("\t"); column += 8 - column % 8; } - printf ("%s%3d%s", start_comment, counter, end_comment); + printf ("%s%3u%s", start_comment, counter, end_comment); } switch (header_language) { @@ -739,6 +738,9 @@ recode_format_table (RECODE_REQUEST request, case RECODE_LANGUAGE_PERL: printf (" );\n"); break; + + default: + break; } } else diff --git a/src/recode.h b/src/recode.h index 352ccf0..f1753bd 100644 --- a/src/recode.h +++ b/src/recode.h @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 96, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2022 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,16 +14,8 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ - -#ifndef PARAMS -# if __STDC__ -# define PARAMS(Args) Args -# else -# define PARAMS(Args) () -# endif -#endif + If not, see . +*/ /* Published (opaque) typedefs. */ typedef struct recode_outer * RECODE_OUTER; @@ -64,57 +56,59 @@ extern "C" { #define RECODE_AUTO_ABORT_FLAG 1 #define RECODE_NO_ICONV_FLAG 2 +#define RECODE_STRICT_MAPPING_FLAG 4 +#define RECODE_FORCE_FLAG 8 -RECODE_OUTER recode_new_outer PARAMS ((unsigned)); -bool recode_delete_outer PARAMS ((RECODE_OUTER)); +RECODE_OUTER recode_new_outer (unsigned); +bool recode_delete_outer (RECODE_OUTER); -bool list_all_symbols PARAMS ((RECODE_OUTER, RECODE_CONST_SYMBOL)); -bool list_concise_charset PARAMS ((RECODE_OUTER, RECODE_CONST_SYMBOL, - const enum recode_list_format)); -bool list_full_charset PARAMS ((RECODE_OUTER, RECODE_CONST_SYMBOL)); +bool recode_list_all_symbols (RECODE_OUTER, RECODE_CONST_SYMBOL); +bool recode_list_concise_charset (RECODE_OUTER, RECODE_CONST_SYMBOL, + const enum recode_list_format); +bool recode_list_full_charset (RECODE_OUTER, RECODE_CONST_SYMBOL); /*----------------------------------. | Recode library at REQUEST level. | `----------------------------------*/ -RECODE_REQUEST recode_new_request PARAMS ((RECODE_OUTER)); -bool recode_delete_request PARAMS ((RECODE_REQUEST)); -bool recode_scan_request PARAMS ((RECODE_REQUEST, const char *)); - -bool recode_format_table PARAMS ((RECODE_REQUEST, - enum recode_programming_language, - const char *)); - -char *recode_string PARAMS ((RECODE_CONST_REQUEST, const char *)); - -bool recode_string_to_buffer PARAMS ((RECODE_CONST_REQUEST, - const char *, - char **, size_t *, size_t *)); -bool recode_string_to_file PARAMS ((RECODE_CONST_REQUEST, - const char *, - FILE *)); -bool recode_buffer_to_buffer PARAMS ((RECODE_CONST_REQUEST, - const char *, size_t, - char **, size_t *, size_t *)); -bool recode_buffer_to_file PARAMS ((RECODE_CONST_REQUEST, - const char *, size_t, - FILE *)); -bool recode_file_to_buffer PARAMS ((RECODE_CONST_REQUEST, - FILE *, - char **, size_t *, size_t *)); -bool recode_file_to_file PARAMS ((RECODE_CONST_REQUEST, - FILE *, - FILE *)); +RECODE_REQUEST recode_new_request (RECODE_OUTER); +bool recode_delete_request (RECODE_REQUEST); +bool recode_scan_request (RECODE_REQUEST, const char *); + +bool recode_format_table (RECODE_REQUEST, + enum recode_programming_language, + const char *); + +char *recode_string (RECODE_CONST_REQUEST, const char *); + +bool recode_string_to_buffer (RECODE_CONST_REQUEST, + const char *, + char **, size_t *, size_t *); +bool recode_string_to_file (RECODE_CONST_REQUEST, + const char *, + FILE *); +bool recode_buffer_to_buffer (RECODE_CONST_REQUEST, + const char *, size_t, + char **, size_t *, size_t *); +bool recode_buffer_to_file (RECODE_CONST_REQUEST, + const char *, size_t, + FILE *); +bool recode_file_to_buffer (RECODE_CONST_REQUEST, + FILE *, + char **, size_t *, size_t *); +bool recode_file_to_file (RECODE_CONST_REQUEST, + FILE *, + FILE *); /*-------------------------------. | Recode library at TASK level. | `-------------------------------*/ -RECODE_TASK recode_new_task PARAMS ((RECODE_CONST_REQUEST)); -bool recode_delete_task PARAMS ((RECODE_TASK)); -bool recode_perform_task PARAMS ((RECODE_TASK)); -/* FILE *recode_filter_open PARAMS ((RECODE_TASK, FILE *)); */ -/* bool recode_filter_close PARAMS ((RECODE_TASK)); */ +RECODE_TASK recode_new_task (RECODE_CONST_REQUEST); +bool recode_delete_task (RECODE_TASK); +bool recode_perform_task (RECODE_TASK); +/* FILE *recode_filter_open (RECODE_TASK, FILE *); */ +/* bool recode_filter_close (RECODE_TASK); */ #ifdef __cplusplus } diff --git a/src/recode.x.in b/src/recode.x.in new file mode 100644 index 0000000..dd094a6 --- /dev/null +++ b/src/recode.x.in @@ -0,0 +1,5 @@ +[NAME] +@PACKAGE@ \- converts files between character sets + +[MAINTAINER] +Maintained by Reuben Thomas . diff --git a/src/recodext.h b/src/recodext.h index 8533799..fe299a5 100644 --- a/src/recodext.h +++ b/src/recodext.h @@ -1,199 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 2008 Free Software Foundation, Inc. - Contributed by François Pinard , 2008. - - This 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. - - 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. - - You should have received a copy of the GNU Library General Public - License along with the Recode 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. */ - -/* Definitions to clean up the linker namespace. */ - -#ifndef CLEANER_H_ -# define CLEANER_H_ - -# define __xargmatch_internal librecode_xargmatch_internal -# define aliases_lookup librecode_aliases_lookup -# define argcasematch librecode_argcasematch -# define argmatch librecode_argmatch -# define argmatch_invalid librecode_argmatch_invalid -# define argmatch_to_argument librecode_argmatch_to_argument -# define argmatch_valid librecode_argmatch_valid -# define clone_quoting_options librecode_clone_quoting_options -# define code_to_ucs2 librecode_code_to_ucs2 -# define combine_byte_byte librecode_combine_byte_byte -# define combine_byte_ucs2 librecode_combine_byte_ucs2 -# define combine_ucs2_byte librecode_combine_ucs2_byte -# define combine_ucs2_ucs2 librecode_combine_ucs2_ucs2 -# define complete_pairs librecode_complete_pairs -# define declare_alias librecode_declare_alias -# define declare_explode_data librecode_declare_explode_data -# define declare_iconv librecode_declare_iconv -# define declare_implied_surface librecode_declare_implied_surface -# define declare_single librecode_declare_single -# define declare_strip_data librecode_declare_strip_data -# define decode_known_pairs librecode_decode_known_pairs -# define delmodule_african librecode_delmodule_african -# define delmodule_afrtran librecode_delmodule_afrtran -# define delmodule_applemac librecode_delmodule_applemac -# define delmodule_ascii_latin1 librecode_delmodule_ascii_latin1 -# define delmodule_atarist librecode_delmodule_atarist -# define delmodule_bangbang librecode_delmodule_bangbang -# define delmodule_base64 librecode_delmodule_base64 -# define delmodule_cdcnos librecode_delmodule_cdcnos -# define delmodule_dump librecode_delmodule_dump -# define delmodule_ebcdic librecode_delmodule_ebcdic -# define delmodule_endline librecode_delmodule_endline -# define delmodule_flat librecode_delmodule_flat -# define delmodule_html librecode_delmodule_html -# define delmodule_ibmpc librecode_delmodule_ibmpc -# define delmodule_iconqnx librecode_delmodule_iconqnx -# define delmodule_iconv librecode_delmodule_iconv -# define delmodule_latex_latin1 librecode_delmodule_latex_latin1 -# define delmodule_latin1_ascii librecode_delmodule_latin1_ascii -# define delmodule_latin1_latex librecode_delmodule_latin1_latex -# define delmodule_latin1_texte librecode_delmodule_latin1_texte -# define delmodule_mule librecode_delmodule_mule -# define delmodule_permutations librecode_delmodule_permutations -# define delmodule_quoted_printable librecode_delmodule_quoted_printable -# define delmodule_rfc1345 librecode_delmodule_rfc1345 -# define delmodule_strips librecode_delmodule_strips -# define delmodule_testdump librecode_delmodule_testdump -# define delmodule_texinfo librecode_delmodule_texinfo -# define delmodule_texte_latin1 librecode_delmodule_texte_latin1 -# define delmodule_ucs librecode_delmodule_ucs -# define delmodule_utf16 librecode_delmodule_utf16 -# define delmodule_utf7 librecode_delmodule_utf7 -# define delmodule_utf8 librecode_delmodule_utf8 -# define delmodule_varia librecode_delmodule_varia -# define delmodule_vietnamese librecode_delmodule_vietnamese -# define edit_sequence librecode_edit_sequence -# define explode_byte_byte librecode_explode_byte_byte -# define explode_byte_ucs2 librecode_explode_byte_ucs2 -# define explode_ucs2_byte librecode_explode_ucs2_byte -# define explode_ucs2_ucs2 librecode_explode_ucs2_ucs2 -# define find_alias librecode_find_alias -# define find_and_report_subsets librecode_find_and_report_subsets -# define get_byte_helper librecode_get_byte_helper -# define get_quoting_style librecode_get_quoting_style -# define get_ucs2 librecode_get_ucs2 -# define get_ucs4 librecode_get_ucs4 -# define hash_clear librecode_hash_clear -# define hash_delete librecode_hash_delete -# define hash_do_for_each librecode_hash_do_for_each -# define hash_free librecode_hash_free -# define hash_get_entries librecode_hash_get_entries -# define hash_get_first librecode_hash_get_first -# define hash_get_max_bucket_length librecode_hash_get_max_bucket_length -# define hash_get_n_buckets librecode_hash_get_n_buckets -# define hash_get_n_buckets_used librecode_hash_get_n_buckets_used -# define hash_get_n_entries librecode_hash_get_n_entries -# define hash_get_next librecode_hash_get_next -# define hash_initialize librecode_hash_initialize -# define hash_insert librecode_hash_insert -# define hash_lookup librecode_hash_lookup -# define hash_print_statistics librecode_hash_print_statistics -# define hash_rehash librecode_hash_rehash -# define hash_reset_tuning librecode_hash_reset_tuning -# define hash_string librecode_hash_string -# define hash_table_ok librecode_hash_table_ok -# define init_combine librecode_init_combine -# define init_explode librecode_init_explode -# define init_ucs2_to_byte librecode_init_ucs2_to_byte -# define invert_table librecode_invert_table -# define list_all_symbols librecode_list_all_symbols -# define list_concise_charset librecode_list_concise_charset -# define list_full_charset librecode_list_full_charset -# define locale_charset librecode_locale_charset -# define make_argmatch_arrays librecode_make_argmatch_arrays -# define module_african librecode_module_african -# define module_afrtran librecode_module_afrtran -# define module_applemac librecode_module_applemac -# define module_ascii_latin1 librecode_module_ascii_latin1 -# define module_atarist librecode_module_atarist -# define module_bangbang librecode_module_bangbang -# define module_base64 librecode_module_base64 -# define module_cdcnos librecode_module_cdcnos -# define module_dump librecode_module_dump -# define module_ebcdic librecode_module_ebcdic -# define module_endline librecode_module_endline -# define module_flat librecode_module_flat -# define module_html librecode_module_html -# define module_ibmpc librecode_module_ibmpc -# define module_iconqnx librecode_module_iconqnx -# define module_iconv librecode_module_iconv -# define module_latex_latin1 librecode_module_latex_latin1 -# define module_latin1_ascii librecode_module_latin1_ascii -# define module_latin1_latex librecode_module_latin1_latex -# define module_latin1_texte librecode_module_latin1_texte -# define module_mule librecode_module_mule -# define module_permutations librecode_module_permutations -# define module_quoted_printable librecode_module_quoted_printable -# define module_rfc1345 librecode_module_rfc1345 -# define module_strips librecode_module_strips -# define module_testdump librecode_module_testdump -# define module_texinfo librecode_module_texinfo -# define module_texte_latin1 librecode_module_texte_latin1 -# define module_ucs librecode_module_ucs -# define module_utf16 librecode_module_utf16 -# define module_utf7 librecode_module_utf7 -# define module_utf8 librecode_module_utf8 -# define module_varia librecode_module_varia -# define module_vietnamese librecode_module_vietnamese -# define prepare_for_aliases librecode_prepare_for_aliases -# define put_byte_helper librecode_put_byte_helper -# define put_ucs2 librecode_put_ucs2 -# define put_ucs4 librecode_put_ucs4 -# define quotearg librecode_quotearg -# define quotearg_buffer librecode_quotearg_buffer -# define quotearg_char librecode_quotearg_char -# define quotearg_colon librecode_quotearg_colon -# define quotearg_n librecode_quotearg_n -# define quotearg_n_style librecode_quotearg_n_style -# define quotearg_style librecode_quotearg_style -# define reversibility librecode_reversibility -# define set_char_quoting librecode_set_char_quoting -# define set_quoting_style librecode_set_quoting_style -# define should_prefer_french librecode_should_prefer_french -# define texte_latin1_diaeresis librecode_texte_latin1_diaeresis -# define transform_byte_to_byte librecode_transform_byte_to_byte -# define transform_byte_to_ucs2 librecode_transform_byte_to_ucs2 -# define transform_byte_to_variable librecode_transform_byte_to_variable -# define transform_ucs2_to_byte librecode_transform_ucs2_to_byte -# define transform_with_iconv librecode_transform_with_iconv -# define ucs2_to_charname librecode_ucs2_to_charname -# define ucs2_to_french_charname librecode_ucs2_to_french_charname -# define ucs2_to_rfc1345 librecode_ucs2_to_rfc1345 -# define x2nrealloc librecode_x2nrealloc -# define x2realloc librecode_x2realloc -# define xalloc_die librecode_xalloc_die -# define xcalloc librecode_xcalloc -# define xmalloc librecode_xmalloc -# define xmemdup librecode_xmemdup -# define xnmalloc librecode_xnmalloc -# define xnrealloc librecode_xnrealloc -# define xrealloc librecode_xrealloc -# define xstrdup librecode_xstrdup -# define xzalloc librecode_xzalloc - -#endif /* ! CLEANER_H_ */ -/* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 96-99, 2000, 2001 Free Software Foundation, Inc. + Copyright © 1990-2023 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -203,8 +14,8 @@ You should have received a copy of the GNU Library General Public License along with the Recode 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. */ + If not, see . +*/ /* Extended definitions, for externally written steps. */ @@ -225,15 +36,8 @@ typedef const struct recode_step * RECODE_CONST_STEP; typedef const struct recode_alias * RECODE_CONST_ALIAS; typedef const struct recode_task * RECODE_CONST_TASK; -/*---------------------------------------------------------. -| Maintain maximum of ERROR and current error in SUBTASK. | -`---------------------------------------------------------*/ - -#define SET_SUBTASK_ERROR(Error, Subtask) \ - recode_if_nogo (Error, Subtask) - /*--------------------------------------------------------------------------. -| Return from SUBTASK with `false', if the failure level has been reached. | +| Return from SUBTASK, with `false' if the failure level has been reached. | `--------------------------------------------------------------------------*/ #define SUBTASK_RETURN(Subtask) \ @@ -310,6 +114,13 @@ struct recode_outer /* If the external `iconv' library should be initialized and used. */ bool use_iconv; + /* If we should discard untranslatable input and return an error, + unless 'force' is set (see below). */ + bool strict_mapping; + + /* If we should ignore untranslatable input altogether. */ + bool force; + /* charset.c */ /* --------- */ @@ -326,8 +137,8 @@ struct recode_outer unsigned number_of_symbols; /* Arrays of strings ready for argmatch. */ - char **argmatch_charset_array; - char **argmatch_surface_array; + char const **argmatch_charset_array; + char const **argmatch_surface_array; const char **realname_charset_array; const char **realname_surface_array; @@ -343,7 +154,6 @@ struct recode_outer /* Preset charsets and surfaces. */ RECODE_SYMBOL data_symbol;/* special charset defining surfaces */ - RECODE_SYMBOL tree_symbol; /* special charset defining structures */ RECODE_SYMBOL ucs2_charset; /* UCS-2 */ RECODE_SYMBOL iconv_pivot; /* `iconv' internal UCS */ RECODE_SYMBOL crlf_surface; /* for IBM PC machines */ @@ -369,8 +179,7 @@ enum recode_symbol_type { RECODE_NO_SYMBOL_TYPE, /* missing value */ RECODE_CHARSET, /* visible in the space of charsets */ - RECODE_DATA_SURFACE, /* this is a mere data surface */ - RECODE_TREE_SURFACE /* this is a structural surface */ + RECODE_DATA_SURFACE /* this is a mere data surface */ }; enum recode_data_type @@ -423,12 +232,14 @@ struct recode_surface_list | Description of a single step of recoding. | `-------------------------------------------*/ -typedef bool (*Recode_init) PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST, - RECODE_CONST_OPTION_LIST, - RECODE_CONST_OPTION_LIST)); -typedef bool (*Recode_term) PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST)); -typedef bool (*Recode_transform) PARAMS ((RECODE_SUBTASK)); -typedef bool (*Recode_fallback) PARAMS ((RECODE_SUBTASK, unsigned)); +extern bool recode_interrupted; + +typedef bool (*Recode_init) (RECODE_STEP, RECODE_CONST_REQUEST, + RECODE_CONST_OPTION_LIST, + RECODE_CONST_OPTION_LIST); +typedef bool (*Recode_term) (RECODE_STEP); +typedef bool (*Recode_transform) (RECODE_SUBTASK); +typedef bool (*Recode_fallback) (RECODE_SUBTASK, unsigned); /* The `single' structure holds data needed to decide of sequences, and is invariant over actual requests. The `step' structure holds data needed for @@ -493,6 +304,7 @@ struct recode_step /* Recoding table. */ void *step_table; + void (*step_table_term_routine)(void *); /* Step specific variables. */ void *local; @@ -540,7 +352,7 @@ struct recode_request to a single step, table production will fail. */ bool make_header_flag : 1; - /* For `latex' charset, it is often convenient to recode the diacritics + /* For `latex/bibtex' charsets, it is often convenient to recode the diacritics only, while letting other LaTeX code using backslashes unrecoded. In the other charset, one can edit text as well as LaTeX directives. */ bool diacritics_only : 1; @@ -571,7 +383,7 @@ struct recode_request BUFFER. Moreover, if NAME is not NULL at start of recoding, this is interpreted as a request for the library to open the named file, either in read or write mode, and also to close it afterwards. Standard input - or output is denoted by NAME being non-NULL, but otherwise empty. + or output is denoted by NAME being an empty string. If FILE is NULL in input mode, the in-memory read-only text extends from BUFFER to LIMIT. There is no clue about if the buffer has been allocated @@ -598,16 +410,6 @@ struct recode_read_write_text char *limit; }; -/* Tells how various passes are interconnected. */ - -enum recode_sequence_strategy - { - RECODE_STRATEGY_UNDECIDED, /* sequencing strategy is undecided yet */ - RECODE_SEQUENCE_IN_MEMORY, /* keep intermediate recodings in memory */ - RECODE_SEQUENCE_WITH_FILES, /* do not fork, use intermediate files */ - RECODE_SEQUENCE_WITH_PIPE /* fork processes connected with `pipe(2)' */ - }; - /* Tells how to swap the incoming pair of bytes, while reading UCS-2. */ enum recode_swap_input @@ -660,9 +462,6 @@ struct recode_task struct recode_read_only_text input; struct recode_read_write_text output; - /* Tells how various recoding steps (passes) will be interconnected. */ - enum recode_sequence_strategy strategy : 3; - /* Produce a byte order mark on UCS-2 output, insist for it on input. */ bool byte_order_mark : 1; @@ -711,7 +510,7 @@ typedef unsigned short recode_ucs2; and 32 needs 25568, so we decided to stick to a strip size of 8. Change $STRIP_SIZE in `doc/tables.pl' if you change the value here. */ -/* "Are we speaking slips, strips or bars?" (of gold press'latinum :-) */ +/* "Are we speaking slips, strips or bars?" (of gold-pressed latinum :-) */ #define STRIP_SIZE 8 /* An struct strip_data is a pointer to a pool of strips, and an array @@ -724,12 +523,6 @@ struct strip_data const short offset[256 / STRIP_SIZE]; }; -struct ucs2_to_byte - { - recode_ucs2 code; /* UCS-2 value */ - unsigned char byte; /* corresponding byte */ - }; - struct ucs2_to_string { recode_ucs2 code; /* UCS-2 value */ @@ -746,7 +539,7 @@ extern "C" { /* recode.c. */ #define ALLOC_SIZE(Variable, Size, Type) \ - (Variable = (Type *) recode_malloc (outer, (Size)), Variable) + (Variable = (Type *) recode_malloc (outer, (Size))) #define ALLOC(Variable, Count, Type) \ ALLOC_SIZE (Variable, (Count) * sizeof (Type), Type) @@ -756,25 +549,25 @@ extern "C" { (Count) * sizeof(Type)), \ Variable) -void recode_error PARAMS ((RECODE_OUTER, const char *, ...)); -void recode_perror PARAMS ((RECODE_OUTER, const char *, ...)); -void *recode_malloc PARAMS ((RECODE_OUTER, size_t)); -void *recode_realloc PARAMS ((RECODE_OUTER, void *, size_t)); - -unsigned char *invert_table PARAMS ((RECODE_OUTER, const unsigned char *)); -bool complete_pairs PARAMS ((RECODE_OUTER, RECODE_STEP, - const struct recode_known_pair *, unsigned, - bool, bool)); -bool transform_byte_to_ucs2 PARAMS ((RECODE_SUBTASK)); -bool init_ucs2_to_byte PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST, - RECODE_CONST_OPTION_LIST, - RECODE_CONST_OPTION_LIST)); -bool transform_ucs2_to_byte PARAMS ((RECODE_SUBTASK)); +void recode_error (RECODE_OUTER, const char *, ...); +void recode_perror (RECODE_OUTER, const char *, ...); +void *recode_malloc (RECODE_OUTER, size_t); +void *recode_realloc (RECODE_OUTER, void *, size_t); + +unsigned char *recode_invert_table (RECODE_OUTER, const unsigned char *); +bool recode_complete_pairs (RECODE_OUTER, RECODE_STEP, + const struct recode_known_pair *, unsigned, + bool, bool); +bool recode_transform_byte_to_ucs2 (RECODE_SUBTASK); +bool recode_init_ucs2_to_byte (RECODE_STEP, RECODE_CONST_REQUEST, + RECODE_CONST_OPTION_LIST, + RECODE_CONST_OPTION_LIST); +bool recode_transform_ucs2_to_byte (RECODE_SUBTASK); /* charname.c and fr-charname.c. */ -const char *ucs2_to_charname PARAMS ((int)); -const char *ucs2_to_french_charname PARAMS ((int)); +const char *recode_ucs2_to_charname (int); +const char *recode_ucs2_to_french_charname (int); /* charset.c. */ @@ -782,80 +575,78 @@ enum alias_find_type { SYMBOL_CREATE_CHARSET, /* charset as given, create as needed */ SYMBOL_CREATE_DATA_SURFACE, /* data surface as given, create as needed */ - SYMBOL_CREATE_TREE_SURFACE, /* tree surface as given, create as needed */ ALIAS_FIND_AS_CHARSET, /* disambiguate only as a charset */ ALIAS_FIND_AS_SURFACE, /* disambiguate only as a surface */ ALIAS_FIND_AS_EITHER /* disambiguate as a charset or a surface */ }; -int code_to_ucs2 (RECODE_CONST_SYMBOL, unsigned); -bool prepare_for_aliases PARAMS ((RECODE_OUTER)); -RECODE_ALIAS declare_alias PARAMS ((RECODE_OUTER, - const char *, const char *)); -bool declare_implied_surface PARAMS ((RECODE_OUTER, RECODE_ALIAS, - RECODE_CONST_SYMBOL)); -bool make_argmatch_arrays PARAMS ((RECODE_OUTER)); -RECODE_ALIAS find_alias PARAMS ((RECODE_OUTER, const char *, - enum alias_find_type)); -bool find_and_report_subsets PARAMS ((RECODE_OUTER)); -bool decode_known_pairs PARAMS ((RECODE_OUTER, const char *)); +int recode_code_to_ucs2 (RECODE_CONST_SYMBOL, unsigned); +bool recode_prepare_for_aliases (RECODE_OUTER); +RECODE_ALIAS recode_declare_alias (RECODE_OUTER, + const char *, const char *); +bool recode_declare_implied_surface (RECODE_OUTER, RECODE_ALIAS, + RECODE_CONST_SYMBOL); +bool recode_make_argmatch_arrays (RECODE_OUTER); +void recode_delete_alias (RECODE_ALIAS alias); +RECODE_ALIAS recode_find_alias (RECODE_OUTER, const char *, + enum alias_find_type); +bool recode_find_and_report_subsets (RECODE_OUTER); +bool recode_decode_known_pairs (RECODE_OUTER, const char *); /* combine.c. */ #define DONE NOT_A_CHARACTER #define ELSE BYTE_ORDER_MARK_SWAPPED -bool init_explode PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST, - RECODE_CONST_OPTION_LIST, - RECODE_CONST_OPTION_LIST)); -bool explode_byte_byte PARAMS ((RECODE_SUBTASK)); -bool explode_ucs2_byte PARAMS ((RECODE_SUBTASK)); -bool explode_byte_ucs2 PARAMS ((RECODE_SUBTASK)); -bool explode_ucs2_ucs2 PARAMS ((RECODE_SUBTASK)); - -bool init_combine PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST, - RECODE_CONST_OPTION_LIST, - RECODE_CONST_OPTION_LIST)); -bool combine_byte_byte PARAMS ((RECODE_SUBTASK)); -bool combine_ucs2_byte PARAMS ((RECODE_SUBTASK)); -bool combine_byte_ucs2 PARAMS ((RECODE_SUBTASK)); -bool combine_ucs2_ucs2 PARAMS ((RECODE_SUBTASK)); +bool recode_init_explode (RECODE_STEP, RECODE_CONST_REQUEST, + RECODE_CONST_OPTION_LIST, + RECODE_CONST_OPTION_LIST); +bool recode_explode_byte_byte (RECODE_SUBTASK); +bool recode_explode_ucs2_byte (RECODE_SUBTASK); +bool recode_explode_byte_ucs2 (RECODE_SUBTASK); +bool recode_explode_ucs2_ucs2 (RECODE_SUBTASK); + +bool recode_init_combine (RECODE_STEP, RECODE_CONST_REQUEST, + RECODE_CONST_OPTION_LIST, + RECODE_CONST_OPTION_LIST); +bool recode_combine_byte_byte (RECODE_SUBTASK); +bool recode_combine_ucs2_byte (RECODE_SUBTASK); +bool recode_combine_byte_ucs2 (RECODE_SUBTASK); +bool recode_combine_ucs2_ucs2 (RECODE_SUBTASK); /* freeze.c. */ -void recode_freeze_tables PARAMS ((RECODE_OUTER)); +void recode_freeze_tables (RECODE_OUTER); /* iconv.c. */ -bool transform_with_iconv PARAMS ((RECODE_SUBTASK)); - -/* localcharset.c. */ - -const char *locale_charset PARAMS ((void)); +bool module_iconv (struct recode_outer *); +void delmodule_iconv (struct recode_outer *); +bool recode_transform_with_iconv (RECODE_SUBTASK); /* names.c. */ -bool should_prefer_french PARAMS ((void)); +bool recode_should_prefer_french (void); /* mixed.c. */ -bool transform_c_source PARAMS ((RECODE_TASK)); -bool transform_po_source PARAMS ((RECODE_TASK)); +bool recode_transform_c_source (RECODE_TASK); +bool recode_transform_po_source (RECODE_TASK); /* outer.c. */ -bool reversibility PARAMS ((RECODE_SUBTASK, unsigned)); -RECODE_SINGLE declare_single - PARAMS ((RECODE_OUTER, const char *, const char *, - struct recode_quality, - bool (*) (RECODE_STEP, RECODE_CONST_REQUEST, - RECODE_CONST_OPTION_LIST, RECODE_CONST_OPTION_LIST), - bool (*) (RECODE_SUBTASK))); -bool declare_iconv PARAMS ((RECODE_OUTER, const char *, const char *)); -bool declare_explode_data PARAMS ((RECODE_OUTER, const unsigned short *, - const char *, const char *)); -bool declare_strip_data PARAMS ((RECODE_OUTER, struct strip_data *, - const char *)); +bool recode_reversibility (RECODE_SUBTASK, unsigned); +RECODE_SINGLE recode_declare_single + (RECODE_OUTER, const char *, const char *, + struct recode_quality, + bool (*) (RECODE_STEP, RECODE_CONST_REQUEST, + RECODE_CONST_OPTION_LIST, RECODE_CONST_OPTION_LIST), + bool (*) (RECODE_SUBTASK)); +bool recode_declare_iconv (RECODE_OUTER, const char *, const char *); +bool recode_declare_explode_data (RECODE_OUTER, const unsigned short *, + const char *, const char *); +bool recode_declare_strip_data (RECODE_OUTER, struct strip_data *, + const char *); /* pool.c. */ @@ -863,21 +654,21 @@ extern const recode_ucs2 ucs2_data_pool[]; /* request.c. */ -char *edit_sequence PARAMS ((RECODE_REQUEST, bool)); +char *recode_edit_sequence (RECODE_REQUEST, bool); /* rfc1345.c. */ -const char *ucs2_to_rfc1345 PARAMS ((recode_ucs2)); +const char *recode_ucs2_to_rfc1345 (recode_ucs2); /* task.c. */ -#if USE_HELPERS || !INLINE_HARDER -int get_byte_helper PARAMS ((RECODE_SUBTASK)); -#endif -void put_byte_helper PARAMS ((int, RECODE_SUBTASK)); -bool recode_if_nogo PARAMS ((enum recode_error, RECODE_SUBTASK)); -bool transform_byte_to_byte PARAMS ((RECODE_SUBTASK)); -bool transform_byte_to_variable PARAMS ((RECODE_SUBTASK)); +int recode_get_byte (RECODE_SUBTASK); +size_t recode_get_bytes (RECODE_SUBTASK, char *, size_t); +void recode_put_byte (char, RECODE_SUBTASK); +void recode_put_bytes (const char *, size_t, RECODE_SUBTASK); +bool recode_if_nogo (enum recode_error, RECODE_SUBTASK); +bool recode_transform_byte_to_byte (RECODE_SUBTASK); +bool recode_transform_byte_to_variable (RECODE_SUBTASK); /* ucs.c. */ @@ -893,10 +684,10 @@ bool transform_byte_to_variable PARAMS ((RECODE_SUBTASK)); /* Never an UCS-2 character. */ #define NOT_A_CHARACTER 0xFFFF -bool get_ucs2 PARAMS ((unsigned *, RECODE_SUBTASK)); -bool get_ucs4 PARAMS ((unsigned *, RECODE_SUBTASK)); -bool put_ucs2 PARAMS ((unsigned, RECODE_SUBTASK)); -bool put_ucs4 PARAMS ((unsigned, RECODE_SUBTASK)); +bool recode_get_ucs2 (unsigned *, RECODE_SUBTASK); +bool recode_get_ucs4 (unsigned *, RECODE_SUBTASK); +bool recode_put_ucs2 (unsigned, RECODE_SUBTASK); +bool recode_put_ucs4 (unsigned, RECODE_SUBTASK); #ifdef __cplusplus } @@ -907,46 +698,13 @@ bool put_ucs4 PARAMS ((unsigned, RECODE_SUBTASK)); /* Giving a name to the ASCII character assigned to position 0. */ #define NUL '\0' -#ifdef FLEX_SCANNER -# if !INLINE_HARDER -# undef USE_HELPERS -# define USE_HELPERS 1 -# endif -#endif - -#if USE_HELPERS - -# define get_byte(Subtask) \ - get_byte_helper ((Subtask)) - -# define put_byte(Byte, Subtask) \ - put_byte_helper ((Byte), (Subtask)) - -#else /* not USE_HELPERS */ - -# define get_byte(Subtask) \ - ((Subtask)->input.file \ - ? getc ((Subtask)->input.file) \ - : (Subtask)->input.cursor == (Subtask)->input.limit \ - ? EOF \ - : (unsigned char) *(Subtask)->input.cursor++) - -# define put_byte(Byte, Subtask) \ - ((Subtask)->output.file \ - ? (putc ((char) (Byte), (Subtask)->output.file), 0) \ - : (Subtask)->output.cursor == (Subtask)->output.limit \ - ? (put_byte_helper ((int) (Byte), (Subtask)), 0) \ - : (*(Subtask)->output.cursor++ = (Byte), 0)) - -#endif /* not USE_HELPERS */ - #ifdef FLEX_SCANNER # define PUT_NON_DIACRITIC_BYTE(Byte, Subtask) \ if (request->diacritics_only) \ ECHO; \ else \ - put_byte ((Byte), (Subtask)) + recode_put_byte ((Byte), (Subtask)) /* ECHO may not have a (Subtask) argument, because some ECHO without argument is generated by Flex -- yet Vern tells me it won't happen if I inhibit @@ -957,7 +715,7 @@ bool put_ucs4 PARAMS ((unsigned, RECODE_SUBTASK)); const char *cursor = librecode_yytext; \ int counter = librecode_yyleng; \ for (; counter > 0; cursor++, counter--) \ - put_byte (*cursor, subtask); \ + recode_put_byte (*cursor, subtask); \ } while (false) #endif /* FLEX_SCANNER */ diff --git a/src/recodext.h.in b/src/recodext.h.in deleted file mode 100644 index 84308fc..0000000 --- a/src/recodext.h.in +++ /dev/null @@ -1,774 +0,0 @@ -/* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 96-99, 2000, 2001 Free Software Foundation, Inc. - Contributed by François Pinard , 1988. - - This 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. - - 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. - - You should have received a copy of the GNU Library General Public - License along with the Recode 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. */ - -/* Extended definitions, for externally written steps. */ - -#include "recode.h" - -/* Internal typedefs, to supplement those in "recode.h". */ - -typedef struct recode_symbol * RECODE_SYMBOL; -typedef struct recode_option_list * RECODE_OPTION_LIST; -typedef struct recode_single * RECODE_SINGLE; -typedef struct recode_step * RECODE_STEP; -typedef struct recode_alias * RECODE_ALIAS; -typedef struct recode_subtask * RECODE_SUBTASK; - -typedef const struct recode_option_list * RECODE_CONST_OPTION_LIST; -typedef const struct recode_outer * RECODE_CONST_OUTER; -typedef const struct recode_step * RECODE_CONST_STEP; -typedef const struct recode_alias * RECODE_CONST_ALIAS; -typedef const struct recode_task * RECODE_CONST_TASK; - -/*---------------------------------------------------------. -| Maintain maximum of ERROR and current error in SUBTASK. | -`---------------------------------------------------------*/ - -#define SET_SUBTASK_ERROR(Error, Subtask) \ - recode_if_nogo (Error, Subtask) - -/*--------------------------------------------------------------------------. -| Return from SUBTASK with `false', if the failure level has been reached. | -`--------------------------------------------------------------------------*/ - -#define SUBTASK_RETURN(Subtask) \ - return (Subtask)->task->error_so_far < (Subtask)->task->fail_level - -/*-------------------------------------------------------------------------. -| Maintain maximum of ERROR and current error in SUBTASK. If the abort | -| level has been reached, then return immediately as with SUBTASK_RETURN. | -`-------------------------------------------------------------------------*/ - -#define RETURN_IF_NOGO(Error, Subtask) \ - do { \ - if (recode_if_nogo (Error, Subtask)) \ - SUBTASK_RETURN (Subtask); \ - } while (false) - -/* Various structure declarations. */ - -/*-----------------------------------------. -| Outer variables for the recode library. | -`-----------------------------------------*/ - -/* Error codes, in increasing severity. */ - -enum recode_error - { - RECODE_NO_ERROR, /* no error so far */ - RECODE_NOT_CANONICAL, /* input is not exact, but equivalent */ - RECODE_AMBIGUOUS_OUTPUT, /* output will be misleading */ - RECODE_UNTRANSLATABLE, /* input is getting lost, while valid */ - RECODE_INVALID_INPUT, /* input is getting lost, but was invalid */ - RECODE_SYSTEM_ERROR, /* system returned input/output failure */ - RECODE_USER_ERROR, /* library is being misused */ - RECODE_INTERNAL_ERROR, /* programming botch in the library */ - RECODE_MAXIMUM_ERROR /* impossible value (should be kept last) */ - }; - -/* Structure for relating alias names to charsets and surfaces. */ - -struct recode_alias - { - const char *name; /* charset, surface or alias name */ - RECODE_SYMBOL symbol; /* associated symbol */ - /* If a charset, list of surfaces usually applied by default. */ - struct recode_surface_list *implied_surfaces; - }; - -/* The sole purpose of qualities is for later attributing step costs. */ - -enum recode_size - { - RECODE_1, /* roughly one byte per character */ - RECODE_2, /* roughly two bytes per character */ - RECODE_4, /* roughly four bytes per character */ - RECODE_N /* variable number of bytes per character */ - }; - -struct recode_quality - { - enum recode_size in_size : 3; /* rough byte size of input characters */ - enum recode_size out_size : 3; /* rough byte size of output characters */ - bool reversible : 1; /* transformation is known to be reversible */ - bool slower : 1; /* transformation is slower than average */ - bool faster : 1; /* transformation is faster than average */ - }; - -/* Main variables of the initialised library. */ - -struct recode_outer - { - /* This flag asks the library to diagnose and abort itself if errors. */ - bool auto_abort; - - /* If the external `iconv' library should be initialized and used. */ - bool use_iconv; - - /* charset.c */ - /* --------- */ - - /* Known pairs (for restricting listing). */ - struct recode_known_pair *pair_restriction; - unsigned pair_restrictions; - - /* Opaque Hash_table pointer giving access to the single table holding all - names and aliases for charsets, surfaces and fallback methods. */ - void *alias_table; - - /* Unique symbols are linked into a list and counted. */ - RECODE_SYMBOL symbol_list; - unsigned number_of_symbols; - - /* Arrays of strings ready for argmatch. */ - char **argmatch_charset_array; - char **argmatch_surface_array; - const char **realname_charset_array; - const char **realname_surface_array; - - /* recode.c */ - /* -------- */ - - /* Known single steps. */ - struct recode_single *single_list; - unsigned number_of_singles; - - /* Identity recoding table. */ - const unsigned char *one_to_same; - - /* Preset charsets and surfaces. */ - RECODE_SYMBOL data_symbol;/* special charset defining surfaces */ - RECODE_SYMBOL tree_symbol; /* special charset defining structures */ - RECODE_SYMBOL ucs2_charset; /* UCS-2 */ - RECODE_SYMBOL iconv_pivot; /* `iconv' internal UCS */ - RECODE_SYMBOL crlf_surface; /* for IBM PC machines */ - RECODE_SYMBOL cr_surface; /* for Macintosh machines */ - - /* Preset qualities, to make step initialisation simpler. */ - struct recode_quality quality_byte_reversible; - struct recode_quality quality_byte_to_byte; - struct recode_quality quality_byte_to_ucs2; - struct recode_quality quality_byte_to_variable; - struct recode_quality quality_ucs2_to_byte; - struct recode_quality quality_ucs2_to_variable; - struct recode_quality quality_variable_to_byte; - struct recode_quality quality_variable_to_ucs2; - struct recode_quality quality_variable_to_variable; - }; - -/*--------------------------. -| Description of a symbol. | -`--------------------------*/ - -enum recode_symbol_type - { - RECODE_NO_SYMBOL_TYPE, /* missing value */ - RECODE_CHARSET, /* visible in the space of charsets */ - RECODE_DATA_SURFACE, /* this is a mere data surface */ - RECODE_TREE_SURFACE /* this is a structural surface */ - }; - -enum recode_data_type - { - RECODE_NO_CHARSET_DATA, /* the charset_table field is unused */ - RECODE_STRIP_DATA, /* pool pointer and array of strips */ - RECODE_EXPLODE_DATA /* explode variable length data */ - }; - -struct recode_symbol - { - /* Chaining of all known symbols (charsets and surfaces). */ - RECODE_SYMBOL next; - - /* Unique ordinal for this symbol, counted from zero. */ - unsigned ordinal; - - /* Main name. */ - const char *name; - - /* Name to use for the iconv library, or NULL. */ - const char *iconv_name; - - /* Type of table. */ - enum recode_data_type data_type; - - /* Recoding table. */ - void *data; - - /* Step for data..CHARSET transformation, if any, or NULL. */ - struct recode_single *resurfacer; - - /* Step for CHARSET..data transformation, if any, or NULL. */ - struct recode_single *unsurfacer; - - /* Non zero if this is an acceptable charset (not only a surface). */ - enum recode_symbol_type type : 3; - - /* Non zero if this one should be ignored. */ - bool ignore : 1; - }; - -struct recode_surface_list - { - RECODE_CONST_SYMBOL surface; - struct recode_surface_list *next; - }; - -/*-------------------------------------------. -| Description of a single step of recoding. | -`-------------------------------------------*/ - -typedef bool (*Recode_init) PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST, - RECODE_CONST_OPTION_LIST, - RECODE_CONST_OPTION_LIST)); -typedef bool (*Recode_term) PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST)); -typedef bool (*Recode_transform) PARAMS ((RECODE_SUBTASK)); -typedef bool (*Recode_fallback) PARAMS ((RECODE_SUBTASK, unsigned)); - -/* The `single' structure holds data needed to decide of sequences, and is - invariant over actual requests. The `step' structure holds data needed for - task execution, it may take care of fallback and option variance. */ - -struct recode_single - { - /* Chaining of all known single steps. */ - struct recode_single *next; - - /* Charset before conversion. */ - RECODE_SYMBOL before; - - /* Charset after conversion. */ - RECODE_SYMBOL after; - - /* Cost for this single step only. */ - short conversion_cost; - - /* Initial value for step_table. */ - void *initial_step_table; - - /* Recoding quality. */ - struct recode_quality quality; - - /* Initialisation handler, to be called before step optimisation. */ - Recode_init init_routine; - - /* Transformation handler, for doing the actual recoding work. */ - Recode_transform transform_routine; - - /* Default fallback for the step. Merely to implement `-s' option. */ - Recode_fallback fallback_routine; - }; - -enum recode_step_type - { - RECODE_NO_STEP_TABLE, /* the step_table field is unused */ - RECODE_BYTE_TO_BYTE, /* array of 256 bytes */ - RECODE_BYTE_TO_STRING, /* array of 256 strings */ - RECODE_UCS2_TO_BYTE, /* hash from ucs2 to byte */ - RECODE_UCS2_TO_STRING, /* hash from ucs2 to string */ - RECODE_STRING_TO_UCS2, /* hash from ucs2 to string, reversed */ - RECODE_COMBINE_EXPLODE, /* raw data for combining or exploding */ - RECODE_COMBINE_STEP, /* special hash for combining */ - RECODE_EXPLODE_STEP /* special hash for exploding */ - }; - -struct recode_step - { - /* Charset before conversion. */ - RECODE_SYMBOL before; - - /* Charset after conversion. */ - RECODE_SYMBOL after; - - /* Recoding quality. */ - struct recode_quality quality; - - /* Type of table. */ - enum recode_step_type step_type; - - /* Recoding table. */ - void *step_table; - - /* Step specific variables. */ - void *local; - - /* Transformation handler, for doing the actual recoding work. */ - Recode_transform transform_routine; - - /* Fallback for the step. */ - Recode_fallback fallback_routine; - - /* Cleanup handler, to be called after the recoding is done. */ - Recode_term term_routine; - }; - -struct recode_option_list - { - const char *option; - RECODE_OPTION_LIST next; - }; - -/*------------------------------------------------------------------------. -| A recoding request holds, among other things, a selected path among the | -| available recoding steps, it so represents a kind of recoding plan. | -`------------------------------------------------------------------------*/ - -struct recode_request - { - /* A request is always associated with a recoding system. */ - RECODE_OUTER outer; - - /* By setting the following flag, the program will echo to stderr the - sequence of elementary recoding steps needed to achieve the requested - recoding. */ - bool verbose_flag : 1; - - /* In `texte' charset, some countries use double quotes to mark diaeresis, - while some other prefer colons. This field contains the diaeresis - character for `texte' charset. Nominally set to a double quote, it can - be forced to a colon. Those are the only two acceptable values. */ - char diaeresis_char; - - /* If producing a recoding table in source form, there will be no actual - recoding done, and consequently, the optimisation of step sequence can - be attempted more aggressively. If the step sequence cannot be reduced - to a single step, table production will fail. */ - bool make_header_flag : 1; - - /* For `latex' charset, it is often convenient to recode the diacritics - only, while letting other LaTeX code using backslashes unrecoded. In - the other charset, one can edit text as well as LaTeX directives. */ - bool diacritics_only : 1; - - /* For `ibmpc' charset, characters 176 to 223 are use to draw boxes. If - this field is set, while getting out of `ibmpc', ASCII characters are - selected so to approximate these boxes. */ - bool ascii_graphics : 1; - - /* Array stating the sequence of conversions. */ - RECODE_STEP sequence_array; - size_t sequence_allocated; - short sequence_length; - - /* Internal variables used while scanning request text. */ - char *work_string; /* buffer space for generated work strings */ - size_t work_string_length; /* length of work_string */ - size_t work_string_allocated; /* allocated length of work_string */ - const char *scan_cursor; /* next character to be seen */ - char *scanned_string; /* buffer space to scan strings */ - }; - -/*--------------------------------------------------------------------. -| A recoding text is either an external file or an in memory buffer. | -`--------------------------------------------------------------------*/ - -/* While the recoding is going on, FILE being non-NULL has precedence over - BUFFER. Moreover, if NAME is not NULL at start of recoding, this is - interpreted as a request for the library to open the named file, either - in read or write mode, and also to close it afterwards. Standard input - or output is denoted by NAME being non-NULL, but otherwise empty. - - If FILE is NULL in input mode, the in-memory read-only text extends from - BUFFER to LIMIT. There is no clue about if the buffer has been allocated - bigger. When CURSOR reaches LIMIT, there is no more data to get. If - FILE is NULL in output mode, the in-memory text extends from BUFFER to - CURSOR, but the buffer has been allocated until LIMIT. When CURSOR - reaches LIMIT, the buffer should be reallocated bigger, as needed. */ - -struct recode_read_only_text - { - const char *name; - FILE *file; - const char *buffer; - const char *cursor; - const char *limit; - }; - -struct recode_read_write_text - { - const char *name; - FILE *file; - char *buffer; - char *cursor; - char *limit; - }; - -/* Tells how various passes are interconnected. */ - -enum recode_sequence_strategy - { - RECODE_STRATEGY_UNDECIDED, /* sequencing strategy is undecided yet */ - RECODE_SEQUENCE_IN_MEMORY, /* keep intermediate recodings in memory */ - RECODE_SEQUENCE_WITH_FILES, /* do not fork, use intermediate files */ - RECODE_SEQUENCE_WITH_PIPE /* fork processes connected with `pipe(2)' */ - }; - -/* Tells how to swap the incoming pair of bytes, while reading UCS-2. */ - -enum recode_swap_input - { - RECODE_SWAP_UNDECIDED, /* the text has not been read yet */ - RECODE_SWAP_NO, /* no need to swap pair of bytes */ - RECODE_SWAP_YES /* should swap incoming pair of bytes */ - }; - -/*--------------------------------------------------------------------------. -| A recoding subtask associates a particular recoding step to a given input | -| text, for producing a corresponding output text. It also holds error | -| related statistics for the execution of that step. | -`--------------------------------------------------------------------------*/ - -struct recode_subtask - { - /* Task for which this subtask is an element. */ - RECODE_TASK task; - - /* Step being executed by this subtask. */ - RECODE_CONST_STEP step; - - /* Current input and output. */ - struct recode_read_only_text input; - struct recode_read_write_text output; - - /* Line count and character count in last line, both zero-based. */ - unsigned newline_count; - unsigned character_count; - }; - -#define GOT_CHARACTER(Subtask) \ - ((Subtask)->character_count++) - -#define GOT_NEWLINE(Subtask) \ - ((Subtask)->newline_count++, (Subtask)->character_count = 0) - -/*--------------------------------------------------------------------------. -| A recoding task associates a sequence of steps to a given input text, for | -| producing a corresponding output text. It holds an array of subtasks. | -`--------------------------------------------------------------------------*/ - -struct recode_task - { - /* Associated request. */ - RECODE_CONST_REQUEST request; - - /* Initial input and final output. */ - struct recode_read_only_text input; - struct recode_read_write_text output; - - /* Tells how various recoding steps (passes) will be interconnected. */ - enum recode_sequence_strategy strategy : 3; - - /* Produce a byte order mark on UCS-2 output, insist for it on input. */ - bool byte_order_mark : 1; - - /* The input UCS-2 stream might have bytes swapped (status variable). */ - enum recode_swap_input swap_input : 3; - - /* Error processing. */ - /* ----------------- */ - - /* At this level, there will be failure. */ - enum recode_error fail_level : 5; - - /* At this level, task should be interrupted. */ - enum recode_error abort_level : 5; - - /* Maximum error level met so far (status variable). */ - enum recode_error error_so_far : 5; - - /* Step being executed when error_so_far was last set. */ - RECODE_CONST_STEP error_at_step; - }; - -/* Specialities for some function arguments. */ - -/* For restricting charset lists. */ - -struct recode_known_pair - { - unsigned char left; /* first character in pair */ - unsigned char right; /* second character in pair */ - }; - -/*----------------------. -| Various definitions. | -`----------------------*/ - -typedef unsigned short recode_ucs2; - -/* Double tables are generated as arrays of indices into a pool of strips, - each strip holds STRIP_SIZE UCS-2 characters. Some memory is saved by - not allowing duplicate strips in the pool. A smaller strip size yields - more duplicates and so, a smaller pool, but then, tables get longer - because more strip indices are needed for each table. It is difficult to - predict the optimal strip size. Tests made on 1997-09-22 showed that a - strip size of 4 needs 27808 bytes total, 8 needs 22656, 16 needs 23584 - and 32 needs 25568, so we decided to stick to a strip size of 8. Change - $STRIP_SIZE in `doc/tables.pl' if you change the value here. */ - -/* "Are we speaking slips, strips or bars?" (of gold press'latinum :-) */ -#define STRIP_SIZE 8 - -/* An struct strip_data is a pointer to a pool of strips, and an array - of 256/STRIP_SIZE offsets for the start of strips into the pool, each strip - describes STRIP_SIZE UCS-2 characters. A missing character in a strip is - indicated by all 16 bits set. */ -struct strip_data - { - const recode_ucs2 *pool; - const short offset[256 / STRIP_SIZE]; - }; - -struct ucs2_to_byte - { - recode_ucs2 code; /* UCS-2 value */ - unsigned char byte; /* corresponding byte */ - }; - -struct ucs2_to_string - { - recode_ucs2 code; /* UCS-2 value */ - unsigned short flags; /* various flags */ - const char *string; /* corresponding string */ - }; - -/* Per module declarations. */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* recode.c. */ - -#define ALLOC_SIZE(Variable, Size, Type) \ - (Variable = (Type *) recode_malloc (outer, (Size)), Variable) - -#define ALLOC(Variable, Count, Type) \ - ALLOC_SIZE (Variable, (Count) * sizeof (Type), Type) - -#define REALLOC(Variable, Count, Type) \ - (Variable = (Type *) recode_realloc (outer, Variable, \ - (Count) * sizeof(Type)), \ - Variable) - -void recode_error PARAMS ((RECODE_OUTER, const char *, ...)); -void recode_perror PARAMS ((RECODE_OUTER, const char *, ...)); -void *recode_malloc PARAMS ((RECODE_OUTER, size_t)); -void *recode_realloc PARAMS ((RECODE_OUTER, void *, size_t)); - -unsigned char *invert_table PARAMS ((RECODE_OUTER, const unsigned char *)); -bool complete_pairs PARAMS ((RECODE_OUTER, RECODE_STEP, - const struct recode_known_pair *, unsigned, - bool, bool)); -bool transform_byte_to_ucs2 PARAMS ((RECODE_SUBTASK)); -bool init_ucs2_to_byte PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST, - RECODE_CONST_OPTION_LIST, - RECODE_CONST_OPTION_LIST)); -bool transform_ucs2_to_byte PARAMS ((RECODE_SUBTASK)); - -/* charname.c and fr-charname.c. */ - -const char *ucs2_to_charname PARAMS ((int)); -const char *ucs2_to_french_charname PARAMS ((int)); - -/* charset.c. */ - -enum alias_find_type -{ - SYMBOL_CREATE_CHARSET, /* charset as given, create as needed */ - SYMBOL_CREATE_DATA_SURFACE, /* data surface as given, create as needed */ - SYMBOL_CREATE_TREE_SURFACE, /* tree surface as given, create as needed */ - ALIAS_FIND_AS_CHARSET, /* disambiguate only as a charset */ - ALIAS_FIND_AS_SURFACE, /* disambiguate only as a surface */ - ALIAS_FIND_AS_EITHER /* disambiguate as a charset or a surface */ -}; - -int code_to_ucs2 (RECODE_CONST_SYMBOL, unsigned); -bool prepare_for_aliases PARAMS ((RECODE_OUTER)); -RECODE_ALIAS declare_alias PARAMS ((RECODE_OUTER, - const char *, const char *)); -bool declare_implied_surface PARAMS ((RECODE_OUTER, RECODE_ALIAS, - RECODE_CONST_SYMBOL)); -bool make_argmatch_arrays PARAMS ((RECODE_OUTER)); -RECODE_ALIAS find_alias PARAMS ((RECODE_OUTER, const char *, - enum alias_find_type)); -bool find_and_report_subsets PARAMS ((RECODE_OUTER)); -bool decode_known_pairs PARAMS ((RECODE_OUTER, const char *)); - -/* combine.c. */ - -#define DONE NOT_A_CHARACTER -#define ELSE BYTE_ORDER_MARK_SWAPPED - -bool init_explode PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST, - RECODE_CONST_OPTION_LIST, - RECODE_CONST_OPTION_LIST)); -bool explode_byte_byte PARAMS ((RECODE_SUBTASK)); -bool explode_ucs2_byte PARAMS ((RECODE_SUBTASK)); -bool explode_byte_ucs2 PARAMS ((RECODE_SUBTASK)); -bool explode_ucs2_ucs2 PARAMS ((RECODE_SUBTASK)); - -bool init_combine PARAMS ((RECODE_STEP, RECODE_CONST_REQUEST, - RECODE_CONST_OPTION_LIST, - RECODE_CONST_OPTION_LIST)); -bool combine_byte_byte PARAMS ((RECODE_SUBTASK)); -bool combine_ucs2_byte PARAMS ((RECODE_SUBTASK)); -bool combine_byte_ucs2 PARAMS ((RECODE_SUBTASK)); -bool combine_ucs2_ucs2 PARAMS ((RECODE_SUBTASK)); - -/* freeze.c. */ - -void recode_freeze_tables PARAMS ((RECODE_OUTER)); - -/* iconv.c. */ - -bool transform_with_iconv PARAMS ((RECODE_SUBTASK)); - -/* localcharset.c. */ - -const char *locale_charset PARAMS ((void)); - -/* names.c. */ - -bool should_prefer_french PARAMS ((void)); - -/* mixed.c. */ - -bool transform_c_source PARAMS ((RECODE_TASK)); -bool transform_po_source PARAMS ((RECODE_TASK)); - -/* outer.c. */ - -bool reversibility PARAMS ((RECODE_SUBTASK, unsigned)); -RECODE_SINGLE declare_single - PARAMS ((RECODE_OUTER, const char *, const char *, - struct recode_quality, - bool (*) (RECODE_STEP, RECODE_CONST_REQUEST, - RECODE_CONST_OPTION_LIST, RECODE_CONST_OPTION_LIST), - bool (*) (RECODE_SUBTASK))); -bool declare_iconv PARAMS ((RECODE_OUTER, const char *, const char *)); -bool declare_explode_data PARAMS ((RECODE_OUTER, const unsigned short *, - const char *, const char *)); -bool declare_strip_data PARAMS ((RECODE_OUTER, struct strip_data *, - const char *)); - -/* pool.c. */ - -extern const recode_ucs2 ucs2_data_pool[]; - -/* request.c. */ - -char *edit_sequence PARAMS ((RECODE_REQUEST, bool)); - -/* rfc1345.c. */ - -const char *ucs2_to_rfc1345 PARAMS ((recode_ucs2)); - -/* task.c. */ - -#if USE_HELPERS || !INLINE_HARDER -int get_byte_helper PARAMS ((RECODE_SUBTASK)); -#endif -void put_byte_helper PARAMS ((int, RECODE_SUBTASK)); -bool recode_if_nogo PARAMS ((enum recode_error, RECODE_SUBTASK)); -bool transform_byte_to_byte PARAMS ((RECODE_SUBTASK)); -bool transform_byte_to_variable PARAMS ((RECODE_SUBTASK)); - -/* ucs.c. */ - -/* Replacement character for when correctly formed character has no - equivalent. It is not used for ill-formed characters, however. */ -#define REPLACEMENT_CHARACTER 0xFFFD - -/* Device for detecting if bytes are swapped. This value should appear first - in UCS-2 files. */ -#define BYTE_ORDER_MARK 0xFEFF -#define BYTE_ORDER_MARK_SWAPPED 0xFFFE - -/* Never an UCS-2 character. */ -#define NOT_A_CHARACTER 0xFFFF - -bool get_ucs2 PARAMS ((unsigned *, RECODE_SUBTASK)); -bool get_ucs4 PARAMS ((unsigned *, RECODE_SUBTASK)); -bool put_ucs2 PARAMS ((unsigned, RECODE_SUBTASK)); -bool put_ucs4 PARAMS ((unsigned, RECODE_SUBTASK)); - -#ifdef __cplusplus -} -#endif - -/* Global macros specifically for Recode. */ - -/* Giving a name to the ASCII character assigned to position 0. */ -#define NUL '\0' - -#ifdef FLEX_SCANNER -# if !INLINE_HARDER -# undef USE_HELPERS -# define USE_HELPERS 1 -# endif -#endif - -#if USE_HELPERS - -# define get_byte(Subtask) \ - get_byte_helper ((Subtask)) - -# define put_byte(Byte, Subtask) \ - put_byte_helper ((Byte), (Subtask)) - -#else /* not USE_HELPERS */ - -# define get_byte(Subtask) \ - ((Subtask)->input.file \ - ? getc ((Subtask)->input.file) \ - : (Subtask)->input.cursor == (Subtask)->input.limit \ - ? EOF \ - : (unsigned char) *(Subtask)->input.cursor++) - -# define put_byte(Byte, Subtask) \ - ((Subtask)->output.file \ - ? (putc ((char) (Byte), (Subtask)->output.file), 0) \ - : (Subtask)->output.cursor == (Subtask)->output.limit \ - ? (put_byte_helper ((int) (Byte), (Subtask)), 0) \ - : (*(Subtask)->output.cursor++ = (Byte), 0)) - -#endif /* not USE_HELPERS */ - -#ifdef FLEX_SCANNER - -# define PUT_NON_DIACRITIC_BYTE(Byte, Subtask) \ - if (request->diacritics_only) \ - ECHO; \ - else \ - put_byte ((Byte), (Subtask)) - -/* ECHO may not have a (Subtask) argument, because some ECHO without argument - is generated by Flex -- yet Vern tells me it won't happen if I inhibit - the rule about default copying. Happily enough, within Flex, Subtask is - `subtask' quite systematically, so it may be used as a constant, here. */ -# define ECHO \ - do { \ - const char *cursor = librecode_yytext; \ - int counter = librecode_yyleng; \ - for (; counter > 0; cursor++, counter--) \ - put_byte (*cursor, subtask); \ - } while (false) - -#endif /* FLEX_SCANNER */ diff --git a/src/request.c b/src/request.c index c7e5b11..77a38ec 100644 --- a/src/request.c +++ b/src/request.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990,92,93,94,96,97,98,99,00,01 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1990. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,9 +14,10 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" /* Quality handling. */ @@ -73,14 +74,11 @@ add_work_character (RECODE_REQUEST request, int character) new_work_string = (char *) realloc (request->work_string, request->work_string_allocated); if (new_work_string) - { - request->work_string = new_work_string; - request->work_string[request->work_string_length++] = character; - } - /* else, the diagnostic gets truncated, no need to fuss about it. */ + request->work_string = new_work_string; + else + return; /* the diagnostic gets truncated, no need to fuss about it. */ } - else - request->work_string[request->work_string_length++] = character; + request->work_string[request->work_string_length++] = character; } /*----------------------------------. @@ -101,7 +99,7 @@ add_work_string (RECODE_REQUEST request, const char *string) `----------------------------------------------------------------------*/ char * -edit_sequence (RECODE_REQUEST request, bool edit_quality) +recode_edit_sequence (RECODE_REQUEST request, bool edit_quality) { RECODE_OUTER outer = request->outer; @@ -124,8 +122,7 @@ edit_sequence (RECODE_REQUEST request, bool edit_quality) /* Find unsurfacers. */ while (step < request->sequence_array + request->sequence_length - && (step->after == outer->data_symbol - || step->after == outer->tree_symbol)) + && step->after == outer->data_symbol) step++; unsurfacer_end = step; @@ -141,12 +138,6 @@ edit_sequence (RECODE_REQUEST request, bool edit_quality) { last_charset_printed = step->before; add_work_string (request, last_charset_printed->name); -#if 0 - if (unsurfacer_start == unsurfacer_end - && last_charset_printed - && last_charset_printed->implied_surfaces) - add_work_character (request, '/'); -#endif } } @@ -163,33 +154,22 @@ edit_sequence (RECODE_REQUEST request, bool edit_quality) add_work_string (request, ".."); if (step < request->sequence_array + request->sequence_length - && step->before != outer->data_symbol - && step->before != outer->tree_symbol) + && step->before != outer->data_symbol) { last_charset_printed = step->after; add_work_string (request, last_charset_printed->name); step++; -#if 0 - if ((step == request->sequence_array + request->sequence_length - || (step->before != outer->data_symbol - && step->before != outer->tree_symbol)) - && last_charset_printed - && last_charset_printed->implied_surfaces) - add_work_character (request, '/'); -#endif } else { last_charset_printed = outer->data_symbol; - /* FIXME: why not outer->tree_symbol? */ add_work_string (request, last_charset_printed->name); } /* Print resurfacers. */ while (step < request->sequence_array + request->sequence_length - && (step->before == outer->data_symbol - || step->before == outer->tree_symbol)) + && step->before == outer->data_symbol) { add_work_character (request, '/'); last_charset_printed = NULL; @@ -233,8 +213,10 @@ add_to_sequence (RECODE_REQUEST request, RECODE_SINGLE single, RECODE_OUTER outer = request->outer; RECODE_STEP step; - if (request->sequence_length == request->sequence_allocated) + if ((unsigned)request->sequence_length == request->sequence_allocated) { + unsigned old_allocated = request->sequence_allocated; + if (request->sequence_allocated == 0) request->sequence_allocated = 16; else @@ -246,16 +228,21 @@ add_to_sequence (RECODE_REQUEST request, RECODE_SINGLE single, recode_error (outer, _("Virtual memory exhausted!")); return false; } + + memset (request->sequence_array + old_allocated, 0, + (request->sequence_allocated - old_allocated) * sizeof (struct recode_step)); } step = request->sequence_array + request->sequence_length++; step->before = single->before; step->after = single->after; step->step_table = single->initial_step_table; + step->step_table_term_routine = NULL; step->step_type = step->step_table ? RECODE_COMBINE_EXPLODE : RECODE_NO_STEP_TABLE; step->transform_routine = single->transform_routine; step->fallback_routine = single->fallback_routine; + step->term_routine = NULL; if (single->init_routine) { @@ -382,12 +369,12 @@ table_type (RECODE_CONST_REQUEST request, switch (step->step_type) { case RECODE_BYTE_TO_BYTE: - if (step->transform_routine != transform_byte_to_byte) + if (step->transform_routine != recode_transform_byte_to_byte) return RECODE_NO_STEP_TABLE; break; case RECODE_BYTE_TO_STRING: - if (step->transform_routine != transform_byte_to_variable) + if (step->transform_routine != recode_transform_byte_to_variable) return RECODE_NO_STEP_TABLE; break; @@ -419,7 +406,7 @@ compare_struct_item (const void *void_first, const void *void_second) | Complete the initialisation of a double step which just has been merged | | into a single STEP. Establish known pairings by comparing UCS-2 values | | between the before and after charsets. Create new pairs only when | -| fallback is reversibility. | +| fallback is recode_reversibility. | `------------------------------------------------------------------------*/ static bool @@ -449,7 +436,7 @@ complete_double_ucs2_step (RECODE_OUTER outer, RECODE_STEP step) struct recode_known_pair pair_array[256]; /* obtained pairings */ struct recode_known_pair *pair_cursor; /* cursor in array of pairings */ - /* For ensuring reversibility, known pairs should be computed the same + /* For ensuring recode_reversibility, known pairs should be computed the same way regardless of the direction of recoding. This canonalisation is ensured through the charset values, which are increasing along the initialisation order. This should also reflect the charset order in @@ -487,7 +474,7 @@ complete_double_ucs2_step (RECODE_OUTER outer, RECODE_STEP step) { unsigned code = pool[offset + position_counter]; - if (code != MASK (16)) + if (code != BIT_MASK (16)) { /* Establish a new binding item. */ item_cursor->byte = byte; @@ -539,10 +526,28 @@ complete_double_ucs2_step (RECODE_OUTER outer, RECODE_STEP step) /* Complete the recoding table out of this. */ return - complete_pairs (outer, step, + recode_complete_pairs (outer, step, pair_array, pair_cursor - pair_array, false, reversed); } +static bool +delete_compressed_one_to_many (RECODE_STEP step) +{ + free (step->local); + return true; +} + +static void +delete_step (RECODE_STEP step) +{ + /* Run step destructor, and delete step_table if allocated. */ + if (step->term_routine) + (*step->term_routine) (step); + + if (step->step_table_term_routine != NULL) + (*step->step_table_term_routine) (step->step_table); +} + /*---------------------------------------------------------------------. | Optimize a SEQUENCE of single steps by creating new single steps, if | | this can be done by merging adjacent steps which are simple enough. | @@ -565,7 +570,7 @@ simplify_sequence (RECODE_REQUEST request) /* Tell users what is the goal. */ if (request->verbose_flag) - fprintf (stderr, _("Request: %s\n"), edit_sequence (request, 0)); + fprintf (stderr, _("Request: %s\n"), recode_edit_sequence (request, 0)); saved_steps = 0; @@ -582,12 +587,16 @@ simplify_sequence (RECODE_REQUEST request) && in[1].before == outer->ucs2_charset && in[1].after->data_type == RECODE_STRIP_DATA) { + /* Free old steps before overwriting anything. */ + delete_step (in); + delete_step (in + 1); + /* This is a double UCS-2 step. */ out->before = in[0].before; out->after = in[1].after; out->quality = in[0].quality; merge_qualities (&out->quality, in[1].quality); - out->transform_routine = transform_byte_to_byte; + out->transform_routine = recode_transform_byte_to_byte; /* Initialize the new single step, so it can be later merged with others. */ @@ -602,12 +611,16 @@ simplify_sequence (RECODE_REQUEST request) && in[0].after == outer->iconv_pivot && in[1].before == outer->iconv_pivot) { + /* Free old steps before overwriting anything. */ + delete_step (in); + delete_step (in + 1); + /* This is a double `iconv' step. */ out->before = in[0].before; out->after = in[1].after; out->quality = in[0].quality; merge_qualities (&out->quality, in[1].quality); - out->transform_routine = transform_with_iconv; + out->transform_routine = recode_transform_with_iconv; in += 2; saved_steps++; @@ -642,7 +655,7 @@ simplify_sequence (RECODE_REQUEST request) out->before = in->before; out->after = in->after; out->quality = in->quality; - in++; + delete_step (in++); /* Merge in all consecutive one-to-one recodings. */ @@ -657,7 +670,7 @@ simplify_sequence (RECODE_REQUEST request) out->after = in->after; merge_qualities (&out->quality, in->quality); - in++; + delete_step (in++); saved_steps++; } @@ -677,7 +690,13 @@ simplify_sequence (RECODE_REQUEST request) free (accum); out->step_type = RECODE_BYTE_TO_STRING; out->step_table = string; - out->transform_routine = transform_byte_to_variable; + if (in->step_table_term_routine) + { + out->local = (void *) table; /* Save reference to old table for destructor. */ + out->term_routine = delete_compressed_one_to_many; + } + out->step_table_term_routine = free; + out->transform_routine = recode_transform_byte_to_variable; out->after = in->after; merge_qualities (&out->quality, in->quality); in++; @@ -689,7 +708,7 @@ simplify_sequence (RECODE_REQUEST request) out->step_type = RECODE_BYTE_TO_BYTE; out->step_table = accum; - out->transform_routine = transform_byte_to_byte; + out->transform_routine = recode_transform_byte_to_byte; } out++; @@ -712,12 +731,13 @@ simplify_sequence (RECODE_REQUEST request) { request->sequence_length = 0; saved_steps++; + delete_step (in); } /* Tell the user if something changed. */ if (saved_steps > 0 && request->verbose_flag) - fprintf (stderr, _("Shrunk to: %s\n"), edit_sequence (request, 0)); + fprintf (stderr, _("Shrunk to: %s\n"), recode_edit_sequence (request, 0)); return true; } @@ -741,9 +761,10 @@ scan_identifier (RECODE_REQUEST request) return true; } -/*---------------------------------------------. -| Scan all options and return a list of them. | -`---------------------------------------------*/ +/*----------------------------------------------------------------. +| Scan all options and return a list of them. | +| FIXME: Need to be able to differentiate empty list from error. | +`----------------------------------------------------------------*/ static RECODE_OPTION_LIST scan_options (RECODE_REQUEST request) @@ -818,7 +839,7 @@ scan_unsurfacers (RECODE_REQUEST request) scan_identifier (request); if (*request->scanned_string) { - RECODE_ALIAS alias = find_alias (outer, request->scanned_string, + RECODE_ALIAS alias = recode_find_alias (outer, request->scanned_string, ALIAS_FIND_AS_SURFACE); if (!alias) @@ -878,10 +899,39 @@ add_unsurfacers_to_sequence (RECODE_REQUEST request, `---------------------------------------------------------------------------*/ static RECODE_SYMBOL -scan_charset (RECODE_REQUEST request, - RECODE_CONST_SYMBOL before, - RECODE_CONST_OPTION_LIST before_options, - RECODE_OPTION_LIST *options_pointer) +scan_charset_before (RECODE_REQUEST request, RECODE_OPTION_LIST *options_pointer) +{ + RECODE_OUTER outer = request->outer; + RECODE_ALIAS alias; + + *options_pointer = NULL; + scan_identifier (request); + alias = recode_find_alias (outer, request->scanned_string, ALIAS_FIND_AS_EITHER); + if (*request->scan_cursor == '+') + *options_pointer = scan_options (request); + if (!alias) + return NULL; + + /* We are scanning in a BEFORE position. */ + + if (*request->scan_cursor == '/') + { + if (!scan_unsurfacers (request)) + return NULL; + } + else if (alias->implied_surfaces && !request->make_header_flag) + { + if (!add_unsurfacers_to_sequence (request, alias->implied_surfaces)) + return NULL; + } + + return alias->symbol; +} + +static RECODE_SYMBOL +scan_charset_after (RECODE_REQUEST request, + RECODE_CONST_SYMBOL before, + RECODE_CONST_OPTION_LIST before_options) { RECODE_OUTER outer = request->outer; RECODE_ALIAS alias; @@ -889,93 +939,73 @@ scan_charset (RECODE_REQUEST request, RECODE_OPTION_LIST charset_options = NULL; scan_identifier (request); - alias = find_alias (outer, request->scanned_string, ALIAS_FIND_AS_EITHER); + alias = recode_find_alias (outer, request->scanned_string, ALIAS_FIND_AS_EITHER); if (*request->scan_cursor == '+') charset_options = scan_options (request); if (!alias) return NULL; charset = alias->symbol; - if (before) - { - /* We are scanning in an AFTER position. */ + /* We are scanning in an AFTER position. */ - if (!find_sequence (request, before, before_options, - charset, charset_options)) - { - recode_error (outer, _("No way to recode from `%s' to `%s'"), - before->name, charset->name); - return NULL; - } + if (!find_sequence (request, before, before_options, + charset, charset_options)) + { + recode_error (outer, _("No way to recode from `%s' to `%s'"), + before->name, charset->name); + return NULL; + } - /* Ignore everything about surfaces, except in last position of a - subrequest. This optimises out the application of surfaces, when - these would be immediately followed by their removal. */ + /* Ignore everything about surfaces, except in last position of a + subrequest. This optimises out the application of surfaces, when + these would be immediately followed by their removal. */ - if (scan_check_if_last_charset (request)) + if (scan_check_if_last_charset (request)) + { + if (*request->scan_cursor == '/') { - if (*request->scan_cursor == '/') + while (*request->scan_cursor == '/') { - while (*request->scan_cursor == '/') + RECODE_SYMBOL surface = NULL; + RECODE_OPTION_LIST surface_options = NULL; + + request->scan_cursor++; + scan_identifier (request); + if (*request->scanned_string) { - RECODE_SYMBOL surface = NULL; - RECODE_OPTION_LIST surface_options = NULL; + RECODE_ALIAS alias2 + = recode_find_alias (outer, request->scanned_string, + ALIAS_FIND_AS_SURFACE); - request->scan_cursor++; - scan_identifier (request); - if (*request->scanned_string) + if (!alias2) { - RECODE_ALIAS alias2 - = find_alias (outer, request->scanned_string, - ALIAS_FIND_AS_SURFACE); - - if (!alias2) - { - recode_error (outer, - _("Unrecognised surface name `%s'"), - request->scanned_string); - return NULL; - } - surface = alias2->symbol; - /* FIXME: Should check that it does not itself have - implied surfaces? */ - } - if (*request->scan_cursor == '+') - surface_options = scan_options (request); - - if (surface && surface->resurfacer) - if (!add_to_sequence (request, surface->resurfacer, - NULL, surface_options)) + recode_error (outer, + _("Unrecognised surface name `%s'"), + request->scanned_string); return NULL; + } + surface = alias2->symbol; + /* FIXME: Should check that it does not itself have + implied surfaces? */ } - } - else if (alias->implied_surfaces && !request->make_header_flag) - { - struct recode_surface_list *list; + if (*request->scan_cursor == '+') + surface_options = scan_options (request); - for (list = alias->implied_surfaces; list; list = list->next) - if (list->surface->resurfacer) - if (!add_to_sequence (request, list->surface->resurfacer, - NULL, NULL)) - return NULL; + if (surface && surface->resurfacer) + if (!add_to_sequence (request, surface->resurfacer, + NULL, surface_options)) + return NULL; } } - } - else - { - /* We are scanning in a BEFORE position. */ - - *options_pointer = charset_options; - - if (*request->scan_cursor == '/') - { - if (!scan_unsurfacers (request)) - return NULL; - } else if (alias->implied_surfaces && !request->make_header_flag) - { - if (!add_unsurfacers_to_sequence (request, alias->implied_surfaces)) - return NULL; + { + struct recode_surface_list *list; + + for (list = alias->implied_surfaces; list; list = list->next) + if (list->surface->resurfacer) + if (!add_to_sequence (request, list->surface->resurfacer, + NULL, NULL)) + return NULL; } } @@ -990,8 +1020,8 @@ static bool scan_request (RECODE_REQUEST request) { RECODE_OUTER outer = request->outer; - RECODE_OPTION_LIST options; - RECODE_SYMBOL charset = scan_charset (request, NULL, NULL, &options); + RECODE_OPTION_LIST before_options; + RECODE_SYMBOL charset = scan_charset_before (request, &before_options); if (!charset) return false; @@ -1000,14 +1030,14 @@ scan_request (RECODE_REQUEST request) while (request->scan_cursor[0] == '.' && request->scan_cursor[1] == '.') { request->scan_cursor += 2; - charset = scan_charset (request, charset, options, NULL); + charset = scan_charset_after (request, charset, before_options); if (!charset) return false; } else if (*request->scan_cursor == NUL) { /* No `..' at all implies a conversion to the default charset. */ - charset = scan_charset (request, charset, options, NULL); + charset = scan_charset_after (request, charset, before_options); if (!charset) return false; } @@ -1067,10 +1097,9 @@ decode_request (RECODE_REQUEST request, const char *string) `--------------------------*/ /* Guarantee four NULs at the end of the output memory buffer for TASK, yet - not counting them as data. The number of NULs should depend on the goal - charset: often one, but two for UCS-2 and four for UCS-4. FIXME! */ + not counting them as data. (Four is the maximum, needed for UCS-4.) */ -static void +static bool guarantee_nul_terminator (RECODE_TASK task) { if (task->output.cursor + 4 >= task->output.limit) @@ -1078,17 +1107,20 @@ guarantee_nul_terminator (RECODE_TASK task) RECODE_OUTER outer = task->request->outer; size_t size = task->output.cursor - task->output.buffer; - /* FIXME: Rethink about how the error should be reported. */ if (REALLOC (task->output.buffer, size + 4, char)) { task->output.cursor = task->output.buffer + size; task->output.limit = task->output.buffer + size + 4; } + else + return false; } task->output.cursor[0] = NUL; task->output.cursor[1] = NUL; task->output.cursor[2] = NUL; task->output.cursor[3] = NUL; + + return true; } RECODE_REQUEST @@ -1099,7 +1131,6 @@ recode_new_request (RECODE_OUTER outer) if (!ALLOC (request, 1, struct recode_request)) return NULL; - memset (request, 0, sizeof (struct recode_request)); request->outer = outer; request->diaeresis_char = '"'; @@ -1110,10 +1141,12 @@ recode_new_request (RECODE_OUTER outer) bool recode_delete_request (RECODE_REQUEST request) { - if (request->sequence_array) - free (request->sequence_array); - if (request->work_string) - free (request->work_string); + for (RECODE_STEP step = request->sequence_array; + step < request->sequence_array + request->sequence_length; + step++) + delete_step (step); + free (request->sequence_array); + free (request->work_string); free (request); return true; } @@ -1182,9 +1215,7 @@ recode_buffer_to_buffer (RECODE_CONST_REQUEST request, task->output.cursor = *output_buffer_pointer; task->output.limit = *output_buffer_pointer + *output_allocated_pointer; - task->strategy = RECODE_SEQUENCE_IN_MEMORY; - success = recode_perform_task (task); - guarantee_nul_terminator (task); + success = recode_perform_task (task) && guarantee_nul_terminator (task); *output_buffer_pointer = task->output.buffer; *output_length_pointer = task->output.cursor - task->output.buffer; *output_allocated_pointer = task->output.limit - task->output.buffer; @@ -1210,7 +1241,6 @@ recode_buffer_to_file (RECODE_CONST_REQUEST request, task->input.limit = input_buffer + input_length; task->output.file = output_file; - task->strategy = RECODE_SEQUENCE_IN_MEMORY; success = recode_perform_task (task); recode_delete_task (task); @@ -1235,9 +1265,7 @@ recode_file_to_buffer (RECODE_CONST_REQUEST request, task->output.cursor = *output_buffer_pointer; task->output.limit = *output_buffer_pointer + *output_allocated_pointer; - task->strategy = RECODE_SEQUENCE_IN_MEMORY; - success = recode_perform_task (task); - guarantee_nul_terminator (task); + success = recode_perform_task (task) && guarantee_nul_terminator (task); *output_buffer_pointer = task->output.buffer; *output_length_pointer = task->output.cursor - task->output.buffer; *output_allocated_pointer = task->output.limit - task->output.buffer; diff --git a/src/rfc1345.c b/src/rfc1345.c index e80c146..931f3f1 100644 --- a/src/rfc1345.c +++ b/src/rfc1345.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1993, 94, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1993-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1993. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" #include "rfc1345.h" /* This module takes care only of short RFC 1345 forms. Module charname.c @@ -28,8 +30,8 @@ | NULL if this value has no such known short form. | `----------------------------------------------------------------------*/ -const char * -ucs2_to_rfc1345 (recode_ucs2 code) +_GL_ATTRIBUTE_CONST const char * +recode_ucs2_to_rfc1345 (recode_ucs2 code) { int first = 0; int last = TABLE_LENGTH; @@ -52,10 +54,10 @@ ucs2_to_rfc1345 (recode_ucs2 code) /*---------------------------------------------------------------------. | Return an UCS-2 value, given an RFC 1345 short form in a CHARSET, or | -| MASK (16) if the short form is unknown. | +| BIT_MASK (16) if the short form is unknown. | `---------------------------------------------------------------------*/ -static recode_ucs2 +static _GL_ATTRIBUTE_PURE recode_ucs2 rfc1345_to_ucs2 (const char *string) { int first = 0; @@ -96,41 +98,41 @@ transform_ucs2_rfc1345 (RECODE_SUBTASK subtask) const char intro = local->intro; unsigned value; - while (get_ucs2 (&value, subtask)) + while (recode_get_ucs2 (&value, subtask)) if (IS_ASCII (value)) - if (value == intro) + if (value == (unsigned)intro) { - put_byte (intro, subtask); - put_byte (intro, subtask); + recode_put_byte (intro, subtask); + recode_put_byte (intro, subtask); } else - put_byte (value, subtask); + recode_put_byte (value, subtask); else { - const char *string = ucs2_to_rfc1345 (value); + const char *string = recode_ucs2_to_rfc1345 (value); if (!string || !string[0]) RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask); else if (!string[1]) - put_byte (string[0], subtask); + recode_put_byte (string[0], subtask); else if (!string[2]) { - put_byte (intro, subtask); - put_byte (string[0], subtask); - put_byte (string[1], subtask); + recode_put_byte (intro, subtask); + recode_put_byte (string[0], subtask); + recode_put_byte (string[1], subtask); } else { const char *cursor = string; - put_byte (intro, subtask); - put_byte ('_', subtask); + recode_put_byte (intro, subtask); + recode_put_byte ('_', subtask); while (*cursor) { - put_byte (*cursor, subtask); + recode_put_byte (*cursor, subtask); cursor++; } - put_byte ('_', subtask); + recode_put_byte ('_', subtask); } } @@ -148,22 +150,22 @@ transform_rfc1345_ucs2 (RECODE_SUBTASK subtask) const char intro = local->intro; int character; - while (character = get_byte (subtask), character != EOF) + while (character = recode_get_byte (subtask), character != EOF) if (character == intro) { - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == EOF) RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); if (character == intro) - put_ucs2 (intro, subtask); + recode_put_ucs2 (intro, subtask); else if (character == '_') { char buffer[MAX_MNEMONIC_LENGTH + 1]; char *cursor = buffer; - character = get_byte (subtask); + character = recode_get_byte (subtask); while (true) if (character == EOF) { @@ -179,7 +181,7 @@ transform_rfc1345_ucs2 (RECODE_SUBTASK subtask) if (value == NOT_A_CHARACTER) RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); else - put_ucs2 (value, subtask); + recode_put_ucs2 (value, subtask); break; } else if (cursor == buffer + MAX_MNEMONIC_LENGTH) @@ -190,7 +192,7 @@ transform_rfc1345_ucs2 (RECODE_SUBTASK subtask) else { *cursor++ = character; - character = get_byte (subtask); + character = recode_get_byte (subtask); } } else @@ -199,7 +201,7 @@ transform_rfc1345_ucs2 (RECODE_SUBTASK subtask) recode_ucs2 value; buffer[0] = character; - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == EOF) RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); buffer[1] = character; @@ -212,12 +214,12 @@ transform_rfc1345_ucs2 (RECODE_SUBTASK subtask) { if (IS_ASCII (value)) RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - put_ucs2 (value, subtask); + recode_put_ucs2 (value, subtask); } } } else - put_ucs2 (character, subtask); + recode_put_ucs2 (character, subtask); SUBTASK_RETURN (subtask); } @@ -226,10 +228,17 @@ transform_rfc1345_ucs2 (RECODE_SUBTASK subtask) | Initialise the steps. | `-----------------------*/ +static bool +term_rfc1345 (RECODE_STEP step) +{ + free (step->local); + return true; +} + static bool init_rfc1345 (RECODE_CONST_REQUEST request, RECODE_STEP step, - RECODE_CONST_OPTION_LIST options) + RECODE_CONST_OPTION_LIST options _GL_UNUSED) { RECODE_OUTER outer = request->outer; struct local *local; @@ -240,6 +249,7 @@ init_rfc1345 (RECODE_CONST_REQUEST request, local->intro = '&'; step->local = local; + step->term_routine = term_rfc1345; return true; } @@ -274,19 +284,29 @@ init_rfc1345_ucs2 (RECODE_STEP step, bool module_rfc1345 (RECODE_OUTER outer) { - return - declare_single (outer, "ISO-10646-UCS-2", "RFC1345", - outer->quality_variable_to_variable, - init_ucs2_rfc1345, transform_ucs2_rfc1345) - && declare_single (outer, "RFC1345", "ISO-10646-UCS-2", - outer->quality_variable_to_variable, - init_rfc1345_ucs2, transform_rfc1345_ucs2) - - && declare_alias (outer, "1345", "RFC1345") - && declare_alias (outer, "mnemonic", "RFC1345"); + RECODE_ALIAS alias; + + if + (!recode_declare_single (outer, "ISO-10646-UCS-2", "RFC1345", + outer->quality_variable_to_variable, + init_ucs2_rfc1345, transform_ucs2_rfc1345) + || !recode_declare_single (outer, "RFC1345", "ISO-10646-UCS-2", + outer->quality_variable_to_variable, + init_rfc1345_ucs2, transform_rfc1345_ucs2) + || !recode_declare_alias (outer, "1345", "RFC1345") + || !recode_declare_alias (outer, "mnemonic", "RFC1345")) + return false; + + /* Aliases for obsolete built-in encodings */ + if (alias = recode_declare_alias (outer, "Apple-Mac", "macintosh"), !alias) + return false; + if (!recode_declare_implied_surface (outer, alias, outer->cr_surface)) + return false; + + return true; } void -delmodule_rfc1345 (RECODE_OUTER outer) +delmodule_rfc1345 (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/rfc1345.h b/src/rfc1345.h deleted file mode 100644 index 17debb0..0000000 --- a/src/rfc1345.h +++ /dev/null @@ -1,2261 +0,0 @@ -/* DO NOT MODIFY THIS FILE! It was generated by `recode/tables.py'. */ - -/* Conversion of files between different charsets and surfaces. - Copyright © 1999 Free Software Foundation, Inc. - Contributed by François Pinard , 1993, 1997. - - This 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. - - 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the Recode 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. */ - -#define TABLE_LENGTH 2021 -#define MAX_MNEMONIC_LENGTH 3 - -struct entry - { - recode_ucs2 code; - const char *rfc1345; - }; - -static const struct entry table[TABLE_LENGTH] = - { - /* 0 */ {0x0000, "NU"}, - /* 1 */ {0x0001, "SH"}, - /* 2 */ {0x0002, "SX"}, - /* 3 */ {0x0003, "EX"}, - /* 4 */ {0x0004, "ET"}, - /* 5 */ {0x0005, "EQ"}, - /* 6 */ {0x0006, "AK"}, - /* 7 */ {0x0007, "BL"}, - /* 8 */ {0x0008, "BS"}, - /* 9 */ {0x0009, "HT"}, - /* 10 */ {0x000A, "LF"}, - /* 11 */ {0x000B, "VT"}, - /* 12 */ {0x000C, "FF"}, - /* 13 */ {0x000D, "CR"}, - /* 14 */ {0x000E, "SO"}, - /* 15 */ {0x000F, "SI"}, - /* 16 */ {0x0010, "DL"}, - /* 17 */ {0x0011, "D1"}, - /* 18 */ {0x0012, "D2"}, - /* 19 */ {0x0013, "D3"}, - /* 20 */ {0x0014, "D4"}, - /* 21 */ {0x0015, "NK"}, - /* 22 */ {0x0016, "SY"}, - /* 23 */ {0x0017, "EB"}, - /* 24 */ {0x0018, "CN"}, - /* 25 */ {0x0019, "EM"}, - /* 26 */ {0x001A, "SB"}, - /* 27 */ {0x001B, "EC"}, - /* 28 */ {0x001C, "FS"}, - /* 29 */ {0x001D, "GS"}, - /* 30 */ {0x001E, "RS"}, - /* 31 */ {0x001F, "US"}, - /* 32 */ {0x0020, "SP"}, - /* 33 */ {0x0021, "!"}, - /* 34 */ {0x0022, "\""}, - /* 35 */ {0x0023, "Nb"}, - /* 36 */ {0x0024, "DO"}, - /* 37 */ {0x0025, "%"}, - /* 38 */ {0x0026, "&"}, - /* 39 */ {0x0027, "'"}, - /* 40 */ {0x0028, "("}, - /* 41 */ {0x0029, ")"}, - /* 42 */ {0x002A, "*"}, - /* 43 */ {0x002B, "+"}, - /* 44 */ {0x002C, ","}, - /* 45 */ {0x002D, "-"}, - /* 46 */ {0x002E, "."}, - /* 47 */ {0x002F, "/"}, - /* 48 */ {0x0030, "0"}, - /* 49 */ {0x0031, "1"}, - /* 50 */ {0x0032, "2"}, - /* 51 */ {0x0033, "3"}, - /* 52 */ {0x0034, "4"}, - /* 53 */ {0x0035, "5"}, - /* 54 */ {0x0036, "6"}, - /* 55 */ {0x0037, "7"}, - /* 56 */ {0x0038, "8"}, - /* 57 */ {0x0039, "9"}, - /* 58 */ {0x003A, ":"}, - /* 59 */ {0x003B, ";"}, - /* 60 */ {0x003C, "<"}, - /* 61 */ {0x003D, "="}, - /* 62 */ {0x003E, ">"}, - /* 63 */ {0x003F, "?"}, - /* 64 */ {0x0040, "At"}, - /* 65 */ {0x0041, "A"}, - /* 66 */ {0x0042, "B"}, - /* 67 */ {0x0043, "C"}, - /* 68 */ {0x0044, "D"}, - /* 69 */ {0x0045, "E"}, - /* 70 */ {0x0046, "F"}, - /* 71 */ {0x0047, "G"}, - /* 72 */ {0x0048, "H"}, - /* 73 */ {0x0049, "I"}, - /* 74 */ {0x004A, "J"}, - /* 75 */ {0x004B, "K"}, - /* 76 */ {0x004C, "L"}, - /* 77 */ {0x004D, "M"}, - /* 78 */ {0x004E, "N"}, - /* 79 */ {0x004F, "O"}, - /* 80 */ {0x0050, "P"}, - /* 81 */ {0x0051, "Q"}, - /* 82 */ {0x0052, "R"}, - /* 83 */ {0x0053, "S"}, - /* 84 */ {0x0054, "T"}, - /* 85 */ {0x0055, "U"}, - /* 86 */ {0x0056, "V"}, - /* 87 */ {0x0057, "W"}, - /* 88 */ {0x0058, "X"}, - /* 89 */ {0x0059, "Y"}, - /* 90 */ {0x005A, "Z"}, - /* 91 */ {0x005B, "<("}, - /* 92 */ {0x005C, "//"}, - /* 93 */ {0x005D, ")>"}, - /* 94 */ {0x005E, "'>"}, - /* 95 */ {0x005F, "_"}, - /* 96 */ {0x0060, "'!"}, - /* 97 */ {0x0061, "a"}, - /* 98 */ {0x0062, "b"}, - /* 99 */ {0x0063, "c"}, - /* 100 */ {0x0064, "d"}, - /* 101 */ {0x0065, "e"}, - /* 102 */ {0x0066, "f"}, - /* 103 */ {0x0067, "g"}, - /* 104 */ {0x0068, "h"}, - /* 105 */ {0x0069, "i"}, - /* 106 */ {0x006A, "j"}, - /* 107 */ {0x006B, "k"}, - /* 108 */ {0x006C, "l"}, - /* 109 */ {0x006D, "m"}, - /* 110 */ {0x006E, "n"}, - /* 111 */ {0x006F, "o"}, - /* 112 */ {0x0070, "p"}, - /* 113 */ {0x0071, "q"}, - /* 114 */ {0x0072, "r"}, - /* 115 */ {0x0073, "s"}, - /* 116 */ {0x0074, "t"}, - /* 117 */ {0x0075, "u"}, - /* 118 */ {0x0076, "v"}, - /* 119 */ {0x0077, "w"}, - /* 120 */ {0x0078, "x"}, - /* 121 */ {0x0079, "y"}, - /* 122 */ {0x007A, "z"}, - /* 123 */ {0x007B, "(!"}, - /* 124 */ {0x007C, "!!"}, - /* 125 */ {0x007D, "!)"}, - /* 126 */ {0x007E, "'?"}, - /* 127 */ {0x007F, "DT"}, - /* 128 */ {0x0080, "PA"}, - /* 129 */ {0x0081, "HO"}, - /* 130 */ {0x0082, "BH"}, - /* 131 */ {0x0083, "NH"}, - /* 132 */ {0x0084, "IN"}, - /* 133 */ {0x0085, "NL"}, - /* 134 */ {0x0086, "SA"}, - /* 135 */ {0x0087, "ES"}, - /* 136 */ {0x0088, "HS"}, - /* 137 */ {0x0089, "HJ"}, - /* 138 */ {0x008A, "VS"}, - /* 139 */ {0x008B, "PD"}, - /* 140 */ {0x008C, "PU"}, - /* 141 */ {0x008D, "RI"}, - /* 142 */ {0x008E, "S2"}, - /* 143 */ {0x008F, "S3"}, - /* 144 */ {0x0090, "DC"}, - /* 145 */ {0x0091, "P1"}, - /* 146 */ {0x0092, "P2"}, - /* 147 */ {0x0093, "TS"}, - /* 148 */ {0x0094, "CC"}, - /* 149 */ {0x0095, "MW"}, - /* 150 */ {0x0096, "SG"}, - /* 151 */ {0x0097, "EG"}, - /* 152 */ {0x0098, "SS"}, - /* 153 */ {0x0099, "GC"}, - /* 154 */ {0x009A, "SC"}, - /* 155 */ {0x009B, "CI"}, - /* 156 */ {0x009C, "ST"}, - /* 157 */ {0x009D, "OC"}, - /* 158 */ {0x009E, "PM"}, - /* 159 */ {0x009F, "AC"}, - /* 160 */ {0x00A0, "NS"}, - /* 161 */ {0x00A1, "!I"}, - /* 162 */ {0x00A2, "Ct"}, - /* 163 */ {0x00A3, "Pd"}, - /* 164 */ {0x00A4, "Cu"}, - /* 165 */ {0x00A5, "Ye"}, - /* 166 */ {0x00A6, "BB"}, - /* 167 */ {0x00A7, "SE"}, - /* 168 */ {0x00A8, "':"}, - /* 169 */ {0x00A9, "Co"}, - /* 170 */ {0x00AA, "-a"}, - /* 171 */ {0x00AB, "<<"}, - /* 172 */ {0x00AC, "NO"}, - /* 173 */ {0x00AD, "--"}, - /* 174 */ {0x00AE, "Rg"}, - /* 175 */ {0x00AF, "'m"}, - /* 176 */ {0x00B0, "DG"}, - /* 177 */ {0x00B1, "+-"}, - /* 178 */ {0x00B2, "2S"}, - /* 179 */ {0x00B3, "3S"}, - /* 180 */ {0x00B4, "''"}, - /* 181 */ {0x00B5, "My"}, - /* 182 */ {0x00B6, "PI"}, - /* 183 */ {0x00B7, ".M"}, - /* 184 */ {0x00B8, "',"}, - /* 185 */ {0x00B9, "1S"}, - /* 186 */ {0x00BA, "-o"}, - /* 187 */ {0x00BB, ">>"}, - /* 188 */ {0x00BC, "14"}, - /* 189 */ {0x00BD, "12"}, - /* 190 */ {0x00BE, "34"}, - /* 191 */ {0x00BF, "?I"}, - /* 192 */ {0x00C0, "A!"}, - /* 193 */ {0x00C1, "A'"}, - /* 194 */ {0x00C2, "A>"}, - /* 195 */ {0x00C3, "A?"}, - /* 196 */ {0x00C4, "A:"}, - /* 197 */ {0x00C5, "AA"}, - /* 198 */ {0x00C6, "AE"}, - /* 199 */ {0x00C7, "C,"}, - /* 200 */ {0x00C8, "E!"}, - /* 201 */ {0x00C9, "E'"}, - /* 202 */ {0x00CA, "E>"}, - /* 203 */ {0x00CB, "E:"}, - /* 204 */ {0x00CC, "I!"}, - /* 205 */ {0x00CD, "I'"}, - /* 206 */ {0x00CE, "I>"}, - /* 207 */ {0x00CF, "I:"}, - /* 208 */ {0x00D0, "D-"}, - /* 209 */ {0x00D1, "N?"}, - /* 210 */ {0x00D2, "O!"}, - /* 211 */ {0x00D3, "O'"}, - /* 212 */ {0x00D4, "O>"}, - /* 213 */ {0x00D5, "O?"}, - /* 214 */ {0x00D6, "O:"}, - /* 215 */ {0x00D7, "*X"}, - /* 216 */ {0x00D8, "O/"}, - /* 217 */ {0x00D9, "U!"}, - /* 218 */ {0x00DA, "U'"}, - /* 219 */ {0x00DB, "U>"}, - /* 220 */ {0x00DC, "U:"}, - /* 221 */ {0x00DD, "Y'"}, - /* 222 */ {0x00DE, "TH"}, - /* 223 */ {0x00DF, "ss"}, - /* 224 */ {0x00E0, "a!"}, - /* 225 */ {0x00E1, "a'"}, - /* 226 */ {0x00E2, "a>"}, - /* 227 */ {0x00E3, "a?"}, - /* 228 */ {0x00E4, "a:"}, - /* 229 */ {0x00E5, "aa"}, - /* 230 */ {0x00E6, "ae"}, - /* 231 */ {0x00E7, "c,"}, - /* 232 */ {0x00E8, "e!"}, - /* 233 */ {0x00E9, "e'"}, - /* 234 */ {0x00EA, "e>"}, - /* 235 */ {0x00EB, "e:"}, - /* 236 */ {0x00EC, "i!"}, - /* 237 */ {0x00ED, "i'"}, - /* 238 */ {0x00EE, "i>"}, - /* 239 */ {0x00EF, "i:"}, - /* 240 */ {0x00F0, "d-"}, - /* 241 */ {0x00F1, "n?"}, - /* 242 */ {0x00F2, "o!"}, - /* 243 */ {0x00F3, "o'"}, - /* 244 */ {0x00F4, "o>"}, - /* 245 */ {0x00F5, "o?"}, - /* 246 */ {0x00F6, "o:"}, - /* 247 */ {0x00F7, "-:"}, - /* 248 */ {0x00F8, "o/"}, - /* 249 */ {0x00F9, "u!"}, - /* 250 */ {0x00FA, "u'"}, - /* 251 */ {0x00FB, "u>"}, - /* 252 */ {0x00FC, "u:"}, - /* 253 */ {0x00FD, "y'"}, - /* 254 */ {0x00FE, "th"}, - /* 255 */ {0x00FF, "y:"}, - /* 256 */ {0x0100, "A-"}, - /* 257 */ {0x0101, "a-"}, - /* 258 */ {0x0102, "A("}, - /* 259 */ {0x0103, "a("}, - /* 260 */ {0x0104, "A;"}, - /* 261 */ {0x0105, "a;"}, - /* 262 */ {0x0106, "C'"}, - /* 263 */ {0x0107, "c'"}, - /* 264 */ {0x0108, "C>"}, - /* 265 */ {0x0109, "c>"}, - /* 266 */ {0x010A, "C."}, - /* 267 */ {0x010B, "c."}, - /* 268 */ {0x010C, "C<"}, - /* 269 */ {0x010D, "c<"}, - /* 270 */ {0x010E, "D<"}, - /* 271 */ {0x010F, "d<"}, - /* 272 */ {0x0110, "D/"}, - /* 273 */ {0x0111, "d/"}, - /* 274 */ {0x0112, "E-"}, - /* 275 */ {0x0113, "e-"}, - /* 276 */ {0x0114, "E("}, - /* 277 */ {0x0115, "e("}, - /* 278 */ {0x0116, "E."}, - /* 279 */ {0x0117, "e."}, - /* 280 */ {0x0118, "E;"}, - /* 281 */ {0x0119, "e;"}, - /* 282 */ {0x011A, "E<"}, - /* 283 */ {0x011B, "e<"}, - /* 284 */ {0x011C, "G>"}, - /* 285 */ {0x011D, "g>"}, - /* 286 */ {0x011E, "G("}, - /* 287 */ {0x011F, "g("}, - /* 288 */ {0x0120, "G."}, - /* 289 */ {0x0121, "g."}, - /* 290 */ {0x0122, "G,"}, - /* 291 */ {0x0123, "g,"}, - /* 292 */ {0x0124, "H>"}, - /* 293 */ {0x0125, "h>"}, - /* 294 */ {0x0126, "H/"}, - /* 295 */ {0x0127, "h/"}, - /* 296 */ {0x0128, "I?"}, - /* 297 */ {0x0129, "i?"}, - /* 298 */ {0x012A, "I-"}, - /* 299 */ {0x012B, "i-"}, - /* 300 */ {0x012C, "I("}, - /* 301 */ {0x012D, "i("}, - /* 302 */ {0x012E, "I;"}, - /* 303 */ {0x012F, "i;"}, - /* 304 */ {0x0130, "I."}, - /* 305 */ {0x0131, "i."}, - /* 306 */ {0x0132, "IJ"}, - /* 307 */ {0x0133, "ij"}, - /* 308 */ {0x0134, "J>"}, - /* 309 */ {0x0135, "j>"}, - /* 310 */ {0x0136, "K,"}, - /* 311 */ {0x0137, "k,"}, - /* 312 */ {0x0138, "kk"}, - /* 313 */ {0x0139, "L'"}, - /* 314 */ {0x013A, "l'"}, - /* 315 */ {0x013B, "L,"}, - /* 316 */ {0x013C, "l,"}, - /* 317 */ {0x013D, "L<"}, - /* 318 */ {0x013E, "l<"}, - /* 319 */ {0x013F, "L."}, - /* 320 */ {0x0140, "l."}, - /* 321 */ {0x0141, "L/"}, - /* 322 */ {0x0142, "l/"}, - /* 323 */ {0x0143, "N'"}, - /* 324 */ {0x0144, "n'"}, - /* 325 */ {0x0145, "N,"}, - /* 326 */ {0x0146, "n,"}, - /* 327 */ {0x0147, "N<"}, - /* 328 */ {0x0148, "n<"}, - /* 329 */ {0x0149, "'n"}, - /* 330 */ {0x014A, "NG"}, - /* 331 */ {0x014B, "ng"}, - /* 332 */ {0x014C, "O-"}, - /* 333 */ {0x014D, "o-"}, - /* 334 */ {0x014E, "O("}, - /* 335 */ {0x014F, "o("}, - /* 336 */ {0x0150, "O\""}, - /* 337 */ {0x0151, "o\""}, - /* 338 */ {0x0152, "OE"}, - /* 339 */ {0x0153, "oe"}, - /* 340 */ {0x0154, "R'"}, - /* 341 */ {0x0155, "r'"}, - /* 342 */ {0x0156, "R,"}, - /* 343 */ {0x0157, "r,"}, - /* 344 */ {0x0158, "R<"}, - /* 345 */ {0x0159, "r<"}, - /* 346 */ {0x015A, "S'"}, - /* 347 */ {0x015B, "s'"}, - /* 348 */ {0x015C, "S>"}, - /* 349 */ {0x015D, "s>"}, - /* 350 */ {0x015E, "S,"}, - /* 351 */ {0x015F, "s,"}, - /* 352 */ {0x0160, "S<"}, - /* 353 */ {0x0161, "s<"}, - /* 354 */ {0x0162, "T,"}, - /* 355 */ {0x0163, "t,"}, - /* 356 */ {0x0164, "T<"}, - /* 357 */ {0x0165, "t<"}, - /* 358 */ {0x0166, "T/"}, - /* 359 */ {0x0167, "t/"}, - /* 360 */ {0x0168, "U?"}, - /* 361 */ {0x0169, "u?"}, - /* 362 */ {0x016A, "U-"}, - /* 363 */ {0x016B, "u-"}, - /* 364 */ {0x016C, "U("}, - /* 365 */ {0x016D, "u("}, - /* 366 */ {0x016E, "U0"}, - /* 367 */ {0x016F, "u0"}, - /* 368 */ {0x0170, "U\""}, - /* 369 */ {0x0171, "u\""}, - /* 370 */ {0x0172, "U;"}, - /* 371 */ {0x0173, "u;"}, - /* 372 */ {0x0174, "W>"}, - /* 373 */ {0x0175, "w>"}, - /* 374 */ {0x0176, "Y>"}, - /* 375 */ {0x0177, "y>"}, - /* 376 */ {0x0178, "Y:"}, - /* 377 */ {0x0179, "Z'"}, - /* 378 */ {0x017A, "z'"}, - /* 379 */ {0x017B, "Z."}, - /* 380 */ {0x017C, "z."}, - /* 381 */ {0x017D, "Z<"}, - /* 382 */ {0x017E, "z<"}, - /* 383 */ {0x017F, "s1"}, - /* 384 */ {0x0180, "b/"}, - /* 385 */ {0x0181, "B2"}, - /* 386 */ {0x0187, "C2"}, - /* 387 */ {0x0188, "c2"}, - /* 388 */ {0x0191, "F2"}, - /* 389 */ {0x0192, "f2"}, - /* 390 */ {0x0198, "K2"}, - /* 391 */ {0x0199, "k2"}, - /* 392 */ {0x01A0, "O9"}, - /* 393 */ {0x01A1, "o9"}, - /* 394 */ {0x01A2, "OI"}, - /* 395 */ {0x01A3, "oi"}, - /* 396 */ {0x01A6, "yr"}, - /* 397 */ {0x01AF, "U9"}, - /* 398 */ {0x01B0, "u9"}, - /* 399 */ {0x01B5, "Z/"}, - /* 400 */ {0x01B6, "z/"}, - /* 401 */ {0x01B7, "ED"}, - /* 402 */ {0x01C4, "DZ<"}, - /* 403 */ {0x01C5, "Dz<"}, - /* 404 */ {0x01C6, "dz<"}, - /* 405 */ {0x01C7, "LJ3"}, - /* 406 */ {0x01C8, "Lj3"}, - /* 407 */ {0x01C9, "lj3"}, - /* 408 */ {0x01CA, "NJ3"}, - /* 409 */ {0x01CB, "Nj3"}, - /* 410 */ {0x01CC, "nj3"}, - /* 411 */ {0x01CD, "A<"}, - /* 412 */ {0x01CE, "a<"}, - /* 413 */ {0x01CF, "I<"}, - /* 414 */ {0x01D0, "i<"}, - /* 415 */ {0x01D1, "O<"}, - /* 416 */ {0x01D2, "o<"}, - /* 417 */ {0x01D3, "U<"}, - /* 418 */ {0x01D4, "u<"}, - /* 419 */ {0x01D5, "U:-"}, - /* 420 */ {0x01D6, "u:-"}, - /* 421 */ {0x01D7, "U:'"}, - /* 422 */ {0x01D8, "u:'"}, - /* 423 */ {0x01D9, "U:<"}, - /* 424 */ {0x01DA, "u:<"}, - /* 425 */ {0x01DB, "U:!"}, - /* 426 */ {0x01DC, "u:!"}, - /* 427 */ {0x01DD, "e1"}, - /* 428 */ {0x01DE, "A1"}, - /* 429 */ {0x01DF, "a1"}, - /* 430 */ {0x01E0, "A7"}, - /* 431 */ {0x01E1, "a7"}, - /* 432 */ {0x01E2, "A3"}, - /* 433 */ {0x01E3, "a3"}, - /* 434 */ {0x01E4, "G/"}, - /* 435 */ {0x01E5, "g/"}, - /* 436 */ {0x01E6, "G<"}, - /* 437 */ {0x01E7, "g<"}, - /* 438 */ {0x01E8, "K<"}, - /* 439 */ {0x01E9, "k<"}, - /* 440 */ {0x01EA, "O;"}, - /* 441 */ {0x01EB, "o;"}, - /* 442 */ {0x01EC, "O1"}, - /* 443 */ {0x01ED, "o1"}, - /* 444 */ {0x01EE, "EZ"}, - /* 445 */ {0x01EF, "ez"}, - /* 446 */ {0x01F0, "j<"}, - /* 447 */ {0x01F1, "DZ3"}, - /* 448 */ {0x01F2, "Dz3"}, - /* 449 */ {0x01F3, "dz3"}, - /* 450 */ {0x01F4, "G'"}, - /* 451 */ {0x01F5, "g'"}, - /* 452 */ {0x01FA, "AA'"}, - /* 453 */ {0x01FB, "aa'"}, - /* 454 */ {0x01FC, "AE'"}, - /* 455 */ {0x01FD, "ae'"}, - /* 456 */ {0x01FE, "O/'"}, - /* 457 */ {0x01FF, "o/'"}, - /* 458 */ {0x0200, "A!!"}, - /* 459 */ {0x0201, "a!!"}, - /* 460 */ {0x0202, "A)"}, - /* 461 */ {0x0203, "a)"}, - /* 462 */ {0x0204, "E!!"}, - /* 463 */ {0x0205, "e!!"}, - /* 464 */ {0x0206, "E)"}, - /* 465 */ {0x0207, "e)"}, - /* 466 */ {0x0208, "I!!"}, - /* 467 */ {0x0209, "i!!"}, - /* 468 */ {0x020A, "I)"}, - /* 469 */ {0x020B, "i)"}, - /* 470 */ {0x020C, "O!!"}, - /* 471 */ {0x020D, "o!!"}, - /* 472 */ {0x020E, "O)"}, - /* 473 */ {0x020F, "o)"}, - /* 474 */ {0x0210, "R!!"}, - /* 475 */ {0x0211, "r!!"}, - /* 476 */ {0x0212, "R)"}, - /* 477 */ {0x0213, "r)"}, - /* 478 */ {0x0214, "U!!"}, - /* 479 */ {0x0215, "u!!"}, - /* 480 */ {0x0216, "U)"}, - /* 481 */ {0x0217, "u)"}, - /* 482 */ {0x027C, "r1"}, - /* 483 */ {0x0292, "ed"}, - /* 484 */ {0x02BB, ";S"}, - /* 485 */ {0x02C6, "1>"}, - /* 486 */ {0x02C7, "'<"}, - /* 487 */ {0x02C9, "1-"}, - /* 488 */ {0x02CB, "1!"}, - /* 489 */ {0x02D8, "'("}, - /* 490 */ {0x02D9, "'."}, - /* 491 */ {0x02DA, "'0"}, - /* 492 */ {0x02DB, "';"}, - /* 493 */ {0x02DC, "1?"}, - /* 494 */ {0x02DD, "'\""}, - /* 495 */ {0x0374, "'G"}, - /* 496 */ {0x0375, ",G"}, - /* 497 */ {0x037A, "j3"}, - /* 498 */ {0x037E, "?%"}, - /* 499 */ {0x0384, "'*"}, - /* 500 */ {0x0385, "'%"}, - /* 501 */ {0x0386, "A%"}, - /* 502 */ {0x0387, ".*"}, - /* 503 */ {0x0388, "E%"}, - /* 504 */ {0x0389, "Y%"}, - /* 505 */ {0x038A, "I%"}, - /* 506 */ {0x038C, "O%"}, - /* 507 */ {0x038E, "U%"}, - /* 508 */ {0x038F, "W%"}, - /* 509 */ {0x0390, "i3"}, - /* 510 */ {0x0391, "A*"}, - /* 511 */ {0x0392, "B*"}, - /* 512 */ {0x0393, "G*"}, - /* 513 */ {0x0394, "D*"}, - /* 514 */ {0x0395, "E*"}, - /* 515 */ {0x0396, "Z*"}, - /* 516 */ {0x0397, "Y*"}, - /* 517 */ {0x0398, "H*"}, - /* 518 */ {0x0399, "I*"}, - /* 519 */ {0x039A, "K*"}, - /* 520 */ {0x039B, "L*"}, - /* 521 */ {0x039C, "M*"}, - /* 522 */ {0x039D, "N*"}, - /* 523 */ {0x039E, "C*"}, - /* 524 */ {0x039F, "O*"}, - /* 525 */ {0x03A0, "P*"}, - /* 526 */ {0x03A1, "R*"}, - /* 527 */ {0x03A3, "S*"}, - /* 528 */ {0x03A4, "T*"}, - /* 529 */ {0x03A5, "U*"}, - /* 530 */ {0x03A6, "F*"}, - /* 531 */ {0x03A7, "X*"}, - /* 532 */ {0x03A8, "Q*"}, - /* 533 */ {0x03A9, "W*"}, - /* 534 */ {0x03AA, "J*"}, - /* 535 */ {0x03AB, "V*"}, - /* 536 */ {0x03AC, "a%"}, - /* 537 */ {0x03AD, "e%"}, - /* 538 */ {0x03AE, "y%"}, - /* 539 */ {0x03AF, "i%"}, - /* 540 */ {0x03B0, "u3"}, - /* 541 */ {0x03B1, "a*"}, - /* 542 */ {0x03B2, "b*"}, - /* 543 */ {0x03B3, "g*"}, - /* 544 */ {0x03B4, "d*"}, - /* 545 */ {0x03B5, "e*"}, - /* 546 */ {0x03B6, "z*"}, - /* 547 */ {0x03B7, "y*"}, - /* 548 */ {0x03B8, "h*"}, - /* 549 */ {0x03B9, "i*"}, - /* 550 */ {0x03BA, "k*"}, - /* 551 */ {0x03BB, "l*"}, - /* 552 */ {0x03BC, "m*"}, - /* 553 */ {0x03BD, "n*"}, - /* 554 */ {0x03BE, "c*"}, - /* 555 */ {0x03BF, "o*"}, - /* 556 */ {0x03C0, "p*"}, - /* 557 */ {0x03C1, "r*"}, - /* 558 */ {0x03C2, "*s"}, - /* 559 */ {0x03C3, "s*"}, - /* 560 */ {0x03C4, "t*"}, - /* 561 */ {0x03C5, "u*"}, - /* 562 */ {0x03C6, "f*"}, - /* 563 */ {0x03C7, "x*"}, - /* 564 */ {0x03C8, "q*"}, - /* 565 */ {0x03C9, "w*"}, - /* 566 */ {0x03CA, "j*"}, - /* 567 */ {0x03CB, "v*"}, - /* 568 */ {0x03CC, "o%"}, - /* 569 */ {0x03CD, "u%"}, - /* 570 */ {0x03CE, "w%"}, - /* 571 */ {0x03D0, "b3"}, - /* 572 */ {0x03DA, "T3"}, - /* 573 */ {0x03DC, "M3"}, - /* 574 */ {0x03DE, "K3"}, - /* 575 */ {0x03E0, "P3"}, - /* 576 */ {0x0401, "IO"}, - /* 577 */ {0x0402, "D%"}, - /* 578 */ {0x0403, "G%"}, - /* 579 */ {0x0404, "IE"}, - /* 580 */ {0x0405, "DS"}, - /* 581 */ {0x0406, "II"}, - /* 582 */ {0x0407, "YI"}, - /* 583 */ {0x0408, "J%"}, - /* 584 */ {0x0409, "LJ"}, - /* 585 */ {0x040A, "NJ"}, - /* 586 */ {0x040B, "Ts"}, - /* 587 */ {0x040C, "KJ"}, - /* 588 */ {0x040E, "V%"}, - /* 589 */ {0x040F, "DZ"}, - /* 590 */ {0x0410, "A="}, - /* 591 */ {0x0411, "B="}, - /* 592 */ {0x0412, "V="}, - /* 593 */ {0x0413, "G="}, - /* 594 */ {0x0414, "D="}, - /* 595 */ {0x0415, "E="}, - /* 596 */ {0x0416, "Z%"}, - /* 597 */ {0x0417, "Z="}, - /* 598 */ {0x0418, "I="}, - /* 599 */ {0x0419, "J="}, - /* 600 */ {0x041A, "K="}, - /* 601 */ {0x041B, "L="}, - /* 602 */ {0x041C, "M="}, - /* 603 */ {0x041D, "N="}, - /* 604 */ {0x041E, "O="}, - /* 605 */ {0x041F, "P="}, - /* 606 */ {0x0420, "R="}, - /* 607 */ {0x0421, "S="}, - /* 608 */ {0x0422, "T="}, - /* 609 */ {0x0423, "U="}, - /* 610 */ {0x0424, "F="}, - /* 611 */ {0x0425, "H="}, - /* 612 */ {0x0426, "C="}, - /* 613 */ {0x0427, "C%"}, - /* 614 */ {0x0428, "S%"}, - /* 615 */ {0x0429, "Sc"}, - /* 616 */ {0x042A, "=\""}, - /* 617 */ {0x042B, "Y="}, - /* 618 */ {0x042C, "%\""}, - /* 619 */ {0x042D, "JE"}, - /* 620 */ {0x042E, "JU"}, - /* 621 */ {0x042F, "JA"}, - /* 622 */ {0x0430, "a="}, - /* 623 */ {0x0431, "b="}, - /* 624 */ {0x0432, "v="}, - /* 625 */ {0x0433, "g="}, - /* 626 */ {0x0434, "d="}, - /* 627 */ {0x0435, "e="}, - /* 628 */ {0x0436, "z%"}, - /* 629 */ {0x0437, "z="}, - /* 630 */ {0x0438, "i="}, - /* 631 */ {0x0439, "j="}, - /* 632 */ {0x043A, "k="}, - /* 633 */ {0x043B, "l="}, - /* 634 */ {0x043C, "m="}, - /* 635 */ {0x043D, "n="}, - /* 636 */ {0x043E, "o="}, - /* 637 */ {0x043F, "p="}, - /* 638 */ {0x0440, "r="}, - /* 639 */ {0x0441, "s="}, - /* 640 */ {0x0442, "t="}, - /* 641 */ {0x0443, "u="}, - /* 642 */ {0x0444, "f="}, - /* 643 */ {0x0445, "h="}, - /* 644 */ {0x0446, "c="}, - /* 645 */ {0x0447, "c%"}, - /* 646 */ {0x0448, "s%"}, - /* 647 */ {0x0449, "sc"}, - /* 648 */ {0x044A, "='"}, - /* 649 */ {0x044B, "y="}, - /* 650 */ {0x044C, "%'"}, - /* 651 */ {0x044D, "je"}, - /* 652 */ {0x044E, "ju"}, - /* 653 */ {0x044F, "ja"}, - /* 654 */ {0x0451, "io"}, - /* 655 */ {0x0452, "d%"}, - /* 656 */ {0x0453, "g%"}, - /* 657 */ {0x0454, "ie"}, - /* 658 */ {0x0455, "ds"}, - /* 659 */ {0x0456, "ii"}, - /* 660 */ {0x0457, "yi"}, - /* 661 */ {0x0458, "j%"}, - /* 662 */ {0x0459, "lj"}, - /* 663 */ {0x045A, "nj"}, - /* 664 */ {0x045B, "ts"}, - /* 665 */ {0x045C, "kj"}, - /* 666 */ {0x045E, "v%"}, - /* 667 */ {0x045F, "dz"}, - /* 668 */ {0x0462, "Y3"}, - /* 669 */ {0x0463, "y3"}, - /* 670 */ {0x046A, "O3"}, - /* 671 */ {0x046B, "o3"}, - /* 672 */ {0x0472, "F3"}, - /* 673 */ {0x0473, "f3"}, - /* 674 */ {0x0474, "V3"}, - /* 675 */ {0x0475, "v3"}, - /* 676 */ {0x0480, "C3"}, - /* 677 */ {0x0481, "c3"}, - /* 678 */ {0x0490, "G3"}, - /* 679 */ {0x0491, "g3"}, - /* 680 */ {0x05D0, "A+"}, - /* 681 */ {0x05D1, "B+"}, - /* 682 */ {0x05D2, "G+"}, - /* 683 */ {0x05D3, "D+"}, - /* 684 */ {0x05D4, "H+"}, - /* 685 */ {0x05D5, "W+"}, - /* 686 */ {0x05D6, "Z+"}, - /* 687 */ {0x05D7, "X+"}, - /* 688 */ {0x05D8, "Tj"}, - /* 689 */ {0x05D9, "J+"}, - /* 690 */ {0x05DA, "K%"}, - /* 691 */ {0x05DB, "K+"}, - /* 692 */ {0x05DC, "L+"}, - /* 693 */ {0x05DD, "M%"}, - /* 694 */ {0x05DE, "M+"}, - /* 695 */ {0x05DF, "N%"}, - /* 696 */ {0x05E0, "N+"}, - /* 697 */ {0x05E1, "S+"}, - /* 698 */ {0x05E2, "E+"}, - /* 699 */ {0x05E3, "P%"}, - /* 700 */ {0x05E4, "P+"}, - /* 701 */ {0x05E5, "Zj"}, - /* 702 */ {0x05E6, "ZJ"}, - /* 703 */ {0x05E7, "Q+"}, - /* 704 */ {0x05E8, "R+"}, - /* 705 */ {0x05E9, "Sh"}, - /* 706 */ {0x05EA, "T+"}, - /* 707 */ {0x060C, ",+"}, - /* 708 */ {0x061B, ";+"}, - /* 709 */ {0x061F, "?+"}, - /* 710 */ {0x0621, "H'"}, - /* 711 */ {0x0622, "aM"}, - /* 712 */ {0x0623, "aH"}, - /* 713 */ {0x0624, "wH"}, - /* 714 */ {0x0625, "ah"}, - /* 715 */ {0x0626, "yH"}, - /* 716 */ {0x0627, "a+"}, - /* 717 */ {0x0628, "b+"}, - /* 718 */ {0x0629, "tm"}, - /* 719 */ {0x062A, "t+"}, - /* 720 */ {0x062B, "tk"}, - /* 721 */ {0x062C, "g+"}, - /* 722 */ {0x062D, "hk"}, - /* 723 */ {0x062E, "x+"}, - /* 724 */ {0x062F, "d+"}, - /* 725 */ {0x0630, "dk"}, - /* 726 */ {0x0631, "r+"}, - /* 727 */ {0x0632, "z+"}, - /* 728 */ {0x0633, "s+"}, - /* 729 */ {0x0634, "sn"}, - /* 730 */ {0x0635, "c+"}, - /* 731 */ {0x0636, "dd"}, - /* 732 */ {0x0637, "tj"}, - /* 733 */ {0x0638, "zH"}, - /* 734 */ {0x0639, "e+"}, - /* 735 */ {0x063A, "i+"}, - /* 736 */ {0x0640, "++"}, - /* 737 */ {0x0641, "f+"}, - /* 738 */ {0x0642, "q+"}, - /* 739 */ {0x0643, "k+"}, - /* 740 */ {0x0644, "l+"}, - /* 741 */ {0x0645, "m+"}, - /* 742 */ {0x0646, "n+"}, - /* 743 */ {0x0647, "h+"}, - /* 744 */ {0x0648, "w+"}, - /* 745 */ {0x0649, "j+"}, - /* 746 */ {0x064A, "y+"}, - /* 747 */ {0x064B, ":+"}, - /* 748 */ {0x064C, "\"+"}, - /* 749 */ {0x064D, "=+"}, - /* 750 */ {0x064E, "/+"}, - /* 751 */ {0x064F, "'+"}, - /* 752 */ {0x0650, "1+"}, - /* 753 */ {0x0651, "3+"}, - /* 754 */ {0x0652, "0+"}, - /* 755 */ {0x0660, "0a"}, - /* 756 */ {0x0661, "1a"}, - /* 757 */ {0x0662, "2a"}, - /* 758 */ {0x0663, "3a"}, - /* 759 */ {0x0664, "4a"}, - /* 760 */ {0x0665, "5a"}, - /* 761 */ {0x0666, "6a"}, - /* 762 */ {0x0667, "7a"}, - /* 763 */ {0x0668, "8a"}, - /* 764 */ {0x0669, "9a"}, - /* 765 */ {0x0670, "aS"}, - /* 766 */ {0x067E, "p+"}, - /* 767 */ {0x0681, "hH"}, - /* 768 */ {0x0686, "tc"}, - /* 769 */ {0x0698, "zj"}, - /* 770 */ {0x06A4, "v+"}, - /* 771 */ {0x06AF, "gf"}, - /* 772 */ {0x1E00, "A-0"}, - /* 773 */ {0x1E01, "a-0"}, - /* 774 */ {0x1E02, "B."}, - /* 775 */ {0x1E03, "b."}, - /* 776 */ {0x1E04, "B-."}, - /* 777 */ {0x1E05, "b-."}, - /* 778 */ {0x1E06, "B_"}, - /* 779 */ {0x1E07, "b_"}, - /* 780 */ {0x1E08, "C,'"}, - /* 781 */ {0x1E09, "c,'"}, - /* 782 */ {0x1E0A, "D."}, - /* 783 */ {0x1E0B, "d."}, - /* 784 */ {0x1E0C, "D-."}, - /* 785 */ {0x1E0D, "d-."}, - /* 786 */ {0x1E0E, "D_"}, - /* 787 */ {0x1E0F, "d_"}, - /* 788 */ {0x1E10, "D,"}, - /* 789 */ {0x1E11, "d,"}, - /* 790 */ {0x1E12, "D->"}, - /* 791 */ {0x1E13, "d->"}, - /* 792 */ {0x1E14, "E-!"}, - /* 793 */ {0x1E15, "e-!"}, - /* 794 */ {0x1E16, "E-'"}, - /* 795 */ {0x1E17, "e-'"}, - /* 796 */ {0x1E18, "E->"}, - /* 797 */ {0x1E19, "e->"}, - /* 798 */ {0x1E1A, "E-?"}, - /* 799 */ {0x1E1B, "e-?"}, - /* 800 */ {0x1E1C, "E,("}, - /* 801 */ {0x1E1D, "e,("}, - /* 802 */ {0x1E1E, "F."}, - /* 803 */ {0x1E1F, "f."}, - /* 804 */ {0x1E20, "G-"}, - /* 805 */ {0x1E21, "g-"}, - /* 806 */ {0x1E22, "H."}, - /* 807 */ {0x1E23, "h."}, - /* 808 */ {0x1E24, "H-."}, - /* 809 */ {0x1E25, "h-."}, - /* 810 */ {0x1E26, "H:"}, - /* 811 */ {0x1E27, "h:"}, - /* 812 */ {0x1E28, "H,"}, - /* 813 */ {0x1E29, "h,"}, - /* 814 */ {0x1E2A, "H-("}, - /* 815 */ {0x1E2B, "h-("}, - /* 816 */ {0x1E2C, "I-?"}, - /* 817 */ {0x1E2D, "i-?"}, - /* 818 */ {0x1E2E, "I:'"}, - /* 819 */ {0x1E2F, "i:'"}, - /* 820 */ {0x1E30, "K'"}, - /* 821 */ {0x1E31, "k'"}, - /* 822 */ {0x1E32, "K-."}, - /* 823 */ {0x1E33, "k-."}, - /* 824 */ {0x1E34, "K_"}, - /* 825 */ {0x1E35, "k_"}, - /* 826 */ {0x1E36, "L-."}, - /* 827 */ {0x1E37, "l-."}, - /* 828 */ {0x1E3A, "L_"}, - /* 829 */ {0x1E3B, "l_"}, - /* 830 */ {0x1E3C, "L->"}, - /* 831 */ {0x1E3D, "l->"}, - /* 832 */ {0x1E3E, "M'"}, - /* 833 */ {0x1E3F, "m'"}, - /* 834 */ {0x1E40, "M."}, - /* 835 */ {0x1E41, "m."}, - /* 836 */ {0x1E42, "M-."}, - /* 837 */ {0x1E43, "m-."}, - /* 838 */ {0x1E44, "N."}, - /* 839 */ {0x1E45, "n."}, - /* 840 */ {0x1E46, "N-."}, - /* 841 */ {0x1E47, "n-."}, - /* 842 */ {0x1E48, "N_"}, - /* 843 */ {0x1E49, "n_"}, - /* 844 */ {0x1E4A, "N->"}, - /* 845 */ {0x1E4B, "n->"}, - /* 846 */ {0x1E4C, "O?'"}, - /* 847 */ {0x1E4D, "o?'"}, - /* 848 */ {0x1E4E, "O?:"}, - /* 849 */ {0x1E4F, "o?:"}, - /* 850 */ {0x1E50, "O-!"}, - /* 851 */ {0x1E51, "o-!"}, - /* 852 */ {0x1E52, "O-'"}, - /* 853 */ {0x1E53, "o-'"}, - /* 854 */ {0x1E54, "P'"}, - /* 855 */ {0x1E55, "p'"}, - /* 856 */ {0x1E56, "P."}, - /* 857 */ {0x1E57, "p."}, - /* 858 */ {0x1E58, "R."}, - /* 859 */ {0x1E59, "r."}, - /* 860 */ {0x1E5A, "R-."}, - /* 861 */ {0x1E5B, "r-."}, - /* 862 */ {0x1E5E, "R_"}, - /* 863 */ {0x1E5F, "r_"}, - /* 864 */ {0x1E60, "S."}, - /* 865 */ {0x1E61, "s."}, - /* 866 */ {0x1E62, "S-."}, - /* 867 */ {0x1E63, "s-."}, - /* 868 */ {0x1E64, "S'."}, - /* 869 */ {0x1E65, "s'."}, - /* 870 */ {0x1E66, "S<."}, - /* 871 */ {0x1E67, "s<."}, - /* 872 */ {0x1E6A, "T."}, - /* 873 */ {0x1E6B, "t."}, - /* 874 */ {0x1E6C, "T-."}, - /* 875 */ {0x1E6D, "t-."}, - /* 876 */ {0x1E6E, "T_"}, - /* 877 */ {0x1E6F, "t_"}, - /* 878 */ {0x1E70, "T->"}, - /* 879 */ {0x1E71, "t->"}, - /* 880 */ {0x1E74, "U-?"}, - /* 881 */ {0x1E75, "u-?"}, - /* 882 */ {0x1E76, "U->"}, - /* 883 */ {0x1E77, "u->"}, - /* 884 */ {0x1E78, "U?'"}, - /* 885 */ {0x1E79, "u?'"}, - /* 886 */ {0x1E7A, "U-:"}, - /* 887 */ {0x1E7B, "u-:"}, - /* 888 */ {0x1E7C, "V?"}, - /* 889 */ {0x1E7D, "v?"}, - /* 890 */ {0x1E7E, "V-."}, - /* 891 */ {0x1E7F, "v-."}, - /* 892 */ {0x1E80, "W!"}, - /* 893 */ {0x1E81, "w!"}, - /* 894 */ {0x1E82, "W'"}, - /* 895 */ {0x1E83, "w'"}, - /* 896 */ {0x1E84, "W:"}, - /* 897 */ {0x1E85, "w:"}, - /* 898 */ {0x1E86, "W."}, - /* 899 */ {0x1E87, "w."}, - /* 900 */ {0x1E88, "W-."}, - /* 901 */ {0x1E89, "w-."}, - /* 902 */ {0x1E8A, "X."}, - /* 903 */ {0x1E8B, "x."}, - /* 904 */ {0x1E8C, "X:"}, - /* 905 */ {0x1E8D, "x:"}, - /* 906 */ {0x1E8E, "Y."}, - /* 907 */ {0x1E8F, "y."}, - /* 908 */ {0x1E90, "Z>"}, - /* 909 */ {0x1E91, "z>"}, - /* 910 */ {0x1E92, "Z-."}, - /* 911 */ {0x1E93, "z-."}, - /* 912 */ {0x1E94, "Z_"}, - /* 913 */ {0x1E95, "z_"}, - /* 914 */ {0x1EA0, "A-."}, - /* 915 */ {0x1EA1, "a-."}, - /* 916 */ {0x1EA2, "A2"}, - /* 917 */ {0x1EA3, "a2"}, - /* 918 */ {0x1EA4, "A>'"}, - /* 919 */ {0x1EA5, "a>'"}, - /* 920 */ {0x1EA6, "A>!"}, - /* 921 */ {0x1EA7, "a>!"}, - /* 922 */ {0x1EA8, "A>2"}, - /* 923 */ {0x1EA9, "a>2"}, - /* 924 */ {0x1EAA, "A>?"}, - /* 925 */ {0x1EAB, "a>?"}, - /* 926 */ {0x1EAE, "A('"}, - /* 927 */ {0x1EAF, "a('"}, - /* 928 */ {0x1EB0, "A(!"}, - /* 929 */ {0x1EB1, "a(!"}, - /* 930 */ {0x1EB2, "A(2"}, - /* 931 */ {0x1EB3, "a(2"}, - /* 932 */ {0x1EB4, "A(?"}, - /* 933 */ {0x1EB5, "a(?"}, - /* 934 */ {0x1EB8, "E-."}, - /* 935 */ {0x1EB9, "e-."}, - /* 936 */ {0x1EBA, "E2"}, - /* 937 */ {0x1EBB, "e2"}, - /* 938 */ {0x1EBC, "E?"}, - /* 939 */ {0x1EBD, "e?"}, - /* 940 */ {0x1EBE, "E>'"}, - /* 941 */ {0x1EBF, "e>'"}, - /* 942 */ {0x1EC0, "E>!"}, - /* 943 */ {0x1EC1, "e>!"}, - /* 944 */ {0x1EC2, "E>2"}, - /* 945 */ {0x1EC3, "e>2"}, - /* 946 */ {0x1EC4, "E>?"}, - /* 947 */ {0x1EC5, "e>?"}, - /* 948 */ {0x1EC8, "I2"}, - /* 949 */ {0x1EC9, "i2"}, - /* 950 */ {0x1ECA, "I-."}, - /* 951 */ {0x1ECB, "i-."}, - /* 952 */ {0x1ECC, "O-."}, - /* 953 */ {0x1ECD, "o-."}, - /* 954 */ {0x1ECE, "O2"}, - /* 955 */ {0x1ECF, "o2"}, - /* 956 */ {0x1ED0, "O>'"}, - /* 957 */ {0x1ED1, "o>'"}, - /* 958 */ {0x1ED2, "O>!"}, - /* 959 */ {0x1ED3, "o>!"}, - /* 960 */ {0x1ED4, "O>2"}, - /* 961 */ {0x1ED5, "o>2"}, - /* 962 */ {0x1ED6, "O>?"}, - /* 963 */ {0x1ED7, "o>?"}, - /* 964 */ {0x1EDA, "O9'"}, - /* 965 */ {0x1EDB, "o9'"}, - /* 966 */ {0x1EDC, "O9!"}, - /* 967 */ {0x1EDD, "o9!"}, - /* 968 */ {0x1EDE, "O92"}, - /* 969 */ {0x1EDF, "o92"}, - /* 970 */ {0x1EE0, "O9?"}, - /* 971 */ {0x1EE1, "o9?"}, - /* 972 */ {0x1EE4, "U-."}, - /* 973 */ {0x1EE5, "u-."}, - /* 974 */ {0x1EE6, "U2"}, - /* 975 */ {0x1EE7, "u2"}, - /* 976 */ {0x1EE8, "U9'"}, - /* 977 */ {0x1EE9, "u9'"}, - /* 978 */ {0x1EEA, "U9!"}, - /* 979 */ {0x1EEB, "u9!"}, - /* 980 */ {0x1EEC, "U92"}, - /* 981 */ {0x1EED, "u92"}, - /* 982 */ {0x1EEE, "U9?"}, - /* 983 */ {0x1EEF, "u9?"}, - /* 984 */ {0x1EF2, "Y!"}, - /* 985 */ {0x1EF3, "y!"}, - /* 986 */ {0x1EF4, "Y-."}, - /* 987 */ {0x1EF5, "y-."}, - /* 988 */ {0x1EF6, "Y2"}, - /* 989 */ {0x1EF7, "y2"}, - /* 990 */ {0x1EF8, "Y?"}, - /* 991 */ {0x1EF9, "y?"}, - /* 992 */ {0x1F00, "a*,"}, - /* 993 */ {0x1F01, "a*;"}, - /* 994 */ {0x1F08, "A*,"}, - /* 995 */ {0x1F09, "A*;"}, - /* 996 */ {0x1F10, "e*,"}, - /* 997 */ {0x1F11, "e*;"}, - /* 998 */ {0x1F18, "E*,"}, - /* 999 */ {0x1F19, "E*;"}, - /* 1000 */ {0x1F20, "y*,"}, - /* 1001 */ {0x1F21, "y*;"}, - /* 1002 */ {0x1F28, "Y*,"}, - /* 1003 */ {0x1F29, "Y*;"}, - /* 1004 */ {0x1F30, "i*,"}, - /* 1005 */ {0x1F31, "i*;"}, - /* 1006 */ {0x1F38, "I*,"}, - /* 1007 */ {0x1F39, "I*;"}, - /* 1008 */ {0x1F40, "o*,"}, - /* 1009 */ {0x1F41, "o*;"}, - /* 1010 */ {0x1F48, "O*,"}, - /* 1011 */ {0x1F49, "O*;"}, - /* 1012 */ {0x1F50, "u*,"}, - /* 1013 */ {0x1F51, "u*;"}, - /* 1014 */ {0x1F59, "U*;"}, - /* 1015 */ {0x1F60, "w*,"}, - /* 1016 */ {0x1F61, "w*;"}, - /* 1017 */ {0x1F68, "W*,"}, - /* 1018 */ {0x1F69, "W*;"}, - /* 1019 */ {0x1F70, "a*!"}, - /* 1020 */ {0x1F71, "a*'"}, - /* 1021 */ {0x1F72, "e*!"}, - /* 1022 */ {0x1F73, "e*'"}, - /* 1023 */ {0x1F74, "y*!"}, - /* 1024 */ {0x1F75, "y*'"}, - /* 1025 */ {0x1F76, "i*!"}, - /* 1026 */ {0x1F77, "i*'"}, - /* 1027 */ {0x1F78, "o*!"}, - /* 1028 */ {0x1F79, "o*'"}, - /* 1029 */ {0x1F7A, "u*!"}, - /* 1030 */ {0x1F7B, "u*'"}, - /* 1031 */ {0x1F7C, "w*!"}, - /* 1032 */ {0x1F7D, "w*'"}, - /* 1033 */ {0x1FB0, "a*("}, - /* 1034 */ {0x1FB1, "a*-"}, - /* 1035 */ {0x1FB3, "a*j"}, - /* 1036 */ {0x1FB6, "a*?"}, - /* 1037 */ {0x1FB8, "A*("}, - /* 1038 */ {0x1FB9, "A*-"}, - /* 1039 */ {0x1FBA, "A*!"}, - /* 1040 */ {0x1FBB, "A*'"}, - /* 1041 */ {0x1FBC, "A*J"}, - /* 1042 */ {0x1FBD, ")*"}, - /* 1043 */ {0x1FBE, "J3"}, - /* 1044 */ {0x1FBF, ",,"}, - /* 1045 */ {0x1FC0, "?*"}, - /* 1046 */ {0x1FC1, "?:"}, - /* 1047 */ {0x1FC3, "y*j"}, - /* 1048 */ {0x1FC6, "y*?"}, - /* 1049 */ {0x1FC9, "E*'"}, - /* 1050 */ {0x1FCA, "Y*!"}, - /* 1051 */ {0x1FCB, "Y*'"}, - /* 1052 */ {0x1FCC, "Y*J"}, - /* 1053 */ {0x1FCD, ",!"}, - /* 1054 */ {0x1FCE, ",'"}, - /* 1055 */ {0x1FCF, "?,"}, - /* 1056 */ {0x1FD0, "i*("}, - /* 1057 */ {0x1FD1, "i*-"}, - /* 1058 */ {0x1FD6, "i*?"}, - /* 1059 */ {0x1FD8, "I*("}, - /* 1060 */ {0x1FD9, "I*-"}, - /* 1061 */ {0x1FDA, "I*!"}, - /* 1062 */ {0x1FDB, "I*'"}, - /* 1063 */ {0x1FDD, ";!"}, - /* 1064 */ {0x1FDE, ";'"}, - /* 1065 */ {0x1FDF, "?;"}, - /* 1066 */ {0x1FE0, "u*("}, - /* 1067 */ {0x1FE1, "u*-"}, - /* 1068 */ {0x1FE4, "r*,"}, - /* 1069 */ {0x1FE5, "r*;"}, - /* 1070 */ {0x1FE6, "u*?"}, - /* 1071 */ {0x1FE8, "U*("}, - /* 1072 */ {0x1FE9, "U*-"}, - /* 1073 */ {0x1FEA, "U*!"}, - /* 1074 */ {0x1FEB, "U*'"}, - /* 1075 */ {0x1FEC, "R*;"}, - /* 1076 */ {0x1FED, "!:"}, - /* 1077 */ {0x1FEE, ":'"}, - /* 1078 */ {0x1FEF, "!*"}, - /* 1079 */ {0x1FF3, "w*j"}, - /* 1080 */ {0x1FF6, "w*?"}, - /* 1081 */ {0x1FF8, "O*!"}, - /* 1082 */ {0x1FF9, "O*'"}, - /* 1083 */ {0x1FFA, "W*!"}, - /* 1084 */ {0x1FFB, "W*'"}, - /* 1085 */ {0x1FFC, "W*J"}, - /* 1086 */ {0x1FFD, "/*"}, - /* 1087 */ {0x1FFE, ";;"}, - /* 1088 */ {0x2002, "1N"}, - /* 1089 */ {0x2003, "1M"}, - /* 1090 */ {0x2004, "3M"}, - /* 1091 */ {0x2005, "4M"}, - /* 1092 */ {0x2006, "6M"}, - /* 1093 */ {0x2009, "1T"}, - /* 1094 */ {0x200A, "1H"}, - /* 1095 */ {0x200E, "LR"}, - /* 1096 */ {0x200F, "RL"}, - /* 1097 */ {0x2010, "-1"}, - /* 1098 */ {0x2013, "-N"}, - /* 1099 */ {0x2014, "-M"}, - /* 1100 */ {0x2015, "-3"}, - /* 1101 */ {0x2016, "!2"}, - /* 1102 */ {0x2017, "=2"}, - /* 1103 */ {0x2018, "'6"}, - /* 1104 */ {0x2019, "'9"}, - /* 1105 */ {0x201A, ".9"}, - /* 1106 */ {0x201B, "9'"}, - /* 1107 */ {0x201C, "\"6"}, - /* 1108 */ {0x201D, "\"9"}, - /* 1109 */ {0x201E, ":9"}, - /* 1110 */ {0x201F, "9\""}, - /* 1111 */ {0x2020, "/-"}, - /* 1112 */ {0x2021, "/="}, - /* 1113 */ {0x2022, "sb"}, - /* 1114 */ {0x2023, "3b"}, - /* 1115 */ {0x2025, ".."}, - /* 1116 */ {0x2026, ".3"}, - /* 1117 */ {0x2027, ".-"}, - /* 1118 */ {0x2030, "%0"}, - /* 1119 */ {0x2032, "1'"}, - /* 1120 */ {0x2033, "2'"}, - /* 1121 */ {0x2034, "3'"}, - /* 1122 */ {0x2035, "1\""}, - /* 1123 */ {0x2036, "2\""}, - /* 1124 */ {0x2037, "3\""}, - /* 1125 */ {0x2038, "Ca"}, - /* 1126 */ {0x2039, "<1"}, - /* 1127 */ {0x203A, ">1"}, - /* 1128 */ {0x203B, ":X"}, - /* 1129 */ {0x203C, "!*2"}, - /* 1130 */ {0x203E, "'-"}, - /* 1131 */ {0x2043, "-b"}, - /* 1132 */ {0x2044, "/f"}, - /* 1133 */ {0x2070, "0S"}, - /* 1134 */ {0x2074, "4S"}, - /* 1135 */ {0x2075, "5S"}, - /* 1136 */ {0x2076, "6S"}, - /* 1137 */ {0x2077, "7S"}, - /* 1138 */ {0x2078, "8S"}, - /* 1139 */ {0x2079, "9S"}, - /* 1140 */ {0x207A, "+S"}, - /* 1141 */ {0x207B, "-S"}, - /* 1142 */ {0x207C, "=S"}, - /* 1143 */ {0x207D, "(S"}, - /* 1144 */ {0x207E, ")S"}, - /* 1145 */ {0x207F, "nS"}, - /* 1146 */ {0x2080, "0s"}, - /* 1147 */ {0x2081, "1s"}, - /* 1148 */ {0x2082, "2s"}, - /* 1149 */ {0x2083, "3s"}, - /* 1150 */ {0x2084, "4s"}, - /* 1151 */ {0x2085, "5s"}, - /* 1152 */ {0x2086, "6s"}, - /* 1153 */ {0x2087, "7s"}, - /* 1154 */ {0x2088, "8s"}, - /* 1155 */ {0x2089, "9s"}, - /* 1156 */ {0x208A, "+s"}, - /* 1157 */ {0x208B, "-s"}, - /* 1158 */ {0x208C, "=s"}, - /* 1159 */ {0x208D, "(s"}, - /* 1160 */ {0x208E, ")s"}, - /* 1161 */ {0x20A3, "Ff"}, - /* 1162 */ {0x20A4, "Li"}, - /* 1163 */ {0x20A7, "Pt"}, - /* 1164 */ {0x20A9, "W="}, - /* 1165 */ {0x20AA, "NSh"}, - /* 1166 */ {0x20AC, "Eu"}, - /* 1167 */ {0x20D1, "\"7"}, - /* 1168 */ {0x2103, "oC"}, - /* 1169 */ {0x2105, "co"}, - /* 1170 */ {0x2109, "oF"}, - /* 1171 */ {0x2116, "N0"}, - /* 1172 */ {0x2117, "PO"}, - /* 1173 */ {0x211E, "Rx"}, - /* 1174 */ {0x2120, "SM"}, - /* 1175 */ {0x2122, "TM"}, - /* 1176 */ {0x2126, "Om"}, - /* 1177 */ {0x212B, "AO"}, - /* 1178 */ {0x212E, "Est"}, - /* 1179 */ {0x2153, "13"}, - /* 1180 */ {0x2154, "23"}, - /* 1181 */ {0x2155, "15"}, - /* 1182 */ {0x2156, "25"}, - /* 1183 */ {0x2157, "35"}, - /* 1184 */ {0x2158, "45"}, - /* 1185 */ {0x2159, "16"}, - /* 1186 */ {0x215A, "56"}, - /* 1187 */ {0x215B, "18"}, - /* 1188 */ {0x215C, "38"}, - /* 1189 */ {0x215D, "58"}, - /* 1190 */ {0x215E, "78"}, - /* 1191 */ {0x2160, "1R"}, - /* 1192 */ {0x2161, "2R"}, - /* 1193 */ {0x2162, "3R"}, - /* 1194 */ {0x2163, "4R"}, - /* 1195 */ {0x2164, "5R"}, - /* 1196 */ {0x2165, "6R"}, - /* 1197 */ {0x2166, "7R"}, - /* 1198 */ {0x2167, "8R"}, - /* 1199 */ {0x2168, "9R"}, - /* 1200 */ {0x2169, "aR"}, - /* 1201 */ {0x216A, "bR"}, - /* 1202 */ {0x216B, "cR"}, - /* 1203 */ {0x216C, "50R"}, - /* 1204 */ {0x2170, "1r"}, - /* 1205 */ {0x2171, "2r"}, - /* 1206 */ {0x2172, "3r"}, - /* 1207 */ {0x2173, "4r"}, - /* 1208 */ {0x2174, "5r"}, - /* 1209 */ {0x2175, "6r"}, - /* 1210 */ {0x2176, "7r"}, - /* 1211 */ {0x2177, "8r"}, - /* 1212 */ {0x2178, "9r"}, - /* 1213 */ {0x2179, "ar"}, - /* 1214 */ {0x217A, "br"}, - /* 1215 */ {0x217B, "cr"}, - /* 1216 */ {0x217C, "50r"}, - /* 1217 */ {0x2190, "<-"}, - /* 1218 */ {0x2191, "-!"}, - /* 1219 */ {0x2192, "->"}, - /* 1220 */ {0x2193, "-v"}, - /* 1221 */ {0x2194, "<>"}, - /* 1222 */ {0x2195, "UD"}, - /* 1223 */ {0x2196, ""}, - /* 1225 */ {0x2198, "!!>"}, - /* 1226 */ {0x2199, "V"}, - /* 1229 */ {0x21D0, "<="}, - /* 1230 */ {0x21D2, "=>"}, - /* 1231 */ {0x21D4, "=="}, - /* 1232 */ {0x2200, "FA"}, - /* 1233 */ {0x2202, "dP"}, - /* 1234 */ {0x2203, "TE"}, - /* 1235 */ {0x2205, "/0"}, - /* 1236 */ {0x2206, "DE"}, - /* 1237 */ {0x2207, "NB"}, - /* 1238 */ {0x2208, "(-"}, - /* 1239 */ {0x220B, "-)"}, - /* 1240 */ {0x220E, "FP"}, - /* 1241 */ {0x220F, "*P"}, - /* 1242 */ {0x2211, "+Z"}, - /* 1243 */ {0x2212, "-2"}, - /* 1244 */ {0x2213, "-+"}, - /* 1245 */ {0x2214, ".+"}, - /* 1246 */ {0x2217, "*-"}, - /* 1247 */ {0x2218, "Ob"}, - /* 1248 */ {0x2219, "Sb"}, - /* 1249 */ {0x221A, "RT"}, - /* 1250 */ {0x221D, "0("}, - /* 1251 */ {0x221E, "00"}, - /* 1252 */ {0x221F, "-L"}, - /* 1253 */ {0x2220, "-V"}, - /* 1254 */ {0x2225, "PP"}, - /* 1255 */ {0x2227, "AN"}, - /* 1256 */ {0x2228, "OR"}, - /* 1257 */ {0x2229, "(U"}, - /* 1258 */ {0x222A, ")U"}, - /* 1259 */ {0x222B, "In"}, - /* 1260 */ {0x222C, "DI"}, - /* 1261 */ {0x222E, "Io"}, - /* 1262 */ {0x2234, ".:"}, - /* 1263 */ {0x2235, ":."}, - /* 1264 */ {0x2236, ":R"}, - /* 1265 */ {0x2237, "::"}, - /* 1266 */ {0x223C, "?1"}, - /* 1267 */ {0x223E, "CG"}, - /* 1268 */ {0x2243, "?-"}, - /* 1269 */ {0x2245, "?="}, - /* 1270 */ {0x2248, "?2"}, - /* 1271 */ {0x224C, "=?"}, - /* 1272 */ {0x2253, "HI"}, - /* 1273 */ {0x2260, "!="}, - /* 1274 */ {0x2261, "=3"}, - /* 1275 */ {0x2264, "=<"}, - /* 1276 */ {0x2265, ">="}, - /* 1277 */ {0x226A, "<*"}, - /* 1278 */ {0x226B, "*>"}, - /* 1279 */ {0x226E, "!<"}, - /* 1280 */ {0x226F, "!>"}, - /* 1281 */ {0x2282, "(C"}, - /* 1282 */ {0x2283, ")C"}, - /* 1283 */ {0x2286, "(_"}, - /* 1284 */ {0x2287, ")_"}, - /* 1285 */ {0x2299, "0."}, - /* 1286 */ {0x229A, "02"}, - /* 1287 */ {0x22A5, "-T"}, - /* 1288 */ {0x22C5, ".P"}, - /* 1289 */ {0x22EE, ":3"}, - /* 1290 */ {0x2302, "Eh"}, - /* 1291 */ {0x2308, "<7"}, - /* 1292 */ {0x2309, ">7"}, - /* 1293 */ {0x230A, "7<"}, - /* 1294 */ {0x230B, "7>"}, - /* 1295 */ {0x2310, "NI"}, - /* 1296 */ {0x2312, "(A"}, - /* 1297 */ {0x2315, "TR"}, - /* 1298 */ {0x2318, "88"}, - /* 1299 */ {0x2320, "Iu"}, - /* 1300 */ {0x2321, "Il"}, - /* 1301 */ {0x2329, ""}, - /* 1303 */ {0x2423, "Vs"}, - /* 1304 */ {0x2440, "1h"}, - /* 1305 */ {0x2441, "3h"}, - /* 1306 */ {0x2442, "2h"}, - /* 1307 */ {0x2443, "4h"}, - /* 1308 */ {0x2446, "1j"}, - /* 1309 */ {0x2447, "2j"}, - /* 1310 */ {0x2448, "3j"}, - /* 1311 */ {0x2449, "4j"}, - /* 1312 */ {0x2460, "1-o"}, - /* 1313 */ {0x2461, "2-o"}, - /* 1314 */ {0x2462, "3-o"}, - /* 1315 */ {0x2463, "4-o"}, - /* 1316 */ {0x2464, "5-o"}, - /* 1317 */ {0x2465, "6-o"}, - /* 1318 */ {0x2466, "7-o"}, - /* 1319 */ {0x2467, "8-o"}, - /* 1320 */ {0x2468, "9-o"}, - /* 1321 */ {0x2474, "(1)"}, - /* 1322 */ {0x2475, "(2)"}, - /* 1323 */ {0x2476, "(3)"}, - /* 1324 */ {0x2477, "(4)"}, - /* 1325 */ {0x2478, "(5)"}, - /* 1326 */ {0x2479, "(6)"}, - /* 1327 */ {0x247A, "(7)"}, - /* 1328 */ {0x247B, "(8)"}, - /* 1329 */ {0x247C, "(9)"}, - /* 1330 */ {0x2488, "1."}, - /* 1331 */ {0x2489, "2."}, - /* 1332 */ {0x248A, "3."}, - /* 1333 */ {0x248B, "4."}, - /* 1334 */ {0x248C, "5."}, - /* 1335 */ {0x248D, "6."}, - /* 1336 */ {0x248E, "7."}, - /* 1337 */ {0x248F, "8."}, - /* 1338 */ {0x2490, "9."}, - /* 1339 */ {0x2491, "10."}, - /* 1340 */ {0x2492, "11."}, - /* 1341 */ {0x2493, "12."}, - /* 1342 */ {0x2494, "13."}, - /* 1343 */ {0x2495, "14."}, - /* 1344 */ {0x2496, "15."}, - /* 1345 */ {0x2497, "16."}, - /* 1346 */ {0x2498, "17."}, - /* 1347 */ {0x2499, "18."}, - /* 1348 */ {0x249A, "19."}, - /* 1349 */ {0x249B, "20."}, - /* 1350 */ {0x249C, "(a)"}, - /* 1351 */ {0x249D, "(b)"}, - /* 1352 */ {0x249E, "(c)"}, - /* 1353 */ {0x249F, "(d)"}, - /* 1354 */ {0x24A0, "(e)"}, - /* 1355 */ {0x24A1, "(f)"}, - /* 1356 */ {0x24A2, "(g)"}, - /* 1357 */ {0x24A3, "(h)"}, - /* 1358 */ {0x24A4, "(i)"}, - /* 1359 */ {0x24A5, "(j)"}, - /* 1360 */ {0x24A6, "(k)"}, - /* 1361 */ {0x24A7, "(l)"}, - /* 1362 */ {0x24A8, "(m)"}, - /* 1363 */ {0x24A9, "(n)"}, - /* 1364 */ {0x24AA, "(o)"}, - /* 1365 */ {0x24AB, "(p)"}, - /* 1366 */ {0x24AC, "(q)"}, - /* 1367 */ {0x24AD, "(r)"}, - /* 1368 */ {0x24AE, "(s)"}, - /* 1369 */ {0x24AF, "(t)"}, - /* 1370 */ {0x24B0, "(u)"}, - /* 1371 */ {0x24B1, "(v)"}, - /* 1372 */ {0x24B2, "(w)"}, - /* 1373 */ {0x24B3, "(x)"}, - /* 1374 */ {0x24B4, "(y)"}, - /* 1375 */ {0x24B5, "(z)"}, - /* 1376 */ {0x24B6, "A-o"}, - /* 1377 */ {0x24B7, "B-o"}, - /* 1378 */ {0x24B8, "C-o"}, - /* 1379 */ {0x24B9, "D-o"}, - /* 1380 */ {0x24BA, "E-o"}, - /* 1381 */ {0x24BB, "F-o"}, - /* 1382 */ {0x24BC, "G-o"}, - /* 1383 */ {0x24BD, "H-o"}, - /* 1384 */ {0x24BE, "I-o"}, - /* 1385 */ {0x24BF, "J-o"}, - /* 1386 */ {0x24C0, "K-o"}, - /* 1387 */ {0x24C1, "L-o"}, - /* 1388 */ {0x24C2, "M-o"}, - /* 1389 */ {0x24C3, "N-o"}, - /* 1390 */ {0x24C4, "O-o"}, - /* 1391 */ {0x24C5, "P-o"}, - /* 1392 */ {0x24C6, "Q-o"}, - /* 1393 */ {0x24C7, "R-o"}, - /* 1394 */ {0x24C8, "S-o"}, - /* 1395 */ {0x24C9, "T-o"}, - /* 1396 */ {0x24CA, "U-o"}, - /* 1397 */ {0x24CB, "V-o"}, - /* 1398 */ {0x24CC, "W-o"}, - /* 1399 */ {0x24CD, "X-o"}, - /* 1400 */ {0x24CE, "Y-o"}, - /* 1401 */ {0x24CF, "Z-o"}, - /* 1402 */ {0x24D0, "a-o"}, - /* 1403 */ {0x24D1, "b-o"}, - /* 1404 */ {0x24D2, "c-o"}, - /* 1405 */ {0x24D3, "d-o"}, - /* 1406 */ {0x24D4, "e-o"}, - /* 1407 */ {0x24D5, "f-o"}, - /* 1408 */ {0x24D6, "g-o"}, - /* 1409 */ {0x24D7, "h-o"}, - /* 1410 */ {0x24D8, "i-o"}, - /* 1411 */ {0x24D9, "j-o"}, - /* 1412 */ {0x24DA, "k-o"}, - /* 1413 */ {0x24DB, "l-o"}, - /* 1414 */ {0x24DC, "m-o"}, - /* 1415 */ {0x24DD, "n-o"}, - /* 1416 */ {0x24DE, "o-o"}, - /* 1417 */ {0x24DF, "p-o"}, - /* 1418 */ {0x24E0, "q-o"}, - /* 1419 */ {0x24E1, "r-o"}, - /* 1420 */ {0x24E2, "s-o"}, - /* 1421 */ {0x24E3, "t-o"}, - /* 1422 */ {0x24E4, "u-o"}, - /* 1423 */ {0x24E5, "v-o"}, - /* 1424 */ {0x24E6, "w-o"}, - /* 1425 */ {0x24E7, "x-o"}, - /* 1426 */ {0x24E8, "y-o"}, - /* 1427 */ {0x24E9, "z-o"}, - /* 1428 */ {0x24EA, "0-o"}, - /* 1429 */ {0x2500, "hh"}, - /* 1430 */ {0x2501, "HH-"}, - /* 1431 */ {0x2502, "vv"}, - /* 1432 */ {0x2503, "VV-"}, - /* 1433 */ {0x2504, "3-"}, - /* 1434 */ {0x2505, "3_"}, - /* 1435 */ {0x2506, "3!"}, - /* 1436 */ {0x2507, "3/"}, - /* 1437 */ {0x2508, "4-"}, - /* 1438 */ {0x2509, "4_"}, - /* 1439 */ {0x250A, "4!"}, - /* 1440 */ {0x250B, "4/"}, - /* 1441 */ {0x250C, "dr"}, - /* 1442 */ {0x250D, "dR-"}, - /* 1443 */ {0x250E, "Dr-"}, - /* 1444 */ {0x250F, "DR-"}, - /* 1445 */ {0x2510, "dl"}, - /* 1446 */ {0x2511, "dL-"}, - /* 1447 */ {0x2512, "Dl-"}, - /* 1448 */ {0x2513, "LD-"}, - /* 1449 */ {0x2514, "ur"}, - /* 1450 */ {0x2515, "uR-"}, - /* 1451 */ {0x2516, "Ur-"}, - /* 1452 */ {0x2517, "UR-"}, - /* 1453 */ {0x2518, "ul"}, - /* 1454 */ {0x2519, "uL-"}, - /* 1455 */ {0x251A, "Ul-"}, - /* 1456 */ {0x251B, "UL-"}, - /* 1457 */ {0x251C, "vr"}, - /* 1458 */ {0x251D, "vR-"}, - /* 1459 */ {0x251E, "Udr"}, - /* 1460 */ {0x251F, "uDr"}, - /* 1461 */ {0x2520, "Vr-"}, - /* 1462 */ {0x2521, "UdR"}, - /* 1463 */ {0x2522, "uDR"}, - /* 1464 */ {0x2523, "VR-"}, - /* 1465 */ {0x2524, "vl"}, - /* 1466 */ {0x2525, "vL-"}, - /* 1467 */ {0x2526, "Udl"}, - /* 1468 */ {0x2527, "uDl"}, - /* 1469 */ {0x2528, "Vl-"}, - /* 1470 */ {0x2529, "UdL"}, - /* 1471 */ {0x252A, "uDL"}, - /* 1472 */ {0x252B, "VL-"}, - /* 1473 */ {0x252C, "dh"}, - /* 1474 */ {0x252D, "dLr"}, - /* 1475 */ {0x252E, "dlR"}, - /* 1476 */ {0x252F, "dH-"}, - /* 1477 */ {0x2530, "Dh-"}, - /* 1478 */ {0x2531, "DLr"}, - /* 1479 */ {0x2532, "DlR"}, - /* 1480 */ {0x2533, "DH-"}, - /* 1481 */ {0x2534, "uh"}, - /* 1482 */ {0x2535, "uLr"}, - /* 1483 */ {0x2536, "ulR"}, - /* 1484 */ {0x2537, "uH-"}, - /* 1485 */ {0x2538, "Uh-"}, - /* 1486 */ {0x2539, "ULr"}, - /* 1487 */ {0x253A, "UlR"}, - /* 1488 */ {0x253B, "UH-"}, - /* 1489 */ {0x253C, "vh"}, - /* 1490 */ {0x253D, "vLr"}, - /* 1491 */ {0x253E, "vlR"}, - /* 1492 */ {0x253F, "vH-"}, - /* 1493 */ {0x2540, "Udh"}, - /* 1494 */ {0x2541, "uDh"}, - /* 1495 */ {0x2542, "Vh-"}, - /* 1496 */ {0x2547, "UdH"}, - /* 1497 */ {0x2548, "uDH"}, - /* 1498 */ {0x2549, "VLr"}, - /* 1499 */ {0x254A, "VlR"}, - /* 1500 */ {0x254B, "VH-"}, - /* 1501 */ {0x2550, "HH"}, - /* 1502 */ {0x2551, "VV"}, - /* 1503 */ {0x2552, "dR"}, - /* 1504 */ {0x2553, "Dr"}, - /* 1505 */ {0x2554, "DR"}, - /* 1506 */ {0x2555, "dL"}, - /* 1507 */ {0x2556, "Dl"}, - /* 1508 */ {0x2557, "LD"}, - /* 1509 */ {0x2558, "uR"}, - /* 1510 */ {0x2559, "Ur"}, - /* 1511 */ {0x255A, "UR"}, - /* 1512 */ {0x255B, "uL"}, - /* 1513 */ {0x255C, "Ul"}, - /* 1514 */ {0x255D, "UL"}, - /* 1515 */ {0x255E, "vR"}, - /* 1516 */ {0x255F, "Vr"}, - /* 1517 */ {0x2560, "VR"}, - /* 1518 */ {0x2561, "vL"}, - /* 1519 */ {0x2562, "Vl"}, - /* 1520 */ {0x2563, "VL"}, - /* 1521 */ {0x2564, "dH"}, - /* 1522 */ {0x2565, "Dh"}, - /* 1523 */ {0x2566, "DH"}, - /* 1524 */ {0x2567, "uH"}, - /* 1525 */ {0x2568, "Uh"}, - /* 1526 */ {0x2569, "UH"}, - /* 1527 */ {0x256A, "vH"}, - /* 1528 */ {0x256B, "Vh"}, - /* 1529 */ {0x256C, "VH"}, - /* 1530 */ {0x2571, "FD"}, - /* 1531 */ {0x2572, "BD"}, - /* 1532 */ {0x2580, "TB"}, - /* 1533 */ {0x2584, "LB"}, - /* 1534 */ {0x2588, "FB"}, - /* 1535 */ {0x258C, "lB"}, - /* 1536 */ {0x2590, "RB"}, - /* 1537 */ {0x2591, ".S"}, - /* 1538 */ {0x2592, ":S"}, - /* 1539 */ {0x2593, "?S"}, - /* 1540 */ {0x25A0, "fS"}, - /* 1541 */ {0x25A1, "OS"}, - /* 1542 */ {0x25A2, "RO"}, - /* 1543 */ {0x25A3, "Rr"}, - /* 1544 */ {0x25A4, "RF"}, - /* 1545 */ {0x25A5, "RY"}, - /* 1546 */ {0x25A6, "RH"}, - /* 1547 */ {0x25A7, "RZ"}, - /* 1548 */ {0x25A8, "RK"}, - /* 1549 */ {0x25A9, "RX"}, - /* 1550 */ {0x25AA, "sB"}, - /* 1551 */ {0x25AC, "SR"}, - /* 1552 */ {0x25AD, "Or"}, - /* 1553 */ {0x25B2, "UT"}, - /* 1554 */ {0x25B3, "uT"}, - /* 1555 */ {0x25B7, "Tr"}, - /* 1556 */ {0x25BA, "PR"}, - /* 1557 */ {0x25BC, "Dt"}, - /* 1558 */ {0x25BD, "dT"}, - /* 1559 */ {0x25C1, "Tl"}, - /* 1560 */ {0x25C4, "PL"}, - /* 1561 */ {0x25C6, "Db"}, - /* 1562 */ {0x25C7, "Dw"}, - /* 1563 */ {0x25CA, "LZ"}, - /* 1564 */ {0x25CB, "0m"}, - /* 1565 */ {0x25CE, "0o"}, - /* 1566 */ {0x25CF, "0M"}, - /* 1567 */ {0x25D0, "0L"}, - /* 1568 */ {0x25D1, "0R"}, - /* 1569 */ {0x25D8, "Sn"}, - /* 1570 */ {0x25D9, "Ic"}, - /* 1571 */ {0x25E2, "Fd"}, - /* 1572 */ {0x25E3, "Bd"}, - /* 1573 */ {0x25EF, "Ci"}, - /* 1574 */ {0x2605, "*2"}, - /* 1575 */ {0x2606, "*1"}, - /* 1576 */ {0x260E, "TEL"}, - /* 1577 */ {0x260F, "tel"}, - /* 1578 */ {0x261C, "H"}, - /* 1580 */ {0x263A, "0u"}, - /* 1581 */ {0x263B, "0U"}, - /* 1582 */ {0x263C, "SU"}, - /* 1583 */ {0x2640, "Fm"}, - /* 1584 */ {0x2642, "Ml"}, - /* 1585 */ {0x2660, "cS"}, - /* 1586 */ {0x2661, "cH"}, - /* 1587 */ {0x2662, "cD"}, - /* 1588 */ {0x2663, "cC"}, - /* 1589 */ {0x2664, "cS-"}, - /* 1590 */ {0x2665, "cH-"}, - /* 1591 */ {0x2666, "cD-"}, - /* 1592 */ {0x2667, "cC-"}, - /* 1593 */ {0x2669, "Md"}, - /* 1594 */ {0x266A, "M8"}, - /* 1595 */ {0x266B, "M2"}, - /* 1596 */ {0x266C, "M16"}, - /* 1597 */ {0x266D, "Mb"}, - /* 1598 */ {0x266E, "Mx"}, - /* 1599 */ {0x266F, "MX"}, - /* 1600 */ {0x2713, "OK"}, - /* 1601 */ {0x2717, "XX"}, - /* 1602 */ {0x2720, "-X"}, - /* 1603 */ {0x3000, "IS"}, - /* 1604 */ {0x3001, ",_"}, - /* 1605 */ {0x3002, "._"}, - /* 1606 */ {0x3003, "+\""}, - /* 1607 */ {0x3004, "JIS"}, - /* 1608 */ {0x3005, "*_"}, - /* 1609 */ {0x3006, ";_"}, - /* 1610 */ {0x3007, "0_"}, - /* 1611 */ {0x300A, "<+"}, - /* 1612 */ {0x300B, ">+"}, - /* 1613 */ {0x300C, "<'"}, - /* 1614 */ {0x300D, ">'"}, - /* 1615 */ {0x300E, "<\""}, - /* 1616 */ {0x300F, ">\""}, - /* 1617 */ {0x3010, "(\""}, - /* 1618 */ {0x3011, ")\""}, - /* 1619 */ {0x3012, "=T"}, - /* 1620 */ {0x3013, "=_"}, - /* 1621 */ {0x3014, "('"}, - /* 1622 */ {0x3015, ")'"}, - /* 1623 */ {0x3016, "(I"}, - /* 1624 */ {0x3017, ")I"}, - /* 1625 */ {0x301C, "-?"}, - /* 1626 */ {0x3041, "A5"}, - /* 1627 */ {0x3042, "a5"}, - /* 1628 */ {0x3043, "I5"}, - /* 1629 */ {0x3044, "i5"}, - /* 1630 */ {0x3045, "U5"}, - /* 1631 */ {0x3046, "u5"}, - /* 1632 */ {0x3047, "E5"}, - /* 1633 */ {0x3048, "e5"}, - /* 1634 */ {0x3049, "O5"}, - /* 1635 */ {0x304A, "o5"}, - /* 1636 */ {0x304B, "ka"}, - /* 1637 */ {0x304C, "ga"}, - /* 1638 */ {0x304D, "ki"}, - /* 1639 */ {0x304E, "gi"}, - /* 1640 */ {0x304F, "ku"}, - /* 1641 */ {0x3050, "gu"}, - /* 1642 */ {0x3051, "ke"}, - /* 1643 */ {0x3052, "ge"}, - /* 1644 */ {0x3053, "ko"}, - /* 1645 */ {0x3054, "go"}, - /* 1646 */ {0x3055, "sa"}, - /* 1647 */ {0x3056, "za"}, - /* 1648 */ {0x3057, "si"}, - /* 1649 */ {0x3058, "zi"}, - /* 1650 */ {0x3059, "su"}, - /* 1651 */ {0x305A, "zu"}, - /* 1652 */ {0x305B, "se"}, - /* 1653 */ {0x305C, "ze"}, - /* 1654 */ {0x305D, "so"}, - /* 1655 */ {0x305E, "zo"}, - /* 1656 */ {0x305F, "ta"}, - /* 1657 */ {0x3060, "da"}, - /* 1658 */ {0x3061, "ti"}, - /* 1659 */ {0x3062, "di"}, - /* 1660 */ {0x3063, "tU"}, - /* 1661 */ {0x3064, "tu"}, - /* 1662 */ {0x3065, "du"}, - /* 1663 */ {0x3066, "te"}, - /* 1664 */ {0x3067, "de"}, - /* 1665 */ {0x3068, "to"}, - /* 1666 */ {0x3069, "do"}, - /* 1667 */ {0x306A, "na"}, - /* 1668 */ {0x306B, "ni"}, - /* 1669 */ {0x306C, "nu"}, - /* 1670 */ {0x306D, "ne"}, - /* 1671 */ {0x306E, "no"}, - /* 1672 */ {0x306F, "ha"}, - /* 1673 */ {0x3070, "ba"}, - /* 1674 */ {0x3071, "pa"}, - /* 1675 */ {0x3072, "hi"}, - /* 1676 */ {0x3073, "bi"}, - /* 1677 */ {0x3074, "pi"}, - /* 1678 */ {0x3075, "hu"}, - /* 1679 */ {0x3076, "bu"}, - /* 1680 */ {0x3077, "pu"}, - /* 1681 */ {0x3078, "he"}, - /* 1682 */ {0x3079, "be"}, - /* 1683 */ {0x307A, "pe"}, - /* 1684 */ {0x307B, "ho"}, - /* 1685 */ {0x307C, "bo"}, - /* 1686 */ {0x307D, "po"}, - /* 1687 */ {0x307E, "ma"}, - /* 1688 */ {0x307F, "mi"}, - /* 1689 */ {0x3080, "mu"}, - /* 1690 */ {0x3081, "me"}, - /* 1691 */ {0x3082, "mo"}, - /* 1692 */ {0x3083, "yA"}, - /* 1693 */ {0x3084, "ya"}, - /* 1694 */ {0x3085, "yU"}, - /* 1695 */ {0x3086, "yu"}, - /* 1696 */ {0x3087, "yO"}, - /* 1697 */ {0x3088, "yo"}, - /* 1698 */ {0x3089, "ra"}, - /* 1699 */ {0x308A, "ri"}, - /* 1700 */ {0x308B, "ru"}, - /* 1701 */ {0x308C, "re"}, - /* 1702 */ {0x308D, "ro"}, - /* 1703 */ {0x308E, "wA"}, - /* 1704 */ {0x308F, "wa"}, - /* 1705 */ {0x3090, "wi"}, - /* 1706 */ {0x3091, "we"}, - /* 1707 */ {0x3092, "wo"}, - /* 1708 */ {0x3093, "n5"}, - /* 1709 */ {0x3094, "vu"}, - /* 1710 */ {0x309B, "\"5"}, - /* 1711 */ {0x309C, "05"}, - /* 1712 */ {0x309D, "*5"}, - /* 1713 */ {0x309E, "+5"}, - /* 1714 */ {0x30A1, "a6"}, - /* 1715 */ {0x30A2, "A6"}, - /* 1716 */ {0x30A3, "i6"}, - /* 1717 */ {0x30A4, "I6"}, - /* 1718 */ {0x30A5, "u6"}, - /* 1719 */ {0x30A6, "U6"}, - /* 1720 */ {0x30A7, "e6"}, - /* 1721 */ {0x30A8, "E6"}, - /* 1722 */ {0x30A9, "o6"}, - /* 1723 */ {0x30AA, "O6"}, - /* 1724 */ {0x30AB, "Ka"}, - /* 1725 */ {0x30AC, "Ga"}, - /* 1726 */ {0x30AD, "Ki"}, - /* 1727 */ {0x30AE, "Gi"}, - /* 1728 */ {0x30AF, "Ku"}, - /* 1729 */ {0x30B0, "Gu"}, - /* 1730 */ {0x30B1, "Ke"}, - /* 1731 */ {0x30B2, "Ge"}, - /* 1732 */ {0x30B3, "Ko"}, - /* 1733 */ {0x30B4, "Go"}, - /* 1734 */ {0x30B5, "Sa"}, - /* 1735 */ {0x30B6, "Za"}, - /* 1736 */ {0x30B7, "Si"}, - /* 1737 */ {0x30B8, "Zi"}, - /* 1738 */ {0x30B9, "Su"}, - /* 1739 */ {0x30BA, "Zu"}, - /* 1740 */ {0x30BB, "Se"}, - /* 1741 */ {0x30BC, "Ze"}, - /* 1742 */ {0x30BD, "So"}, - /* 1743 */ {0x30BE, "Zo"}, - /* 1744 */ {0x30BF, "Ta"}, - /* 1745 */ {0x30C0, "Da"}, - /* 1746 */ {0x30C1, "Ti"}, - /* 1747 */ {0x30C2, "Di"}, - /* 1748 */ {0x30C3, "TU"}, - /* 1749 */ {0x30C4, "Tu"}, - /* 1750 */ {0x30C5, "Du"}, - /* 1751 */ {0x30C6, "Te"}, - /* 1752 */ {0x30C7, "De"}, - /* 1753 */ {0x30C8, "To"}, - /* 1754 */ {0x30C9, "Do"}, - /* 1755 */ {0x30CA, "Na"}, - /* 1756 */ {0x30CB, "Ni"}, - /* 1757 */ {0x30CC, "Nu"}, - /* 1758 */ {0x30CD, "Ne"}, - /* 1759 */ {0x30CE, "No"}, - /* 1760 */ {0x30CF, "Ha"}, - /* 1761 */ {0x30D0, "Ba"}, - /* 1762 */ {0x30D1, "Pa"}, - /* 1763 */ {0x30D2, "Hi"}, - /* 1764 */ {0x30D3, "Bi"}, - /* 1765 */ {0x30D4, "Pi"}, - /* 1766 */ {0x30D5, "Hu"}, - /* 1767 */ {0x30D6, "Bu"}, - /* 1768 */ {0x30D7, "Pu"}, - /* 1769 */ {0x30D8, "He"}, - /* 1770 */ {0x30D9, "Be"}, - /* 1771 */ {0x30DA, "Pe"}, - /* 1772 */ {0x30DB, "Ho"}, - /* 1773 */ {0x30DC, "Bo"}, - /* 1774 */ {0x30DD, "Po"}, - /* 1775 */ {0x30DE, "Ma"}, - /* 1776 */ {0x30DF, "Mi"}, - /* 1777 */ {0x30E0, "Mu"}, - /* 1778 */ {0x30E1, "Me"}, - /* 1779 */ {0x30E2, "Mo"}, - /* 1780 */ {0x30E3, "YA"}, - /* 1781 */ {0x30E4, "Ya"}, - /* 1782 */ {0x30E5, "YU"}, - /* 1783 */ {0x30E6, "Yu"}, - /* 1784 */ {0x30E7, "YO"}, - /* 1785 */ {0x30E8, "Yo"}, - /* 1786 */ {0x30E9, "Ra"}, - /* 1787 */ {0x30EA, "Ri"}, - /* 1788 */ {0x30EB, "Ru"}, - /* 1789 */ {0x30EC, "Re"}, - /* 1790 */ {0x30ED, "Ro"}, - /* 1791 */ {0x30EE, "WA"}, - /* 1792 */ {0x30EF, "Wa"}, - /* 1793 */ {0x30F0, "Wi"}, - /* 1794 */ {0x30F1, "We"}, - /* 1795 */ {0x30F2, "Wo"}, - /* 1796 */ {0x30F3, "N6"}, - /* 1797 */ {0x30F4, "Vu"}, - /* 1798 */ {0x30F5, "KA"}, - /* 1799 */ {0x30F6, "KE"}, - /* 1800 */ {0x30F7, "Va"}, - /* 1801 */ {0x30F8, "Vi"}, - /* 1802 */ {0x30F9, "Ve"}, - /* 1803 */ {0x30FA, "Vo"}, - /* 1804 */ {0x30FB, ".6"}, - /* 1805 */ {0x30FC, "-6"}, - /* 1806 */ {0x30FD, "*6"}, - /* 1807 */ {0x30FE, "+6"}, - /* 1808 */ {0x3105, "b4"}, - /* 1809 */ {0x3106, "p4"}, - /* 1810 */ {0x3107, "m4"}, - /* 1811 */ {0x3108, "f4"}, - /* 1812 */ {0x3109, "d4"}, - /* 1813 */ {0x310A, "t4"}, - /* 1814 */ {0x310B, "n4"}, - /* 1815 */ {0x310C, "l4"}, - /* 1816 */ {0x310D, "g4"}, - /* 1817 */ {0x310E, "k4"}, - /* 1818 */ {0x310F, "h4"}, - /* 1819 */ {0x3110, "j4"}, - /* 1820 */ {0x3111, "q4"}, - /* 1821 */ {0x3112, "x4"}, - /* 1822 */ {0x3113, "zh"}, - /* 1823 */ {0x3114, "ch"}, - /* 1824 */ {0x3115, "sh"}, - /* 1825 */ {0x3116, "r4"}, - /* 1826 */ {0x3117, "z4"}, - /* 1827 */ {0x3118, "c4"}, - /* 1828 */ {0x3119, "s4"}, - /* 1829 */ {0x311A, "a4"}, - /* 1830 */ {0x311B, "o4"}, - /* 1831 */ {0x311C, "e4"}, - /* 1832 */ {0x311D, "eh4"}, - /* 1833 */ {0x311E, "ai"}, - /* 1834 */ {0x311F, "ei"}, - /* 1835 */ {0x3120, "au"}, - /* 1836 */ {0x3121, "ou"}, - /* 1837 */ {0x3122, "an"}, - /* 1838 */ {0x3123, "en"}, - /* 1839 */ {0x3124, "aN"}, - /* 1840 */ {0x3125, "eN"}, - /* 1841 */ {0x3126, "er"}, - /* 1842 */ {0x3127, "i4"}, - /* 1843 */ {0x3128, "u4"}, - /* 1844 */ {0x3129, "iu"}, - /* 1845 */ {0x312A, "v4"}, - /* 1846 */ {0x312B, "nG"}, - /* 1847 */ {0x312C, "gn"}, - /* 1848 */ {0x3220, "1c"}, - /* 1849 */ {0x3221, "2c"}, - /* 1850 */ {0x3222, "3c"}, - /* 1851 */ {0x3223, "4c"}, - /* 1852 */ {0x3224, "5c"}, - /* 1853 */ {0x3225, "6c"}, - /* 1854 */ {0x3226, "7c"}, - /* 1855 */ {0x3227, "8c"}, - /* 1856 */ {0x3228, "9c"}, - /* 1857 */ {0x3229, "10c"}, - /* 1858 */ {0x327F, "KSC"}, - /* 1859 */ {0x33C2, "am"}, - /* 1860 */ {0x33D8, "pm"}, - /* 1861 */ {0xE000, "\"3"}, - /* 1862 */ {0xE001, "\"1"}, - /* 1863 */ {0xE002, "\"!"}, - /* 1864 */ {0xE003, "\"'"}, - /* 1865 */ {0xE004, "\">"}, - /* 1866 */ {0xE005, "\"?"}, - /* 1867 */ {0xE006, "\"-"}, - /* 1868 */ {0xE007, "\"("}, - /* 1869 */ {0xE008, "\"."}, - /* 1870 */ {0xE009, "\":"}, - /* 1871 */ {0xE00A, "\"0"}, - /* 1872 */ {0xE00B, "\","}, - /* 1873 */ {0xE00C, "\"_"}, - /* 1874 */ {0xE00D, "\"\""}, - /* 1875 */ {0xE00E, "\";"}, - /* 1876 */ {0xE00F, "\"<"}, - /* 1877 */ {0xE010, "\"="}, - /* 1878 */ {0xE011, "\"/"}, - /* 1879 */ {0xE012, "\"p"}, - /* 1880 */ {0xE013, "\"d"}, - /* 1881 */ {0xE014, "\"i"}, - /* 1882 */ {0xE015, "+_"}, - /* 1883 */ {0xE016, "a+:"}, - /* 1884 */ {0xE017, "Tel"}, - /* 1885 */ {0xE018, "UA"}, - /* 1886 */ {0xE019, "UB"}, - /* 1887 */ {0xE01A, "t3"}, - /* 1888 */ {0xE01B, "m3"}, - /* 1889 */ {0xE01C, "k3"}, - /* 1890 */ {0xE01D, "p3"}, - /* 1891 */ {0xE01E, "Mc"}, - /* 1892 */ {0xE01F, "Fl"}, - /* 1893 */ {0xE020, "Ss"}, - /* 1894 */ {0xE021, "Ch"}, - /* 1895 */ {0xE022, "CH"}, - /* 1896 */ {0xE023, "__"}, - /* 1897 */ {0xE024, "/c"}, - /* 1898 */ {0xFB00, "ff"}, - /* 1899 */ {0xFB01, "fi"}, - /* 1900 */ {0xFB02, "fl"}, - /* 1901 */ {0xFB03, "ffi"}, - /* 1902 */ {0xFB04, "ffl"}, - /* 1903 */ {0xFB05, "St"}, - /* 1904 */ {0xFB06, "st"}, - /* 1905 */ {0xFE7D, "3+;"}, - /* 1906 */ {0xFE82, "aM."}, - /* 1907 */ {0xFE84, "aH."}, - /* 1908 */ {0xFE88, "ah."}, - /* 1909 */ {0xFE8D, "a+-"}, - /* 1910 */ {0xFE8E, "a+."}, - /* 1911 */ {0xFE8F, "b+-"}, - /* 1912 */ {0xFE90, "b+."}, - /* 1913 */ {0xFE91, "b+,"}, - /* 1914 */ {0xFE92, "b+;"}, - /* 1915 */ {0xFE93, "tm-"}, - /* 1916 */ {0xFE94, "tm."}, - /* 1917 */ {0xFE95, "t+-"}, - /* 1918 */ {0xFE96, "t+."}, - /* 1919 */ {0xFE97, "t+,"}, - /* 1920 */ {0xFE98, "t+;"}, - /* 1921 */ {0xFE99, "tk-"}, - /* 1922 */ {0xFE9A, "tk."}, - /* 1923 */ {0xFE9B, "tk,"}, - /* 1924 */ {0xFE9C, "tk;"}, - /* 1925 */ {0xFE9D, "g+-"}, - /* 1926 */ {0xFE9E, "g+."}, - /* 1927 */ {0xFE9F, "g+,"}, - /* 1928 */ {0xFEA0, "g+;"}, - /* 1929 */ {0xFEA1, "hk-"}, - /* 1930 */ {0xFEA2, "hk."}, - /* 1931 */ {0xFEA3, "hk,"}, - /* 1932 */ {0xFEA4, "hk;"}, - /* 1933 */ {0xFEA5, "x+-"}, - /* 1934 */ {0xFEA6, "x+."}, - /* 1935 */ {0xFEA7, "x+,"}, - /* 1936 */ {0xFEA8, "x+;"}, - /* 1937 */ {0xFEA9, "d+-"}, - /* 1938 */ {0xFEAA, "d+."}, - /* 1939 */ {0xFEAB, "dk-"}, - /* 1940 */ {0xFEAC, "dk."}, - /* 1941 */ {0xFEAD, "r+-"}, - /* 1942 */ {0xFEAE, "r+."}, - /* 1943 */ {0xFEAF, "z+-"}, - /* 1944 */ {0xFEB0, "z+."}, - /* 1945 */ {0xFEB1, "s+-"}, - /* 1946 */ {0xFEB2, "s+."}, - /* 1947 */ {0xFEB3, "s+,"}, - /* 1948 */ {0xFEB4, "s+;"}, - /* 1949 */ {0xFEB5, "sn-"}, - /* 1950 */ {0xFEB6, "sn."}, - /* 1951 */ {0xFEB7, "sn,"}, - /* 1952 */ {0xFEB8, "sn;"}, - /* 1953 */ {0xFEB9, "c+-"}, - /* 1954 */ {0xFEBA, "c+."}, - /* 1955 */ {0xFEBB, "c+,"}, - /* 1956 */ {0xFEBC, "c+;"}, - /* 1957 */ {0xFEBD, "dd-"}, - /* 1958 */ {0xFEBE, "dd."}, - /* 1959 */ {0xFEBF, "dd,"}, - /* 1960 */ {0xFEC0, "dd;"}, - /* 1961 */ {0xFEC1, "tj-"}, - /* 1962 */ {0xFEC2, "tj."}, - /* 1963 */ {0xFEC3, "tj,"}, - /* 1964 */ {0xFEC4, "tj;"}, - /* 1965 */ {0xFEC5, "zH-"}, - /* 1966 */ {0xFEC6, "zH."}, - /* 1967 */ {0xFEC7, "zH,"}, - /* 1968 */ {0xFEC8, "zH;"}, - /* 1969 */ {0xFEC9, "e+-"}, - /* 1970 */ {0xFECA, "e+."}, - /* 1971 */ {0xFECB, "e+,"}, - /* 1972 */ {0xFECC, "e+;"}, - /* 1973 */ {0xFECD, "i+-"}, - /* 1974 */ {0xFECE, "i+."}, - /* 1975 */ {0xFECF, "i+,"}, - /* 1976 */ {0xFED0, "i+;"}, - /* 1977 */ {0xFED1, "f+-"}, - /* 1978 */ {0xFED2, "f+."}, - /* 1979 */ {0xFED3, "f+,"}, - /* 1980 */ {0xFED4, "f+;"}, - /* 1981 */ {0xFED5, "q+-"}, - /* 1982 */ {0xFED6, "q+."}, - /* 1983 */ {0xFED7, "q+,"}, - /* 1984 */ {0xFED8, "q+;"}, - /* 1985 */ {0xFED9, "k+-"}, - /* 1986 */ {0xFEDA, "k+."}, - /* 1987 */ {0xFEDB, "k+,"}, - /* 1988 */ {0xFEDC, "k+;"}, - /* 1989 */ {0xFEDD, "l+-"}, - /* 1990 */ {0xFEDE, "l+."}, - /* 1991 */ {0xFEDF, "l+,"}, - /* 1992 */ {0xFEE0, "l+;"}, - /* 1993 */ {0xFEE1, "m+-"}, - /* 1994 */ {0xFEE2, "m+."}, - /* 1995 */ {0xFEE3, "m+,"}, - /* 1996 */ {0xFEE4, "m+;"}, - /* 1997 */ {0xFEE5, "n+-"}, - /* 1998 */ {0xFEE6, "n+."}, - /* 1999 */ {0xFEE7, "n+,"}, - /* 2000 */ {0xFEE8, "n+;"}, - /* 2001 */ {0xFEE9, "h+-"}, - /* 2002 */ {0xFEEA, "h+."}, - /* 2003 */ {0xFEEB, "h+,"}, - /* 2004 */ {0xFEEC, "h+;"}, - /* 2005 */ {0xFEED, "w+-"}, - /* 2006 */ {0xFEEE, "w+."}, - /* 2007 */ {0xFEEF, "j+-"}, - /* 2008 */ {0xFEF0, "j+."}, - /* 2009 */ {0xFEF1, "y+-"}, - /* 2010 */ {0xFEF2, "y+."}, - /* 2011 */ {0xFEF3, "y+,"}, - /* 2012 */ {0xFEF4, "y+;"}, - /* 2013 */ {0xFEF5, "lM-"}, - /* 2014 */ {0xFEF6, "lM."}, - /* 2015 */ {0xFEF7, "lH-"}, - /* 2016 */ {0xFEF8, "lH."}, - /* 2017 */ {0xFEF9, "lh-"}, - /* 2018 */ {0xFEFA, "lh."}, - /* 2019 */ {0xFEFB, "la-"}, - /* 2020 */ {0xFEFC, "la."}, - }; - -static const unsigned short inverse[TABLE_LENGTH] = - { - /* 0 */ 33, 124, 1225, 125, 1078, 1129, 1101, 1076, 1279, 1273, - /* 10 */ 1280, 161, 34, 1863, 1874, 1864, 1868, 748, 1872, 1867, - /* 20 */ 1869, 1878, 1871, 1862, 1861, 1710, 1107, 1167, 1108, 1870, - /* 30 */ 1875, 1876, 1877, 1865, 1866, 1873, 1880, 1881, 1879, 37, - /* 40 */ 618, 650, 1118, 38, 39, 96, 494, 500, 180, 489, - /* 50 */ 499, 751, 184, 1130, 490, 491, 1103, 1104, 168, 492, - /* 60 */ 486, 94, 126, 495, 175, 329, 40, 123, 1617, 1621, - /* 70 */ 1238, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, - /* 80 */ 1296, 1281, 1623, 1143, 1257, 1283, 1350, 1351, 1352, 1353, - /* 90 */ 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, - /* 100 */ 1364, 1365, 1366, 1367, 1159, 1368, 1369, 1370, 1371, 1372, - /* 110 */ 1373, 1374, 1375, 41, 1618, 1622, 1042, 93, 1282, 1624, - /* 120 */ 1144, 1258, 1284, 1160, 42, 1246, 1575, 1574, 1712, 1806, - /* 130 */ 1278, 1241, 215, 1608, 558, 43, 1606, 736, 177, 1713, - /* 140 */ 1807, 1140, 1242, 1882, 1156, 44, 1053, 1054, 707, 1044, - /* 150 */ 496, 1604, 45, 1218, 1239, 1244, 173, 1097, 1243, 1100, - /* 160 */ 1805, 247, 1219, 1625, 1252, 1099, 1098, 1141, 1287, 1253, - /* 170 */ 1602, 170, 1131, 186, 1157, 1220, 46, 502, 1245, 1117, - /* 180 */ 1115, 1116, 1804, 1105, 1262, 183, 1288, 1537, 1605, 47, - /* 190 */ 1086, 750, 1111, 92, 1224, 1235, 1112, 1302, 1897, 1132, - /* 200 */ 48, 1250, 754, 1428, 1285, 1251, 1286, 1711, 1567, 1566, - /* 210 */ 1568, 1133, 1581, 1610, 755, 1564, 1565, 1146, 1580, 49, - /* 220 */ 488, 1122, 1119, 752, 487, 1312, 1330, 1339, 1857, 1340, - /* 230 */ 189, 1341, 1179, 1342, 188, 1343, 1181, 1344, 1185, 1345, - /* 240 */ 1346, 1187, 1347, 1348, 485, 493, 1094, 1089, 1088, 1191, - /* 250 */ 185, 1093, 756, 1848, 1304, 1308, 1204, 1147, 50, 1123, - /* 260 */ 1120, 1313, 1331, 1349, 1180, 1182, 1192, 178, 757, 1849, - /* 270 */ 1306, 1309, 1205, 1148, 51, 1435, 1124, 1121, 753, 1905, - /* 280 */ 1433, 1314, 1332, 1436, 190, 1183, 1188, 1090, 1193, 179, - /* 290 */ 1434, 758, 1114, 1850, 1305, 1310, 1206, 1149, 52, 1439, - /* 300 */ 1437, 1315, 1333, 1440, 1184, 1091, 1194, 1134, 1438, 759, - /* 310 */ 1851, 1307, 1311, 1207, 1150, 53, 1316, 1334, 1203, 1216, - /* 320 */ 1186, 1189, 1195, 1135, 760, 1852, 1208, 1151, 54, 1317, - /* 330 */ 1335, 1092, 1196, 1136, 761, 1853, 1209, 1152, 55, 1318, - /* 340 */ 1336, 1190, 1293, 1294, 1197, 1137, 762, 1854, 1210, 1153, - /* 350 */ 56, 1319, 1337, 1298, 1198, 1138, 763, 1855, 1211, 1154, - /* 360 */ 57, 1110, 1106, 1320, 1338, 1199, 1139, 764, 1856, 1212, - /* 370 */ 1155, 58, 1077, 747, 1263, 1289, 1109, 1265, 1264, 1538, - /* 380 */ 1128, 59, 1063, 1064, 708, 1087, 484, 1609, 60, 1223, - /* 390 */ 1615, 1613, 91, 1277, 1611, 1217, 1301, 1226, 1126, 1291, - /* 400 */ 171, 1229, 1221, 1578, 61, 616, 648, 749, 1102, 1274, - /* 410 */ 1275, 1231, 1230, 1271, 1142, 1619, 1620, 1158, 62, 1616, - /* 420 */ 1614, 1612, 1127, 1292, 1276, 187, 1579, 1228, 63, 498, - /* 430 */ 1045, 709, 1055, 1268, 1266, 1270, 1046, 1065, 1269, 191, - /* 440 */ 1539, 65, 192, 458, 501, 193, 258, 928, 926, 930, - /* 450 */ 932, 460, 510, 1039, 1040, 1037, 994, 1038, 995, 1041, - /* 460 */ 680, 256, 914, 772, 1376, 428, 916, 432, 1626, 1715, - /* 470 */ 430, 196, 260, 411, 590, 194, 920, 918, 922, 924, - /* 480 */ 195, 197, 452, 159, 198, 454, 6, 1255, 1177, 64, - /* 490 */ 66, 511, 681, 776, 1377, 774, 385, 591, 166, 1531, - /* 500 */ 130, 7, 8, 778, 1761, 1572, 1770, 1764, 1773, 1767, - /* 510 */ 67, 613, 262, 523, 199, 780, 1378, 266, 386, 676, - /* 520 */ 268, 612, 264, 148, 1267, 1895, 155, 24, 13, 1125, - /* 530 */ 1894, 1573, 169, 162, 164, 68, 577, 513, 683, 788, - /* 540 */ 208, 784, 790, 1379, 782, 272, 17, 18, 19, 20, - /* 550 */ 270, 594, 144, 1236, 176, 1523, 1480, 1260, 16, 1478, - /* 560 */ 36, 1505, 1444, 580, 127, 589, 447, 402, 786, 1745, - /* 570 */ 1561, 1752, 1522, 1477, 1747, 1507, 1447, 1479, 1754, 1504, - /* 580 */ 1443, 1557, 1750, 1562, 448, 403, 69, 200, 462, 503, - /* 590 */ 201, 276, 464, 514, 1049, 998, 999, 698, 800, 274, - /* 600 */ 792, 794, 934, 796, 798, 1380, 278, 936, 1632, 1721, - /* 610 */ 203, 280, 282, 595, 202, 942, 940, 944, 946, 938, - /* 620 */ 23, 27, 401, 151, 25, 5, 135, 4, 3, 444, - /* 630 */ 1290, 1178, 1166, 70, 530, 1381, 802, 388, 672, 610, - /* 640 */ 1232, 1534, 1530, 12, 1240, 28, 1571, 1161, 1892, 1583, - /* 650 */ 71, 578, 450, 286, 512, 682, 290, 804, 1382, 288, - /* 660 */ 434, 678, 436, 593, 284, 153, 29, 1725, 1731, 1727, - /* 670 */ 1733, 1729, 72, 710, 517, 684, 812, 814, 808, 1383, - /* 680 */ 806, 294, 810, 611, 292, 1501, 1430, 1272, 137, 129, - /* 690 */ 136, 9, 1760, 1769, 1763, 1772, 1766, 73, 204, 466, - /* 700 */ 505, 205, 300, 468, 518, 1061, 1062, 1059, 1006, 1060, - /* 710 */ 1007, 298, 950, 816, 1384, 304, 948, 1628, 1717, 207, - /* 720 */ 818, 302, 413, 598, 206, 296, 579, 581, 306, 132, - /* 730 */ 576, 1603, 1570, 1300, 1259, 1261, 1299, 74, 583, 534, - /* 740 */ 689, 1385, 1043, 599, 308, 621, 619, 1607, 620, 75, - /* 750 */ 690, 820, 519, 691, 310, 822, 1386, 390, 574, 438, - /* 760 */ 600, 1798, 1799, 587, 1858, 824, 1724, 1730, 1726, 1732, - /* 770 */ 1728, 76, 313, 520, 692, 315, 826, 830, 1387, 319, - /* 780 */ 321, 317, 601, 1533, 1508, 1448, 10, 584, 405, 1095, - /* 790 */ 1563, 828, 1162, 406, 77, 693, 832, 521, 694, 836, - /* 800 */ 1388, 834, 1596, 1595, 573, 1594, 602, 149, 1599, 1775, - /* 810 */ 1597, 1891, 1593, 1778, 1776, 1584, 1779, 1777, 1598, 181, - /* 820 */ 78, 695, 323, 522, 696, 325, 840, 844, 1389, 838, - /* 830 */ 1171, 1796, 327, 603, 209, 1237, 330, 131, 1295, 585, - /* 840 */ 408, 21, 133, 172, 160, 1165, 0, 842, 1755, 35, - /* 850 */ 1758, 1756, 409, 1759, 1757, 79, 210, 470, 336, 506, - /* 860 */ 211, 334, 472, 524, 1081, 1082, 1010, 1011, 332, 850, - /* 870 */ 852, 952, 1390, 216, 456, 442, 954, 670, 1634, 1723, - /* 880 */ 392, 966, 964, 968, 970, 214, 440, 415, 604, 212, - /* 890 */ 958, 956, 960, 962, 213, 846, 848, 157, 338, 394, - /* 900 */ 1600, 1256, 1541, 1247, 1176, 1552, 80, 699, 854, 525, - /* 910 */ 700, 1391, 856, 145, 146, 575, 605, 128, 139, 182, - /* 920 */ 1560, 158, 1172, 1254, 1556, 140, 1762, 163, 1771, 1765, - /* 930 */ 1774, 1163, 1768, 81, 532, 703, 1392, 82, 474, 340, - /* 940 */ 476, 526, 1075, 704, 342, 860, 1393, 858, 344, 606, - /* 950 */ 1536, 1544, 1546, 141, 1548, 1096, 1542, 30, 1249, 1549, - /* 960 */ 1545, 1547, 862, 1786, 1789, 174, 1787, 1790, 1543, 1788, - /* 970 */ 1173, 83, 614, 346, 868, 527, 697, 350, 866, 1394, - /* 980 */ 864, 142, 143, 352, 870, 607, 348, 134, 26, 154, - /* 990 */ 167, 150, 1, 15, 1174, 14, 32, 1551, 152, 156, - /* 1000 */ 1582, 2, 22, 1734, 1248, 615, 1740, 705, 1736, 1569, - /* 1010 */ 1742, 1893, 1903, 1738, 84, 528, 706, 354, 874, 878, - /* 1020 */ 1395, 872, 358, 572, 356, 608, 1532, 1234, 1576, 222, - /* 1030 */ 1175, 1297, 147, 1748, 876, 1744, 1751, 1884, 1746, 688, - /* 1040 */ 1559, 1753, 1555, 586, 1749, 85, 217, 478, 368, 507, - /* 1050 */ 218, 364, 480, 529, 1073, 1074, 1071, 1072, 1014, 362, - /* 1060 */ 972, 886, 882, 880, 1396, 366, 974, 1630, 1719, 397, - /* 1070 */ 978, 976, 980, 982, 220, 425, 421, 419, 423, 370, - /* 1080 */ 417, 609, 219, 360, 884, 1885, 1886, 1222, 1227, 1526, - /* 1090 */ 1488, 1514, 1456, 1486, 1511, 1452, 31, 1553, 1496, 1470, - /* 1100 */ 1462, 1493, 1467, 1459, 1525, 1485, 1513, 1455, 1487, 1510, - /* 1110 */ 1451, 86, 588, 535, 890, 1397, 674, 592, 888, 1529, - /* 1120 */ 1500, 1520, 1472, 1498, 1517, 1464, 138, 11, 1502, 1432, - /* 1130 */ 1800, 1802, 1528, 1495, 1801, 1519, 1469, 1499, 1803, 1516, - /* 1140 */ 1461, 1303, 1797, 87, 892, 508, 894, 533, 1083, 1084, - /* 1150 */ 1017, 1018, 1085, 685, 900, 1398, 898, 896, 1164, 372, - /* 1160 */ 1791, 1792, 1794, 1793, 1795, 88, 531, 687, 1399, 902, - /* 1170 */ 904, 1601, 89, 984, 504, 221, 516, 1050, 1051, 1002, - /* 1180 */ 1003, 1052, 986, 1400, 906, 988, 668, 376, 617, 374, - /* 1190 */ 990, 1780, 582, 1784, 1782, 1781, 165, 1785, 1783, 90, - /* 1200 */ 596, 377, 515, 686, 910, 1401, 379, 399, 381, 597, - /* 1210 */ 908, 702, 912, 1735, 1741, 1737, 701, 1743, 1739, 95, - /* 1220 */ 1896, 97, 224, 459, 536, 225, 259, 929, 927, 931, - /* 1230 */ 933, 461, 541, 1019, 1020, 1033, 992, 1034, 993, 1036, - /* 1240 */ 1035, 716, 1909, 1910, 1883, 257, 915, 773, 1402, 429, - /* 1250 */ 917, 433, 1829, 1627, 1714, 431, 228, 261, 412, 622, - /* 1260 */ 226, 921, 919, 923, 925, 227, 712, 1907, 711, 1906, - /* 1270 */ 1839, 1200, 765, 229, 453, 230, 455, 714, 1908, 1833, - /* 1280 */ 1859, 1837, 1213, 1835, 98, 542, 717, 1913, 1911, 1912, - /* 1290 */ 1914, 777, 1403, 775, 384, 571, 1808, 623, 1201, 779, - /* 1300 */ 1673, 1682, 1676, 1685, 1214, 1679, 99, 645, 263, 554, - /* 1310 */ 730, 1955, 1953, 1954, 1956, 231, 781, 1404, 267, 387, - /* 1320 */ 677, 1827, 269, 644, 265, 1588, 1592, 1587, 1591, 1586, - /* 1330 */ 1590, 1202, 1585, 1589, 1823, 1169, 1215, 100, 655, 544, - /* 1340 */ 724, 1937, 1938, 789, 240, 785, 791, 1405, 783, 273, - /* 1350 */ 1812, 271, 626, 1521, 1476, 1506, 1446, 1474, 1233, 1503, - /* 1360 */ 1442, 1558, 787, 1657, 731, 1959, 1957, 1958, 1960, 1664, - /* 1370 */ 1473, 1659, 725, 1939, 1940, 1445, 1475, 1666, 1441, 658, - /* 1380 */ 1662, 667, 449, 404, 101, 232, 463, 537, 233, 277, - /* 1390 */ 465, 545, 1021, 1022, 996, 997, 734, 1971, 1969, 1970, - /* 1400 */ 1972, 801, 275, 793, 795, 935, 797, 799, 1406, 279, - /* 1410 */ 427, 937, 1831, 1633, 1720, 235, 281, 283, 627, 234, - /* 1420 */ 943, 941, 945, 947, 939, 1840, 483, 1832, 1834, 1838, - /* 1430 */ 1841, 445, 102, 562, 737, 1979, 1977, 1978, 1980, 1407, - /* 1440 */ 803, 389, 673, 1811, 642, 1540, 1898, 1901, 1902, 1899, - /* 1450 */ 1900, 103, 656, 451, 287, 543, 721, 1927, 1925, 1926, - /* 1460 */ 1928, 291, 805, 1408, 289, 435, 679, 1816, 437, 625, - /* 1470 */ 285, 1637, 1643, 771, 1639, 1847, 1645, 1641, 104, 548, - /* 1480 */ 743, 2003, 2001, 2002, 2004, 813, 815, 809, 1409, 807, - /* 1490 */ 295, 1818, 811, 643, 293, 767, 1672, 1681, 1429, 1675, - /* 1500 */ 722, 1931, 1929, 1930, 1932, 1684, 1678, 105, 236, 467, - /* 1510 */ 539, 237, 301, 469, 549, 1025, 1026, 1056, 1004, 1057, - /* 1520 */ 1005, 1058, 735, 1975, 1973, 1974, 1976, 299, 951, 817, - /* 1530 */ 1410, 305, 949, 509, 1842, 1629, 1716, 239, 819, 303, - /* 1540 */ 414, 630, 238, 297, 657, 659, 307, 654, 1844, 106, - /* 1550 */ 661, 566, 745, 2007, 2008, 1411, 497, 1819, 446, 631, - /* 1560 */ 309, 653, 651, 652, 107, 821, 550, 739, 1987, 1985, - /* 1570 */ 1986, 1988, 311, 823, 1412, 391, 1889, 1817, 439, 632, - /* 1580 */ 825, 1636, 1642, 1638, 665, 312, 1644, 1640, 108, 314, - /* 1590 */ 551, 740, 1991, 1989, 1990, 1992, 316, 827, 831, 1413, - /* 1600 */ 320, 322, 1815, 318, 633, 1535, 2015, 2016, 2013, 2014, - /* 1610 */ 829, 2019, 2020, 2017, 2018, 662, 407, 109, 833, 552, - /* 1620 */ 741, 1995, 1993, 1994, 1996, 837, 1414, 835, 1888, 1810, - /* 1630 */ 634, 1687, 1690, 1688, 1691, 1689, 110, 324, 553, 742, - /* 1640 */ 1999, 1997, 1998, 2000, 326, 841, 845, 1415, 839, 1814, - /* 1650 */ 1708, 328, 635, 241, 1846, 1145, 843, 1667, 1670, 331, - /* 1660 */ 1668, 663, 410, 1671, 1669, 111, 242, 471, 337, 568, - /* 1670 */ 243, 335, 473, 555, 1027, 1028, 1008, 1009, 333, 851, - /* 1680 */ 853, 953, 1416, 248, 457, 443, 955, 671, 1830, 1635, - /* 1690 */ 1722, 393, 967, 965, 969, 971, 246, 441, 416, 636, - /* 1700 */ 244, 959, 957, 961, 963, 245, 847, 849, 1168, 1170, - /* 1710 */ 339, 395, 1836, 112, 855, 556, 766, 1417, 857, 1890, - /* 1720 */ 1809, 637, 1674, 1683, 1677, 1860, 1686, 1680, 113, 564, - /* 1730 */ 738, 1983, 1981, 1982, 1984, 1418, 1820, 114, 475, 341, - /* 1740 */ 477, 557, 1068, 1069, 726, 1941, 1942, 343, 861, 1419, - /* 1750 */ 859, 482, 1825, 345, 638, 863, 1698, 1701, 1699, 1702, - /* 1760 */ 1700, 115, 646, 347, 869, 559, 728, 1947, 1945, 1946, - /* 1770 */ 1948, 351, 867, 1420, 865, 383, 1828, 353, 871, 639, - /* 1780 */ 349, 1550, 1646, 1113, 647, 1652, 1824, 1648, 729, 1951, - /* 1790 */ 1949, 1950, 1952, 1654, 223, 1904, 1650, 116, 560, 719, - /* 1800 */ 1919, 1917, 1918, 1920, 355, 875, 879, 1421, 873, 359, - /* 1810 */ 1887, 1813, 357, 640, 1660, 877, 1656, 768, 1663, 1577, - /* 1820 */ 254, 1658, 732, 1963, 1961, 1962, 1964, 720, 1923, 1921, - /* 1830 */ 1922, 1924, 718, 1915, 1916, 1665, 664, 1661, 117, 249, - /* 1840 */ 479, 369, 569, 250, 365, 481, 561, 1029, 1030, 1066, - /* 1850 */ 1012, 1067, 1013, 1070, 363, 973, 887, 883, 881, 1422, - /* 1860 */ 367, 975, 540, 1843, 1631, 1718, 398, 979, 977, 981, - /* 1870 */ 983, 252, 426, 422, 420, 424, 371, 418, 641, 251, - /* 1880 */ 361, 885, 1497, 1471, 1463, 1494, 1468, 1460, 1524, 1484, - /* 1890 */ 1512, 1454, 1482, 1509, 1450, 1554, 1481, 1453, 1483, 1449, - /* 1900 */ 118, 666, 567, 770, 891, 1423, 675, 1845, 624, 889, - /* 1910 */ 1527, 1492, 1518, 1466, 1490, 1515, 1458, 1489, 1465, 1491, - /* 1920 */ 1457, 1709, 1431, 119, 893, 570, 895, 565, 1031, 1032, - /* 1930 */ 1015, 1016, 1080, 1079, 744, 2005, 2006, 901, 1424, 899, - /* 1940 */ 897, 373, 1703, 713, 1704, 1706, 1705, 1707, 120, 563, - /* 1950 */ 723, 1935, 1933, 1934, 1936, 1425, 903, 1821, 905, 121, - /* 1960 */ 985, 538, 253, 547, 1023, 1024, 1000, 1001, 1048, 1047, - /* 1970 */ 746, 2011, 2009, 2010, 2012, 987, 1426, 907, 989, 669, - /* 1980 */ 255, 649, 375, 991, 1692, 715, 1696, 1694, 1693, 660, - /* 1990 */ 1697, 396, 1695, 122, 628, 378, 546, 727, 1943, 1944, - /* 2000 */ 911, 1427, 380, 400, 1826, 382, 629, 909, 733, 1967, - /* 2010 */ 1965, 1966, 1968, 913, 1647, 1653, 1822, 1649, 769, 1655, - /* 2020 */ 1651 - }; diff --git a/src/stamp-steps b/src/stamp-steps deleted file mode 100644 index 9788f70..0000000 --- a/src/stamp-steps +++ /dev/null @@ -1 +0,0 @@ -timestamp diff --git a/src/stamp-strip b/src/stamp-strip deleted file mode 100644 index 9788f70..0000000 --- a/src/stamp-strip +++ /dev/null @@ -1 +0,0 @@ -timestamp diff --git a/src/strip-data.c b/src/strip-data.c deleted file mode 100644 index 193a55d..0000000 --- a/src/strip-data.c +++ /dev/null @@ -1,3993 +0,0 @@ -/* DO NOT MODIFY THIS FILE! It was generated by `recode/tables.py'. */ - -/* Conversion of files between different charsets and surfaces. - Copyright © 1999 Free Software Foundation, Inc. - Contributed by François Pinard , 1993, 1997. - - This 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. - - 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the Recode 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. */ - -#include "common.h" - -/* ISO_646.basic - ref - ISO_646.basic:1983 -*/ - -static struct strip_data data_0 = - { - ucs2_data_pool, - { - 0, 0, 0, 0, 8, 16, 24, 32, 40, 48, 56, 64, - 72, 80, 88, 96, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* INVARIANT - iso-ir-170 -*/ - -static struct strip_data data_1 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 8, 16, 24, 32, 40, 48, 56, 64, - 72, 80, 88, 136, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* ISO_646.irv - iso-ir-2 - ISO_646.irv:1983 - irv -*/ - -static struct strip_data data_2 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 144, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 176, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* BS_4730 - iso-ir-4 - ISO646-GB - gb - uk -*/ - -static struct strip_data data_3 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 184, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 176, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* ANSI_X3.4-1968 - iso-ir-6 - ANSI_X3.4-1986 - ISO_646.irv:1991 - ASCII - ISO646-US - US-ASCII - us - IBM367 - CP367 - 367 -*/ - -static struct strip_data data_4 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* NATS-SEFI - iso-ir-8-1 -*/ - -static struct strip_data data_5 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 208, 48, 56, 216, - 224, 80, 88, 232, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* NATS-SEFI-ADD - iso-ir-8-2 -*/ - -static struct strip_data data_6 = - { - ucs2_data_pool, - { - 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 248, 256, - 264, 0, 272, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* NATS-DANO - iso-ir-9-1 -*/ - -static struct strip_data data_7 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 288, 16, 24, 32, 208, 48, 56, 296, - 224, 80, 88, 304, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* NATS-DANO-ADD - iso-ir-9-2 -*/ - -static struct strip_data data_8 = - { - ucs2_data_pool, - { - 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 248, 312, - 264, 0, 272, 320, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* SEN_850200_B - iso-ir-10 - FI - ISO646-FI - ISO646-SE - se - SS636127 -*/ - -static struct strip_data data_9 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 144, 16, 24, 32, 152, 48, 56, 328, - 168, 80, 88, 336, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* SEN_850200_C - iso-ir-11 - ISO646-SE2 - se2 -*/ - -static struct strip_data data_10 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 144, 16, 24, 32, 344, 48, 56, 352, - 360, 80, 88, 368, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* JIS_C6220-1969-jp - JIS_C6220-1969 - iso-ir-13 - katakana - x0201-7 -*/ - -static struct strip_data data_11 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 376, 384, 392, 400, 408, 416, 424, 432, - 0, 0, 0, 440, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* JIS_C6220-1969-ro - iso-ir-14 - jp - ISO646-JP -*/ - -static struct strip_data data_12 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 448, - 168, 80, 88, 176, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* IT - iso-ir-15 - ISO646-IT -*/ - -static struct strip_data data_13 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 184, 16, 24, 32, 456, 48, 56, 464, - 472, 80, 88, 480, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* PT - iso-ir-16 - ISO646-PT -*/ - -static struct strip_data data_14 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 456, 48, 56, 488, - 168, 80, 88, 496, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* ES - iso-ir-17 - ISO646-ES -*/ - -static struct strip_data data_15 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 184, 16, 24, 32, 456, 48, 56, 504, - 168, 80, 88, 512, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* greek7-old - iso-ir-18 -*/ - -static struct strip_data data_16 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 184, 16, 24, 32, 520, 528, 536, 544, - 552, 560, 568, 576, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* latin-greek - iso-ir-19 -*/ - -static struct strip_data data_17 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 184, 16, 24, 32, 152, 48, 56, 160, - 552, 560, 568, 584, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* DIN_66003 - iso-ir-21 - de - ISO646-DE -*/ - -static struct strip_data data_18 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 456, 48, 56, 592, - 168, 80, 88, 600, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* NF_Z_62-010_(1973) - iso-ir-25 - ISO646-FR1 -*/ - -static struct strip_data data_19 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 184, 16, 24, 32, 608, 48, 56, 616, - 168, 80, 88, 624, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* Latin-greek-1 - iso-ir-27 -*/ - -static struct strip_data data_20 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 632, 16, 24, 640, 648, 48, 56, 656, - 168, 80, 88, 176, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* ISO_5427 - iso-ir-37 -*/ - -static struct strip_data data_21 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 144, 16, 24, 32, 664, 672, 680, 688, - 696, 704, 712, 720, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* BS_viewdata - iso-ir-47 -*/ - -static struct strip_data data_22 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 184, 16, 24, 32, 152, 48, 56, 728, - 168, 80, 88, 736, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* INIS - iso-ir-49 -*/ - -static struct strip_data data_23 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 744, 16, 24, 752, 40, 48, 56, 760, - 72, 80, 88, 768, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* INIS-8 - iso-ir-50 -*/ - -static struct strip_data data_24 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 776, 0, 0, 784, 0, 0, 0, 792, - 800, 808, 816, 824, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* INIS-cyrillic - iso-ir-51 -*/ - -static struct strip_data data_25 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 776, 832, 840, 848, 664, 672, 680, 688, - 696, 704, 712, 720, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* ISO_5427-ext - iso-ir-54 - ISO_5427:1981 -*/ - -static struct strip_data data_26 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 776, 0, 0, 0, 856, 864, 872, 880, - 888, 896, 904, 440, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* ISO_5428 - iso-ir-55 - ISO_5428:1980 -*/ - -static struct strip_data data_27 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 912, 0, 920, 928, 936, 944, 952, 960, - 968, 976, 984, 992, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* GB_1988-80 - iso-ir-57 - cn - ISO646-CN -*/ - -static struct strip_data data_28 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 1000, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 176, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* NS_4551-1 - iso-ir-60 - ISO646-NO - no -*/ - -static struct strip_data data_29 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 1008, - 168, 80, 88, 1016, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* NS_4551-2 - ISO646-NO2 - iso-ir-61 - no2 -*/ - -static struct strip_data data_30 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 1024, 16, 24, 32, 152, 48, 56, 1008, - 168, 80, 88, 1032, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* NF_Z_62-010 - iso-ir-69 - ISO646-FR - fr -*/ - -static struct strip_data data_31 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 184, 16, 24, 32, 608, 48, 56, 616, - 1040, 80, 88, 624, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* PT2 - iso-ir-84 - ISO646-PT2 -*/ - -static struct strip_data data_32 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 1048, 48, 56, 488, - 168, 80, 88, 1056, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* ES2 - iso-ir-85 - ISO646-ES2 -*/ - -static struct strip_data data_33 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 1064, 48, 56, 1072, - 168, 80, 88, 1080, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* MSZ_7795.3 - iso-ir-86 - ISO646-HU - hu -*/ - -static struct strip_data data_34 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 144, 16, 24, 32, 1088, 48, 56, 1096, - 1104, 80, 88, 1112, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* greek7 - iso-ir-88 -*/ - -static struct strip_data data_35 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 144, 16, 24, 32, 1120, 1128, 1136, 1144, - 1152, 1160, 1168, 1176, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* ASMO_449 - ISO_9036 - arabic7 - iso-ir-89 -*/ - -static struct strip_data data_36 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 144, 1184, 24, 1192, 1200, 1208, 1216, 1224, - 1232, 1240, 1248, 1256, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* JIS_C6229-1984-a - iso-ir-91 - jp-ocr-a -*/ - -static struct strip_data data_37 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 1264, 16, 24, 1272, 40, 48, 56, 1280, - 0, 0, 0, 1288, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* JIS_C6229-1984-b - iso-ir-92 - ISO646-JP-OCR-B - jp-ocr-b -*/ - -static struct strip_data data_38 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 1296, - 72, 80, 88, 1304, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* JIS_C6229-1984-b-add - iso-ir-93 - jp-ocr-b-add -*/ - -static struct strip_data data_39 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 1312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* JIS_C6229-1984-hand - iso-ir-94 - jp-ocr-hand -*/ - -static struct strip_data data_40 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 1296, - 0, 0, 0, 1320, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* JIS_C6229-1984-hand-add - iso-ir-95 - jp-ocr-hand-add -*/ - -static struct strip_data data_41 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 1328, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* JIS_C6229-1984-kana - iso-ir-96 -*/ - -static struct strip_data data_42 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 1336, 0, 392, 400, 408, 416, 424, 432, - 0, 0, 0, 440, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* ISO_2033-1983 - iso-ir-98 - e13b -*/ - -static struct strip_data data_43 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 776, 0, 24, 1344, 0, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* ISO-8859-1 - iso-ir-100 - ISO_8859-1:1987 - ISO_8859-1 - ISO8859-1 - latin1 - l1 - IBM819 - CP819 - 819 -*/ - -static struct strip_data data_44 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 1384, 1392, 1400, 1408, - 1416, 1424, 1432, 1440, 1448, 1456, 1464, 1472 - } - }; - -/* ISO-8859-2 - iso-ir-101 - ISO_8859-2:1987 - ISO_8859-2 - ISO8859-2 - latin2 - l2 - IBM912 - CP912 - 912 -*/ - -static struct strip_data data_45 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 1480, 1488, 1496, 1504, - 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568 - } - }; - -/* T.61-7bit - iso-ir-102 -*/ - -static struct strip_data data_46 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 144, 16, 24, 32, 152, 48, 56, 1576, - 72, 80, 88, 768, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* ISO-8859-3 - iso-ir-109 - ISO_8859-3:1988 - ISO_8859-3 - ISO8859-3 - latin3 - l3 -*/ - -static struct strip_data data_47 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 1584, 1592, 1600, 1608, - 1616, 1424, 1624, 1632, 1640, 1456, 1648, 1656 - } - }; - -/* ISO-8859-4 - iso-ir-110 - ISO_8859-4:1988 - ISO_8859-4 - ISO8859-4 - latin4 - l4 -*/ - -static struct strip_data data_48 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 1664, 1672, 1680, 1688, - 1696, 1704, 1712, 1720, 1728, 1736, 1744, 1752 - } - }; - -/* ECMA-cyrillic - iso-ir-111 - ECMA-113:1986 - ECMA-113 -*/ - -static struct strip_data data_49 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 1760, 1768, 1776, 1784, - 664, 672, 680, 688, 696, 704, 712, 1792 - } - }; - -/* CSA_Z243.4-1985-1 - iso-ir-121 - ISO646-CA - csa7-1 - ca -*/ - -static struct strip_data data_50 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 608, 48, 56, 1800, - 1808, 80, 88, 1816, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* CSA_Z243.4-1985-2 - iso-ir-122 - ISO646-CA2 - csa7-2 -*/ - -static struct strip_data data_51 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 608, 48, 56, 1824, - 1808, 80, 88, 1816, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* CSA_Z243.4-1985-gr - iso-ir-123 -*/ - -static struct strip_data data_52 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 1832, 1840, 800, 1848, - 1856, 1864, 1872, 1880, 1888, 1896, 1904, 1912 - } - }; - -/* ISO-8859-7 - iso-ir-126 - ISO_8859-7:1987 - ISO_8859-7 - ISO8859-7 - ELOT_928 - ECMA-118 - greek - greek8 -*/ - -static struct strip_data data_53 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 1920, 1928, 1936, 1944, - 1952, 1960, 1968, 1976, 1984, 1992, 2000, 2008 - } - }; - -/* ISO-8859-6 - iso-ir-127 - ISO_8859-6:1987 - ISO_8859-6 - ISO8859-6 - ECMA-114 - ASMO-708 - arabic -*/ - -static struct strip_data data_54 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 2016, 2024, 0, 2032, - 2040, 1208, 1216, 2048, 1232, 1240, 1248, 0 - } - }; - -/* ISO-8859-8 - iso-ir-138 - ISO_8859-8:1988 - ISO_8859-8 - ISO8859-8 - hebrew -*/ - -static struct strip_data data_55 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 2056, 2064, 1400, 2072, - 0, 0, 0, 2080, 2088, 2096, 2104, 2112 - } - }; - -/* CSN_369103 - iso-ir-139 - KOI-8_L2 - koi8l2 -*/ - -static struct strip_data data_56 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 144, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 2120, 1488, 1496, 1504, - 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568 - } - }; - -/* JUS_I.B1.002 - iso-ir-141 - ISO646-YU - js - yu -*/ - -static struct strip_data data_57 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 2128, 48, 56, 2136, - 2144, 80, 88, 2152, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* IEC_P27-1 - iso-ir-143 -*/ - -static struct strip_data data_58 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 2160, 2168, 2176, 2184, - 2192, 2200, 2208, 2216, 2224, 2232, 2240, 2248 - } - }; - -/* ISO-8859-5 - iso-ir-144 - ISO_8859-5:1988 - ISO_8859-5 - ISO8859-5 - cyrillic -*/ - -static struct strip_data data_59 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 2256, 2264, 2272, 2280, - 2288, 2296, 2304, 2312, 2320, 2328, 2336, 2344 - } - }; - -/* JUS_I.B1.003-serb - iso-ir-146 - serbian -*/ - -static struct strip_data data_60 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 2352, 2360, 2368, 2376, - 2384, 2392, 2400, 2408, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* JUS_I.B1.003-mac - macedonian - iso-ir-147 -*/ - -static struct strip_data data_61 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 2352, 2360, 2368, 2416, - 2384, 2392, 2400, 2424, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* ISO-8859-9 - iso-ir-148 - ISO_8859-9:1989 - ISO_8859-9 - ISO8859-9 - latin5 - l5 -*/ - -static struct strip_data data_62 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 1384, 1392, 1400, 1408, - 1416, 1424, 2432, 2440, 1448, 2448, 2456, 2464 - } - }; - -/* greek-ccitt - iso-ir-150 -*/ - -static struct strip_data data_63 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 144, 16, 24, 32, 1120, 1960, 1968, 2472, - 2480, 1992, 2000, 2488, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* NC_NC00-10 - cuba - NC_NC00-10:81 - iso-ir-151 - ISO646-CU -*/ - -static struct strip_data data_64 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 144, 16, 24, 32, 152, 48, 56, 2496, - 168, 80, 88, 2504, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* ISO_6937-2-25 - iso-ir-152 -*/ - -static struct strip_data data_65 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 144, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 2512, 2520, 0, 2528, - 0, 0, 2536, 2544, 2552, 2560, 2568, 2576 - } - }; - -/* GOST_19768-87 - ST_SEV_358-88 - iso-ir-153 -*/ - -static struct strip_data data_66 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 2584, 2592, 2272, 2280, - 2288, 2296, 2304, 2312, 2320, 2328, 2600, 0 - } - }; - -/* ISO_8859-supp - iso-ir-154 - latin1-2-5 -*/ - -static struct strip_data data_67 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 2608, 2616, 2624, 2632, - 2640, 2648, 2656, 2664, 2672, 2680, 2688, 2696 - } - }; - -/* ISO_10367-box - iso-ir-155 -*/ - -static struct strip_data data_68 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 0, 0, 0, 0, - 2704, 2712, 2720, 2728, 0, 0, 0, 0 - } - }; - -/* ISO-8859-10 - iso-ir-157 - ISO_8859-10:1993 - ISO_8859-10 - ISO8859-10 - L6 - latin6 -*/ - -static struct strip_data data_69 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 2736, 2744, 2752, 2760, - 1696, 2768, 2776, 2784, 1728, 2792, 2800, 2808 - } - }; - -/* ISO-8859-13 - iso-ir-179a - ISO_8859-13:1998 - ISO_8859-13 - ISO8859-13 - latin7 - iso-baltic - l7 -*/ - -static struct strip_data data_70 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 2816, 1392, 2824, 1408, - 2832, 2840, 2848, 2856, 2864, 2872, 2880, 2888 - } - }; - -/* ISO-8859-14 - iso-ir-199 - ISO_8859-14:1998 - ISO_8859-14 - ISO8859-14 - latin8 - iso-celtic - l8 -*/ - -static struct strip_data data_71 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 2896, 2904, 2912, 2920, - 1416, 1424, 2928, 2936, 1448, 1456, 2944, 2952 - } - }; - -/* ISO-8859-15 - iso-ir-203 - ISO_8859-15:1998 - ISO_8859-15 - ISO8859-15 - latin9 - l9 -*/ - -static struct strip_data data_72 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 2960, 2968, 2976, 2984, - 1416, 1424, 1432, 1440, 1448, 1456, 1464, 1472 - } - }; - -/* sami - latin-lap - lap - iso-ir-158 -*/ - -static struct strip_data data_73 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 2992, 0, 3000, 0, - 3008, 3016, 0, 0, 3024, 3032, 0, 0 - } - }; - -/* baltic - iso-ir-179 -*/ - -static struct strip_data data_74 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 3040, 3048, 1400, 3056, - 3064, 3072, 3080, 3088, 3096, 3104, 3112, 3120 - } - }; - -/* DS_2089 - DS2089 - ISO646-DK - dk -*/ - -static struct strip_data data_75 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 1008, - 168, 80, 88, 3128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* JIS_X0201 - X0201 -*/ - -static struct strip_data data_76 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 448, - 168, 80, 88, 176, 1352, 1360, 1368, 1376, 3136, 384, 392, 400, - 408, 416, 424, 432, 0, 0, 0, 0 - } - }; - -/* KSC5636 - ISO646-KR -*/ - -static struct strip_data data_77 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 3144, - 168, 80, 88, 200, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* DEC-MCS - dec -*/ - -static struct strip_data data_78 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 3152, 3160, 3168, 3176, - 1416, 1424, 3184, 3192, 1448, 1456, 3200, 3208 - } - }; - -/* hp-roman8 - roman8 - r8 -*/ - -static struct strip_data data_79 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 1352, 1360, 1368, 1376, 3216, 3224, 3232, 3240, - 3248, 3256, 3264, 3272, 3280, 3288, 3296, 3304 - } - }; - -/* NeXTSTEP - next -*/ - -static struct strip_data data_80 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 3312, 1424, 3320, 3328, 3336, 3344, 3352, 3360, - 3368, 3376, 3384, 3392, 3400, 3408, 3416, 3424 - } - }; - -/* macintosh - mac -*/ - -static struct strip_data data_81 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 3432, 3440, 3448, 3456, 3464, 3472, 3480, 3488, - 3496, 3504, 3512, 3520, 3528, 3536, 3544, 3552 - } - }; - -/* mac-is -*/ - -static struct strip_data data_82 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 3432, 3440, 3448, 3456, 3464, 3472, 3480, 3488, - 3496, 3560, 3568, 3576, 3528, 3536, 3544, 3552 - } - }; - -/* IBM037 - CP037 - 037 - ebcdic-cp-us - ebcdic-cp-ca - ebcdic-cp-wt - ebcdic-cp-nl -*/ - -static struct strip_data data_83 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 3648, 3656, 3664, 3672, - 3680, 3688, 3696, 3704, 3712, 3720, 3728, 3736, 3744, 3752, 3760, 3768, - 3776, 3784, 3792, 3800, 3808, 3816, 24, 3824 - } - }; - -/* IBM038 - EBCDIC-INT - CP038 - 038 -*/ - -static struct strip_data data_84 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 3832, 3840, 3848, - 3856, 3864, 0, 3872, 72, 3880, 3888, 3896, 3904, 3912, 0, 0, - 3776, 3920, 3792, 3928, 3936, 3944, 24, 3952 - } - }; - -/* IBM256 - EBCDIC-INT1 - CP256 - 256 -*/ - -static struct strip_data data_85 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 3648, 3960, 3664, 3968, - 3680, 3688, 3696, 3704, 3712, 3720, 3728, 3736, 3744, 3752, 3976, 3984, - 3776, 3784, 3792, 3800, 3992, 3816, 24, 3824 - } - }; - -/* IBM273 - CP273 - 273 -*/ - -static struct strip_data data_86 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 4000, 4008, 3664, 4016, - 4024, 4032, 3696, 4040, 3712, 3720, 3728, 3736, 4048, 3752, 4056, 4064, - 4072, 4080, 4088, 4096, 4104, 4112, 24, 4120 - } - }; - -/* IBM274 - EBCDIC-BE - CP274 - 274 -*/ - -static struct strip_data data_87 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 3832, 3840, 3848, - 3856, 4128, 0, 4136, 72, 3880, 3888, 3896, 4144, 3912, 0, 0, - 4152, 3920, 4160, 3928, 4168, 3944, 24, 3952 - } - }; - -/* IBM275 - EBCDIC-BR - CP275 - 275 -*/ - -static struct strip_data data_88 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 4176, 3840, 4184, - 3856, 4192, 0, 4200, 72, 3880, 3888, 3896, 3904, 3912, 0, 0, - 4208, 3920, 4216, 3928, 3936, 3944, 24, 3952 - } - }; - -/* IBM277 - EBCDIC-CP-DK - EBCDIC-CP-NO -*/ - -static struct strip_data data_89 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 4224, 4232, 3664, 4240, - 4248, 4256, 4264, 4272, 4280, 3720, 3728, 4288, 4296, 3752, 4304, 4064, - 4312, 3784, 4320, 4328, 3808, 3816, 24, 3824 - } - }; - -/* IBM278 - CP278 - 278 - ebcdic-cp-fi - ebcdic-cp-se -*/ - -static struct strip_data data_90 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 4336, 4344, 4352, 4240, - 4360, 4032, 3696, 4368, 3712, 3720, 3728, 4376, 4296, 3752, 4384, 4064, - 4072, 4080, 4320, 4328, 3808, 4392, 24, 3824 - } - }; - -/* IBM280 - CP280 - 280 - ebcdic-cp-it -*/ - -static struct strip_data data_91 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 4400, 4408, 4416, 4424, - 3680, 4432, 3696, 4440, 3712, 3720, 4448, 3736, 4456, 3752, 4464, 4064, - 608, 4472, 4160, 4480, 4488, 3816, 24, 3824 - } - }; - -/* IBM281 - EBCDIC-JP-E - CP281 - 281 -*/ - -static struct strip_data data_92 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 4496, 3840, 4504, - 3856, 3864, 0, 3872, 72, 3880, 3888, 3896, 4512, 3912, 0, 0, - 3776, 3920, 3792, 3928, 4520, 3944, 24, 3952 - } - }; - -/* IBM284 - CP284 - 284 - ebcdic-cp-es -*/ - -static struct strip_data data_93 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 3648, 4528, 3664, 4536, - 3680, 4544, 3696, 4552, 3712, 3720, 3728, 3736, 4560, 3752, 4304, 4568, - 3776, 3784, 3792, 3800, 3808, 3816, 24, 3824 - } - }; - -/* IBM285 - CP285 - 285 - ebcdic-cp-gb -*/ - -static struct strip_data data_94 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 3648, 4576, 3664, 4584, - 3680, 3688, 3696, 3704, 3712, 3720, 3728, 3736, 4592, 3752, 4600, 4608, - 3776, 3784, 3792, 3800, 3808, 3816, 24, 3824 - } - }; - -/* IBM290 - CP290 - 290 - EBCDIC-JP-kana -*/ - -static struct strip_data data_95 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 376, 4616, 4624, 4632, - 3856, 3864, 0, 3872, 4640, 4648, 4656, 4664, 4672, 4680, 0, 4688, - 40, 3920, 4696, 3928, 4520, 3944, 24, 3952 - } - }; - -/* IBM297 - CP297 - 297 - ebcdic-cp-fr -*/ - -static struct strip_data data_96 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 4704, 4408, 4712, 4720, - 3680, 4728, 3696, 4736, 3712, 3720, 4448, 3736, 4744, 3752, 4752, 4760, - 4152, 3784, 4160, 4768, 4488, 3816, 24, 3824 - } - }; - -/* IBM420 - CP420 - 420 - ebcdic-cp-ar1 -*/ - -static struct strip_data data_97 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 4776, 4784, 4792, 4800, - 4808, 4816, 4824, 4832, 4840, 4848, 4856, 4864, 4872, 4880, 4888, 4896, - 4904, 4912, 4920, 4928, 4936, 4944, 24, 4952 - } - }; - -/* IBM423 - CP423 - 423 - ebcdic-cp-gr -*/ - -static struct strip_data data_98 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 4960, 4968, 4976, 4984, - 4992, 5000, 5008, 5016, 5024, 5032, 5040, 5048, 5056, 5064, 5072, 5080, - 5088, 5096, 5104, 5112, 5120, 5128, 24, 5136 - } - }; - -/* IBM424 - CP424 - 424 - ebcdic-cp-he -*/ - -static struct strip_data data_99 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 5144, 5152, 5160, 5168, - 5176, 5184, 5192, 5200, 72, 5208, 3728, 5216, 3744, 5224, 3760, 5232, - 3776, 5240, 3792, 5248, 3808, 5256, 24, 5264 - } - }; - -/* IBM437 - CP437 - 437 -*/ - -static struct strip_data data_100 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 5272, 5280, 5288, 5296, 5304, 5312, 5320, 5328, - 5336, 5344, 5352, 5360, 5368, 5376, 5384, 5392 - } - }; - -/* IBM500 - CP500 - 500 - 500V1 - ebcdic-cp-be - ebcdic-cp-ch -*/ - -static struct strip_data data_101 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 3648, 3960, 3664, 3968, - 3680, 3688, 3696, 3704, 3712, 3720, 3728, 3736, 3744, 3752, 4304, 5400, - 3776, 3784, 3792, 3800, 3808, 3816, 24, 3824 - } - }; - -/* IBM850 - CP850 - 850 -*/ - -static struct strip_data data_102 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 5272, 5280, 5288, 5408, 5304, 5416, 5424, 5432, - 5440, 5448, 5456, 5464, 5472, 5480, 5488, 5496 - } - }; - -/* IBM851 - CP851 - 851 -*/ - -static struct strip_data data_103 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 5504, 5512, 5520, 5528, 5536, 5544, 5552, 5560, - 5568, 5576, 5584, 5592, 5600, 5608, 5616, 5624 - } - }; - -/* IBM852 - CP852 - 852 - pcl2 - pclatin2 -*/ - -static struct strip_data data_104 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 5632, 5640, 5648, 5656, 5664, 5672, 5680, 5688, - 5696, 5448, 5704, 5712, 5720, 5728, 5736, 5744 - } - }; - -/* IBM855 - CP855 - 855 -*/ - -static struct strip_data data_105 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 5752, 5760, 5768, 5776, 5784, 5792, 5800, 5808, - 5816, 5448, 5824, 5832, 5840, 5848, 5856, 5864 - } - }; - -/* IBM857 - CP857 - 857 -*/ - -static struct strip_data data_106 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 5272, 5872, 5288, 5880, 5888, 5416, 5424, 5432, - 5440, 5448, 5896, 5464, 5904, 5912, 5920, 5928 - } - }; - -/* IBM860 - CP860 - 860 -*/ - -static struct strip_data data_107 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 5936, 5944, 5952, 5960, 5304, 5968, 5320, 5328, - 5336, 5344, 5352, 5360, 5368, 5376, 5384, 5392 - } - }; - -/* IBM861 - CP861 - 861 - cp-is -*/ - -static struct strip_data data_108 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 5272, 5976, 5984, 5992, 6000, 6008, 5320, 5328, - 5336, 5344, 5352, 5360, 5368, 5376, 5384, 5392 - } - }; - -/* IBM862 - CP862 - 862 -*/ - -static struct strip_data data_109 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 2088, 2096, 2104, 6016, 5304, 6008, 5320, 5328, - 5336, 5344, 5352, 5360, 5368, 5376, 5384, 5392 - } - }; - -/* IBM863 - CP863 - 863 -*/ - -static struct strip_data data_110 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 6024, 6032, 6040, 6048, 6056, 6064, 5320, 5328, - 5336, 5344, 5352, 5360, 5368, 6072, 5384, 6080 - } - }; - -/* IBM864 - CP864 - 864 -*/ - -static struct strip_data data_111 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 6088, 6096, 6104, 6112, 6120, 6128, 6136, 6144, - 6152, 6160, 6168, 6176, 6184, 6192, 6200, 6208 - } - }; - -/* IBM865 - CP865 - 865 -*/ - -static struct strip_data data_112 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 5272, 5280, 5288, 6216, 5304, 5312, 5320, 5328, - 5336, 5344, 5352, 5360, 5368, 6072, 5384, 6080 - } - }; - -/* IBM868 - CP868 - 868 - cp-ar -*/ - -static struct strip_data data_113 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 6136, 6224, 6232, 6240, 6248, 6256, 6264, 6272, - 6280, 6288, 6296, 6304, 6312, 6320, 6328, 6336 - } - }; - -/* IBM869 - CP869 - 869 - cp-gr -*/ - -static struct strip_data data_114 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 6344, 6352, 6360, 6368, 5536, 5544, 6376, 6384, - 5568, 5576, 5584, 5592, 5600, 5608, 6392, 5624 - } - }; - -/* IBM870 - CP870 - 870 - ebcdic-cp-roece - ebcdic-cp-yu -*/ - -static struct strip_data data_115 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 6400, 6408, 6416, 6424, - 6432, 6440, 6448, 6456, 6464, 6472, 3728, 6480, 6488, 6496, 6504, 6512, - 3776, 6520, 3792, 6528, 3808, 6536, 24, 6544 - } - }; - -/* IBM871 - CP871 - 871 - ebcdic-cp-is -*/ - -static struct strip_data data_116 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 3648, 6552, 3664, 6560, - 3680, 3688, 3696, 6568, 3712, 6576, 3728, 6584, 6592, 6600, 4304, 6608, - 6616, 6624, 6632, 3800, 6640, 6648, 24, 3824 - } - }; - -/* IBM875 - CP875 - 875 - EBCDIC-Greek -*/ - -static struct strip_data data_117 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 4960, 4968, 4976, 4984, - 4992, 6656, 6664, 6672, 6680, 5032, 3728, 5048, 6688, 6696, 6704, 6712, - 3776, 6720, 3792, 6728, 3936, 6736, 24, 6744 - } - }; - -/* IBM880 - CP880 - 880 - EBCDIC-Cyrillic -*/ - -static struct strip_data data_118 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 6752, 6760, 6768, 6776, - 6784, 6792, 6800, 6808, 6816, 6824, 6832, 6840, 6848, 6856, 688, 696, - 40, 6864, 4696, 6872, 6880, 6888, 24, 6896 - } - }; - -/* IBM891 - CP891 - 891 -*/ - -static struct strip_data data_119 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* IBM903 - CP903 - 903 -*/ - -static struct strip_data data_120 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* IBM904 - CP904 - 904 -*/ - -static struct strip_data data_121 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 6904, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 6912 - } - }; - -/* IBM905 - CP905 - 905 - ebcdic-cp-tr -*/ - -static struct strip_data data_122 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 6920, 6928, 3664, 6936, - 6944, 6952, 6960, 6968, 6464, 6976, 3728, 6984, 6592, 6992, 7000, 7008, - 7016, 7024, 7032, 7040, 7048, 7056, 24, 7064 - } - }; - -/* IBM918 - CP918 - 918 - ebcdic-cp-ar2 -*/ - -static struct strip_data data_123 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 7072, 7080, 7088, 7096, - 7104, 7112, 6136, 7120, 7128, 7136, 3888, 7144, 7152, 7160, 7168, 7176, - 3776, 7184, 3792, 7192, 3936, 7200, 24, 7208 - } - }; - -/* IBM1004 - CP1004 - 1004 - os2latin1 -*/ - -static struct strip_data data_124 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 7216, 7224, 7232, 7240, 1384, 1392, 1400, 1408, - 1416, 1424, 1432, 1440, 1448, 1456, 1464, 1472 - } - }; - -/* IBM1026 - CP1026 - 1026 -*/ - -static struct strip_data data_125 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 3648, 6928, 3664, 6936, - 3680, 6952, 3696, 6968, 3712, 7248, 3728, 7256, 6592, 7264, 4304, 7272, - 7016, 6624, 7032, 7280, 7048, 7288, 24, 7064 - } - }; - -/* IBM1047 - CP1047 - 1047 -*/ - -static struct strip_data data_126 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 3648, 3656, 3664, 7296, - 3680, 3688, 3696, 3704, 3712, 3720, 3728, 3736, 3744, 7304, 7312, 7320, - 3776, 3784, 3792, 3800, 3808, 3816, 24, 3824 - } - }; - -/* CP1250 - ms-ee - 1250 - windows-1250 -*/ - -static struct strip_data data_127 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 7328, 7336, 7232, 7344, 7352, 7360, 7368, 7376, - 1512, 1520, 1528, 1536, 1544, 1552, 1560, 1568 - } - }; - -/* CP1251 - ms-cyrl - 1251 - windows-1251 -*/ - -static struct strip_data data_128 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 7384, 7392, 7400, 7408, 7416, 7424, 7432, 7440, - 2272, 2280, 2288, 2296, 2304, 2312, 2320, 2328 - } - }; - -/* CP1252 - ms-ansi - 1252 - windows-1252 -*/ - -static struct strip_data data_129 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 7448, 7456, 7232, 7240, 1384, 1392, 1400, 1408, - 1416, 1424, 1432, 1440, 1448, 1456, 1464, 1472 - } - }; - -/* CP1253 - ms-greek - 1253 - windows-1253 -*/ - -static struct strip_data data_130 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 7448, 7464, 7232, 7472, 7480, 7488, 7496, 1944, - 1952, 1960, 1968, 1976, 1984, 1992, 2000, 2008 - } - }; - -/* CP1254 - ms-turk - 1254 - windows-1254 -*/ - -static struct strip_data data_131 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 7448, 7224, 7232, 7240, 1384, 1392, 1400, 1408, - 1416, 1424, 2432, 2440, 1448, 2448, 2456, 2464 - } - }; - -/* CP1255 - ms-hebr - 1255 - windows-1255 -*/ - -static struct strip_data data_132 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 7448, 7464, 7232, 7472, 2056, 2064, 1400, 2072, - 0, 0, 0, 2080, 2088, 2096, 2104, 7504 - } - }; - -/* CP1256 - ms-arab - 1256 - windows-1256 -*/ - -static struct strip_data data_133 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 7512, 7520, 7528, 7536, 7544, 7552, 7560, 7568, - 7576, 7584, 7592, 7600, 7608, 7616, 7624, 7632 - } - }; - -/* CP1257 - WinBaltRim - 1257 - windows-1257 -*/ - -static struct strip_data data_134 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 7328, 7464, 7232, 7472, 7640, 7648, 3168, 7656, - 2832, 2840, 2848, 2856, 2864, 2872, 2880, 7664 - } - }; - -/* EBCDIC-AT-DE -*/ - -static struct strip_data data_135 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 7672, 3840, 7680, - 3856, 7688, 0, 7696, 72, 3880, 3888, 3896, 7704, 3912, 0, 0, - 4072, 3920, 4088, 3928, 7712, 3944, 24, 3952 - } - }; - -/* EBCDIC-AT-DE-A -*/ - -static struct strip_data data_136 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 7720, 3840, 7728, - 3856, 7736, 0, 7744, 72, 3880, 3888, 3896, 7752, 3912, 0, 0, - 40, 3920, 4696, 3928, 7760, 3944, 24, 3952 - } - }; - -/* EBCDIC-CA-FR -*/ - -static struct strip_data data_137 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 7768, 7776, 7784, 7792, - 7800, 7808, 7816, 3872, 72, 3880, 3888, 3896, 4144, 3912, 0, 0, - 4152, 7824, 4160, 7832, 7840, 7848, 24, 7856 - } - }; - -/* EBCDIC-DK-NO -*/ - -static struct strip_data data_138 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 7864, 3840, 7872, - 3856, 7880, 0, 7888, 72, 3880, 3888, 3896, 7896, 3912, 0, 0, - 4312, 3920, 4320, 3928, 3936, 3944, 24, 3952 - } - }; - -/* EBCDIC-DK-NO-A -*/ - -static struct strip_data data_139 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 7904, 3840, 7912, - 3856, 3864, 0, 7920, 72, 3880, 3888, 3896, 7752, 3912, 0, 0, - 40, 3920, 4696, 3928, 7760, 3944, 24, 3952 - } - }; - -/* EBCDIC-FI-SE -*/ - -static struct strip_data data_140 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 7928, 3840, 7872, - 3856, 7688, 0, 7936, 72, 3880, 3888, 3896, 7896, 3912, 0, 0, - 4072, 3920, 4320, 3928, 7944, 3944, 24, 3952 - } - }; - -/* EBCDIC-FI-SE-A -*/ - -static struct strip_data data_141 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 7720, 3840, 7912, - 3856, 3864, 0, 7744, 72, 3880, 3888, 3896, 7752, 3912, 0, 0, - 40, 3920, 4696, 3928, 7760, 3944, 24, 3952 - } - }; - -/* EBCDIC-FR -*/ - -static struct strip_data data_142 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 7952, 3840, 7960, - 3856, 4128, 0, 7968, 72, 3880, 3888, 3896, 4144, 3912, 0, 0, - 4152, 3920, 4160, 3928, 4168, 3944, 24, 3952 - } - }; - -/* EBCDIC-IT -*/ - -static struct strip_data data_143 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 7952, 3840, 7976, - 3856, 7984, 0, 7992, 72, 3880, 3888, 3896, 8000, 3912, 0, 0, - 608, 3920, 4160, 3928, 4168, 3944, 24, 3952 - } - }; - -/* EBCDIC-PT -*/ - -static struct strip_data data_144 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 3832, 3840, 3848, - 3856, 8008, 0, 8016, 72, 3880, 3888, 3896, 8024, 3912, 0, 0, - 8032, 3920, 5104, 3928, 8040, 3944, 24, 3952 - } - }; - -/* EBCDIC-ES -*/ - -static struct strip_data data_145 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 8048, 3840, 8056, - 3856, 8064, 0, 8072, 72, 3880, 3888, 3896, 4144, 3912, 0, 0, - 3776, 3920, 3792, 3928, 3936, 3944, 24, 3952 - } - }; - -/* EBCDIC-ES-A -*/ - -static struct strip_data data_146 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 8048, 3840, 8056, - 3856, 3864, 0, 8080, 72, 3880, 3888, 3896, 7752, 3912, 0, 0, - 40, 3920, 4696, 3928, 7760, 3944, 24, 3952 - } - }; - -/* EBCDIC-ES-S -*/ - -static struct strip_data data_147 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 8048, 3840, 8088, - 3856, 8064, 0, 8072, 72, 3880, 3888, 3896, 4144, 3912, 0, 0, - 3776, 3920, 3792, 3928, 3936, 3944, 24, 3952 - } - }; - -/* EBCDIC-UK -*/ - -static struct strip_data data_148 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 8096, 3840, 8104, - 3856, 3864, 0, 3872, 72, 3880, 3888, 3896, 4512, 3912, 0, 0, - 3776, 3920, 3792, 3928, 3936, 3944, 24, 3952 - } - }; - -/* EBCDIC-US -*/ - -static struct strip_data data_149 = - { - ucs2_data_pool, - { - 3584, 3592, 3600, 3608, 3616, 3624, 3632, 3640, 776, 8048, 3840, 8088, - 3856, 3864, 0, 3872, 72, 3880, 3888, 3896, 3904, 3912, 0, 0, - 3776, 3920, 3792, 3928, 3936, 3944, 24, 3952 - } - }; - -/* EBCDIC-IS-FRISS - friss -*/ - -static struct strip_data data_150 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 0, 0, 0, 0, 8112, 8120, 8128, 8136, - 3856, 8144, 8152, 8160, 72, 8168, 3888, 3896, 8176, 8184, 0, 8192, - 8200, 8208, 6632, 8216, 8224, 8232, 24, 8240 - } - }; - -/* KOI-7 -*/ - -static struct strip_data data_151 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 144, 16, 24, 32, 152, 48, 56, 160, - 696, 704, 712, 720, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } - }; - -/* KOI-8 - GOST_19768-74 -*/ - -static struct strip_data data_152 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 0, 0, 0, 0, 0, 0, 0, 0, - 664, 672, 680, 688, 696, 704, 712, 8248 - } - }; - -/* KOI8-R -*/ - -static struct strip_data data_153 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 8256, 8264, 8272, 8280, 8288, 8296, 8304, 8312, - 664, 672, 680, 688, 696, 704, 712, 1792 - } - }; - -/* KOI8-RU -*/ - -static struct strip_data data_154 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 8256, 8264, 8320, 8328, 8336, 8344, 8352, 8360, - 664, 672, 680, 688, 696, 704, 712, 1792 - } - }; - -/* KOI8-U -*/ - -static struct strip_data data_155 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 8256, 8264, 8368, 8280, 8336, 8376, 8352, 8384, - 664, 672, 680, 688, 696, 704, 0, 0 - } - }; - -/* CWI - CWI-2 - cp-hu -*/ - -static struct strip_data data_156 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 5272, 8392, 8400, 8408, 8416, 5312, 5320, 5328, - 5336, 5344, 5352, 5360, 8424, 6072, 5384, 6080 - } - }; - -/* macintosh_ce - macce -*/ - -static struct strip_data data_157 = - { - ucs2_data_pool, - { - 104, 112, 120, 128, 192, 16, 24, 32, 152, 48, 56, 160, - 168, 80, 88, 200, 8432, 8440, 8448, 8456, 8464, 8472, 8480, 8488, - 8496, 8504, 8512, 8520, 8528, 8536, 8544, 8552 - } - }; - -bool -module_strips (struct recode_outer *outer) -{ - RECODE_ALIAS alias; - - if (!declare_strip_data (outer, &data_0, "ISO_646.basic")) - return false; - if (!declare_strip_data (outer, &data_1, "INVARIANT")) - return false; - if (!declare_strip_data (outer, &data_2, "ISO_646.irv")) - return false; - if (!declare_strip_data (outer, &data_3, "BS_4730")) - return false; - if (!declare_strip_data (outer, &data_4, "ANSI_X3.4-1968")) - return false; - if (!declare_strip_data (outer, &data_5, "NATS-SEFI")) - return false; - if (!declare_strip_data (outer, &data_6, "NATS-SEFI-ADD")) - return false; - if (!declare_strip_data (outer, &data_7, "NATS-DANO")) - return false; - if (!declare_strip_data (outer, &data_8, "NATS-DANO-ADD")) - return false; - if (!declare_strip_data (outer, &data_9, "SEN_850200_B")) - return false; - if (!declare_strip_data (outer, &data_10, "SEN_850200_C")) - return false; - if (!declare_strip_data (outer, &data_11, "JIS_C6220-1969-jp")) - return false; - if (!declare_strip_data (outer, &data_12, "JIS_C6220-1969-ro")) - return false; - if (!declare_strip_data (outer, &data_13, "IT")) - return false; - if (!declare_strip_data (outer, &data_14, "PT")) - return false; - if (!declare_strip_data (outer, &data_15, "ES")) - return false; - if (!declare_strip_data (outer, &data_16, "greek7-old")) - return false; - if (!declare_strip_data (outer, &data_17, "latin-greek")) - return false; - if (!declare_strip_data (outer, &data_18, "DIN_66003")) - return false; - if (!declare_strip_data (outer, &data_19, "NF_Z_62-010_(1973)")) - return false; - if (!declare_strip_data (outer, &data_20, "Latin-greek-1")) - return false; - if (!declare_strip_data (outer, &data_21, "ISO_5427")) - return false; - if (!declare_strip_data (outer, &data_22, "BS_viewdata")) - return false; - if (!declare_strip_data (outer, &data_23, "INIS")) - return false; - if (!declare_strip_data (outer, &data_24, "INIS-8")) - return false; - if (!declare_strip_data (outer, &data_25, "INIS-cyrillic")) - return false; - if (!declare_strip_data (outer, &data_26, "ISO_5427-ext")) - return false; - if (!declare_strip_data (outer, &data_27, "ISO_5428")) - return false; - if (!declare_strip_data (outer, &data_28, "GB_1988-80")) - return false; - if (!declare_strip_data (outer, &data_29, "NS_4551-1")) - return false; - if (!declare_strip_data (outer, &data_30, "NS_4551-2")) - return false; - if (!declare_strip_data (outer, &data_31, "NF_Z_62-010")) - return false; - if (!declare_strip_data (outer, &data_32, "PT2")) - return false; - if (!declare_strip_data (outer, &data_33, "ES2")) - return false; - if (!declare_strip_data (outer, &data_34, "MSZ_7795.3")) - return false; - if (!declare_strip_data (outer, &data_35, "greek7")) - return false; - if (!declare_strip_data (outer, &data_36, "ASMO_449")) - return false; - if (!declare_strip_data (outer, &data_37, "JIS_C6229-1984-a")) - return false; - if (!declare_strip_data (outer, &data_38, "JIS_C6229-1984-b")) - return false; - if (!declare_strip_data (outer, &data_39, "JIS_C6229-1984-b-add")) - return false; - if (!declare_strip_data (outer, &data_40, "JIS_C6229-1984-hand")) - return false; - if (!declare_strip_data (outer, &data_41, "JIS_C6229-1984-hand-add")) - return false; - if (!declare_strip_data (outer, &data_42, "JIS_C6229-1984-kana")) - return false; - if (!declare_strip_data (outer, &data_43, "ISO_2033-1983")) - return false; - if (!declare_strip_data (outer, &data_44, "ISO-8859-1")) - return false; - if (!declare_strip_data (outer, &data_45, "ISO-8859-2")) - return false; - if (!declare_strip_data (outer, &data_46, "T.61-7bit")) - return false; - if (!declare_strip_data (outer, &data_47, "ISO-8859-3")) - return false; - if (!declare_strip_data (outer, &data_48, "ISO-8859-4")) - return false; - if (!declare_strip_data (outer, &data_49, "ECMA-cyrillic")) - return false; - if (!declare_strip_data (outer, &data_50, "CSA_Z243.4-1985-1")) - return false; - if (!declare_strip_data (outer, &data_51, "CSA_Z243.4-1985-2")) - return false; - if (!declare_strip_data (outer, &data_52, "CSA_Z243.4-1985-gr")) - return false; - if (!declare_strip_data (outer, &data_53, "ISO-8859-7")) - return false; - if (!declare_strip_data (outer, &data_54, "ISO-8859-6")) - return false; - if (!declare_strip_data (outer, &data_55, "ISO-8859-8")) - return false; - if (!declare_strip_data (outer, &data_56, "CSN_369103")) - return false; - if (!declare_strip_data (outer, &data_57, "JUS_I.B1.002")) - return false; - if (!declare_strip_data (outer, &data_58, "IEC_P27-1")) - return false; - if (!declare_strip_data (outer, &data_59, "ISO-8859-5")) - return false; - if (!declare_strip_data (outer, &data_60, "JUS_I.B1.003-serb")) - return false; - if (!declare_strip_data (outer, &data_61, "JUS_I.B1.003-mac")) - return false; - if (!declare_strip_data (outer, &data_62, "ISO-8859-9")) - return false; - if (!declare_strip_data (outer, &data_63, "greek-ccitt")) - return false; - if (!declare_strip_data (outer, &data_64, "NC_NC00-10")) - return false; - if (!declare_strip_data (outer, &data_65, "ISO_6937-2-25")) - return false; - if (!declare_strip_data (outer, &data_66, "GOST_19768-87")) - return false; - if (!declare_strip_data (outer, &data_67, "ISO_8859-supp")) - return false; - if (!declare_strip_data (outer, &data_68, "ISO_10367-box")) - return false; - if (!declare_strip_data (outer, &data_69, "ISO-8859-10")) - return false; - if (!declare_strip_data (outer, &data_70, "ISO-8859-13")) - return false; - if (!declare_strip_data (outer, &data_71, "ISO-8859-14")) - return false; - if (!declare_strip_data (outer, &data_72, "ISO-8859-15")) - return false; - if (!declare_strip_data (outer, &data_73, "sami")) - return false; - if (!declare_strip_data (outer, &data_74, "baltic")) - return false; - if (!declare_strip_data (outer, &data_75, "DS_2089")) - return false; - if (!declare_strip_data (outer, &data_76, "JIS_X0201")) - return false; - if (!declare_strip_data (outer, &data_77, "KSC5636")) - return false; - if (!declare_strip_data (outer, &data_78, "DEC-MCS")) - return false; - if (!declare_strip_data (outer, &data_79, "hp-roman8")) - return false; - if (!declare_strip_data (outer, &data_80, "NeXTSTEP")) - return false; - if (!declare_strip_data (outer, &data_81, "macintosh")) - return false; - if (!declare_strip_data (outer, &data_82, "mac-is")) - return false; - if (!declare_strip_data (outer, &data_83, "IBM037")) - return false; - if (!declare_strip_data (outer, &data_84, "IBM038")) - return false; - if (!declare_strip_data (outer, &data_85, "IBM256")) - return false; - if (!declare_strip_data (outer, &data_86, "IBM273")) - return false; - if (!declare_strip_data (outer, &data_87, "IBM274")) - return false; - if (!declare_strip_data (outer, &data_88, "IBM275")) - return false; - if (!declare_strip_data (outer, &data_89, "IBM277")) - return false; - if (!declare_strip_data (outer, &data_90, "IBM278")) - return false; - if (!declare_strip_data (outer, &data_91, "IBM280")) - return false; - if (!declare_strip_data (outer, &data_92, "IBM281")) - return false; - if (!declare_strip_data (outer, &data_93, "IBM284")) - return false; - if (!declare_strip_data (outer, &data_94, "IBM285")) - return false; - if (!declare_strip_data (outer, &data_95, "IBM290")) - return false; - if (!declare_strip_data (outer, &data_96, "IBM297")) - return false; - if (!declare_strip_data (outer, &data_97, "IBM420")) - return false; - if (!declare_strip_data (outer, &data_98, "IBM423")) - return false; - if (!declare_strip_data (outer, &data_99, "IBM424")) - return false; - if (!declare_strip_data (outer, &data_100, "IBM437")) - return false; - if (!declare_strip_data (outer, &data_101, "IBM500")) - return false; - if (!declare_strip_data (outer, &data_102, "IBM850")) - return false; - if (!declare_strip_data (outer, &data_103, "IBM851")) - return false; - if (!declare_strip_data (outer, &data_104, "IBM852")) - return false; - if (!declare_strip_data (outer, &data_105, "IBM855")) - return false; - if (!declare_strip_data (outer, &data_106, "IBM857")) - return false; - if (!declare_strip_data (outer, &data_107, "IBM860")) - return false; - if (!declare_strip_data (outer, &data_108, "IBM861")) - return false; - if (!declare_strip_data (outer, &data_109, "IBM862")) - return false; - if (!declare_strip_data (outer, &data_110, "IBM863")) - return false; - if (!declare_strip_data (outer, &data_111, "IBM864")) - return false; - if (!declare_strip_data (outer, &data_112, "IBM865")) - return false; - if (!declare_strip_data (outer, &data_113, "IBM868")) - return false; - if (!declare_strip_data (outer, &data_114, "IBM869")) - return false; - if (!declare_strip_data (outer, &data_115, "IBM870")) - return false; - if (!declare_strip_data (outer, &data_116, "IBM871")) - return false; - if (!declare_strip_data (outer, &data_117, "IBM875")) - return false; - if (!declare_strip_data (outer, &data_118, "IBM880")) - return false; - if (!declare_strip_data (outer, &data_119, "IBM891")) - return false; - if (!declare_strip_data (outer, &data_120, "IBM903")) - return false; - if (!declare_strip_data (outer, &data_121, "IBM904")) - return false; - if (!declare_strip_data (outer, &data_122, "IBM905")) - return false; - if (!declare_strip_data (outer, &data_123, "IBM918")) - return false; - if (!declare_strip_data (outer, &data_124, "IBM1004")) - return false; - if (!declare_strip_data (outer, &data_125, "IBM1026")) - return false; - if (!declare_strip_data (outer, &data_126, "IBM1047")) - return false; - if (!declare_strip_data (outer, &data_127, "CP1250")) - return false; - if (!declare_strip_data (outer, &data_128, "CP1251")) - return false; - if (!declare_strip_data (outer, &data_129, "CP1252")) - return false; - if (!declare_strip_data (outer, &data_130, "CP1253")) - return false; - if (!declare_strip_data (outer, &data_131, "CP1254")) - return false; - if (!declare_strip_data (outer, &data_132, "CP1255")) - return false; - if (!declare_strip_data (outer, &data_133, "CP1256")) - return false; - if (!declare_strip_data (outer, &data_134, "CP1257")) - return false; - if (!declare_strip_data (outer, &data_135, "EBCDIC-AT-DE")) - return false; - if (!declare_strip_data (outer, &data_136, "EBCDIC-AT-DE-A")) - return false; - if (!declare_strip_data (outer, &data_137, "EBCDIC-CA-FR")) - return false; - if (!declare_strip_data (outer, &data_138, "EBCDIC-DK-NO")) - return false; - if (!declare_strip_data (outer, &data_139, "EBCDIC-DK-NO-A")) - return false; - if (!declare_strip_data (outer, &data_140, "EBCDIC-FI-SE")) - return false; - if (!declare_strip_data (outer, &data_141, "EBCDIC-FI-SE-A")) - return false; - if (!declare_strip_data (outer, &data_142, "EBCDIC-FR")) - return false; - if (!declare_strip_data (outer, &data_143, "EBCDIC-IT")) - return false; - if (!declare_strip_data (outer, &data_144, "EBCDIC-PT")) - return false; - if (!declare_strip_data (outer, &data_145, "EBCDIC-ES")) - return false; - if (!declare_strip_data (outer, &data_146, "EBCDIC-ES-A")) - return false; - if (!declare_strip_data (outer, &data_147, "EBCDIC-ES-S")) - return false; - if (!declare_strip_data (outer, &data_148, "EBCDIC-UK")) - return false; - if (!declare_strip_data (outer, &data_149, "EBCDIC-US")) - return false; - if (!declare_strip_data (outer, &data_150, "EBCDIC-IS-FRISS")) - return false; - if (!declare_strip_data (outer, &data_151, "KOI-7")) - return false; - if (!declare_strip_data (outer, &data_152, "KOI-8")) - return false; - if (!declare_strip_data (outer, &data_153, "KOI8-R")) - return false; - if (!declare_strip_data (outer, &data_154, "KOI8-RU")) - return false; - if (!declare_strip_data (outer, &data_155, "KOI8-U")) - return false; - if (!declare_strip_data (outer, &data_156, "CWI")) - return false; - if (!declare_strip_data (outer, &data_157, "macintosh_ce")) - return false; - - if (!declare_alias (outer, "ref", "ISO_646.basic")) - return false; - if (!declare_alias (outer, "ISO_646.basic:1983", "ISO_646.basic")) - return false; - if (!declare_alias (outer, "iso-ir-170", "INVARIANT")) - return false; - if (!declare_alias (outer, "iso-ir-2", "ISO_646.irv")) - return false; - if (!declare_alias (outer, "ISO_646.irv:1983", "ISO_646.irv")) - return false; - if (!declare_alias (outer, "irv", "ISO_646.irv")) - return false; - if (!declare_alias (outer, "iso-ir-4", "BS_4730")) - return false; - if (!declare_alias (outer, "ISO646-GB", "BS_4730")) - return false; - if (!declare_alias (outer, "gb", "BS_4730")) - return false; - if (!declare_alias (outer, "uk", "BS_4730")) - return false; - if (!declare_alias (outer, "iso-ir-6", "ANSI_X3.4-1968")) - return false; - if (!declare_alias (outer, "ANSI_X3.4-1986", "ANSI_X3.4-1968")) - return false; - if (!declare_alias (outer, "ISO_646.irv:1991", "ANSI_X3.4-1968")) - return false; - if (!declare_alias (outer, "ASCII", "ANSI_X3.4-1968")) - return false; - if (!declare_alias (outer, "ISO646-US", "ANSI_X3.4-1968")) - return false; - if (!declare_alias (outer, "US-ASCII", "ANSI_X3.4-1968")) - return false; - if (!declare_alias (outer, "us", "ANSI_X3.4-1968")) - return false; - if (alias = declare_alias (outer, "IBM367", "ANSI_X3.4-1968"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP367", "ANSI_X3.4-1968"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "367", "ANSI_X3.4-1968"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "iso-ir-8-1", "NATS-SEFI")) - return false; - if (!declare_alias (outer, "iso-ir-8-2", "NATS-SEFI-ADD")) - return false; - if (!declare_alias (outer, "iso-ir-9-1", "NATS-DANO")) - return false; - if (!declare_alias (outer, "iso-ir-9-2", "NATS-DANO-ADD")) - return false; - if (!declare_alias (outer, "iso-ir-10", "SEN_850200_B")) - return false; - if (!declare_alias (outer, "FI", "SEN_850200_B")) - return false; - if (!declare_alias (outer, "ISO646-FI", "SEN_850200_B")) - return false; - if (!declare_alias (outer, "ISO646-SE", "SEN_850200_B")) - return false; - if (!declare_alias (outer, "se", "SEN_850200_B")) - return false; - if (!declare_alias (outer, "SS636127", "SEN_850200_B")) - return false; - if (!declare_alias (outer, "iso-ir-11", "SEN_850200_C")) - return false; - if (!declare_alias (outer, "ISO646-SE2", "SEN_850200_C")) - return false; - if (!declare_alias (outer, "se2", "SEN_850200_C")) - return false; - if (!declare_alias (outer, "JIS_C6220-1969", "JIS_C6220-1969-jp")) - return false; - if (!declare_alias (outer, "iso-ir-13", "JIS_C6220-1969-jp")) - return false; - if (!declare_alias (outer, "katakana", "JIS_C6220-1969-jp")) - return false; - if (!declare_alias (outer, "x0201-7", "JIS_C6220-1969-jp")) - return false; - if (!declare_alias (outer, "iso-ir-14", "JIS_C6220-1969-ro")) - return false; - if (!declare_alias (outer, "jp", "JIS_C6220-1969-ro")) - return false; - if (!declare_alias (outer, "ISO646-JP", "JIS_C6220-1969-ro")) - return false; - if (!declare_alias (outer, "iso-ir-15", "IT")) - return false; - if (!declare_alias (outer, "ISO646-IT", "IT")) - return false; - if (!declare_alias (outer, "iso-ir-16", "PT")) - return false; - if (!declare_alias (outer, "ISO646-PT", "PT")) - return false; - if (!declare_alias (outer, "iso-ir-17", "ES")) - return false; - if (!declare_alias (outer, "ISO646-ES", "ES")) - return false; - if (!declare_alias (outer, "iso-ir-18", "greek7-old")) - return false; - if (!declare_alias (outer, "iso-ir-19", "latin-greek")) - return false; - if (!declare_alias (outer, "iso-ir-21", "DIN_66003")) - return false; - if (!declare_alias (outer, "de", "DIN_66003")) - return false; - if (!declare_alias (outer, "ISO646-DE", "DIN_66003")) - return false; - if (!declare_alias (outer, "iso-ir-25", "NF_Z_62-010_(1973)")) - return false; - if (!declare_alias (outer, "ISO646-FR1", "NF_Z_62-010_(1973)")) - return false; - if (!declare_alias (outer, "iso-ir-27", "Latin-greek-1")) - return false; - if (!declare_alias (outer, "iso-ir-37", "ISO_5427")) - return false; - if (!declare_alias (outer, "iso-ir-47", "BS_viewdata")) - return false; - if (!declare_alias (outer, "iso-ir-49", "INIS")) - return false; - if (!declare_alias (outer, "iso-ir-50", "INIS-8")) - return false; - if (!declare_alias (outer, "iso-ir-51", "INIS-cyrillic")) - return false; - if (!declare_alias (outer, "iso-ir-54", "ISO_5427-ext")) - return false; - if (!declare_alias (outer, "ISO_5427:1981", "ISO_5427-ext")) - return false; - if (!declare_alias (outer, "iso-ir-55", "ISO_5428")) - return false; - if (!declare_alias (outer, "ISO_5428:1980", "ISO_5428")) - return false; - if (!declare_alias (outer, "iso-ir-57", "GB_1988-80")) - return false; - if (!declare_alias (outer, "cn", "GB_1988-80")) - return false; - if (!declare_alias (outer, "ISO646-CN", "GB_1988-80")) - return false; - if (!declare_alias (outer, "iso-ir-60", "NS_4551-1")) - return false; - if (!declare_alias (outer, "ISO646-NO", "NS_4551-1")) - return false; - if (!declare_alias (outer, "no", "NS_4551-1")) - return false; - if (!declare_alias (outer, "ISO646-NO2", "NS_4551-2")) - return false; - if (!declare_alias (outer, "iso-ir-61", "NS_4551-2")) - return false; - if (!declare_alias (outer, "no2", "NS_4551-2")) - return false; - if (!declare_alias (outer, "iso-ir-69", "NF_Z_62-010")) - return false; - if (!declare_alias (outer, "ISO646-FR", "NF_Z_62-010")) - return false; - if (!declare_alias (outer, "fr", "NF_Z_62-010")) - return false; - if (!declare_alias (outer, "iso-ir-84", "PT2")) - return false; - if (!declare_alias (outer, "ISO646-PT2", "PT2")) - return false; - if (!declare_alias (outer, "iso-ir-85", "ES2")) - return false; - if (!declare_alias (outer, "ISO646-ES2", "ES2")) - return false; - if (!declare_alias (outer, "iso-ir-86", "MSZ_7795.3")) - return false; - if (!declare_alias (outer, "ISO646-HU", "MSZ_7795.3")) - return false; - if (!declare_alias (outer, "hu", "MSZ_7795.3")) - return false; - if (!declare_alias (outer, "iso-ir-88", "greek7")) - return false; - if (!declare_alias (outer, "ISO_9036", "ASMO_449")) - return false; - if (!declare_alias (outer, "arabic7", "ASMO_449")) - return false; - if (!declare_alias (outer, "iso-ir-89", "ASMO_449")) - return false; - if (!declare_alias (outer, "jp-ocr-a", "JIS_C6229-1984-a")) - return false; - if (!declare_alias (outer, "ISO646-JP-OCR-B", "JIS_C6229-1984-b")) - return false; - if (!declare_alias (outer, "jp-ocr-b", "JIS_C6229-1984-b")) - return false; - if (!declare_alias (outer, "iso-ir-93", "JIS_C6229-1984-b-add")) - return false; - if (!declare_alias (outer, "jp-ocr-b-add", "JIS_C6229-1984-b-add")) - return false; - if (!declare_alias (outer, "iso-ir-94", "JIS_C6229-1984-hand")) - return false; - if (!declare_alias (outer, "jp-ocr-hand", "JIS_C6229-1984-hand")) - return false; - if (!declare_alias (outer, "iso-ir-95", "JIS_C6229-1984-hand-add")) - return false; - if (!declare_alias (outer, "jp-ocr-hand-add", "JIS_C6229-1984-hand-add")) - return false; - if (!declare_alias (outer, "iso-ir-96", "JIS_C6229-1984-kana")) - return false; - if (!declare_alias (outer, "iso-ir-98", "ISO_2033-1983")) - return false; - if (!declare_alias (outer, "e13b", "ISO_2033-1983")) - return false; - if (!declare_alias (outer, "iso-ir-100", "ISO-8859-1")) - return false; - if (!declare_alias (outer, "ISO_8859-1:1987", "ISO-8859-1")) - return false; - if (!declare_alias (outer, "ISO_8859-1", "ISO-8859-1")) - return false; - if (!declare_alias (outer, "ISO8859-1", "ISO-8859-1")) - return false; - if (!declare_alias (outer, "latin1", "ISO-8859-1")) - return false; - if (!declare_alias (outer, "l1", "ISO-8859-1")) - return false; - if (alias = declare_alias (outer, "IBM819", "ISO-8859-1"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP819", "ISO-8859-1"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "819", "ISO-8859-1"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "iso-ir-101", "ISO-8859-2")) - return false; - if (!declare_alias (outer, "ISO_8859-2:1987", "ISO-8859-2")) - return false; - if (!declare_alias (outer, "ISO_8859-2", "ISO-8859-2")) - return false; - if (!declare_alias (outer, "ISO8859-2", "ISO-8859-2")) - return false; - if (!declare_alias (outer, "latin2", "ISO-8859-2")) - return false; - if (!declare_alias (outer, "l2", "ISO-8859-2")) - return false; - if (alias = declare_alias (outer, "IBM912", "ISO-8859-2"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP912", "ISO-8859-2"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "912", "ISO-8859-2"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "iso-ir-102", "T.61-7bit")) - return false; - if (!declare_alias (outer, "iso-ir-109", "ISO-8859-3")) - return false; - if (!declare_alias (outer, "ISO_8859-3:1988", "ISO-8859-3")) - return false; - if (!declare_alias (outer, "ISO_8859-3", "ISO-8859-3")) - return false; - if (!declare_alias (outer, "ISO8859-3", "ISO-8859-3")) - return false; - if (!declare_alias (outer, "latin3", "ISO-8859-3")) - return false; - if (!declare_alias (outer, "l3", "ISO-8859-3")) - return false; - if (!declare_alias (outer, "iso-ir-110", "ISO-8859-4")) - return false; - if (!declare_alias (outer, "ISO_8859-4:1988", "ISO-8859-4")) - return false; - if (!declare_alias (outer, "ISO_8859-4", "ISO-8859-4")) - return false; - if (!declare_alias (outer, "ISO8859-4", "ISO-8859-4")) - return false; - if (!declare_alias (outer, "latin4", "ISO-8859-4")) - return false; - if (!declare_alias (outer, "l4", "ISO-8859-4")) - return false; - if (!declare_alias (outer, "iso-ir-111", "ECMA-cyrillic")) - return false; - if (!declare_alias (outer, "ECMA-113:1986", "ECMA-cyrillic")) - return false; - if (!declare_alias (outer, "ECMA-113", "ECMA-cyrillic")) - return false; - if (!declare_alias (outer, "iso-ir-121", "CSA_Z243.4-1985-1")) - return false; - if (!declare_alias (outer, "ISO646-CA", "CSA_Z243.4-1985-1")) - return false; - if (!declare_alias (outer, "csa7-1", "CSA_Z243.4-1985-1")) - return false; - if (!declare_alias (outer, "ca", "CSA_Z243.4-1985-1")) - return false; - if (!declare_alias (outer, "iso-ir-122", "CSA_Z243.4-1985-2")) - return false; - if (!declare_alias (outer, "ISO646-CA2", "CSA_Z243.4-1985-2")) - return false; - if (!declare_alias (outer, "csa7-2", "CSA_Z243.4-1985-2")) - return false; - if (!declare_alias (outer, "iso-ir-123", "CSA_Z243.4-1985-gr")) - return false; - if (!declare_alias (outer, "iso-ir-126", "ISO-8859-7")) - return false; - if (!declare_alias (outer, "ISO_8859-7:1987", "ISO-8859-7")) - return false; - if (!declare_alias (outer, "ISO_8859-7", "ISO-8859-7")) - return false; - if (!declare_alias (outer, "ISO8859-7", "ISO-8859-7")) - return false; - if (!declare_alias (outer, "ELOT_928", "ISO-8859-7")) - return false; - if (!declare_alias (outer, "ECMA-118", "ISO-8859-7")) - return false; - if (!declare_alias (outer, "greek", "ISO-8859-7")) - return false; - if (!declare_alias (outer, "greek8", "ISO-8859-7")) - return false; - if (!declare_alias (outer, "iso-ir-127", "ISO-8859-6")) - return false; - if (!declare_alias (outer, "ISO_8859-6:1987", "ISO-8859-6")) - return false; - if (!declare_alias (outer, "ISO_8859-6", "ISO-8859-6")) - return false; - if (!declare_alias (outer, "ISO8859-6", "ISO-8859-6")) - return false; - if (!declare_alias (outer, "ECMA-114", "ISO-8859-6")) - return false; - if (!declare_alias (outer, "ASMO-708", "ISO-8859-6")) - return false; - if (!declare_alias (outer, "arabic", "ISO-8859-6")) - return false; - if (!declare_alias (outer, "iso-ir-138", "ISO-8859-8")) - return false; - if (!declare_alias (outer, "ISO_8859-8:1988", "ISO-8859-8")) - return false; - if (!declare_alias (outer, "ISO_8859-8", "ISO-8859-8")) - return false; - if (!declare_alias (outer, "ISO8859-8", "ISO-8859-8")) - return false; - if (!declare_alias (outer, "hebrew", "ISO-8859-8")) - return false; - if (!declare_alias (outer, "iso-ir-139", "CSN_369103")) - return false; - if (!declare_alias (outer, "KOI-8_L2", "CSN_369103")) - return false; - if (!declare_alias (outer, "koi8l2", "CSN_369103")) - return false; - if (!declare_alias (outer, "iso-ir-141", "JUS_I.B1.002")) - return false; - if (!declare_alias (outer, "ISO646-YU", "JUS_I.B1.002")) - return false; - if (!declare_alias (outer, "js", "JUS_I.B1.002")) - return false; - if (!declare_alias (outer, "yu", "JUS_I.B1.002")) - return false; - if (!declare_alias (outer, "iso-ir-143", "IEC_P27-1")) - return false; - if (!declare_alias (outer, "iso-ir-144", "ISO-8859-5")) - return false; - if (!declare_alias (outer, "ISO_8859-5:1988", "ISO-8859-5")) - return false; - if (!declare_alias (outer, "ISO_8859-5", "ISO-8859-5")) - return false; - if (!declare_alias (outer, "ISO8859-5", "ISO-8859-5")) - return false; - if (!declare_alias (outer, "cyrillic", "ISO-8859-5")) - return false; - if (!declare_alias (outer, "iso-ir-146", "JUS_I.B1.003-serb")) - return false; - if (!declare_alias (outer, "serbian", "JUS_I.B1.003-serb")) - return false; - if (!declare_alias (outer, "macedonian", "JUS_I.B1.003-mac")) - return false; - if (!declare_alias (outer, "iso-ir-147", "JUS_I.B1.003-mac")) - return false; - if (!declare_alias (outer, "iso-ir-148", "ISO-8859-9")) - return false; - if (!declare_alias (outer, "ISO_8859-9:1989", "ISO-8859-9")) - return false; - if (!declare_alias (outer, "ISO_8859-9", "ISO-8859-9")) - return false; - if (!declare_alias (outer, "ISO8859-9", "ISO-8859-9")) - return false; - if (!declare_alias (outer, "latin5", "ISO-8859-9")) - return false; - if (!declare_alias (outer, "l5", "ISO-8859-9")) - return false; - if (!declare_alias (outer, "iso-ir-150", "greek-ccitt")) - return false; - if (!declare_alias (outer, "cuba", "NC_NC00-10")) - return false; - if (!declare_alias (outer, "NC_NC00-10:81", "NC_NC00-10")) - return false; - if (!declare_alias (outer, "iso-ir-151", "NC_NC00-10")) - return false; - if (!declare_alias (outer, "ISO646-CU", "NC_NC00-10")) - return false; - if (!declare_alias (outer, "iso-ir-152", "ISO_6937-2-25")) - return false; - if (!declare_alias (outer, "ST_SEV_358-88", "GOST_19768-87")) - return false; - if (!declare_alias (outer, "iso-ir-153", "GOST_19768-87")) - return false; - if (!declare_alias (outer, "iso-ir-154", "ISO_8859-supp")) - return false; - if (!declare_alias (outer, "latin1-2-5", "ISO_8859-supp")) - return false; - if (!declare_alias (outer, "iso-ir-155", "ISO_10367-box")) - return false; - if (!declare_alias (outer, "iso-ir-157", "ISO-8859-10")) - return false; - if (!declare_alias (outer, "ISO_8859-10:1993", "ISO-8859-10")) - return false; - if (!declare_alias (outer, "ISO_8859-10", "ISO-8859-10")) - return false; - if (!declare_alias (outer, "ISO8859-10", "ISO-8859-10")) - return false; - if (!declare_alias (outer, "L6", "ISO-8859-10")) - return false; - if (!declare_alias (outer, "latin6", "ISO-8859-10")) - return false; - if (!declare_alias (outer, "iso-ir-179a", "ISO-8859-13")) - return false; - if (!declare_alias (outer, "ISO_8859-13:1998", "ISO-8859-13")) - return false; - if (!declare_alias (outer, "ISO_8859-13", "ISO-8859-13")) - return false; - if (!declare_alias (outer, "ISO8859-13", "ISO-8859-13")) - return false; - if (!declare_alias (outer, "latin7", "ISO-8859-13")) - return false; - if (!declare_alias (outer, "iso-baltic", "ISO-8859-13")) - return false; - if (!declare_alias (outer, "l7", "ISO-8859-13")) - return false; - if (!declare_alias (outer, "iso-ir-199", "ISO-8859-14")) - return false; - if (!declare_alias (outer, "ISO_8859-14:1998", "ISO-8859-14")) - return false; - if (!declare_alias (outer, "ISO_8859-14", "ISO-8859-14")) - return false; - if (!declare_alias (outer, "ISO8859-14", "ISO-8859-14")) - return false; - if (!declare_alias (outer, "latin8", "ISO-8859-14")) - return false; - if (!declare_alias (outer, "iso-celtic", "ISO-8859-14")) - return false; - if (!declare_alias (outer, "l8", "ISO-8859-14")) - return false; - if (!declare_alias (outer, "iso-ir-203", "ISO-8859-15")) - return false; - if (!declare_alias (outer, "ISO_8859-15:1998", "ISO-8859-15")) - return false; - if (!declare_alias (outer, "ISO_8859-15", "ISO-8859-15")) - return false; - if (!declare_alias (outer, "ISO8859-15", "ISO-8859-15")) - return false; - if (!declare_alias (outer, "latin9", "ISO-8859-15")) - return false; - if (!declare_alias (outer, "l9", "ISO-8859-15")) - return false; - if (!declare_alias (outer, "latin-lap", "sami")) - return false; - if (!declare_alias (outer, "lap", "sami")) - return false; - if (!declare_alias (outer, "iso-ir-158", "sami")) - return false; - if (!declare_alias (outer, "iso-ir-179", "baltic")) - return false; - if (!declare_alias (outer, "DS2089", "DS_2089")) - return false; - if (!declare_alias (outer, "ISO646-DK", "DS_2089")) - return false; - if (!declare_alias (outer, "dk", "DS_2089")) - return false; - if (!declare_alias (outer, "X0201", "JIS_X0201")) - return false; - if (!declare_alias (outer, "ISO646-KR", "KSC5636")) - return false; - if (!declare_alias (outer, "dec", "DEC-MCS")) - return false; - if (!declare_alias (outer, "roman8", "hp-roman8")) - return false; - if (!declare_alias (outer, "r8", "hp-roman8")) - return false; - if (!declare_alias (outer, "next", "NeXTSTEP")) - return false; - if (alias = declare_alias (outer, "macintosh", "macintosh"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->cr_surface)) - return false; - if (alias = declare_alias (outer, "mac", "macintosh"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->cr_surface)) - return false; - if (alias = declare_alias (outer, "IBM037", "IBM037"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP037", "IBM037"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "037", "IBM037"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ebcdic-cp-us", "IBM037")) - return false; - if (!declare_alias (outer, "ebcdic-cp-ca", "IBM037")) - return false; - if (!declare_alias (outer, "ebcdic-cp-wt", "IBM037")) - return false; - if (!declare_alias (outer, "ebcdic-cp-nl", "IBM037")) - return false; - if (alias = declare_alias (outer, "IBM038", "IBM038"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "EBCDIC-INT", "IBM038")) - return false; - if (alias = declare_alias (outer, "CP038", "IBM038"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "038", "IBM038"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM256", "IBM256"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "EBCDIC-INT1", "IBM256")) - return false; - if (alias = declare_alias (outer, "CP256", "IBM256"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "256", "IBM256"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM273", "IBM273"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP273", "IBM273"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "273", "IBM273"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM274", "IBM274"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "EBCDIC-BE", "IBM274")) - return false; - if (alias = declare_alias (outer, "CP274", "IBM274"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "274", "IBM274"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM275", "IBM275"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "EBCDIC-BR", "IBM275")) - return false; - if (alias = declare_alias (outer, "CP275", "IBM275"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "275", "IBM275"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM277", "IBM277"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "EBCDIC-CP-DK", "IBM277")) - return false; - if (!declare_alias (outer, "EBCDIC-CP-NO", "IBM277")) - return false; - if (alias = declare_alias (outer, "IBM278", "IBM278"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP278", "IBM278"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "278", "IBM278"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ebcdic-cp-fi", "IBM278")) - return false; - if (!declare_alias (outer, "ebcdic-cp-se", "IBM278")) - return false; - if (alias = declare_alias (outer, "IBM280", "IBM280"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP280", "IBM280"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "280", "IBM280"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ebcdic-cp-it", "IBM280")) - return false; - if (alias = declare_alias (outer, "IBM281", "IBM281"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "EBCDIC-JP-E", "IBM281")) - return false; - if (alias = declare_alias (outer, "CP281", "IBM281"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "281", "IBM281"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM284", "IBM284"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP284", "IBM284"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "284", "IBM284"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ebcdic-cp-es", "IBM284")) - return false; - if (alias = declare_alias (outer, "IBM285", "IBM285"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP285", "IBM285"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "285", "IBM285"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ebcdic-cp-gb", "IBM285")) - return false; - if (alias = declare_alias (outer, "IBM290", "IBM290"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP290", "IBM290"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "290", "IBM290"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "EBCDIC-JP-kana", "IBM290")) - return false; - if (alias = declare_alias (outer, "IBM297", "IBM297"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP297", "IBM297"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "297", "IBM297"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ebcdic-cp-fr", "IBM297")) - return false; - if (alias = declare_alias (outer, "IBM420", "IBM420"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP420", "IBM420"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "420", "IBM420"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ebcdic-cp-ar1", "IBM420")) - return false; - if (alias = declare_alias (outer, "IBM423", "IBM423"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP423", "IBM423"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "423", "IBM423"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ebcdic-cp-gr", "IBM423")) - return false; - if (alias = declare_alias (outer, "IBM424", "IBM424"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP424", "IBM424"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "424", "IBM424"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ebcdic-cp-he", "IBM424")) - return false; - if (alias = declare_alias (outer, "IBM437", "IBM437"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP437", "IBM437"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "437", "IBM437"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM500", "IBM500"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP500", "IBM500"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "500", "IBM500"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "500V1", "IBM500")) - return false; - if (!declare_alias (outer, "ebcdic-cp-be", "IBM500")) - return false; - if (!declare_alias (outer, "ebcdic-cp-ch", "IBM500")) - return false; - if (alias = declare_alias (outer, "IBM850", "IBM850"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP850", "IBM850"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "850", "IBM850"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM851", "IBM851"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP851", "IBM851"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "851", "IBM851"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM852", "IBM852"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP852", "IBM852"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "852", "IBM852"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "pcl2", "IBM852")) - return false; - if (!declare_alias (outer, "pclatin2", "IBM852")) - return false; - if (alias = declare_alias (outer, "IBM855", "IBM855"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP855", "IBM855"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "855", "IBM855"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM857", "IBM857"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP857", "IBM857"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "857", "IBM857"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM860", "IBM860"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP860", "IBM860"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "860", "IBM860"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM861", "IBM861"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP861", "IBM861"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "861", "IBM861"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "cp-is", "IBM861")) - return false; - if (alias = declare_alias (outer, "IBM862", "IBM862"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP862", "IBM862"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "862", "IBM862"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM863", "IBM863"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP863", "IBM863"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "863", "IBM863"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM864", "IBM864"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP864", "IBM864"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "864", "IBM864"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM865", "IBM865"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP865", "IBM865"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "865", "IBM865"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM868", "IBM868"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP868", "IBM868"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "868", "IBM868"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "cp-ar", "IBM868")) - return false; - if (alias = declare_alias (outer, "IBM869", "IBM869"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP869", "IBM869"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "869", "IBM869"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "cp-gr", "IBM869")) - return false; - if (alias = declare_alias (outer, "IBM870", "IBM870"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP870", "IBM870"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "870", "IBM870"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ebcdic-cp-roece", "IBM870")) - return false; - if (!declare_alias (outer, "ebcdic-cp-yu", "IBM870")) - return false; - if (alias = declare_alias (outer, "IBM871", "IBM871"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP871", "IBM871"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "871", "IBM871"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ebcdic-cp-is", "IBM871")) - return false; - if (alias = declare_alias (outer, "IBM875", "IBM875"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP875", "IBM875"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "875", "IBM875"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "EBCDIC-Greek", "IBM875")) - return false; - if (alias = declare_alias (outer, "IBM880", "IBM880"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP880", "IBM880"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "880", "IBM880"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "EBCDIC-Cyrillic", "IBM880")) - return false; - if (alias = declare_alias (outer, "IBM891", "IBM891"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP891", "IBM891"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "891", "IBM891"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM903", "IBM903"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP903", "IBM903"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "903", "IBM903"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM904", "IBM904"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP904", "IBM904"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "904", "IBM904"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM905", "IBM905"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP905", "IBM905"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "905", "IBM905"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ebcdic-cp-tr", "IBM905")) - return false; - if (alias = declare_alias (outer, "IBM918", "IBM918"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP918", "IBM918"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "918", "IBM918"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ebcdic-cp-ar2", "IBM918")) - return false; - if (alias = declare_alias (outer, "IBM1004", "IBM1004"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP1004", "IBM1004"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "1004", "IBM1004"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "os2latin1", "IBM1004")) - return false; - if (alias = declare_alias (outer, "IBM1026", "IBM1026"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP1026", "IBM1026"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "1026", "IBM1026"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "IBM1047", "IBM1047"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP1047", "IBM1047"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "1047", "IBM1047"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (alias = declare_alias (outer, "CP1250", "CP1250"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ms-ee", "CP1250")) - return false; - if (alias = declare_alias (outer, "1250", "CP1250"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "windows-1250", "CP1250")) - return false; - if (alias = declare_alias (outer, "CP1251", "CP1251"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ms-cyrl", "CP1251")) - return false; - if (alias = declare_alias (outer, "1251", "CP1251"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "windows-1251", "CP1251")) - return false; - if (alias = declare_alias (outer, "CP1252", "CP1252"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ms-ansi", "CP1252")) - return false; - if (alias = declare_alias (outer, "1252", "CP1252"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "windows-1252", "CP1252")) - return false; - if (alias = declare_alias (outer, "CP1253", "CP1253"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ms-greek", "CP1253")) - return false; - if (alias = declare_alias (outer, "1253", "CP1253"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "windows-1253", "CP1253")) - return false; - if (alias = declare_alias (outer, "CP1254", "CP1254"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ms-turk", "CP1254")) - return false; - if (alias = declare_alias (outer, "1254", "CP1254"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "windows-1254", "CP1254")) - return false; - if (alias = declare_alias (outer, "CP1255", "CP1255"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ms-hebr", "CP1255")) - return false; - if (alias = declare_alias (outer, "1255", "CP1255"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "windows-1255", "CP1255")) - return false; - if (alias = declare_alias (outer, "CP1256", "CP1256"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "ms-arab", "CP1256")) - return false; - if (alias = declare_alias (outer, "1256", "CP1256"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "windows-1256", "CP1256")) - return false; - if (alias = declare_alias (outer, "CP1257", "CP1257"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "WinBaltRim", "CP1257")) - return false; - if (alias = declare_alias (outer, "1257", "CP1257"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->crlf_surface)) - return false; - if (!declare_alias (outer, "windows-1257", "CP1257")) - return false; - if (!declare_alias (outer, "friss", "EBCDIC-IS-FRISS")) - return false; - if (!declare_alias (outer, "GOST_19768-74", "KOI-8")) - return false; - if (!declare_alias (outer, "CWI-2", "CWI")) - return false; - if (!declare_alias (outer, "cp-hu", "CWI")) - return false; - if (alias = declare_alias (outer, "macintosh_ce", "macintosh_ce"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->cr_surface)) - return false; - if (alias = declare_alias (outer, "macce", "macintosh_ce"), !alias) - return false; - if (!declare_implied_surface (outer, alias, outer->cr_surface)) - return false; - - return true; -} - -void -delmodule_strips (struct recode_outer *outer) -{ -} diff --git a/src/strip-pool.c b/src/strip-pool.c deleted file mode 100644 index 3734ffb..0000000 --- a/src/strip-pool.c +++ /dev/null @@ -1,1096 +0,0 @@ -/* DO NOT MODIFY THIS FILE! It was generated by `recode/tables.py'. */ - -/* Conversion of files between different charsets and surfaces. - Copyright © 1999 Free Software Foundation, Inc. - Contributed by François Pinard , 1993, 1997. - - This 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. - - 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the Recode 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. */ - -#include "common.h" - -const recode_ucs2 ucs2_data_pool[8560] = - { - /* 0 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 8 */ 0x0020, 0x0021, 0x0022, 0xFFFF, 0xFFFF, 0x0025, 0x0026, 0x0027, - /* 16 */ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - /* 24 */ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - /* 32 */ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - /* 40 */ 0xFFFF, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 48 */ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - /* 56 */ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - /* 64 */ 0x0058, 0x0059, 0x005A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x005F, - /* 72 */ 0xFFFF, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 80 */ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - /* 88 */ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - /* 96 */ 0x0078, 0x0079, 0x007A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 104 */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - /* 112 */ 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - /* 120 */ 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - /* 128 */ 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - /* 136 */ 0x0078, 0x0079, 0x007A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x007F, - /* 144 */ 0x0020, 0x0021, 0x0022, 0x0023, 0x00A4, 0x0025, 0x0026, 0x0027, - /* 152 */ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 160 */ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - /* 168 */ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 176 */ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x203E, 0x007F, - /* 184 */ 0x0020, 0x0021, 0x0022, 0x00A3, 0x0024, 0x0025, 0x0026, 0x0027, - /* 192 */ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - /* 200 */ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - /* 208 */ 0xE018, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 216 */ 0x0058, 0x0059, 0x005A, 0x00C4, 0x00D6, 0x00C5, 0x25A0, 0x005F, - /* 224 */ 0xE019, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 232 */ 0x0078, 0x0079, 0x007A, 0x00E4, 0x00F6, 0x00E5, 0x2013, 0x007F, - /* 240 */ 0xFFFF, 0x00C0, 0xFFFF, 0xFFFF, 0x0110, 0x00C9, 0xFFFF, 0xFFFF, - /* 248 */ 0x00DE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00DC, 0xFFFF, 0xFFFF, - /* 256 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x00C6, 0x00D8, 0xFFFF, 0xFFFF, 0xFFFF, - /* 264 */ 0xFFFF, 0x00E0, 0xFFFF, 0xFFFF, 0x0111, 0x00E9, 0xFFFF, 0xFFFF, - /* 272 */ 0x00FE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FC, 0xFFFF, 0xFFFF, - /* 280 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x00E6, 0x00F8, 0xFFFF, 0xFFFF, 0xFFFF, - /* 288 */ 0x0020, 0x0021, 0x00AB, 0x00BB, 0x0024, 0x0025, 0x0026, 0x0027, - /* 296 */ 0x0058, 0x0059, 0x005A, 0x00C6, 0x00D8, 0x00C5, 0x25A0, 0x005F, - /* 304 */ 0x0078, 0x0079, 0x007A, 0x00E6, 0x00F8, 0x00E5, 0x2013, 0x007F, - /* 312 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x00C4, 0x00D6, 0xFFFF, 0xFFFF, 0xFFFF, - /* 320 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x00E4, 0x00F6, 0xFFFF, 0xFFFF, 0xFFFF, - /* 328 */ 0x0058, 0x0059, 0x005A, 0x00C4, 0x00D6, 0x00C5, 0x005E, 0x005F, - /* 336 */ 0x0078, 0x0079, 0x007A, 0x00E4, 0x00F6, 0x00E5, 0x203E, 0x007F, - /* 344 */ 0x00C9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 352 */ 0x0058, 0x0059, 0x005A, 0x00C4, 0x00D6, 0x00C5, 0x00DC, 0x005F, - /* 360 */ 0x00E9, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 368 */ 0x0078, 0x0079, 0x007A, 0x00E4, 0x00F6, 0x00E5, 0x00FC, 0x007F, - /* 376 */ 0x0020, 0x3002, 0x300C, 0x300D, 0x3001, 0x30FB, 0x30F2, 0x30A1, - /* 384 */ 0x30A3, 0x30A5, 0x30A7, 0x30A9, 0x30E3, 0x30E5, 0x30E7, 0x30C3, - /* 392 */ 0x30FC, 0x30A2, 0x30A4, 0x30A6, 0x30A8, 0x30AA, 0x30AB, 0x30AD, - /* 400 */ 0x30AF, 0x30B1, 0x30B3, 0x30B5, 0x30B7, 0x30B9, 0x30BB, 0x30BD, - /* 408 */ 0x30BF, 0x30C1, 0x30C4, 0x30C6, 0x30C8, 0x30CA, 0x30CB, 0x30CC, - /* 416 */ 0x30CD, 0x30CE, 0x30CF, 0x30D2, 0x30D5, 0x30D8, 0x30DB, 0x30DE, - /* 424 */ 0x30DF, 0x30E0, 0x30E1, 0x30E2, 0x30E4, 0x30E6, 0x30E8, 0x30E9, - /* 432 */ 0x30EA, 0x30EB, 0x30EC, 0x30ED, 0x30EF, 0x30F3, 0x309B, 0x309C, - /* 440 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x007F, - /* 448 */ 0x0058, 0x0059, 0x005A, 0x005B, 0x00A5, 0x005D, 0x005E, 0x005F, - /* 456 */ 0x00A7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 464 */ 0x0058, 0x0059, 0x005A, 0x00B0, 0x00E7, 0x00E9, 0x005E, 0x005F, - /* 472 */ 0x00F9, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 480 */ 0x0078, 0x0079, 0x007A, 0x00E0, 0x00F2, 0x00E8, 0x00EC, 0x007F, - /* 488 */ 0x0058, 0x0059, 0x005A, 0x00C3, 0x00C7, 0x00D5, 0x005E, 0x005F, - /* 496 */ 0x0078, 0x0079, 0x007A, 0x00E3, 0x00E7, 0x00F5, 0x00B0, 0x007F, - /* 504 */ 0x0058, 0x0059, 0x005A, 0x00A1, 0x00D1, 0x00BF, 0x005E, 0x005F, - /* 512 */ 0x0078, 0x0079, 0x007A, 0x00B0, 0x00F1, 0x00E7, 0x007E, 0x007F, - /* 520 */ 0x00B4, 0x03B1, 0x03B2, 0x03C8, 0x03B4, 0x03B5, 0x03C6, 0x03B3, - /* 528 */ 0x03B7, 0x03B9, 0x03BE, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BF, - /* 536 */ 0x03C0, 0x037A, 0x03C1, 0x03C3, 0x03C4, 0x03B8, 0x03C9, 0x03C2, - /* 544 */ 0x03C7, 0x03C5, 0x03B6, 0x1FCF, 0x1FBF, 0x1FCE, 0x007E, 0x005F, - /* 552 */ 0x0060, 0x0391, 0x0392, 0x03A8, 0x0394, 0x0395, 0x03A6, 0x0393, - /* 560 */ 0x0397, 0x0399, 0x039E, 0x039A, 0x039B, 0x039C, 0x039D, 0x039F, - /* 568 */ 0x03A0, 0xFFFF, 0x03A1, 0x03A3, 0x03A4, 0x0398, 0x03A9, 0x00B7, - /* 576 */ 0x03A7, 0x03A5, 0x0396, 0x1FDF, 0x1FFE, 0x1FDE, 0x00A8, 0x007F, - /* 584 */ 0x03A7, 0x03A5, 0x0396, 0x007B, 0x007C, 0x007D, 0x00A8, 0x007F, - /* 592 */ 0x0058, 0x0059, 0x005A, 0x00C4, 0x00D6, 0x00DC, 0x005E, 0x005F, - /* 600 */ 0x0078, 0x0079, 0x007A, 0x00E4, 0x00F6, 0x00FC, 0x00DF, 0x007F, - /* 608 */ 0x00E0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 616 */ 0x0058, 0x0059, 0x005A, 0x00B0, 0x00E7, 0x00A7, 0x005E, 0x005F, - /* 624 */ 0x0078, 0x0079, 0x007A, 0x00E9, 0x00F9, 0x00E8, 0x00A8, 0x007F, - /* 632 */ 0x0020, 0x039E, 0x0022, 0x0393, 0x00A4, 0x0025, 0x0026, 0x0027, - /* 640 */ 0x0038, 0x0039, 0x03A8, 0x003B, 0x003C, 0x003D, 0x003E, 0x03A0, - /* 648 */ 0x0394, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 656 */ 0x0058, 0x0059, 0x005A, 0x03A9, 0x0398, 0x03A6, 0x039B, 0x03A3, - /* 664 */ 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, - /* 672 */ 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, - /* 680 */ 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - /* 688 */ 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, - /* 696 */ 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - /* 704 */ 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, - /* 712 */ 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, - /* 720 */ 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x007F, - /* 728 */ 0x0058, 0x0059, 0x005A, 0x2190, 0x00BD, 0x2192, 0x2191, 0x25A1, - /* 736 */ 0x0078, 0x0079, 0x007A, 0x00BC, 0x2225, 0x00BE, 0x00F7, 0x007F, - /* 744 */ 0x0020, 0xFFFF, 0xFFFF, 0xFFFF, 0x0024, 0x0025, 0xFFFF, 0x0027, - /* 752 */ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0xFFFF, - /* 760 */ 0x0058, 0x0059, 0x005A, 0x005B, 0xFFFF, 0x005D, 0xFFFF, 0xFFFF, - /* 768 */ 0x0078, 0x0079, 0x007A, 0xFFFF, 0x007C, 0xFFFF, 0xFFFF, 0x007F, - /* 776 */ 0x0020, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 784 */ 0xFFFF, 0xFFFF, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x039E, 0xFFFF, - /* 792 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x2192, 0x222B, - /* 800 */ 0x2070, 0x00B9, 0x00B2, 0x00B3, 0x2074, 0x2075, 0x2076, 0x2077, - /* 808 */ 0x2078, 0x2079, 0x207A, 0x207B, 0x30EB, 0x0394, 0x039B, 0x03A9, - /* 816 */ 0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, 0x2086, 0x2087, - /* 824 */ 0x2088, 0x2089, 0x03A3, 0x03BC, 0x03BD, 0x03C9, 0x03C0, 0x007F, - /* 832 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x221A, 0xFFFF, 0x2192, 0x222B, - /* 840 */ 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03A3, 0x03BC, 0x03BD, 0x03C9, - /* 848 */ 0x03C0, 0x039E, 0x0394, 0x039B, 0x03A9, 0x042A, 0x207B, 0x207A, - /* 856 */ 0x0491, 0x0452, 0x0453, 0x0454, 0x0451, 0x0455, 0x0456, 0x0457, - /* 864 */ 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x045E, 0x045F, 0xFFFF, - /* 872 */ 0x0463, 0x0473, 0x0475, 0x046B, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 880 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x005B, 0xFFFF, 0x005D, 0xFFFF, 0x005F, - /* 888 */ 0x0490, 0x0402, 0x0403, 0x0404, 0x0401, 0x0405, 0x0406, 0x0407, - /* 896 */ 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x040E, 0x040F, 0x042A, - /* 904 */ 0x0462, 0x0472, 0x0474, 0x046A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 912 */ 0x0020, 0xE002, 0xE003, 0xE009, 0xE005, 0xE012, 0xE013, 0xE014, - /* 920 */ 0x00AB, 0x00BB, 0x201D, 0x201C, 0x0374, 0x0375, 0xFFFF, 0xFFFF, - /* 928 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x00B7, 0xFFFF, 0xFFFF, 0xFFFF, 0x003B, - /* 936 */ 0xFFFF, 0x0391, 0x0392, 0xFFFF, 0x0393, 0x0394, 0x0395, 0x03DA, - /* 944 */ 0x03DC, 0x0396, 0x0397, 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, - /* 952 */ 0x039D, 0x039E, 0x039F, 0x03A0, 0x03DE, 0x03A1, 0x03A3, 0xFFFF, - /* 960 */ 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03E0, 0xFFFF, - /* 968 */ 0xFFFF, 0x03B1, 0x03B2, 0x03D0, 0x03B3, 0x03B4, 0x03B5, 0xE01A, - /* 976 */ 0xE01B, 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, - /* 984 */ 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0xE01C, 0x03C1, 0x03C3, 0x03C2, - /* 992 */ 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9, 0xE01D, 0x007F, - /* 1000 */ 0x0020, 0x0021, 0x0022, 0x0023, 0x00A5, 0x0025, 0x0026, 0x0027, - /* 1008 */ 0x0058, 0x0059, 0x005A, 0x00C6, 0x00D8, 0x00C5, 0x005E, 0x005F, - /* 1016 */ 0x0078, 0x0079, 0x007A, 0x00E6, 0x00F8, 0x00E5, 0x203E, 0x007F, - /* 1024 */ 0x0020, 0x0021, 0x0022, 0x00A7, 0x0024, 0x0025, 0x0026, 0x0027, - /* 1032 */ 0x0078, 0x0079, 0x007A, 0x00E6, 0x00F8, 0x00E5, 0x007C, 0x007F, - /* 1040 */ 0x00B5, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 1048 */ 0x00B4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 1056 */ 0x0078, 0x0079, 0x007A, 0x00E3, 0x00E7, 0x00F5, 0x007E, 0x007F, - /* 1064 */ 0x2022, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 1072 */ 0x0058, 0x0059, 0x005A, 0x00A1, 0x00D1, 0x00C7, 0x00BF, 0x005F, - /* 1080 */ 0x0078, 0x0079, 0x007A, 0x00B4, 0x00F1, 0x00E7, 0x00A8, 0x007F, - /* 1088 */ 0x00C1, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 1096 */ 0x0058, 0x0059, 0x005A, 0x00C9, 0x00D6, 0x00DC, 0x005E, 0x005F, - /* 1104 */ 0x00E1, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 1112 */ 0x0078, 0x0079, 0x007A, 0x00E9, 0x00F6, 0x00FC, 0x02DD, 0x007F, - /* 1120 */ 0x0040, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - /* 1128 */ 0x0398, 0x0399, 0xFFFF, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, - /* 1136 */ 0x039F, 0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0xFFFF, - /* 1144 */ 0x03A7, 0x03A8, 0x03A9, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - /* 1152 */ 0x0060, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, - /* 1160 */ 0x03B8, 0x03B9, 0xFFFF, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, - /* 1168 */ 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C2, - /* 1176 */ 0x03C7, 0x03C8, 0x03C9, 0x007B, 0x007C, 0x007D, 0x203E, 0x007F, - /* 1184 */ 0x0028, 0x0029, 0x002A, 0x002B, 0x060C, 0x002D, 0x002E, 0x002F, - /* 1192 */ 0x0038, 0x0039, 0x003A, 0x061B, 0x003C, 0x003D, 0x003E, 0x061F, - /* 1200 */ 0x0040, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, - /* 1208 */ 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, - /* 1216 */ 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, - /* 1224 */ 0x0638, 0x0639, 0x063A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - /* 1232 */ 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, - /* 1240 */ 0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, - /* 1248 */ 0x0650, 0x0651, 0x0652, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 1256 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x007B, 0x007C, 0x007D, 0x203E, 0x007F, - /* 1264 */ 0x0020, 0xFFFF, 0x0022, 0x00A3, 0x0024, 0x0025, 0x0026, 0x0027, - /* 1272 */ 0x0038, 0x0039, 0x003A, 0x003B, 0x2440, 0x003D, 0x2441, 0x003F, - /* 1280 */ 0x0058, 0x0059, 0x005A, 0xFFFF, 0x00A5, 0x2442, 0x005E, 0x005F, - /* 1288 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x2443, 0xFFFF, 0xFFFF, 0x007F, - /* 1296 */ 0x0058, 0x0059, 0x005A, 0x2329, 0x00A5, 0x232A, 0x005E, 0x005F, - /* 1304 */ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0xFFFF, 0x007F, - /* 1312 */ 0x0020, 0xFFFF, 0xFFFF, 0x00A3, 0x00A4, 0x005C, 0xFFFF, 0x00A7, - /* 1320 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x007C, 0xFFFF, 0xFFFF, 0x007F, - /* 1328 */ 0x0020, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x005C, 0xFFFF, 0xFFFF, - /* 1336 */ 0x0020, 0xFFFF, 0x300C, 0x300D, 0xFFFF, 0xFFFF, 0x30F2, 0xFFFF, - /* 1344 */ 0x0038, 0x0039, 0x2446, 0x2447, 0x2448, 0x2449, 0xFFFF, 0xFFFF, - /* 1352 */ 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, - /* 1360 */ 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, - /* 1368 */ 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, - /* 1376 */ 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, - /* 1384 */ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, - /* 1392 */ 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - /* 1400 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, - /* 1408 */ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, - /* 1416 */ 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, - /* 1424 */ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, - /* 1432 */ 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, - /* 1440 */ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, - /* 1448 */ 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, - /* 1456 */ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, - /* 1464 */ 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, - /* 1472 */ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF, - /* 1480 */ 0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7, - /* 1488 */ 0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B, - /* 1496 */ 0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7, - /* 1504 */ 0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C, - /* 1512 */ 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7, - /* 1520 */ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E, - /* 1528 */ 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7, - /* 1536 */ 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF, - /* 1544 */ 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7, - /* 1552 */ 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F, - /* 1560 */ 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7, - /* 1568 */ 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9, - /* 1576 */ 0x0058, 0x0059, 0x005A, 0x005B, 0xFFFF, 0x005D, 0xFFFF, 0x005F, - /* 1584 */ 0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0xFFFF, 0x0124, 0x00A7, - /* 1592 */ 0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, 0xFFFF, 0x017B, - /* 1600 */ 0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7, - /* 1608 */ 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, 0xFFFF, 0x017C, - /* 1616 */ 0x00C0, 0x00C1, 0x00C2, 0xFFFF, 0x00C4, 0x010A, 0x0108, 0x00C7, - /* 1624 */ 0xFFFF, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7, - /* 1632 */ 0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF, - /* 1640 */ 0x00E0, 0x00E1, 0x00E2, 0xFFFF, 0x00E4, 0x010B, 0x0109, 0x00E7, - /* 1648 */ 0xFFFF, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7, - /* 1656 */ 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9, - /* 1664 */ 0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7, - /* 1672 */ 0x00A8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF, - /* 1680 */ 0x00B0, 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7, - /* 1688 */ 0x00B8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B, - /* 1696 */ 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E, - /* 1704 */ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A, - /* 1712 */ 0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7, - /* 1720 */ 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF, - /* 1728 */ 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F, - /* 1736 */ 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B, - /* 1744 */ 0x0111, 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7, - /* 1752 */ 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9, - /* 1760 */ 0x00A0, 0x0452, 0x0453, 0x0451, 0x0454, 0x0455, 0x0456, 0x0457, - /* 1768 */ 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00AD, 0x045E, 0x045F, - /* 1776 */ 0x2116, 0x0402, 0x0403, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, - /* 1784 */ 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00A4, 0x040E, 0x040F, - /* 1792 */ 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A, - /* 1800 */ 0x0058, 0x0059, 0x005A, 0x00E2, 0x00E7, 0x00EA, 0x00EE, 0x005F, - /* 1808 */ 0x00F4, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 1816 */ 0x0078, 0x0079, 0x007A, 0x00E9, 0x00F9, 0x00E8, 0x00FB, 0x007F, - /* 1824 */ 0x0058, 0x0059, 0x005A, 0x00E2, 0x00E7, 0x00EA, 0x00C9, 0x005F, - /* 1832 */ 0x00A0, 0x00A1, 0x00A8, 0x00A3, 0x00A2, 0x00A5, 0x00B1, 0x00B4, - /* 1840 */ 0x207D, 0x207E, 0x00BD, 0x207A, 0x00B8, 0x00AD, 0x00B7, 0x207B, - /* 1848 */ 0x2078, 0x2079, 0x00BC, 0x00BE, 0x21D0, 0x2260, 0x2265, 0x00BF, - /* 1856 */ 0x00C0, 0x00C1, 0x00C2, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, - /* 1864 */ 0x00CD, 0x00CE, 0x00CF, 0x00D1, 0x00D3, 0x00D4, 0x00D9, 0x00DA, - /* 1872 */ 0x00DB, 0x00DC, 0x00AE, 0x00A7, 0x00B6, 0x00B5, 0x00AA, 0x00BA, - /* 1880 */ 0x2018, 0x2019, 0x201C, 0x201D, 0x00AB, 0x00BB, 0x00B0, 0x00A6, - /* 1888 */ 0x00E0, 0x00E1, 0x00E2, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, - /* 1896 */ 0x00ED, 0x00EE, 0x00EF, 0x00F1, 0x00F3, 0x00F4, 0x00F9, 0x00FA, - /* 1904 */ 0x00FB, 0x00FC, 0x00A9, 0x2500, 0x2502, 0x2514, 0x2518, 0x2510, - /* 1912 */ 0x250C, 0x251C, 0x2534, 0x2524, 0x252C, 0x253C, 0x00AC, 0x2588, - /* 1920 */ 0x00A0, 0x201B, 0x2019, 0x00A3, 0xFFFF, 0xFFFF, 0x00A6, 0x00A7, - /* 1928 */ 0x00A8, 0x00A9, 0xFFFF, 0x00AB, 0x00AC, 0x00AD, 0xFFFF, 0x2014, - /* 1936 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x0385, 0x0386, 0x00B7, - /* 1944 */ 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F, - /* 1952 */ 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - /* 1960 */ 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, - /* 1968 */ 0x03A0, 0x03A1, 0xFFFF, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, - /* 1976 */ 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, - /* 1984 */ 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, - /* 1992 */ 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, - /* 2000 */ 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, - /* 2008 */ 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0xFFFF, - /* 2016 */ 0x00A0, 0xFFFF, 0xFFFF, 0xFFFF, 0x00A4, 0xFFFF, 0xFFFF, 0xFFFF, - /* 2024 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x060C, 0x00AD, 0xFFFF, 0xFFFF, - /* 2032 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x061B, 0xFFFF, 0xFFFF, 0xFFFF, 0x061F, - /* 2040 */ 0xFFFF, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, - /* 2048 */ 0x0638, 0x0639, 0x063A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 2056 */ 0x00A0, 0xFFFF, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, - /* 2064 */ 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x203E, - /* 2072 */ 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0xFFFF, - /* 2080 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x2017, - /* 2088 */ 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, - /* 2096 */ 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, - /* 2104 */ 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, - /* 2112 */ 0x05E8, 0x05E9, 0x05EA, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 2120 */ 0x00A0, 0x0104, 0x02D8, 0x0141, 0x0024, 0x013D, 0x015A, 0x00A7, - /* 2128 */ 0x017D, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 2136 */ 0x0058, 0x0059, 0x005A, 0x0160, 0x0110, 0x0106, 0x010C, 0x005F, - /* 2144 */ 0x017E, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 2152 */ 0x0078, 0x0079, 0x007A, 0x0161, 0x0111, 0x0107, 0x010D, 0x007F, - /* 2160 */ 0x02C7, 0x2261, 0x2227, 0x2228, 0x2229, 0x222A, 0x2282, 0x2283, - /* 2168 */ 0x21D0, 0x21D2, 0x2234, 0x2235, 0x2208, 0x220B, 0x2286, 0x2287, - /* 2176 */ 0x222B, 0x222E, 0x221E, 0x2207, 0x2202, 0x223C, 0x2248, 0x2243, - /* 2184 */ 0x2245, 0x2264, 0x2260, 0x2265, 0x2194, 0x00AC, 0x2200, 0x2203, - /* 2192 */ 0x05D0, 0x25A1, 0x2225, 0x0393, 0x0394, 0x22A5, 0x2220, 0x221F, - /* 2200 */ 0x0398, 0x2329, 0x232A, 0x039B, 0x2032, 0x2033, 0x039E, 0x2213, - /* 2208 */ 0x03A0, 0x00B2, 0x03A3, 0x00D7, 0x00B3, 0x03A5, 0x03A6, 0x00B7, - /* 2216 */ 0x03A8, 0x03A9, 0x2205, 0x21C0, 0x221A, 0x0192, 0x221D, 0x00B1, - /* 2224 */ 0x00B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, - /* 2232 */ 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x2030, - /* 2240 */ 0x03C0, 0x03C1, 0x03C3, 0x00F7, 0x03C4, 0x03C5, 0x03C6, 0x03C7, - /* 2248 */ 0x03C8, 0x03C9, 0x2020, 0x2190, 0x2191, 0x2192, 0x2193, 0x203E, - /* 2256 */ 0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, - /* 2264 */ 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F, - /* 2272 */ 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, - /* 2280 */ 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, - /* 2288 */ 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, - /* 2296 */ 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, - /* 2304 */ 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - /* 2312 */ 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, - /* 2320 */ 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - /* 2328 */ 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, - /* 2336 */ 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, - /* 2344 */ 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F, - /* 2352 */ 0x0416, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - /* 2360 */ 0x0425, 0x0418, 0x0408, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, - /* 2368 */ 0x041F, 0x0409, 0x0420, 0x0421, 0x0422, 0x0423, 0x0412, 0x040A, - /* 2376 */ 0x040F, 0x0405, 0x0417, 0x0428, 0x0402, 0x040B, 0x0427, 0x005F, - /* 2384 */ 0x0436, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, - /* 2392 */ 0x0445, 0x0438, 0x0458, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, - /* 2400 */ 0x043F, 0x0459, 0x0440, 0x0441, 0x0442, 0x0443, 0x0432, 0x045A, - /* 2408 */ 0x045F, 0x0455, 0x0437, 0x0448, 0x0452, 0x045B, 0x0447, 0x007F, - /* 2416 */ 0x040F, 0x0405, 0x0417, 0x0428, 0x0403, 0x040C, 0x0427, 0x005F, - /* 2424 */ 0x045F, 0x0455, 0x0437, 0x0448, 0x0453, 0x045C, 0x0447, 0x007F, - /* 2432 */ 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, - /* 2440 */ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF, - /* 2448 */ 0x00E8, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B, - /* 2456 */ 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, - /* 2464 */ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF, - /* 2472 */ 0x03A8, 0x03A9, 0xFFFF, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - /* 2480 */ 0xFFFF, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, - /* 2488 */ 0x03C8, 0x03C9, 0xFFFF, 0x007B, 0x007C, 0x007D, 0x00AF, 0x007F, - /* 2496 */ 0x0058, 0x0059, 0x005A, 0x00A1, 0x00D1, 0x005D, 0x00BF, 0x005F, - /* 2504 */ 0x0078, 0x0079, 0x007A, 0x00B4, 0x00F1, 0x005B, 0x00A8, 0x007F, - /* 2512 */ 0x00A0, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 2520 */ 0xFFFF, 0xFFFF, 0x201C, 0xFFFF, 0x2190, 0x2191, 0x2192, 0x2193, - /* 2528 */ 0xFFFF, 0xFFFF, 0x201D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 2536 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x2122, 0x266A, 0xFFFF, 0xFFFF, - /* 2544 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x215B, 0x215C, 0x215D, 0x215E, - /* 2552 */ 0x2126, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0132, 0x013F, - /* 2560 */ 0xFFFF, 0xFFFF, 0x0152, 0xFFFF, 0x0174, 0x0176, 0x0178, 0x0149, - /* 2568 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0133, 0x0140, - /* 2576 */ 0xFFFF, 0xFFFF, 0x0153, 0xFFFF, 0x0175, 0x0177, 0xFFFF, 0xFFFF, - /* 2584 */ 0x00A0, 0x0401, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 2592 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00AD, 0xFFFF, 0xFFFF, - /* 2600 */ 0xFFFF, 0x0451, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 2608 */ 0xFFFF, 0xFFFF, 0x0100, 0x0108, 0x010A, 0xFFFF, 0x0116, 0x0112, - /* 2616 */ 0x011C, 0x2018, 0x201C, 0x2122, 0x2190, 0x2191, 0x2192, 0x2193, - /* 2624 */ 0xFFFF, 0xFFFF, 0x0101, 0x0109, 0x010B, 0x00F0, 0x0117, 0x0113, - /* 2632 */ 0x011D, 0x2019, 0x201D, 0x266A, 0x215B, 0x215C, 0x215D, 0x215E, - /* 2640 */ 0xFFFF, 0x011E, 0x0120, 0x0122, 0x0124, 0x0126, 0x0128, 0x0130, - /* 2648 */ 0x012A, 0x012E, 0x0132, 0x0134, 0x0136, 0x013B, 0x013F, 0x0145, - /* 2656 */ 0x2014, 0x014A, 0x014C, 0x0152, 0x0156, 0x015C, 0x0166, 0x00DE, - /* 2664 */ 0x0168, 0x016C, 0x016A, 0x0172, 0x0174, 0x00DD, 0x0176, 0x0178, - /* 2672 */ 0x2126, 0x011F, 0x0121, 0x0123, 0x0125, 0x0127, 0x0129, 0x0131, - /* 2680 */ 0x012B, 0x012F, 0x0133, 0x0135, 0x0137, 0x013C, 0x0140, 0x0146, - /* 2688 */ 0x0138, 0x014B, 0x014D, 0x0153, 0x0157, 0x015D, 0x0167, 0x00FE, - /* 2696 */ 0x0169, 0x016D, 0x016B, 0x0173, 0x0175, 0x00FD, 0x0177, 0x0149, - /* 2704 */ 0x2551, 0x2550, 0x2554, 0x2557, 0x255A, 0x255D, 0x2560, 0x2563, - /* 2712 */ 0x2566, 0x2569, 0x256C, 0xE019, 0x2584, 0x2588, 0x25AA, 0xFFFF, - /* 2720 */ 0x2502, 0x2500, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, - /* 2728 */ 0x252C, 0x2534, 0x253C, 0x2591, 0x2592, 0x2593, 0xFFFF, 0xFFFF, - /* 2736 */ 0x00A0, 0x0104, 0x0112, 0x0122, 0x012A, 0x0128, 0x0136, 0x00A7, - /* 2744 */ 0x013B, 0x0110, 0x0160, 0x0166, 0x017D, 0x00AD, 0x016A, 0x014A, - /* 2752 */ 0x00B0, 0x0105, 0x0113, 0x0123, 0x012B, 0x0129, 0x0137, 0x00B7, - /* 2760 */ 0x013C, 0x0111, 0x0161, 0x0167, 0x017E, 0x2014, 0x016B, 0x014B, - /* 2768 */ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x00CF, - /* 2776 */ 0x00D0, 0x0145, 0x014C, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0168, - /* 2784 */ 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, - /* 2792 */ 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x00EF, - /* 2800 */ 0x00F0, 0x0146, 0x014D, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0169, - /* 2808 */ 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x0138, - /* 2816 */ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x201E, 0x00A6, 0x00A7, - /* 2824 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x201C, 0x00B5, 0x00B6, 0x00B7, - /* 2832 */ 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112, - /* 2840 */ 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B, - /* 2848 */ 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, - /* 2856 */ 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF, - /* 2864 */ 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113, - /* 2872 */ 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C, - /* 2880 */ 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, - /* 2888 */ 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x2019, - /* 2896 */ 0x00A0, 0x1E02, 0x1E03, 0x00A3, 0x010A, 0x010B, 0x1E0A, 0x00A7, - /* 2904 */ 0x1E80, 0x00A9, 0x1E82, 0x1E0B, 0x1EF2, 0x00AD, 0x00AE, 0x1E61, - /* 2912 */ 0x1E1E, 0x1E1F, 0x0120, 0x0121, 0x1E40, 0x1E41, 0x00B6, 0x1E56, - /* 2920 */ 0x1E81, 0x1E57, 0x1E83, 0x1E60, 0x1EF3, 0x1E84, 0x1E85, 0x0178, - /* 2928 */ 0x0174, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x1E6A, - /* 2936 */ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x0176, 0x00DF, - /* 2944 */ 0x0175, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x1E6B, - /* 2952 */ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x0177, 0x00FF, - /* 2960 */ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0160, 0x00A7, - /* 2968 */ 0x0161, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - /* 2976 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x017D, 0x00B5, 0x00B6, 0x00B7, - /* 2984 */ 0x017E, 0x00B9, 0x00BA, 0x00BB, 0x0152, 0x0153, 0x0178, 0x00BF, - /* 2992 */ 0x00B4, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 3000 */ 0x02BB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 3008 */ 0x0102, 0x00C0, 0x01DE, 0x01E0, 0x01E2, 0x0114, 0x00C8, 0x01E4, - /* 3016 */ 0x01E6, 0x01E8, 0x014E, 0x00D2, 0x01EA, 0x01EC, 0x01B7, 0x01EE, - /* 3024 */ 0x0103, 0x00E0, 0x01DF, 0x01E1, 0x01E3, 0x0115, 0x00E8, 0x01E5, - /* 3032 */ 0x01E7, 0x01E9, 0x014F, 0x00F2, 0x01EB, 0x01ED, 0x0292, 0x01EF, - /* 3040 */ 0x00A0, 0x201D, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, - /* 3048 */ 0x00D8, 0x00A9, 0x201E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, - /* 3056 */ 0x00F8, 0x00B9, 0x201C, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, - /* 3064 */ 0x012E, 0x0116, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0104, 0x010C, - /* 3072 */ 0x0122, 0x00C9, 0x017D, 0x0118, 0x0112, 0x0136, 0x012A, 0x013B, - /* 3080 */ 0x0141, 0x0145, 0x0143, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7, - /* 3088 */ 0x0172, 0x0160, 0x015A, 0x016A, 0x00DC, 0x017B, 0x0179, 0x00DF, - /* 3096 */ 0x012F, 0x0117, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0105, 0x010D, - /* 3104 */ 0x0123, 0x00E9, 0x017E, 0x0119, 0x0113, 0x0137, 0x012B, 0x013C, - /* 3112 */ 0x0142, 0x0146, 0x0144, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7, - /* 3120 */ 0x0173, 0x0161, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017A, 0x0138, - /* 3128 */ 0x0078, 0x0079, 0x007A, 0x00E6, 0x00F8, 0x00E5, 0x007E, 0x007F, - /* 3136 */ 0xFFFF, 0x3002, 0x300C, 0x300D, 0x3001, 0x30FB, 0x30F2, 0x30A1, - /* 3144 */ 0x0058, 0x0059, 0x005A, 0x005B, 0x20A9, 0x005D, 0x005E, 0x005F, - /* 3152 */ 0xFFFF, 0x00A1, 0x00A2, 0x00A3, 0xFFFF, 0x00A5, 0xFFFF, 0x00A7, - /* 3160 */ 0x00A4, 0x00A9, 0x00AA, 0x00AB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 3168 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0xFFFF, 0x00B5, 0x00B6, 0x00B7, - /* 3176 */ 0xFFFF, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0xFFFF, 0x00BF, - /* 3184 */ 0xFFFF, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0152, - /* 3192 */ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0178, 0xFFFF, 0x00DF, - /* 3200 */ 0xFFFF, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0153, - /* 3208 */ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FF, 0xFFFF, 0xFFFF, - /* 3216 */ 0x00A0, 0x00C0, 0x00C2, 0x00C8, 0x00CA, 0x00CB, 0x00CE, 0x00CF, - /* 3224 */ 0x00B4, 0x02CB, 0x02C6, 0x00A8, 0x02DC, 0x00D9, 0x00DB, 0x20A4, - /* 3232 */ 0x00AF, 0x00DD, 0x00FD, 0x00B0, 0x00C7, 0x00E7, 0x00D1, 0x00F1, - /* 3240 */ 0x00A1, 0x00BF, 0x00A4, 0x00A3, 0x00A5, 0x00A7, 0x0192, 0x00A2, - /* 3248 */ 0x00E2, 0x00EA, 0x00F4, 0x00FB, 0x00E1, 0x00E9, 0x00F3, 0x00FA, - /* 3256 */ 0x00E0, 0x00E8, 0x00F2, 0x00F9, 0x00E4, 0x00EB, 0x00F6, 0x00FC, - /* 3264 */ 0x00C5, 0x00EE, 0x00D8, 0x00C6, 0x00E5, 0x00ED, 0x00F8, 0x00E6, - /* 3272 */ 0x00C4, 0x00EC, 0x00D6, 0x00DC, 0x00C9, 0x00EF, 0x00DF, 0x00D4, - /* 3280 */ 0x00C1, 0x00C3, 0x00E3, 0x00D0, 0x00F0, 0x00CD, 0x00CC, 0x00D3, - /* 3288 */ 0x00D2, 0x00D5, 0x00F5, 0x0160, 0x0161, 0x00DA, 0x0178, 0x00FF, - /* 3296 */ 0x00DE, 0x00FE, 0x00B7, 0x00B5, 0x00B6, 0x00BE, 0x2014, 0x00BC, - /* 3304 */ 0x00BD, 0x00AA, 0x00BA, 0x00AB, 0x25A0, 0x00BB, 0x00B1, 0xFFFF, - /* 3312 */ 0x00A0, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C7, - /* 3320 */ 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D9, - /* 3328 */ 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00B5, 0x00D7, 0x00F7, - /* 3336 */ 0x00A9, 0x00A1, 0x00A2, 0x00A3, 0x2044, 0x00A5, 0x0192, 0x00A7, - /* 3344 */ 0x00A4, 0xFFFF, 0x201C, 0x00AB, 0xFFFF, 0xFFFF, 0xFB01, 0xFB02, - /* 3352 */ 0x00AE, 0x2013, 0x2020, 0x2021, 0x00B7, 0x00A6, 0x00B6, 0x2022, - /* 3360 */ 0xFFFF, 0xFFFF, 0x201D, 0x00BB, 0x2026, 0x2030, 0x00AC, 0x00BF, - /* 3368 */ 0x00B9, 0x02CB, 0x00B4, 0x02C6, 0x02DC, 0x00AF, 0x02D8, 0x02D9, - /* 3376 */ 0x00A8, 0x00B2, 0x02DA, 0x00B8, 0x00B3, 0x02DD, 0x02DB, 0x02C7, - /* 3384 */ 0x2014, 0x00B1, 0x00BC, 0x00BD, 0x00BE, 0x00E0, 0x00E1, 0x00E2, - /* 3392 */ 0x00E3, 0x00E4, 0x00E5, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, - /* 3400 */ 0x00EC, 0x00C6, 0x00ED, 0x00AA, 0x00EE, 0x00EF, 0x00F0, 0x00F1, - /* 3408 */ 0x0141, 0x00D8, 0x0152, 0x00BA, 0x00F2, 0x00F3, 0x00F4, 0x00F5, - /* 3416 */ 0x00F6, 0x00E6, 0x00F9, 0x00FA, 0x00FB, 0x0131, 0x00FC, 0x00FD, - /* 3424 */ 0x0142, 0x00F8, 0x0153, 0x00DF, 0x00FE, 0x00FF, 0xFFFF, 0xFFFF, - /* 3432 */ 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1, - /* 3440 */ 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8, - /* 3448 */ 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, - /* 3456 */ 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC, - /* 3464 */ 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF, - /* 3472 */ 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, - /* 3480 */ 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211, - /* 3488 */ 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8, - /* 3496 */ 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x0394, 0x00AB, - /* 3504 */ 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x2126, 0x0152, 0x0153, - /* 3512 */ 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, - /* 3520 */ 0x00FF, 0x0178, 0x2044, 0x00A4, 0x2039, 0x203A, 0xFB01, 0xFB02, - /* 3528 */ 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1, - /* 3536 */ 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, - /* 3544 */ 0xE01E, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0xFFFF, 0xFFFF, - /* 3552 */ 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7, - /* 3560 */ 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153, - /* 3568 */ 0x2014, 0x2013, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25C6, - /* 3576 */ 0x00FF, 0x0178, 0x2044, 0x00A4, 0x0110, 0x0111, 0x00DE, 0x00FE, - /* 3584 */ 0x0000, 0x0001, 0x0002, 0x0003, 0x009C, 0x0009, 0x0086, 0x007F, - /* 3592 */ 0x0097, 0x008D, 0x008E, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - /* 3600 */ 0x0010, 0x0011, 0x0012, 0x0013, 0x009D, 0x0085, 0x0008, 0x0087, - /* 3608 */ 0x0018, 0x0019, 0x0092, 0x008F, 0x001C, 0x001D, 0x001E, 0x001F, - /* 3616 */ 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000A, 0x0017, 0x001B, - /* 3624 */ 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x0005, 0x0006, 0x0007, - /* 3632 */ 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - /* 3640 */ 0x0098, 0x0099, 0x009A, 0x009B, 0x0014, 0x0015, 0x009E, 0x001A, - /* 3648 */ 0x0020, 0x00A0, 0x00E2, 0x00E4, 0x00E0, 0x00E1, 0x00E3, 0x00E5, - /* 3656 */ 0x00E7, 0x00F1, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, - /* 3664 */ 0x0026, 0x00E9, 0x00EA, 0x00EB, 0x00E8, 0x00ED, 0x00EE, 0x00EF, - /* 3672 */ 0x00EC, 0x00DF, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC, - /* 3680 */ 0x002D, 0x002F, 0x00C2, 0x00C4, 0x00C0, 0x00C1, 0x00C3, 0x00C5, - /* 3688 */ 0x00C7, 0x00D1, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 3696 */ 0x00F8, 0x00C9, 0x00CA, 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, - /* 3704 */ 0x00CC, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, - /* 3712 */ 0x00D8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 3720 */ 0x0068, 0x0069, 0x00AB, 0x00BB, 0x00F0, 0x00FD, 0x00FE, 0x00B1, - /* 3728 */ 0x00B0, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, - /* 3736 */ 0x0071, 0x0072, 0x00AA, 0x00BA, 0x00E6, 0x00B8, 0x00C6, 0x00A4, - /* 3744 */ 0x00B5, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 3752 */ 0x0079, 0x007A, 0x00A1, 0x00BF, 0x00D0, 0x00DD, 0x00DE, 0x00AE, - /* 3760 */ 0x005E, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC, - /* 3768 */ 0x00BD, 0x00BE, 0x005B, 0x005D, 0x00AF, 0x00A8, 0x00B4, 0x00D7, - /* 3776 */ 0x007B, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 3784 */ 0x0048, 0x0049, 0x00AD, 0x00F4, 0x00F6, 0x00F2, 0x00F3, 0x00F5, - /* 3792 */ 0x007D, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, - /* 3800 */ 0x0051, 0x0052, 0x00B9, 0x00FB, 0x00FC, 0x00F9, 0x00FA, 0x00FF, - /* 3808 */ 0x005C, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 3816 */ 0x0059, 0x005A, 0x00B2, 0x00D4, 0x00D6, 0x00D2, 0x00D3, 0x00D5, - /* 3824 */ 0x0038, 0x0039, 0x00B3, 0x00DB, 0x00DC, 0x00D9, 0x00DA, 0x009F, - /* 3832 */ 0xFFFF, 0xFFFF, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 3840 */ 0x0026, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 3848 */ 0xFFFF, 0xFFFF, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 3856 */ 0x002D, 0x002F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 3864 */ 0xFFFF, 0xFFFF, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 3872 */ 0xFFFF, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, - /* 3880 */ 0x0068, 0x0069, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 3888 */ 0xFFFF, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, - /* 3896 */ 0x0071, 0x0072, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 3904 */ 0xFFFF, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 3912 */ 0x0079, 0x007A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 3920 */ 0x0048, 0x0049, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 3928 */ 0x0051, 0x0052, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 3936 */ 0x005C, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 3944 */ 0x0059, 0x005A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 3952 */ 0x0038, 0x0039, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x009F, - /* 3960 */ 0x00E7, 0x00F1, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 3968 */ 0x00EC, 0x00DF, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 3976 */ 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, 0x00A7, 0x00B6, 0x00BC, - /* 3984 */ 0x00BD, 0x00BE, 0x00AC, 0x007C, 0x203E, 0x00A8, 0x00B4, 0x2017, - /* 3992 */ 0x005C, 0x2003, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 4000 */ 0x0020, 0x00A0, 0x00E2, 0x007B, 0x00E0, 0x00E1, 0x00E3, 0x00E5, - /* 4008 */ 0x00E7, 0x00F1, 0x00C4, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 4016 */ 0x00EC, 0x007E, 0x00DC, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 4024 */ 0x002D, 0x002F, 0x00C2, 0x005B, 0x00C0, 0x00C1, 0x00C3, 0x00C5, - /* 4032 */ 0x00C7, 0x00D1, 0x00F6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 4040 */ 0x00CC, 0x0060, 0x003A, 0x0023, 0x00A7, 0x0027, 0x003D, 0x0022, - /* 4048 */ 0x00B5, 0x00DF, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 4056 */ 0x00A2, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x0040, 0x00B6, 0x00BC, - /* 4064 */ 0x00BD, 0x00BE, 0x00AC, 0x007C, 0x203E, 0x00A8, 0x00B4, 0x00D7, - /* 4072 */ 0x00E4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 4080 */ 0x0048, 0x0049, 0x00AD, 0x00F4, 0x00A6, 0x00F2, 0x00F3, 0x00F5, - /* 4088 */ 0x00FC, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, - /* 4096 */ 0x0051, 0x0052, 0x00B9, 0x00FB, 0x007D, 0x00F9, 0x00FA, 0x00FF, - /* 4104 */ 0x00D6, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 4112 */ 0x0059, 0x005A, 0x00B2, 0x00D4, 0x005C, 0x00D2, 0x00D3, 0x00D5, - /* 4120 */ 0x0038, 0x0039, 0x00B3, 0x00DB, 0x005D, 0x00D9, 0x00DA, 0x009F, - /* 4128 */ 0xFFFF, 0xFFFF, 0x00F9, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 4136 */ 0xFFFF, 0x0060, 0x003A, 0x0023, 0x00E0, 0x0027, 0x003D, 0x0022, - /* 4144 */ 0xFFFF, 0x00A8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 4152 */ 0x00E9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 4160 */ 0x00E8, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, - /* 4168 */ 0x00E7, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 4176 */ 0xFFFF, 0xFFFF, 0x00C9, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 4184 */ 0xFFFF, 0xFFFF, 0x0024, 0x00C7, 0x002A, 0x0029, 0x003B, 0x005E, - /* 4192 */ 0xFFFF, 0xFFFF, 0x00E7, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 4200 */ 0xFFFF, 0x00E3, 0x003A, 0x00D5, 0x00C3, 0x0027, 0x003D, 0x0022, - /* 4208 */ 0x00F5, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 4216 */ 0x00E9, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, - /* 4224 */ 0x0020, 0x00A0, 0x00E2, 0x00E4, 0x00E0, 0x00E1, 0x00E3, 0x007D, - /* 4232 */ 0x00E7, 0x00F1, 0x0023, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 4240 */ 0x00EC, 0x00DF, 0x00A4, 0x00C5, 0x002A, 0x0029, 0x003B, 0x005E, - /* 4248 */ 0x002D, 0x002F, 0x00C2, 0x00C4, 0x00C0, 0x00C1, 0x00C3, 0x0024, - /* 4256 */ 0x00C7, 0x00D1, 0x00F8, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 4264 */ 0x00A6, 0x00C9, 0x00CA, 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, - /* 4272 */ 0x00CC, 0x0060, 0x003A, 0x00C6, 0x00D8, 0x0027, 0x003D, 0x0022, - /* 4280 */ 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 4288 */ 0x0071, 0x0072, 0x00AA, 0x00BA, 0x007B, 0x00B8, 0x005B, 0x005D, - /* 4296 */ 0x00B5, 0x00FC, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 4304 */ 0x00A2, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC, - /* 4312 */ 0x00E6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 4320 */ 0x00E5, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, - /* 4328 */ 0x0051, 0x0052, 0x00B9, 0x00FB, 0x007E, 0x00F9, 0x00FA, 0x00FF, - /* 4336 */ 0x0020, 0x00A0, 0x00E2, 0x007B, 0x00E0, 0x00E1, 0x00E3, 0x007D, - /* 4344 */ 0x00E7, 0x00F1, 0x00A7, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 4352 */ 0x0026, 0x0060, 0x00EA, 0x00EB, 0x00E8, 0x00ED, 0x00EE, 0x00EF, - /* 4360 */ 0x002D, 0x002F, 0x00C2, 0x0023, 0x00C0, 0x00C1, 0x00C3, 0x0024, - /* 4368 */ 0x00CC, 0x00E9, 0x003A, 0x00C4, 0x00D6, 0x0027, 0x003D, 0x0022, - /* 4376 */ 0x0071, 0x0072, 0x00AA, 0x00BA, 0x00E6, 0x00B8, 0x00C6, 0x005D, - /* 4384 */ 0x00A2, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x005B, 0x00B6, 0x00BC, - /* 4392 */ 0x0059, 0x005A, 0x00B2, 0x00D4, 0x0040, 0x00D2, 0x00D3, 0x00D5, - /* 4400 */ 0x0020, 0x00A0, 0x00E2, 0x00E4, 0x007B, 0x00E1, 0x00E3, 0x00E5, - /* 4408 */ 0x005C, 0x00F1, 0x00B0, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 4416 */ 0x0026, 0x005D, 0x00EA, 0x00EB, 0x007D, 0x00ED, 0x00EE, 0x00EF, - /* 4424 */ 0x007E, 0x00DF, 0x00E9, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 4432 */ 0x00C7, 0x00D1, 0x00F2, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 4440 */ 0x00CC, 0x00F9, 0x003A, 0x00A3, 0x00A7, 0x0027, 0x003D, 0x0022, - /* 4448 */ 0x005B, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, - /* 4456 */ 0x00B5, 0x00EC, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 4464 */ 0x00A2, 0x0023, 0x00A5, 0x00B7, 0x00A9, 0x0040, 0x00B6, 0x00BC, - /* 4472 */ 0x0048, 0x0049, 0x00AD, 0x00F4, 0x00F6, 0x00A6, 0x00F3, 0x00F5, - /* 4480 */ 0x0051, 0x0052, 0x00B9, 0x00FB, 0x00FC, 0x0060, 0x00FA, 0x00FF, - /* 4488 */ 0x00E7, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 4496 */ 0xFFFF, 0xFFFF, 0x00A3, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, - /* 4504 */ 0xFFFF, 0xFFFF, 0x0021, 0x00A5, 0x002A, 0x0029, 0x003B, 0x00AC, - /* 4512 */ 0xFFFF, 0x203E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 4520 */ 0x0024, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 4528 */ 0x00E7, 0x00A6, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, - /* 4536 */ 0x00EC, 0x00DF, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC, - /* 4544 */ 0x00C7, 0x0023, 0x00F1, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 4552 */ 0x00CC, 0x0060, 0x003A, 0x00D1, 0x0040, 0x0027, 0x003D, 0x0022, - /* 4560 */ 0x00B5, 0x00A8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 4568 */ 0x00BD, 0x00BE, 0x005E, 0x0021, 0x203E, 0x007E, 0x00B4, 0x00D7, - /* 4576 */ 0x00E7, 0x00F1, 0x0024, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, - /* 4584 */ 0x00EC, 0x00DF, 0x0021, 0x00A3, 0x002A, 0x0029, 0x003B, 0x00AC, - /* 4592 */ 0x00B5, 0x203E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 4600 */ 0x00A2, 0x005B, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC, - /* 4608 */ 0x00BD, 0x00BE, 0x005E, 0x005D, 0x007E, 0x00A8, 0x00B4, 0x00D7, - /* 4616 */ 0x30A3, 0x30A5, 0x00A3, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, - /* 4624 */ 0x0026, 0x30A7, 0x30A9, 0x30E3, 0x30E5, 0x30E7, 0x30C3, 0xFFFF, - /* 4632 */ 0x30FC, 0xFFFF, 0x0021, 0x00A5, 0x002A, 0x0029, 0x003B, 0x00AC, - /* 4640 */ 0xFFFF, 0x30A2, 0x30A4, 0x30A6, 0x30A8, 0x30AA, 0x30AB, 0x30AD, - /* 4648 */ 0x30AF, 0x30B1, 0x30B3, 0xFFFF, 0x30B5, 0x30B7, 0x30B9, 0x30BB, - /* 4656 */ 0x30BD, 0x30BF, 0x30C1, 0x30C4, 0x30C6, 0x30C8, 0x30CA, 0x30CB, - /* 4664 */ 0x30CC, 0x30CD, 0x30CE, 0xFFFF, 0xFFFF, 0x30CF, 0x30D2, 0x30D5, - /* 4672 */ 0xFFFF, 0x203E, 0x30D8, 0x30DB, 0x30DE, 0x30DF, 0x30E0, 0x30E1, - /* 4680 */ 0x30E2, 0x30E4, 0x30E6, 0xFFFF, 0x30E8, 0x30E9, 0x30EA, 0x30EB, - /* 4688 */ 0xFFFF, 0xFFFF, 0x30EC, 0x30ED, 0x30EF, 0x30F3, 0x309B, 0x309C, - /* 4696 */ 0xFFFF, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, - /* 4704 */ 0x0020, 0x00A0, 0x00E2, 0x00E4, 0x0040, 0x00E1, 0x00E3, 0x00E5, - /* 4712 */ 0x0026, 0x007B, 0x00EA, 0x00EB, 0x007D, 0x00ED, 0x00EE, 0x00EF, - /* 4720 */ 0x00EC, 0x00DF, 0x00A7, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 4728 */ 0x00C7, 0x00D1, 0x00F9, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 4736 */ 0x00CC, 0x00B5, 0x003A, 0x00A3, 0x00E0, 0x0027, 0x003D, 0x0022, - /* 4744 */ 0x0060, 0x00A8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 4752 */ 0x00A2, 0x0023, 0x00A5, 0x00B7, 0x00A9, 0x005D, 0x00B6, 0x00BC, - /* 4760 */ 0x00BD, 0x00BE, 0x00AC, 0x007C, 0x203E, 0x007E, 0x00B4, 0x00D7, - /* 4768 */ 0x0051, 0x0052, 0x00B9, 0x00FB, 0x00FC, 0x00A6, 0x00FA, 0x00FF, - /* 4776 */ 0x0020, 0x00A0, 0x0651, 0xFE7D, 0x0640, 0xFFFF, 0x0621, 0x0622, - /* 4784 */ 0xFE82, 0x0623, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, - /* 4792 */ 0x0026, 0xFE84, 0x0624, 0xFFFF, 0xFFFF, 0x0626, 0x0627, 0xFE8E, - /* 4800 */ 0x0628, 0xFE91, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC, - /* 4808 */ 0x002D, 0x002F, 0x0629, 0x062A, 0xFE97, 0x062B, 0xFE9B, 0x062C, - /* 4816 */ 0xFE9F, 0x062D, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 4824 */ 0xFEA3, 0x062E, 0xFEA7, 0x062F, 0x0630, 0x0631, 0x0632, 0x0633, - /* 4832 */ 0xFEB3, 0x060C, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, - /* 4840 */ 0x0634, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 4848 */ 0x0068, 0x0069, 0xFEB7, 0x0635, 0xFEBB, 0x0636, 0xFEBF, 0x0637, - /* 4856 */ 0x0638, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, - /* 4864 */ 0x0071, 0x0072, 0x0639, 0xFECA, 0xFECB, 0xFECC, 0x063A, 0xFECE, - /* 4872 */ 0xFECF, 0x00F7, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 4880 */ 0x0079, 0x007A, 0xFED0, 0x0641, 0xFED3, 0x0642, 0xFED7, 0x0643, - /* 4888 */ 0xFEDB, 0x0644, 0xFEF5, 0xFEF6, 0xFEF7, 0xFEF8, 0xFFFF, 0xFFFF, - /* 4896 */ 0xFEFB, 0xFEFC, 0xFEDF, 0x0645, 0xFEE3, 0x0646, 0xFEE7, 0x0647, - /* 4904 */ 0x061B, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 4912 */ 0x0048, 0x0049, 0x00AD, 0xFEEB, 0xFFFF, 0xFEEC, 0xFFFF, 0x0648, - /* 4920 */ 0x061F, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, - /* 4928 */ 0x0051, 0x0052, 0x0649, 0xFEF0, 0x064A, 0xFEF2, 0xFEF3, 0x0660, - /* 4936 */ 0x00D7, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 4944 */ 0x0059, 0x005A, 0x0661, 0x0662, 0xFFFF, 0x0663, 0x0664, 0x0665, - /* 4952 */ 0x0038, 0x0039, 0xFFFF, 0x0666, 0x0667, 0x0668, 0x0669, 0x009F, - /* 4960 */ 0x0020, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - /* 4968 */ 0x0398, 0x0399, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 4976 */ 0x0026, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, 0x03A0, - /* 4984 */ 0x03A1, 0x03A3, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 4992 */ 0x002D, 0x002F, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, - /* 5000 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 5008 */ 0xFFFF, 0x0386, 0x0388, 0x0389, 0xFFFF, 0x038A, 0x038C, 0x038E, - /* 5016 */ 0x038F, 0x0060, 0x003A, 0x00A3, 0x00A7, 0x0027, 0x003D, 0x0022, - /* 5024 */ 0x00C4, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 5032 */ 0x0068, 0x0069, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, - /* 5040 */ 0x00D6, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, - /* 5048 */ 0x0071, 0x0072, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, - /* 5056 */ 0x00DC, 0x00A8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 5064 */ 0x0079, 0x007A, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C2, - /* 5072 */ 0xFFFF, 0x03AC, 0x03AD, 0x03AE, 0x03CA, 0x03AF, 0x03CC, 0x03CD, - /* 5080 */ 0x03CB, 0x03CE, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, - /* 5088 */ 0x00B8, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 5096 */ 0x0048, 0x0049, 0xFFFF, 0x03C9, 0x00C2, 0x00E0, 0x00E4, 0x00EA, - /* 5104 */ 0x00B4, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, - /* 5112 */ 0x0051, 0x0052, 0x00B1, 0x00E9, 0x00E8, 0x00EB, 0x00EE, 0x00EF, - /* 5120 */ 0x00B0, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 5128 */ 0x0059, 0x005A, 0x00BD, 0x00F6, 0x00F4, 0x00FB, 0x00F9, 0x00FC, - /* 5136 */ 0x0038, 0x0039, 0x00FF, 0x00E7, 0x00C7, 0xFFFF, 0xFFFF, 0x009F, - /* 5144 */ 0x0020, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, - /* 5152 */ 0x05D7, 0x05D8, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, - /* 5160 */ 0x0026, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, - /* 5168 */ 0x05E0, 0x05E1, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC, - /* 5176 */ 0x002D, 0x002F, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, - /* 5184 */ 0x05E8, 0x05E9, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 5192 */ 0xFFFF, 0x05EA, 0xFFFF, 0xFFFF, 0x00A0, 0xFFFF, 0xFFFF, 0xFFFF, - /* 5200 */ 0x21D4, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, - /* 5208 */ 0x0068, 0x0069, 0x00AB, 0x00BB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 5216 */ 0x0071, 0x0072, 0xFFFF, 0xFFFF, 0xFFFF, 0x00B8, 0xFFFF, 0x00A4, - /* 5224 */ 0x0079, 0x007A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00AE, - /* 5232 */ 0x00BD, 0x00BE, 0x005B, 0x005D, 0x203E, 0x00A8, 0x00B4, 0x00D7, - /* 5240 */ 0x0048, 0x0049, 0x00AD, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 5248 */ 0x0051, 0x0052, 0x00B9, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 5256 */ 0x0059, 0x005A, 0x00B2, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 5264 */ 0x0038, 0x0039, 0x00B3, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x009F, - /* 5272 */ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, - /* 5280 */ 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, - /* 5288 */ 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, - /* 5296 */ 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, - /* 5304 */ 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, - /* 5312 */ 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, - /* 5320 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - /* 5328 */ 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, - /* 5336 */ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, - /* 5344 */ 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - /* 5352 */ 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, - /* 5360 */ 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - /* 5368 */ 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, - /* 5376 */ 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, - /* 5384 */ 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, - /* 5392 */ 0x00B0, 0x00B7, 0x2022, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0, - /* 5400 */ 0x00BD, 0x00BE, 0x00AC, 0x007C, 0x00AF, 0x00A8, 0x00B4, 0x00D7, - /* 5408 */ 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x00D7, 0x0192, - /* 5416 */ 0x00BF, 0x00AE, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, - /* 5424 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x00C0, - /* 5432 */ 0x00A9, 0x2563, 0x2551, 0x2557, 0x255D, 0x00A2, 0x00A5, 0x2510, - /* 5440 */ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x00E3, 0x00C3, - /* 5448 */ 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x00A4, - /* 5456 */ 0x00F0, 0x00D0, 0x00CA, 0x00CB, 0x00C8, 0x0131, 0x00CD, 0x00CE, - /* 5464 */ 0x00CF, 0x2518, 0x250C, 0x2588, 0x2584, 0x00A6, 0x00CC, 0x2580, - /* 5472 */ 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0x00FE, - /* 5480 */ 0x00DE, 0x00DA, 0x00DB, 0x00D9, 0x00FD, 0x00DD, 0x00AF, 0x00B4, - /* 5488 */ 0x00AD, 0x00B1, 0x2017, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x00B8, - /* 5496 */ 0x00B0, 0x00A8, 0x00B7, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0, - /* 5504 */ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x0386, 0x00E7, - /* 5512 */ 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0388, 0x00C4, 0x0389, - /* 5520 */ 0x038A, 0xFFFF, 0x038C, 0x00F4, 0x00F6, 0x038E, 0x00FB, 0x00F9, - /* 5528 */ 0x038F, 0x00D6, 0x00DC, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF, - /* 5536 */ 0x03CA, 0x0390, 0x03CC, 0x03CD, 0x0391, 0x0392, 0x0393, 0x0394, - /* 5544 */ 0x0395, 0x0396, 0x0397, 0x00BD, 0x0398, 0x0399, 0x00AB, 0x00BB, - /* 5552 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039D, - /* 5560 */ 0x039C, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510, - /* 5568 */ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x03A0, 0x03A1, - /* 5576 */ 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x03A3, - /* 5584 */ 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8, 0x03A9, 0x03B1, 0x03B2, - /* 5592 */ 0x03B3, 0x2518, 0x250C, 0x2588, 0x2584, 0x03B4, 0x03B5, 0x2580, - /* 5600 */ 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, - /* 5608 */ 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, 0x03C2, 0x03C4, 0x00B4, - /* 5616 */ 0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x02DB, - /* 5624 */ 0x00B0, 0x00A8, 0x03C9, 0x03CB, 0x03B0, 0x03CE, 0x25A0, 0x00A0, - /* 5632 */ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x016F, 0x0107, 0x00E7, - /* 5640 */ 0x0142, 0x00EB, 0x0150, 0x0151, 0x00EE, 0x0179, 0x00C4, 0x0106, - /* 5648 */ 0x00C9, 0x0139, 0x013A, 0x00F4, 0x00F6, 0x013D, 0x013E, 0x015A, - /* 5656 */ 0x015B, 0x00D6, 0x00DC, 0x0164, 0x0165, 0x0141, 0x00D7, 0x010D, - /* 5664 */ 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x0104, 0x0105, 0x017D, 0x017E, - /* 5672 */ 0x0118, 0x0119, 0x00AC, 0x017A, 0x010C, 0x015F, 0x00AB, 0x00BB, - /* 5680 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00C1, 0x00C2, 0x011A, - /* 5688 */ 0x015E, 0x2563, 0x2551, 0x2557, 0x255D, 0x017B, 0x017C, 0x2510, - /* 5696 */ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x0102, 0x0103, - /* 5704 */ 0x0111, 0x0110, 0x010E, 0x00CB, 0x010F, 0x0147, 0x00CD, 0x00CE, - /* 5712 */ 0x011B, 0x2518, 0x250C, 0x2588, 0x2584, 0x0162, 0x016E, 0x2580, - /* 5720 */ 0x00D3, 0x00DF, 0x00D4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, - /* 5728 */ 0x0154, 0x00DA, 0x0155, 0x0170, 0x00FD, 0x00DD, 0x0163, 0x00B4, - /* 5736 */ 0x00AD, 0x02DD, 0x02DB, 0x02C7, 0x02D8, 0x00A7, 0x00F7, 0x00B8, - /* 5744 */ 0x00B0, 0x00A8, 0x02D9, 0x0171, 0x0158, 0x0159, 0x25A0, 0x00A0, - /* 5752 */ 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, - /* 5760 */ 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, - /* 5768 */ 0x0459, 0x0409, 0x045A, 0x040A, 0x045B, 0x0093, 0x045C, 0x040C, - /* 5776 */ 0x045E, 0x040E, 0x045F, 0x040F, 0x044E, 0x042E, 0x044A, 0x042A, - /* 5784 */ 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, - /* 5792 */ 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00AB, 0x00BB, - /* 5800 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, - /* 5808 */ 0x0418, 0x2563, 0x2551, 0x2557, 0x255D, 0x0439, 0x0419, 0x2510, - /* 5816 */ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x043A, 0x041A, - /* 5824 */ 0x043B, 0x041B, 0x043C, 0x041C, 0x043D, 0x041D, 0x043E, 0x041E, - /* 5832 */ 0x043F, 0x2518, 0x250C, 0x2588, 0x2584, 0x041F, 0x044F, 0x2580, - /* 5840 */ 0x042F, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, - /* 5848 */ 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044C, 0x042C, 0x00B4, - /* 5856 */ 0x00AD, 0x044B, 0x042B, 0x0437, 0x0417, 0x0448, 0x0428, 0x044D, - /* 5864 */ 0x042D, 0x0449, 0x0429, 0x0447, 0x0427, 0xFFFF, 0x25A0, 0x00A0, - /* 5872 */ 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x0131, 0x00C4, 0x00C5, - /* 5880 */ 0x0130, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x015E, 0x015F, - /* 5888 */ 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x011E, 0x011F, - /* 5896 */ 0x00BA, 0x00AA, 0x00CA, 0x00CB, 0x00C8, 0xFFFF, 0x00CD, 0x00CE, - /* 5904 */ 0x00D3, 0x00DF, 0x00D4, 0x00D2, 0x00F5, 0x00D5, 0x00B5, 0xFFFF, - /* 5912 */ 0x00D7, 0x00DA, 0x00DB, 0x00D9, 0x00EC, 0x00FF, 0x2014, 0x00B4, - /* 5920 */ 0x00AD, 0x00B1, 0xFFFF, 0x00BE, 0x00B6, 0x00A7, 0x00F7, 0x02DB, - /* 5928 */ 0x00B0, 0x00A8, 0x02D9, 0x00B9, 0x00B3, 0x00B2, 0x25A0, 0x00A0, - /* 5936 */ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E3, 0x00E0, 0x00C1, 0x00E7, - /* 5944 */ 0x00EA, 0x00CA, 0x00E8, 0x00CE, 0x00D4, 0x00EC, 0x00C3, 0x00C2, - /* 5952 */ 0x00C9, 0x00C0, 0x00C8, 0x00F4, 0x00F5, 0x00F2, 0x00DA, 0x00F9, - /* 5960 */ 0x00CC, 0x00D5, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D2, - /* 5968 */ 0x00BF, 0x00D3, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, - /* 5976 */ 0x00EA, 0x00EB, 0x00E8, 0x00D0, 0x00F0, 0x00DE, 0x00C4, 0x00C5, - /* 5984 */ 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00FE, 0x00FB, 0x00DD, - /* 5992 */ 0x00FD, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x00D2, - /* 6000 */ 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00C1, 0x00CD, 0x00D3, 0x00DA, - /* 6008 */ 0x00BF, 0xFFFF, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, - /* 6016 */ 0x05E8, 0x05E9, 0x05EA, 0x00A2, 0x00A3, 0x00D9, 0x20A7, 0x00D2, - /* 6024 */ 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00C2, 0x00E0, 0x00B6, 0x00E7, - /* 6032 */ 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C0, 0x00A7, - /* 6040 */ 0x00C9, 0x00C8, 0x00CA, 0x00F4, 0x00CB, 0x00CF, 0x00FB, 0x00F9, - /* 6048 */ 0x00A4, 0x00D4, 0x00DC, 0x00A2, 0x00A3, 0x00D9, 0x00DB, 0x0192, - /* 6056 */ 0x00A6, 0x00B4, 0x00F3, 0x00FA, 0x00A8, 0x00B8, 0x00B3, 0x00AF, - /* 6064 */ 0x00CE, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00BE, 0x00AB, 0x00BB, - /* 6072 */ 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x2205, 0x03B5, 0x2229, - /* 6080 */ 0x2218, 0x00B7, 0x2022, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0, - /* 6088 */ 0x00B0, 0x00B7, 0x2218, 0x221A, 0x2592, 0x2500, 0x2502, 0x253C, - /* 6096 */ 0x2524, 0x252C, 0x251C, 0x2534, 0x2510, 0x250C, 0x2514, 0x2518, - /* 6104 */ 0x00DF, 0x221E, 0x00F8, 0x00B1, 0x00BD, 0x00BC, 0x2248, 0x00AB, - /* 6112 */ 0x00BB, 0xFEF7, 0xFEF8, 0xFFFF, 0xFFFF, 0xFEFB, 0xFEFC, 0xE016, - /* 6120 */ 0xFFFF, 0x00AD, 0xFE82, 0x00A3, 0x00A4, 0xFE84, 0xFFFF, 0xFFFF, - /* 6128 */ 0xFE8E, 0x0628, 0x062A, 0x062B, 0x060C, 0x062C, 0x062D, 0x062E, - /* 6136 */ 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, - /* 6144 */ 0x0668, 0x0669, 0x06A4, 0x061B, 0x0633, 0x0634, 0x0635, 0x061F, - /* 6152 */ 0x00A2, 0x0621, 0x0622, 0x0623, 0x0624, 0xFECA, 0x0626, 0x0627, - /* 6160 */ 0xFE91, 0x0629, 0xFE97, 0xFE9B, 0xFE9F, 0xFEA3, 0xFEA7, 0x062F, - /* 6168 */ 0x0630, 0x0631, 0x0632, 0xFEB3, 0xFEB7, 0xFEBB, 0xFEBF, 0x0637, - /* 6176 */ 0x0638, 0xFECB, 0xFECF, 0x00A6, 0x00AC, 0x00F7, 0x00D7, 0x0639, - /* 6184 */ 0x0640, 0xFED2, 0xFED6, 0xFEDB, 0xFEDE, 0xFEE3, 0xFEE6, 0xFEEB, - /* 6192 */ 0x0648, 0x0649, 0xFEF3, 0x0636, 0xFEE2, 0xFECE, 0x063A, 0x0645, - /* 6200 */ 0xFE7D, 0x0651, 0x0646, 0x0647, 0xFEEC, 0xFEF0, 0xFEF2, 0x0641, - /* 6208 */ 0x0642, 0xFEF5, 0xFEF6, 0x0644, 0x0643, 0x064A, 0x25A0, 0x00A0, - /* 6216 */ 0x00FF, 0x00D6, 0x00DC, 0x00F8, 0x00A3, 0x00D8, 0x20A7, 0x0192, - /* 6224 */ 0x0668, 0x0669, 0x060C, 0x061B, 0x061F, 0x0622, 0x0627, 0xFE8E, - /* 6232 */ 0xE016, 0x0628, 0xFE91, 0x067E, 0xFFFF, 0x0629, 0x062A, 0xFE97, - /* 6240 */ 0xFFFF, 0xFFFF, 0x062B, 0xFE9B, 0x062C, 0xFE9F, 0xFFFF, 0xFFFF, - /* 6248 */ 0x062D, 0xFEA3, 0x062E, 0xFEA7, 0x062F, 0xFFFF, 0x0630, 0x0631, - /* 6256 */ 0xFFFF, 0x0632, 0xFFFF, 0x0633, 0xFEB3, 0x0634, 0x00AB, 0x00BB, - /* 6264 */ 0xFEB7, 0x0635, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0xFEBB, - /* 6272 */ 0x0636, 0xFEBF, 0x0637, 0x2563, 0x2551, 0x2557, 0x255D, 0x0638, - /* 6280 */ 0x0639, 0x2510, 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, - /* 6288 */ 0xFECA, 0xFECB, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, - /* 6296 */ 0x256C, 0xFECC, 0x063A, 0xFECE, 0xFECF, 0xFED0, 0x0641, 0xFED3, - /* 6304 */ 0x0642, 0xFED7, 0xFEDA, 0x2518, 0x250C, 0x2588, 0x2580, 0xFEDB, - /* 6312 */ 0xFFFF, 0x2584, 0xFFFF, 0x0644, 0xFEDE, 0xFEE0, 0x0645, 0xFEE3, - /* 6320 */ 0xFFFF, 0x0646, 0xFEE7, 0xFFFF, 0x0648, 0xFFFF, 0xFFFF, 0xFFFF, - /* 6328 */ 0xFFFF, 0x0621, 0x00AD, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 6336 */ 0xFFFF, 0xFFFF, 0xFFFF, 0x0651, 0xFE7D, 0xFFFF, 0x25A0, 0x00A0, - /* 6344 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0386, 0xFFFF, - /* 6352 */ 0x00B7, 0x00AC, 0x00A6, 0x201B, 0x2019, 0x0388, 0x2014, 0x0389, - /* 6360 */ 0x038A, 0x03AA, 0x038C, 0xFFFF, 0xFFFF, 0x038E, 0x03AB, 0x00A9, - /* 6368 */ 0x038F, 0x00B2, 0x00B3, 0x03AC, 0x00A3, 0x03AD, 0x03AE, 0x03AF, - /* 6376 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039A, 0x039B, 0x039C, - /* 6384 */ 0x039D, 0x2563, 0x2551, 0x2557, 0x255D, 0x039E, 0x039F, 0x2510, - /* 6392 */ 0x00AD, 0x00B1, 0x03C5, 0x03C6, 0x03C7, 0x00A7, 0x03C8, 0x0385, - /* 6400 */ 0x0020, 0x00A0, 0xFFFF, 0x00E4, 0xFFFF, 0x00E1, 0x0103, 0x010D, - /* 6408 */ 0x00E7, 0x0107, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 6416 */ 0x0026, 0x00E9, 0xFFFF, 0x00EB, 0x016F, 0x00ED, 0xFFFF, 0x013E, - /* 6424 */ 0x013A, 0x00DF, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 6432 */ 0x002D, 0x002F, 0xFFFF, 0x00C4, 0x02DD, 0x00C1, 0xFFFF, 0x010C, - /* 6440 */ 0x00C7, 0x0106, 0x007C, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 6448 */ 0x02C7, 0x00C9, 0xFFFF, 0x00CB, 0x016E, 0x00CD, 0xFFFF, 0x013D, - /* 6456 */ 0x0139, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, - /* 6464 */ 0x02D8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 6472 */ 0x0068, 0x0069, 0x015B, 0x0148, 0x0111, 0x00FD, 0x0159, 0xFFFF, - /* 6480 */ 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00B8, 0x02DB, 0x00A4, - /* 6488 */ 0x0105, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 6496 */ 0x0079, 0x007A, 0x015A, 0x0147, 0x0110, 0x00DD, 0x0158, 0xFFFF, - /* 6504 */ 0x00B7, 0x0104, 0x017C, 0xFFFF, 0x017B, 0x00A7, 0x00B6, 0x017E, - /* 6512 */ 0x017A, 0x017D, 0x0179, 0x0143, 0x0160, 0x00A8, 0x00B4, 0x00D7, - /* 6520 */ 0x0048, 0x0049, 0x00AD, 0x00F4, 0x00F6, 0x0155, 0x00F3, 0x0151, - /* 6528 */ 0x0051, 0x0052, 0x011A, 0x0171, 0x00FC, 0x0165, 0x00FA, 0x011B, - /* 6536 */ 0x0059, 0x005A, 0x010F, 0x00D4, 0x00D6, 0x0154, 0x00D3, 0x0150, - /* 6544 */ 0x0038, 0x0039, 0x010E, 0x0170, 0x00DC, 0x0164, 0x00DA, 0x009F, - /* 6552 */ 0x00E7, 0x00F1, 0x00FE, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 6560 */ 0x00EC, 0x00DF, 0x00C6, 0x0024, 0x002A, 0x0029, 0x003B, 0x00D6, - /* 6568 */ 0x00CC, 0x00F0, 0x003A, 0x0023, 0x00D0, 0x0027, 0x003D, 0x0022, - /* 6576 */ 0x0068, 0x0069, 0x00AB, 0x00BB, 0x0060, 0x00FD, 0x007B, 0x00B1, - /* 6584 */ 0x0071, 0x0072, 0x00AA, 0x00BA, 0x007D, 0x00B8, 0x005D, 0x00A4, - /* 6592 */ 0x00B5, 0x00F6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 6600 */ 0x0079, 0x007A, 0x00A1, 0x00BF, 0x0040, 0x00DD, 0x005B, 0x00AE, - /* 6608 */ 0x00BD, 0x00BE, 0x00AC, 0x007C, 0x00AF, 0x00A8, 0x005C, 0x00D7, - /* 6616 */ 0x00DE, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 6624 */ 0x0048, 0x0049, 0x00AD, 0x00F4, 0x007E, 0x00F2, 0x00F3, 0x00F5, - /* 6632 */ 0x00E6, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, - /* 6640 */ 0x00B4, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 6648 */ 0x0059, 0x005A, 0x00B2, 0x00D4, 0x005E, 0x00D2, 0x00D3, 0x00D5, - /* 6656 */ 0x03AA, 0x03AB, 0xFFFF, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 6664 */ 0x00A8, 0x0386, 0x0388, 0x0389, 0x2207, 0x038A, 0x038C, 0x038E, - /* 6672 */ 0x038F, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, - /* 6680 */ 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 6688 */ 0x00B4, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 6696 */ 0x0079, 0x007A, 0x03BD, 0x03BE, 0x03BF, 0x03C0, 0x03C1, 0x03C3, - /* 6704 */ 0x00A3, 0x03AC, 0x03AD, 0x03AE, 0x0390, 0x03AF, 0x03CC, 0x03CD, - /* 6712 */ 0x03B0, 0x03CE, 0x03C2, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8, - /* 6720 */ 0x0048, 0x0049, 0x00AD, 0x03C9, 0x03CA, 0x03CB, 0x2018, 0x2015, - /* 6728 */ 0x0051, 0x0052, 0x00B1, 0x00BD, 0xFFFF, 0x00B7, 0x2019, 0x00A6, - /* 6736 */ 0x0059, 0x005A, 0x00B2, 0x00A7, 0xFFFF, 0xFFFF, 0x00AB, 0x00AC, - /* 6744 */ 0x0038, 0x0039, 0x00B3, 0x00A9, 0xFFFF, 0xFFFF, 0x00BB, 0x009F, - /* 6752 */ 0x0020, 0xFFFF, 0x0452, 0x0453, 0x0451, 0xFFFF, 0x0455, 0x0456, - /* 6760 */ 0x0457, 0x0458, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 6768 */ 0x0026, 0x0459, 0x045A, 0x045B, 0x045C, 0xFFFF, 0x045F, 0x042A, - /* 6776 */ 0x2116, 0x0402, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 6784 */ 0x002D, 0x002F, 0x0403, 0x0401, 0xFFFF, 0x0405, 0x0406, 0x0407, - /* 6792 */ 0x0408, 0x0409, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 6800 */ 0x040A, 0x040B, 0x040C, 0xFFFF, 0xFFFF, 0x040F, 0x044E, 0x0430, - /* 6808 */ 0x0431, 0xFFFF, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, - /* 6816 */ 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 6824 */ 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, - /* 6832 */ 0x0439, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, - /* 6840 */ 0x0071, 0x0072, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, - /* 6848 */ 0x044F, 0xFFFF, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 6856 */ 0x0079, 0x007A, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - /* 6864 */ 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, - /* 6872 */ 0x0051, 0x0052, 0x041D, 0x041E, 0x041F, 0x042F, 0x0420, 0x0421, - /* 6880 */ 0x005C, 0x00A4, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 6888 */ 0x0059, 0x005A, 0x0422, 0x0423, 0x0416, 0x0412, 0x042C, 0x042B, - /* 6896 */ 0x0038, 0x0039, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x009F, - /* 6904 */ 0x00A2, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 6912 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00AC, 0x00A6, 0xFFFF, - /* 6920 */ 0x0020, 0xFFFF, 0x00E2, 0x00E4, 0x00E0, 0x00E1, 0xFFFF, 0x010B, - /* 6928 */ 0x007B, 0x00F1, 0x00C7, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 6936 */ 0x00EC, 0x00DF, 0x011E, 0x0130, 0x002A, 0x0029, 0x003B, 0x005E, - /* 6944 */ 0x002D, 0x002F, 0x00C2, 0x00C4, 0x00C0, 0x00C1, 0xFFFF, 0x010A, - /* 6952 */ 0x005B, 0x00D1, 0x015F, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 6960 */ 0xFFFF, 0x00C9, 0x00CA, 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, - /* 6968 */ 0x00CC, 0x0131, 0x003A, 0x00D6, 0x015E, 0x0027, 0x003D, 0x00DC, - /* 6976 */ 0x0068, 0x0069, 0x0127, 0x0109, 0x015D, 0x016D, 0xFFFF, 0x007C, - /* 6984 */ 0x0071, 0x0072, 0x0125, 0x011D, 0x0135, 0x02DB, 0xFFFF, 0x00A4, - /* 6992 */ 0x0079, 0x007A, 0x0126, 0x0108, 0x015C, 0x016C, 0xFFFF, 0x0040, - /* 7000 */ 0x00B7, 0x00A3, 0x017C, 0x007D, 0x017B, 0x00A7, 0x005D, 0xFFFF, - /* 7008 */ 0x00BD, 0x0024, 0x0124, 0x011C, 0x0134, 0x00A8, 0x00B4, 0x00D7, - /* 7016 */ 0x00E7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 7024 */ 0x0048, 0x0049, 0x00AD, 0x00F4, 0x007E, 0x00F2, 0x00F3, 0x0121, - /* 7032 */ 0x011F, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, - /* 7040 */ 0x0051, 0x0052, 0x0060, 0x00FB, 0x005C, 0x00F9, 0x00FA, 0xFFFF, - /* 7048 */ 0x00FC, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 7056 */ 0x0059, 0x005A, 0x00B2, 0x00D4, 0x0023, 0x00D2, 0x00D3, 0x0120, - /* 7064 */ 0x0038, 0x0039, 0x00B3, 0x00DB, 0x0022, 0x00D9, 0x00DA, 0x009F, - /* 7072 */ 0x0020, 0x00A0, 0x060C, 0x061B, 0x061F, 0x0623, 0x0627, 0xFE8E, - /* 7080 */ 0xFFFF, 0x0628, 0x005B, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 7088 */ 0x0026, 0xFE91, 0x067E, 0xFFFF, 0x0629, 0x062A, 0xFE97, 0xFFFF, - /* 7096 */ 0xFFFF, 0x062B, 0x005D, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 7104 */ 0x002D, 0x002F, 0xFE9B, 0x062C, 0xFE9F, 0xFFFF, 0xFFFF, 0x062D, - /* 7112 */ 0xFEA3, 0x062E, 0x0060, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 7120 */ 0x0668, 0x0669, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, - /* 7128 */ 0xFEA7, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - /* 7136 */ 0x0068, 0x0069, 0x062F, 0xFFFF, 0x0630, 0x0631, 0xFFFF, 0x0632, - /* 7144 */ 0x0071, 0x0072, 0x0633, 0xFEB3, 0x0634, 0xFEB7, 0x0635, 0xFEBB, - /* 7152 */ 0x0636, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 7160 */ 0x0079, 0x007A, 0xFEBF, 0x0637, 0x0638, 0x0639, 0xFECA, 0xFECB, - /* 7168 */ 0xFECC, 0x063A, 0xFECE, 0xFECF, 0xFED0, 0x0641, 0xFED3, 0x0642, - /* 7176 */ 0xFED7, 0x0643, 0xFEDB, 0x007C, 0xFFFF, 0xFFFF, 0x0644, 0xFEDE, - /* 7184 */ 0x0048, 0x0049, 0x00AD, 0xFFFF, 0x0645, 0xFEE3, 0xFFFF, 0x0646, - /* 7192 */ 0x0051, 0x0052, 0xFEE7, 0xFFFF, 0x0648, 0xFFFF, 0xFFFF, 0xFFFF, - /* 7200 */ 0x0059, 0x005A, 0x0621, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 7208 */ 0x0038, 0x0039, 0xFFFF, 0xFFFF, 0xFFFF, 0x0651, 0xFE7D, 0x009F, - /* 7216 */ 0xFFFF, 0xFFFF, 0x201A, 0xFFFF, 0x201E, 0x2026, 0x2020, 0x2021, - /* 7224 */ 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0xFFFF, 0xFFFF, 0xFFFF, - /* 7232 */ 0xFFFF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, - /* 7240 */ 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0xFFFF, 0xFFFF, 0x0178, - /* 7248 */ 0x0068, 0x0069, 0x00AB, 0x00BB, 0x007D, 0x0060, 0x00A6, 0x00B1, - /* 7256 */ 0x0071, 0x0072, 0x00AA, 0x00BA, 0x00E6, 0x02DB, 0x00C6, 0x00A4, - /* 7264 */ 0x0079, 0x007A, 0x00A1, 0x00BF, 0x005D, 0x0024, 0x0040, 0x00AE, - /* 7272 */ 0x00BD, 0x00BE, 0x00AC, 0x007C, 0x2014, 0x00A8, 0x00B4, 0x00D7, - /* 7280 */ 0x0051, 0x0052, 0x00B9, 0x00FB, 0x005C, 0x00F9, 0x00FA, 0x00FF, - /* 7288 */ 0x0059, 0x005A, 0x00B2, 0x00D4, 0x0023, 0x00D2, 0x00D3, 0x00D5, - /* 7296 */ 0x00EC, 0x00DF, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 7304 */ 0x0079, 0x007A, 0x00A1, 0x00BF, 0x00D0, 0x005B, 0x00DE, 0x00AE, - /* 7312 */ 0x00AC, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC, - /* 7320 */ 0x00BD, 0x00BE, 0x00DD, 0x00A8, 0x00AF, 0x005D, 0x00B4, 0x00D7, - /* 7328 */ 0x20AC, 0xFFFF, 0x201A, 0xFFFF, 0x201E, 0x2026, 0x2020, 0x2021, - /* 7336 */ 0xFFFF, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179, - /* 7344 */ 0xFFFF, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A, - /* 7352 */ 0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7, - /* 7360 */ 0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B, - /* 7368 */ 0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7, - /* 7376 */ 0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C, - /* 7384 */ 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, - /* 7392 */ 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F, - /* 7400 */ 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, - /* 7408 */ 0xFFFF, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, - /* 7416 */ 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, - /* 7424 */ 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, - /* 7432 */ 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, - /* 7440 */ 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, - /* 7448 */ 0x20AC, 0xFFFF, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, - /* 7456 */ 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0xFFFF, 0x017D, 0x017E, - /* 7464 */ 0xFFFF, 0x2030, 0xFFFF, 0x2039, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 7472 */ 0xFFFF, 0x2122, 0xFFFF, 0x203A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 7480 */ 0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, - /* 7488 */ 0x00A8, 0x00A9, 0xFFFF, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015, - /* 7496 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7, - /* 7504 */ 0x05E8, 0x05E9, 0x05EA, 0xFFFF, 0xFFFF, 0x200E, 0x200F, 0xFFFF, - /* 7512 */ 0x20AC, 0x0660, 0x201A, 0x0661, 0x201E, 0x2026, 0x2020, 0x2021, - /* 7520 */ 0x0662, 0x0663, 0x0664, 0x2039, 0x0665, 0x0666, 0x0667, 0x0668, - /* 7528 */ 0x0669, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, - /* 7536 */ 0x061B, 0x2122, 0x061F, 0x203A, 0x0621, 0x0622, 0x0623, 0x0178, - /* 7544 */ 0x00A0, 0x0624, 0x0625, 0x00A3, 0x00A4, 0x0626, 0x00A6, 0x00A7, - /* 7552 */ 0x0627, 0x00A9, 0x0628, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x067E, - /* 7560 */ 0x00B0, 0x00B1, 0x0629, 0x062A, 0x062B, 0x00B5, 0x00B6, 0x00B7, - /* 7568 */ 0x062C, 0x0686, 0x062D, 0x00BB, 0x062E, 0x062F, 0x0630, 0x0631, - /* 7576 */ 0x00C0, 0x0632, 0x00C2, 0x0698, 0x0633, 0x0634, 0x0635, 0x00C7, - /* 7584 */ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0636, 0x0637, 0x00CE, 0x00CF, - /* 7592 */ 0x3113, 0x0639, 0x063A, 0x0640, 0x00D4, 0x0641, 0x0642, 0x00D7, - /* 7600 */ 0x0643, 0x00D9, 0x06AF, 0x00DB, 0x00DC, 0x0644, 0x0645, 0x0646, - /* 7608 */ 0x00E0, 0x0647, 0x00E2, 0x0681, 0x0648, 0x0649, 0x064A, 0x00E7, - /* 7616 */ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x064B, 0x064C, 0x00EE, 0x00EF, - /* 7624 */ 0x064D, 0x064E, 0x064F, 0x0650, 0x00F4, 0x0651, 0x0652, 0x00F7, - /* 7632 */ 0xFFFF, 0x00F9, 0xFFFF, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x00FF, - /* 7640 */ 0x00A0, 0xFFFF, 0x00A2, 0x00A3, 0x00A4, 0xFFFF, 0x00A6, 0x00A7, - /* 7648 */ 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6, - /* 7656 */ 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6, - /* 7664 */ 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0xFFFF, - /* 7672 */ 0xFFFF, 0xFFFF, 0x00C4, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 7680 */ 0xFFFF, 0xFFFF, 0x00DC, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 7688 */ 0xFFFF, 0xFFFF, 0x00F6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 7696 */ 0xFFFF, 0x0060, 0x003A, 0x0023, 0x00A7, 0x0027, 0x003D, 0x0022, - /* 7704 */ 0xFFFF, 0x00DF, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 7712 */ 0x00D6, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 7720 */ 0xFFFF, 0xFFFF, 0x00F6, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, - /* 7728 */ 0xFFFF, 0xFFFF, 0x00FC, 0x00DC, 0x002A, 0x0029, 0x003B, 0x00AC, - /* 7736 */ 0xFFFF, 0xFFFF, 0x00DF, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 7744 */ 0xFFFF, 0xFFFF, 0x003A, 0x00C4, 0x00D6, 0x0027, 0x003D, 0x00E4, - /* 7752 */ 0xFFFF, 0xFFFF, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 7760 */ 0xFFFF, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 7768 */ 0x0020, 0xFFFF, 0x00E2, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 7776 */ 0x00E7, 0xFFFF, 0x00E0, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 7784 */ 0x0026, 0xFFFF, 0x00EA, 0x00EB, 0xFFFF, 0xFFFF, 0x00EE, 0x00EF, - /* 7792 */ 0xFFFF, 0xFFFF, 0x00B4, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 7800 */ 0x002D, 0x002F, 0x00C2, 0xFFFF, 0x00C0, 0xFFFF, 0xFFFF, 0xFFFF, - /* 7808 */ 0x00C7, 0xFFFF, 0x00F9, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 7816 */ 0xFFFF, 0x00C9, 0x00CA, 0x00CB, 0xFFFF, 0x00CE, 0x00CF, 0xFFFF, - /* 7824 */ 0x0048, 0x0049, 0xFFFF, 0x00F4, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 7832 */ 0x0051, 0x0052, 0xFFFF, 0x00FB, 0x00FC, 0xFFFF, 0xFFFF, 0xFFFF, - /* 7840 */ 0x00B8, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 7848 */ 0x0059, 0x005A, 0xFFFF, 0x00D4, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - /* 7856 */ 0x0038, 0x0039, 0xFFFF, 0x00DB, 0x00DC, 0x00D9, 0xFFFF, 0x009F, - /* 7864 */ 0xFFFF, 0xFFFF, 0x0023, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 7872 */ 0xFFFF, 0xFFFF, 0x00A4, 0x00C5, 0x002A, 0x0029, 0x003B, 0x005E, - /* 7880 */ 0xFFFF, 0xFFFF, 0x00F8, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 7888 */ 0xFFFF, 0x0060, 0x003A, 0x00C6, 0x00D8, 0x0027, 0x003D, 0x0022, - /* 7896 */ 0xFFFF, 0x00FC, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 7904 */ 0xFFFF, 0xFFFF, 0x00F8, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, - /* 7912 */ 0xFFFF, 0xFFFF, 0x00E5, 0x00C5, 0x002A, 0x0029, 0x003B, 0x00AC, - /* 7920 */ 0xFFFF, 0xFFFF, 0x003A, 0x00C6, 0x00D8, 0x0027, 0x003D, 0x00E6, - /* 7928 */ 0xFFFF, 0xFFFF, 0x00A7, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 7936 */ 0xFFFF, 0x00E9, 0x003A, 0x00C4, 0x00D6, 0x0027, 0x003D, 0x0022, - /* 7944 */ 0x00C9, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 7952 */ 0xFFFF, 0xFFFF, 0x00B0, 0x002E, 0x003C, 0x0028, 0x002B, 0x0021, - /* 7960 */ 0xFFFF, 0xFFFF, 0x00A7, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 7968 */ 0xFFFF, 0x0060, 0x003A, 0x00A3, 0x00E0, 0x0027, 0x003D, 0x0022, - /* 7976 */ 0xFFFF, 0xFFFF, 0x00E9, 0x0024, 0x002A, 0x0029, 0x003B, 0x005E, - /* 7984 */ 0xFFFF, 0xFFFF, 0x00F2, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 7992 */ 0xFFFF, 0x00F9, 0x003A, 0x00A3, 0x00A7, 0x0027, 0x003D, 0x0022, - /* 8000 */ 0xFFFF, 0x00EC, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 8008 */ 0xFFFF, 0xFFFF, 0x00F5, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 8016 */ 0xFFFF, 0x0060, 0x003A, 0x00C3, 0x00D5, 0x0027, 0x003D, 0x0022, - /* 8024 */ 0xFFFF, 0x00E7, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 8032 */ 0x00E3, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 8040 */ 0x00C7, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 8048 */ 0xFFFF, 0xFFFF, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, - /* 8056 */ 0xFFFF, 0xFFFF, 0x0021, 0x20A7, 0x002A, 0x0029, 0x003B, 0x00AC, - /* 8064 */ 0xFFFF, 0xFFFF, 0x00F1, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - /* 8072 */ 0xFFFF, 0x0060, 0x003A, 0x00D1, 0x0040, 0x0027, 0x003D, 0x0022, - /* 8080 */ 0xFFFF, 0xFFFF, 0x003A, 0x00D1, 0x0040, 0x0027, 0x003D, 0x00F1, - /* 8088 */ 0xFFFF, 0xFFFF, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC, - /* 8096 */ 0xFFFF, 0xFFFF, 0x0024, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, - /* 8104 */ 0xFFFF, 0xFFFF, 0x0021, 0x00A3, 0x002A, 0x0029, 0x003B, 0x00AC, - /* 8112 */ 0x0020, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00E1, 0xFFFF, 0xFFFF, - /* 8120 */ 0xFFFF, 0xFFFF, 0x003C, 0x002E, 0x00C1, 0x0028, 0x002B, 0x0021, - /* 8128 */ 0x00D0, 0x00E9, 0xFFFF, 0xFFFF, 0xFFFF, 0x00ED, 0xFFFF, 0xFFFF, - /* 8136 */ 0xFFFF, 0x0024, 0x0025, 0x00C9, 0x002A, 0x0029, 0x003B, 0x0026, - /* 8144 */ 0xFFFF, 0x0023, 0x2018, 0x002C, 0x00DE, 0x005F, 0x003E, 0x003F, - /* 8152 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00CD, 0xFFFF, 0xFFFF, - /* 8160 */ 0x007C, 0x00F0, 0x003A, 0x00C6, 0x00D6, 0x0027, 0x003D, 0x0022, - /* 8168 */ 0x0068, 0x0069, 0xFFFF, 0xFFFF, 0xFFFF, 0x00DD, 0xFFFF, 0xFFFF, - /* 8176 */ 0x00B0, 0x00F6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - /* 8184 */ 0x0079, 0x007A, 0xFFFF, 0xFFFF, 0x005B, 0x00FD, 0xFFFF, 0xFFFF, - /* 8192 */ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x005D, 0x00A8, 0xFFFF, 0xFFFF, - /* 8200 */ 0x00FE, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - /* 8208 */ 0x0048, 0x0049, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00F3, 0xFFFF, - /* 8216 */ 0x0051, 0x0052, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00FA, 0xFFFF, - /* 8224 */ 0x00B4, 0xFFFF, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - /* 8232 */ 0x0059, 0x005A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00D3, 0xFFFF, - /* 8240 */ 0x0038, 0x0039, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x00DA, 0x007F, - /* 8248 */ 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0xFFFF, - /* 8256 */ 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, - /* 8264 */ 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, - /* 8272 */ 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2022, 0x221A, 0x2248, - /* 8280 */ 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, - /* 8288 */ 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, - /* 8296 */ 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E, - /* 8304 */ 0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, - /* 8312 */ 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9, - /* 8320 */ 0x2591, 0x2592, 0x2593, 0x201C, 0x25A0, 0x2022, 0x201D, 0x2014, - /* 8328 */ 0x2116, 0x2122, 0x00A0, 0x00BB, 0x00AE, 0x00AB, 0x00B7, 0x00A4, - /* 8336 */ 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, - /* 8344 */ 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x045E, 0x255E, - /* 8352 */ 0x255F, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, - /* 8360 */ 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x040E, 0x00A9, - /* 8368 */ 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248, - /* 8376 */ 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x255D, 0x255E, - /* 8384 */ 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x256C, 0x00A9, - /* 8392 */ 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00CD, 0x00C4, 0x00C1, - /* 8400 */ 0x00C9, 0x00E6, 0x00C6, 0x0151, 0x00F6, 0x00D3, 0x0171, 0x00DA, - /* 8408 */ 0x0170, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0xE01F, - /* 8416 */ 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x0150, - /* 8424 */ 0x03B1, 0x03B2, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x03BC, 0x03C4, - /* 8432 */ 0x00C4, 0x0100, 0x0101, 0x00C9, 0x0104, 0x00D6, 0x00DC, 0x00E1, - /* 8440 */ 0x0105, 0x010C, 0x00E4, 0x010D, 0x0106, 0x0107, 0x00E9, 0x0179, - /* 8448 */ 0x017A, 0x010E, 0x00ED, 0x010F, 0x0112, 0x0113, 0x0116, 0x00F3, - /* 8456 */ 0x0117, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x011A, 0x011B, 0x00FC, - /* 8464 */ 0x2020, 0x00B0, 0x0118, 0x00A3, 0x00A7, 0x2219, 0x00B6, 0x00DF, - /* 8472 */ 0x00AE, 0x00A9, 0x2122, 0x0119, 0x00A8, 0x2260, 0x01F5, 0x012E, - /* 8480 */ 0x012F, 0x012A, 0x2264, 0x2265, 0x012B, 0x0136, 0x2202, 0x2211, - /* 8488 */ 0x0142, 0x013B, 0x013C, 0x013D, 0x013E, 0x0139, 0x013A, 0x0145, - /* 8496 */ 0x0146, 0x0143, 0x00AC, 0x221A, 0x0144, 0x0147, 0x0394, 0x00AB, - /* 8504 */ 0x00BB, 0x2026, 0x00A0, 0x0148, 0x0150, 0x00D5, 0x0151, 0x014C, - /* 8512 */ 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25C6, - /* 8520 */ 0x014D, 0x0154, 0x0155, 0x0158, 0x2039, 0x203A, 0x0159, 0x0156, - /* 8528 */ 0x0157, 0x0160, 0x201A, 0x201E, 0x0161, 0x015A, 0x015B, 0x00C1, - /* 8536 */ 0x0164, 0x0165, 0x00CD, 0x017D, 0x017E, 0x016A, 0x00D3, 0x00D4, - /* 8544 */ 0x016B, 0x016E, 0x00DA, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173, - /* 8552 */ 0x00DD, 0x00FD, 0x0137, 0x017B, 0x0141, 0x017C, 0x0122, 0x02C7 - }; diff --git a/src/task.c b/src/task.c index ad1d5a6..749d956 100644 --- a/src/task.c +++ b/src/task.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990,92,93,94,96,97,98,99,00 Free Software Foundation, Inc. + Copyright © 1990-2023 Free Software Foundation, Inc. Contributed by François Pinard , 1990. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,75 +14,31 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" -#if HAVE_UNISTD_H -# include -#endif - +#include +#include #include - #include -/* Bruno suggests the following, from GNU make 3.79.0.2 in `job.c'. He also - remarks that on Linux, WEXITSTATUS are bits 15..8 and WTERMSIG are bits - 7..0, while BeOS uses the contrary. */ -#if HAVE_UNION_WAIT -# define WAIT_T union wait -# ifndef WTERMSIG -# define WTERMSIG(x) ((x).w_termsig) -# endif -# ifndef WCOREDUMP -# define WCOREDUMP(x) ((x).w_coredump) -# endif -# ifndef WEXITSTATUS -# define WEXITSTATUS(x) ((x).w_retcode) -# endif -# ifndef WIFSIGNALED -# define WIFSIGNALED(x) (WTERMSIG(x) != 0) -# endif -# ifndef WIFEXITED -# define WIFEXITED(x) (WTERMSIG(x) == 0) -# endif -#else -# define WAIT_T int -# ifndef WTERMSIG -# define WTERMSIG(x) ((x) & 0x7f) -# endif -# ifndef WCOREDUMP -# define WCOREDUMP(x) ((x) & 0x80) -# endif -# ifndef WEXITSTATUS -# define WEXITSTATUS(x) (((x) >> 8) & 0xff) -# endif -# ifndef WIFSIGNALED -# define WIFSIGNALED(x) (WTERMSIG (x) != 0) -# endif -# ifndef WIFEXITED -# define WIFEXITED(x) (WTERMSIG (x) == 0) -# endif -#endif - -/* Buffer size used in transform_mere_copy. */ -#define BUFFER_SIZE (16 * 1024) + +#include "minmax.h" +#include "xbinary-io.h" + +bool recode_interrupted = 0; /* set by signal handler when some signal has been received */ + -/* Input or output helpers. */ +/* Input and output helpers. */ /*-------------------------------------------------------------------. -| Read one byte from the input text of TASK, or EOF is none remain. | +| Read one byte from the input text of TASK, or EOF if none remain. | `-------------------------------------------------------------------*/ -/* This function is directly called by get_byte whenever USE_HELPERS - is defined, and also from within generated Flex code unless - INLINE_HARDER is defined. Otherwise, get_byte does everything - necessary and this routine is not needed. */ - -#if USE_HELPERS || !INLINE_HARDER - int -get_byte_helper (RECODE_SUBTASK subtask) +recode_get_byte (RECODE_SUBTASK subtask) { if (subtask->input.file) return getc (subtask->input.file); @@ -92,41 +48,81 @@ get_byte_helper (RECODE_SUBTASK subtask) return (unsigned char) *subtask->input.cursor++; } -#endif /* USE_HELPERS || !INLINE_HARDER */ +/*-------------------------------------------------------------------. +| Read N bytes from the input text of TASK into DATA; return number | +| of bytes read. | +`-------------------------------------------------------------------*/ + +size_t +recode_get_bytes (RECODE_SUBTASK subtask, char *data, size_t n) +{ + if (subtask->input.file) + return fread (data, 1, n, subtask->input.file); + else + { + size_t bytes_left = subtask->output.limit - subtask->output.cursor; + size_t bytes_to_copy = MIN (n, bytes_left); + memcpy (data, subtask->output.cursor, bytes_to_copy); + subtask->output.cursor += bytes_to_copy; + return bytes_to_copy; + } +} /*-----------------------------------------. | Write BYTE on the output text for TASK. | `-----------------------------------------*/ -/* This function is directly called by put_byte whenever USE_HELPERS - is defined, and also from within generated Flex code unless - INLINE_HARDER is defined. It is also called when the output - buffer needs to be reallocated, which put_byte does not know - how to handle itself. */ - void -put_byte_helper (int byte, RECODE_SUBTASK subtask) +recode_put_byte (char byte, RECODE_SUBTASK subtask) { if (subtask->output.file) - putc (byte, subtask->output.file); - else if (subtask->output.cursor == subtask->output.limit) { - RECODE_OUTER outer = subtask->task->request->outer; - size_t old_size = subtask->output.limit - subtask->output.buffer; - size_t new_size = old_size * 3 / 2 + 40; - - /* FIXME: Rethink about how the error should be reported. */ - - if (REALLOC (subtask->output.buffer, new_size, char)) - { - subtask->output.cursor = subtask->output.buffer + old_size; - subtask->output.limit = subtask->output.buffer + new_size; - *subtask->output.cursor++ = byte; - } + if (putc (byte, subtask->output.file) == EOF) + recode_if_nogo (RECODE_SYSTEM_ERROR, subtask); } + else if (subtask->output.cursor == subtask->output.limit) + recode_put_bytes (&byte, 1, subtask); else *subtask->output.cursor++ = byte; } + +/*-----------------------------------------------------. +| Write N bytes of DATA on the output text for TASK. | +`-----------------------------------------------------*/ + +void +recode_put_bytes (const char *data, size_t n, RECODE_SUBTASK subtask) +{ + if (subtask->output.file) + { + if (fwrite (data, n, 1, subtask->output.file) != 1) + { + recode_perror (NULL, "fwrite ()"); + recode_if_nogo (RECODE_SYSTEM_ERROR, subtask); + } + } + else { + if (subtask->output.cursor + n > subtask->output.limit) + { + RECODE_OUTER outer = subtask->task->request->outer; + size_t old_size = subtask->output.limit - subtask->output.buffer; + size_t new_size = old_size * 3 / 2 + 40 + n; + + if (REALLOC (subtask->output.buffer, new_size, char)) + { + subtask->output.cursor = subtask->output.buffer + old_size; + subtask->output.limit = subtask->output.buffer + new_size; + } + else + { + recode_if_nogo (RECODE_SYSTEM_ERROR, subtask); + return; + } + } + memcpy (subtask->output.cursor, data, n); + subtask->output.cursor += n; + } +} /* Error processing. */ @@ -154,66 +150,29 @@ recode_if_nogo (enum recode_error new_error, RECODE_SUBTASK subtask) | Copy a file. | `--------------*/ -static bool +static void transform_mere_copy (RECODE_SUBTASK subtask) { - if (subtask->input.file && subtask->output.file) + if (subtask->input.file) { - /* File to file. */ + /* Reading from file. */ - char buffer[BUFFER_SIZE]; + char buffer[BUFSIZ]; size_t size; - while (size = fread (buffer, 1, BUFFER_SIZE, subtask->input.file), - size == BUFFER_SIZE) - if (fwrite (buffer, BUFFER_SIZE, 1, subtask->output.file) != 1) - { - recode_perror (NULL, "fwrite ()"); - return false; - } + while (size = recode_get_bytes (subtask, buffer, BUFSIZ), + size == BUFSIZ) + recode_put_bytes (buffer, BUFSIZ, subtask); if (size > 0) - if (fwrite (buffer, size, 1, subtask->output.file) != 1) - { - recode_perror (NULL, "fwrite ()"); - return false; - } - } - else if (subtask->input.file) - { - /* File to buffer. */ - - int character; - - /* FIXME: buy now, pay (optimise) only later. */ - while (character = get_byte (subtask), character != EOF) - put_byte (character, subtask); - } - else if (subtask->output.file) - { - /* Buffer to file. */ - - if (subtask->input.cursor < subtask->input.limit) - if (fwrite (subtask->input.cursor, - (unsigned) (subtask->input.limit - subtask->input.cursor), - 1, subtask->output.file) - != 1) - { - recode_perror (NULL, "fwrite ()"); - return false; - } + recode_put_bytes (buffer, size, subtask); } else - { - /* Buffer to buffer. */ + /* Reading from buffer. */ - int character; - - /* FIXME: buy now, pay (optimise) only later. */ - while (character = get_byte (subtask), character != EOF) - put_byte (character, subtask); - } - - return true; + if (subtask->input.cursor < subtask->input.limit) + recode_put_bytes (subtask->input.cursor, + (unsigned) (subtask->input.limit - subtask->input.cursor), + subtask); } /*--------------------------------------------------. @@ -221,14 +180,14 @@ transform_mere_copy (RECODE_SUBTASK subtask) `--------------------------------------------------*/ bool -transform_byte_to_byte (RECODE_SUBTASK subtask) +recode_transform_byte_to_byte (RECODE_SUBTASK subtask) { unsigned const char *table = (unsigned const char *) subtask->step->step_table; int input_char; - while (input_char = get_byte (subtask), input_char != EOF) - put_byte (table[input_char], subtask); + while (input_char = recode_get_byte (subtask), input_char != EOF) + recode_put_byte (table[input_char], subtask); SUBTASK_RETURN (subtask); } @@ -238,7 +197,7 @@ transform_byte_to_byte (RECODE_SUBTASK subtask) `---------------------------------------------------*/ bool -transform_byte_to_variable (RECODE_SUBTASK subtask) +recode_transform_byte_to_variable (RECODE_SUBTASK subtask) { const char *const *table = (const char *const *) subtask->step->step_table; int input_char; @@ -246,11 +205,11 @@ transform_byte_to_variable (RECODE_SUBTASK subtask) /* Copy the file through the one to many recoding table. */ - while (input_char = get_byte (subtask), input_char != EOF) + while (input_char = recode_get_byte (subtask), input_char != EOF) if (output_string = table[input_char], output_string) while (*output_string) { - put_byte (*output_string, subtask); + recode_put_byte (*output_string, subtask); output_string++; } else @@ -259,786 +218,179 @@ transform_byte_to_variable (RECODE_SUBTASK subtask) SUBTASK_RETURN (subtask); } -/*---------------------------------------------------------------------. -| Execute the conversion sequence for a recoding TASK, using several | -| passes with two alternating memory buffers. This routine assumes at | -| least one needed recoding step. | -`---------------------------------------------------------------------*/ +/*-------------------------------------------------------------------. +| Close the subtask input file pointer if it is owned by librecode. | +`-------------------------------------------------------------------*/ static bool -perform_memory_sequence (RECODE_TASK task) +close_subtask_input (RECODE_SUBTASK subtask) { - RECODE_CONST_REQUEST request = task->request; - struct recode_subtask subtask_block; - RECODE_SUBTASK subtask = &subtask_block; - struct recode_read_write_text input; - struct recode_read_write_text output; - unsigned sequence_index; - RECODE_CONST_STEP step; - - memset (subtask, 0, sizeof (struct recode_subtask)); - memset (&input, 0, sizeof (struct recode_read_write_text)); - memset (&output, 0, sizeof (struct recode_read_write_text)); - subtask->task = task; - - /* Execute one pass for each step of the sequence. */ - - for (sequence_index = 0; - sequence_index < request->sequence_length - && task->error_so_far < task->abort_level; - sequence_index++) + if (subtask->input.file) { - /* Select the input text for this step. */ - - if (sequence_index == 0) - { - subtask->input = task->input; - - if (subtask->input.name) - { - if (!*subtask->input.name) - subtask->input.file = stdin; - else if (subtask->input.file = fopen (subtask->input.name, "r"), - subtask->input.file == NULL) - { - recode_perror (NULL, "fopen (%s)", subtask->input.name); - return false; - } - } - } - else - { - subtask->input.buffer = input.buffer; - subtask->input.cursor = input.buffer; - subtask->input.limit = input.cursor; - } - - /* Select the output text for this step. */ - - if (sequence_index < request->sequence_length - 1) - { - subtask->output = output; - subtask->output.cursor = subtask->output.buffer; - } - else - { - subtask->output = task->output; - - if (subtask->output.name) - { - if (!*subtask->output.name) - subtask->output.file = stdout; - else if (subtask->output.file = fopen (subtask->output.name, - "w"), - subtask->output.file == NULL) - { - recode_perror (NULL, "fopen (%s)", subtask->output.name); - return false; - } - } - } - - /* Execute one recoding step. */ - - step = request->sequence_array + sequence_index; - subtask->step = step; - (*step->transform_routine) (subtask); - - /* Post-step clean up. */ - - if (sequence_index == 0) - { - if (subtask->input.name && *subtask->input.name) - fclose (subtask->input.file); - - task->input = subtask->input; - - subtask->input.name = NULL; - subtask->input.file = NULL; - } - - /* Prepare for next step. */ - - task->swap_input = RECODE_SWAP_UNDECIDED; - - if (sequence_index < request->sequence_length - 1) - { - output = input; - input = subtask->output; - } - else - { - if (subtask->output.name && *subtask->output.name) - fclose (subtask->output.file); - - task->output = subtask->output; - } + if (subtask->input.file && subtask->input.name && + subtask->input.name[0]) + { + if (fclose (subtask->input.file) != 0) + { + recode_perror (NULL, "fclose (%s)", subtask->input.name); + recode_if_nogo (RECODE_SYSTEM_ERROR, subtask); + return false; + } + } + + subtask->input.file = NULL; } - - /* Final clean up. */ - - /* FIXME: Maybe we should manage this so it could wait, instead, for - avoiding buffer reallocation each time a new recoding is done? */ - - if (input.buffer) - free (input.buffer); - if (output.buffer) - free (output.buffer); - - SUBTASK_RETURN (subtask); + return true; } -/*-------------------------------------------------------------------------. -| Execute the conversion sequence for a recoding TASK, using several | -| passes with two alternating intermediate files. This routine assumes at | -| least one needed recoding step. | -`-------------------------------------------------------------------------*/ - -/* tmpnam/tmpname/mktemp/tmpfile and the associate logic has been the - main portability headache of Recode :-(. - - People reported that tmpname does not exist everywhere. Further, on - OS/2, recode aborts if the prefix has more than five characters. - - tmpnam seems to exist everywhere so far. But NeXT's tmpnam() is such - that, if called many times in succession, it will always return the - same value, one has to really open a file with the returned name first - for the next call to tmpnam() to return a different value; even worse, - it cycles after 25 unique file names. I can manage it for a single - invocation of recode, but using two recode invocations connected with - a shell pipe, on the NeXT, creates a race by which both copies may - call tmpnam() in parallel, then getting the same value, and will - consequently open the same temporary file. - - Noah Friedman suggests opening the file with - O_EXCL, and when the open presumably fails, call tmpnam again, or try - the mktemp routine in the GNU C library: maybe that will work better. - - Michael I Bushnell suggests always using tmpfile, - which opens the file too, using the O_EXCL option to open. - - I'm trying this last suggestion, but rewinding instead of closing. - Someone reported, a long while ago, that rewind did not work on his - system, so I reverted to opening and closing the temporary files all - the time. I lost the precise references for this problem. In any - case, I'm reusing rewind with tmpfile, now. Hopefully, someone will - tell me if this still creates a problem somewhere! */ - -/* The previous round used tmpnam(3). This one tries tmpfile(3). */ -#undef USE_TMPNAM -#define USE_TMPFILE 1 - -/* Guarantee some value for L_tmpnam. */ -#if USE_TMPNAM -# if DOSWIN -# ifndef L_tmpnam -# define L_tmpnam 13 -# endif -# else -char *tmpnam (); -# ifndef L_tmpnam -# include "pathmax.h" -# define L_tmpnam PATH_MAX -# endif -# endif -#endif - -#if USE_TMPFILE -FILE *tmpfile PARAMS ((void)); -#endif +/*------------------------------------------------------------------------. +| Execute the conversion sequence for a recoding TASK. If no conversions | +| are needed, merely copy the input onto the output. | +| Returns zero if the recoding has been found to be non-reversible. | +| Tell what goes on if VERBOSE. | +`------------------------------------------------------------------------*/ -static bool -perform_pass_sequence (RECODE_TASK task) +bool +recode_perform_task (RECODE_TASK task) { RECODE_CONST_REQUEST request = task->request; struct recode_subtask subtask_block; RECODE_SUBTASK subtask = &subtask_block; + struct recode_read_write_text input; struct recode_read_write_text output; - unsigned sequence_index; - RECODE_CONST_STEP step; -#if USE_TMPNAM - char temporary_name_1[L_tmpnam]; - char temporary_name_2[L_tmpnam]; -#endif - - memset (subtask, 0, sizeof (struct recode_subtask)); memset (&input, 0, sizeof (struct recode_read_write_text)); memset (&output, 0, sizeof (struct recode_read_write_text)); + + memset (subtask, 0, sizeof (struct recode_subtask)); subtask->task = task; + subtask->input = task->input; + + /* Switch stdin and stdout to binary mode unless they are ttys, as this has + nasty side-effects on several DOSish systems. For example, the Ctrl-Z + character is no longer interpreted as EOF, and thus the poor user cannot + signal end of input; the INTR character also doesn't work, so they cannot + even interrupt the program, and are stuck. On the other hand, output to + the screen doesn't have to follow the end-of-line format exactly, since + it is going to be discarded anyway. */ + if (task->input.name && !*task->input.name && !isatty (fileno (stdin))) + xset_binary_mode (fileno (stdin), O_BINARY); + if (task->output.name && !*task->output.name && !isatty (fileno (stdout))) + xset_binary_mode (fileno (stdout), O_BINARY); + + /* Prepare the first input file. */ -#if USE_TMPNAM -# if DOSWIN_OR_OS2 - strcpy (temporary_name_1, "recodex1.tmp"); - strcpy (temporary_name_2, "recodex2.tmp"); -# else - /* Delay name attribution, so NeXT's work. */ - temporary_name_1[0] = NUL; - temporary_name_2[0] = NUL; -# endif - subtask->input.name = temporary_name_1; - subtask->output.name = temporary_name_2; -#endif + if (subtask->input.name) + { + if (!*subtask->input.name) + subtask->input.file = stdin; + else if (subtask->input.file = fopen (subtask->input.name, "rb"), + subtask->input.file == NULL) + { + recode_perror (NULL, "fopen (%s)", subtask->input.name); + recode_if_nogo (RECODE_SYSTEM_ERROR, subtask); + SUBTASK_RETURN (subtask); + } + } /* Execute one pass for each step of the sequence. */ - for (sequence_index = 0; - sequence_index < request->sequence_length - && task->error_so_far < task->abort_level; + int child_process = -1; /* child process number, -1 if process has not forked */ + for (unsigned sequence_index = 0; + task->error_so_far < task->abort_level; sequence_index++) { - step = request->sequence_array + sequence_index; - subtask->step = step; + child_process = -1; - /* Select the input text for this step. */ + if (sequence_index > 0) + { + /* Select the input text for this step. */ - if (sequence_index == 0) - { - subtask->input = task->input; - - if (subtask->input.name) - { - if (!*subtask->input.name) - subtask->input.file = stdin; - else if (subtask->input.file = fopen (subtask->input.name, "r"), - subtask->input.file == NULL) - { - recode_perror (NULL, "fopen (%s)", subtask->input.name); - recode_if_nogo (RECODE_SYSTEM_ERROR, subtask); - return false; - } - } - } - else - { -#if USE_TMPNAM - if (subtask->input.file = fopen (input.name, "r"), - subtask->input.file == NULL) - { - recode_perror (outer, "fopen (%s)", input.name); - recode_if_nogo (RECODE_SYSTEM_ERROR, subtask); - return false; - } -#endif - -#if USE_TMPFILE - subtask->input.file = input.file; - rewind (subtask->input.file); -#endif - } + subtask->input.buffer = input.buffer; + subtask->input.cursor = input.buffer; + subtask->input.limit = input.cursor; + subtask->input.file = input.file; + } /* Select the output text for this step. */ - if (sequence_index < request->sequence_length - 1) + if (sequence_index + 1 < (unsigned)request->sequence_length) { - subtask->output = output; - -#if USE_TMPNAM -# if DOSWIN_OR_OS2 - if (*subtask->output.name == NUL) - tmpnam (subtask->output.name); -# endif - if (subtask->output.file = fopen (subtask->output.name, "w"), - subtask->output.file == NULL) - { - recode_perror (outer, "fopen (%s)", subtask->output.name); - recode_if_nogo (RECODE_SYSTEM_ERROR, subtask); - return false; - } -#endif - -#if USE_TMPFILE - if (subtask->output.file = tmpfile (), subtask->output.file == NULL) - { - recode_perror (NULL, "tmpfile ()"); - recode_if_nogo (RECODE_SYSTEM_ERROR, subtask); - return false; - } -#endif + subtask->output = output; + subtask->output.cursor = subtask->output.buffer; } else { - subtask->output = task->output; + /* Prepare the final output file. */ + subtask->output = task->output; if (subtask->output.name) { if (!*subtask->output.name) subtask->output.file = stdout; - else if (subtask->output.file = fopen (subtask->output.name, - "w"), + else if (subtask->output.file = fopen (subtask->output.name, "wb"), subtask->output.file == NULL) { recode_perror (NULL, "fopen (%s)", subtask->output.name); recode_if_nogo (RECODE_SYSTEM_ERROR, subtask); - return false; + goto exit; } } } /* Execute one recoding step. */ - (*step->transform_routine) (subtask); - - /* Post-step clean up. */ - - if (sequence_index == 0) - { - if (subtask->input.name && *subtask->input.name) - fclose (subtask->input.file); - - task->input = subtask->input; - - subtask->input.name = NULL; - subtask->input.buffer = NULL; - subtask->input.cursor = NULL; - subtask->input.limit = NULL; - } - else - { - fclose (subtask->input.file); -#if USE_TMPNAM - unlink (subtask->input.name); -#endif - } - -#if USE_TMPNAM - fclose (subtask->output.file); -#endif - - /* Prepare for next step. */ - - task->swap_input = RECODE_SWAP_UNDECIDED; - - if (sequence_index < request->sequence_length - 1) - { - output = input; - input = subtask->output; - } - else - { - if (subtask->output.name && *subtask->output.name) - fclose (subtask->output.file); - - task->output = subtask->output; - } - } - - SUBTASK_RETURN (subtask); -} - -#if HAVE_PIPE - -#if !HAVE_DUP2 - -/*------------------------------------------------------------------------. -| Duplicate the OLD_FD file descriptor into NEW_FD, closing NEW_FD first | -| if it is used. This implementation presumes both OLD_FD and NEW_FD are | -| valid file descriptors. | -`------------------------------------------------------------------------*/ - -/* Overall idea taken from GNU Emacs 18.55 dup2 (), in src/sysdep.c. */ - -#include - -#ifndef F_DUPFD - -static bool -dup2_recursive (int old_fd, int new_fd) -{ - int fd; - - /* Attempt to dup OLD_FD to NEW_FD. If not successful, call dup2 - recursively, filling the file descriptor table until NEW_FD is - reached. Then close all the spurious file descriptors we created. */ - - if (fd = dup (old_fd) && fd != new_fd) - if (fd < 0 || dup2_recursive (old_fd, new_fd) < 0 || close (fd) < 0) - return false; - - return true; -} - -#endif /* not F_DUPFD */ - -static int -dup2 (int old_fd, int new_fd) -{ - /* If OLD_FD or NEW_FD were not valid file descriptors, dup2 should - ideally return -1 with errno set to EBADF. This is not checked. */ - - if (old_fd != new_fd) - { - close (new_fd); - -#ifdef F_DUPFD - if (fcntl (old_fd, F_DUPFD, new_fd) != new_fd) - return -1; -#else - if (!dup2_recursive (old_fd, new_fd)) - return -1; -#endif - } - return new_fd; -} - -#endif /* not HAVE_DUP2 */ - -/*-------------------------------------------------------------------------. -| Execute the conversion sequence, forking the program many times for all | -| elementary steps, interconnecting them with pipes. This routine assumes | -| that more than one recoding step is needed. | -`-------------------------------------------------------------------------*/ - -#if 1 - -/* FIXME: This is no good. The main process might open too many files for - one thing. All of it should create children from left to right, instead - of all children to a single parent right to left. */ - -static bool -perform_pipe_sequence (RECODE_TASK task) -{ - RECODE_CONST_REQUEST request = task->request; - RECODE_OUTER outer = request->outer; - struct recode_subtask subtask_block; - RECODE_SUBTASK subtask = &subtask_block; - - unsigned sequence_index; /* index into sequence */ - RECODE_CONST_STEP step; /* pointer into single_steps */ - - int pipe_pair[2]; /* pair of file descriptors for a pipe */ - int child_process; /* child process number, zero if child */ - WAIT_T wait_status; /* status returned by wait() */ - - memset (subtask, 0, sizeof (struct recode_subtask)); - subtask->task = task; - subtask->input = task->input; - subtask->output = task->output; - - /* Prepare the final output file. */ - - if (!*subtask->output.name) - subtask->output.file = stdout; - else if (subtask->output.file = fopen (subtask->output.name, "w"), - subtask->output.file == NULL) - { - recode_perror (outer, "fopen (%s)", subtask->output.name); - return false; - } - - /* Create all subprocesses, from the last to the first, and - interconnect them. */ - - for (sequence_index = request->sequence_length - 1; - sequence_index > 0; - sequence_index--) - { - if (pipe (pipe_pair) < 0) - { - recode_perror (outer, "pipe ()"); - return false; - } - if (child_process = fork (), child_process < 0) - { - recode_perror (outer, "fork ()"); - return false; - } - if (child_process == 0) - { - /* The child executes its recoding step, reading from the pipe - and writing to the current output file; then it exits. */ - - if (close (pipe_pair[1]) < 0) - { - recode_perror (outer, "close ()"); - return false; - } - if (subtask->input.file = fdopen (pipe_pair[0], "r"), - subtask->input.file == NULL) - { - recode_perror (outer, "fdopen ()"); - return false; - } - - step = request->sequence_array + sequence_index; - subtask->step = step; - (*step->transform_routine) (subtask); - - fclose (subtask->input.file); - if (sequence_index < request->sequence_length - 1 - || *subtask->output.name) - fclose (subtask->output.file); - - exit (task->error_so_far < task->fail_level ? EXIT_SUCCESS - : EXIT_FAILURE); - } - else - { - /* The parent redirects the current output file to the pipe. */ - - if (dup2 (pipe_pair[1], fileno (subtask->output.file)) < 0) - { - recode_perror (outer, "dup2 ()"); - return false; - } - if (close (pipe_pair[0]) < 0) - { - recode_perror (outer, "close ()"); - return false; - } - if (close (pipe_pair[1]) < 0) - { - recode_perror (outer, "close ()"); - return false; - } - } - } - - /* All the children are created, blocked on read. Now, feed the whole - chain of processes with the output of the first recoding step. */ - - if (!*subtask->input.name) - subtask->input.file = stdin; - else if (subtask->input.file = fopen (subtask->input.name, "r"), - subtask->input.file == NULL) - { - recode_perror (outer, "fopen (%s)", subtask->input.name); - return false; - } - - step = request->sequence_array; - subtask->step = step; - (*step->transform_routine) (subtask); - - if (*subtask->input.name) - fclose (subtask->input.file); - - fclose (subtask->output.file); - - /* Wait on all children, mainly to avoid synchronisation problems on - output file contents, but also to reduce the number of zombie - processes in case the user recodes many files at once. */ - - while (wait (&wait_status) > 0) - { - /* Diagnose and abort on any abnormally terminating child. */ - -#if 0 /* FIXME: Bruno would prefer this. */ - if (!(WIFEXITED (wait_status) - || (WIFSIGNALED (wait_status) - && WTERMSIG (wait_status) == SIGPIPE))) -#endif - if ((wait_status & MASK (8)) != 0 - && (wait_status & MASK (8)) != SIGPIPE) - { - recode_error (outer, _("Child process wait status is 0x%0.2x"), - wait_status); - return false; - } - - /* Check for a nonzero exit from the terminating child. */ - - if (WIFEXITED (wait_status) - ? WEXITSTATUS (wait_status) != 0 - : WTERMSIG (wait_status) != 0) - /* FIXME: It is not very clear what happened in sub-processes. */ - if (task->error_so_far < task->fail_level) - { - task->error_so_far = task->fail_level; - task->error_at_step = step; - } - } - -#if FIXME - if (interrupted) - /* FIXME: It is not very clear what happened in sub-processes. */ - if (task->error_so_far < task->fail_level) - { - task->error_so_far = task->fail_level; - task->error_at_step = step; + if (request->sequence_length == 0) { + transform_mere_copy (subtask); + break; } -#endif - - SUBTASK_RETURN (subtask); -} -#else /* not 1 */ - -static bool -perform_pipe_sequence (RECODE_TASK task) -{ - RECODE_CONST_REQUEST request = task->request; - struct recode_subtask subtask_block; - RECODE_SUBTASK subtask = &subtask_block; - - unsigned sequence_index; /* index into sequence */ - RECODE_CONST_STEP step; /* pointer into single_steps */ - - int pipe_pair[2]; /* pair of file descriptors for a pipe */ - int child_process; /* child process number, zero if child */ - WAIT_T wait_status; /* status returned by wait() */ - - memset (subtask, 0, sizeof (struct recode_subtask)); - subtask->task = task; - subtask->input = task->input; - subtask->output = task->output; - - /* Prepare the final files. */ - - if (!*subtask->input.name) - subtask->input.file = stdin; - else if (subtask->input.file = fopen (subtask->input.name, "r"), - subtask->input.file == NULL) - { - recode_perror (outer, "fopen (%s)", subtask->input.name); - return false; - } - - if (!*subtask->output.name) - subtask->output.file = stdout; - else if (subtask->output.file = fopen (subtask->output.name, "w"), - subtask->output.file == NULL) - { - recode_perror (outer, "fopen (%s)", subtask->output.name); - return false; - } - - /* Create all subprocesses, from the first to the last, and - interconnect them. */ - - for (sequence_index = 0; - sequence_index < request->sequence_length - 1; - sequence_index++) - { - if (pipe (pipe_pair) < 0) - { - recode_perror (outer, "pipe ()"); - return false; - } - if (child_process = fork (), child_process < 0) - { - recode_perror (outer, "fork ()"); - return false; - } - if (child_process == 0) + if (child_process <= 0) { - /* The child executes its recoding step, reading from the pipe - and writing to the current output file; then it exits. */ + subtask->step = request->sequence_array + sequence_index; + (*subtask->step->transform_routine) (subtask); - if (close (pipe_pair[1]) < 0) - { - recode_perror (outer, "close ()"); - return false; - } - if (subtask->input.file = fdopen (pipe_pair[0], "r"), - subtask->input.file == NULL) - { - recode_perror (outer, "fdopen ()"); - return false; - } + /* Post-step clean up for memory sequence. */ - step = request->sequence_array[sequence_index]; - subtask->step = step; - (*step->transform_routine) (subtask); + if (!close_subtask_input (subtask)) + goto exit; - fclose (subtask->input.file); - if (sequence_index < request->sequence_length - 1 - || *subtask->output.name) - fclose (subtask->output.file); + /* Prepare for next step. */ - exit (task->error_so_far < task->fail_level ? EXIT_SUCCESS - : EXIT_FAILURE); - } - else - { - /* The parent redirects the current output file to the pipe. */ + task->swap_input = RECODE_SWAP_UNDECIDED; - if (dup2 (pipe_pair[1], fileno (subtask->output.file)) < 0) - { - recode_perror (outer, "dup2 ()"); - return false; - } - if (close (pipe_pair[0]) < 0) + if (sequence_index + 1 < (unsigned)request->sequence_length) { - recode_perror (outer, "close ()"); - return false; - } - if (close (pipe_pair[1]) < 0) - { - recode_perror (outer, "close ()"); - return false; + output = input; + input = subtask->output; } } - } - /* All processes execute the following common code, each with its proper - value for SEQUENCE_INDEX, CHILD_PROCESS, etc. */ + if (sequence_index + 1 == (unsigned)request->sequence_length) + break; + } - /* All the children are created, blocked on read. Now, feed the whole - chain of processes with the output of the first recoding step. */ + /* Final clean up. */ + exit: - if (!*subtask->input.name) - subtask->input.file = stdin; - else if (subtask->input.file = fopen (subtask->input.name, "r"), - subtask->input.file == NULL) + if (subtask->input.file && subtask->input.file != task->input.file && fclose (subtask->input.file) != 0) { - recode_perror (outer, "fopen (%s)", subtask->input.name); - return false; + recode_perror (NULL, "fclose (%s)", subtask->input.name ? subtask->input.name : "stdin"); + recode_if_nogo (RECODE_SYSTEM_ERROR, subtask); } - step = request->sequence_array[0]; - subtask->step = step; - (*step->transform_routine) (subtask); - - if (*subtask->input.name) - fclose (subtask->input.file); - - fclose (subtask->output.file); - - /* Wait on all children, mainly to avoid synchronisation problems on - output file contents, but also to reduce the number of zombie - processes in case the user recodes many files at once. */ - - while (wait (&wait_status) > 0) + if (subtask->output.file && subtask->output.file != task->output.file && fclose (subtask->output.file) != 0) { - /* Diagnose and abort on any abnormally terminating child. */ - - if (!(WIFEXITED (wait_status) - || (WIFSIGNALED (wait_status) - && WTERMSIG (wait_status) == SIGPIPE))) - { - recode_error (outer, _("Child process wait status is 0x%0.2x"), - wait_status); - return false; - } - - /* Check for a nonzero exit from the terminating child. */ - - if (WIFEXITED (wait_status) - ? WEXITSTATUS (wait_status) != 0 - : WTERMSIG (wait_status) != 0) - /* FIXME: It is not very clear what happened in sub-processes. */ - if (task->error_so_far < task->fail_level) - { - task->error_so_far = task->fail_level; - task->error_at_step = step; - } + recode_perror (NULL, "fclose (%s)", subtask->output.name ? subtask->output.name : "stdout"); + recode_if_nogo (RECODE_SYSTEM_ERROR, subtask); } - if (interrupted) - /* FIXME: It is not very clear what happened in sub-processes. */ - if (task->error_so_far < task->fail_level) - { - task->error_so_far = task->fail_level; - task->error_at_step = step; - } + free (input.buffer); + free (output.buffer); + task->output = subtask->output; SUBTASK_RETURN (subtask); } - -#endif /* not 1 */ - -#endif /* HAVE_PIPE */ /* Library interface. */ @@ -1058,9 +410,7 @@ recode_new_task (RECODE_CONST_REQUEST request) if (!ALLOC (task, 1, struct recode_task)) return NULL; - memset (task, 0, sizeof (struct recode_task)); task->request = request; - task->strategy = RECODE_STRATEGY_UNDECIDED; task->fail_level = RECODE_NOT_CANONICAL; task->abort_level = RECODE_USER_ERROR; task->error_so_far = RECODE_NO_ERROR; @@ -1076,143 +426,3 @@ recode_delete_task (RECODE_TASK task) free (task); return true; } - -#if DOSWIN -# if HAVE_UNISTD_H -# include /* for isatty */ -# endif -# include /* for O_BINARY and _fmode */ -# include /* for setmode */ -#endif - -/*------------------------------------------------------------------------. -| Execute the conversion sequence for a recoding TASK, using the selected | -| strategy whenever more than one conversion step is needed. If no | -| conversion are needed, merely copy the input onto the output. Returns | -| zero if the recoding has been found to be non-reversible. Tell what | -| goes on if VERBOSE. | -`------------------------------------------------------------------------*/ - -/* If some sequencing strategies are missing, this routine automatically - uses fallback strategies. */ - -bool -recode_perform_task (RECODE_TASK task) -{ - RECODE_CONST_REQUEST request = task->request; - bool success; - -#if DOSWIN_OR_OS2 - /* Don't switch the console device to binary mode. On several DOSish - systems this has unpleasant side effects. For example, the Ctrl-Z - character is no longer interpreted as EOF, and thus the poor user cannot - signal end of input; the INTR character also doesn't work, so they cannot - even interrupt the program, and are stuck. On the other hand, output to - the screen doesn't have to follow the end-of-line format exactly, since - it is going to be discarded anyway. */ - if (task->input.name && !*task->input.name && !isatty (fileno (stdin))) - setmode (fileno (stdin), O_BINARY); - if (task->output.name && !*task->output.name && !isatty (fileno (stdout))) - setmode (fileno (stdout), O_BINARY); -# ifdef __EMX__ - { - extern int _fmode_bin; - _fmode_bin = 1; - } -# else - _fmode = O_BINARY; -# endif -#endif - - if (request->sequence_length > 1) - switch (task->strategy) - { - case RECODE_STRATEGY_UNDECIDED: - /* Let's use only memory if either end is memory, or only temporary - files if both ends are files. This is a crude choice, FIXME! - Leave task->strategy alone, as the same task may be used many - times differently, and the fact the strategy is undecided is a - clue we want to protect between calls. */ - - if ((task->input.name || task->input.file) - && (task->output.name || task->output.file)) - success = perform_pass_sequence (task); - else - success = perform_memory_sequence (task); - break; - - case RECODE_SEQUENCE_IN_MEMORY: - success = perform_memory_sequence (task); - break; - - case RECODE_SEQUENCE_WITH_PIPE: -#if HAVE_PIPE - success = perform_pipe_sequence (task); - break; -#else - /* Fall through on files if there are no pipes. */ -#endif - - case RECODE_SEQUENCE_WITH_FILES: - success = perform_pass_sequence (task); - break; - - default: - success = false; /* for lint */ - } - else - { - struct recode_subtask subtask_block; - RECODE_SUBTASK subtask = &subtask_block; - - /* Execute a simple recoding (a single step, or no step at all). */ - - memset (subtask, 0, sizeof (struct recode_subtask)); - subtask->task = task; - subtask->input = task->input; - subtask->output = task->output; - - if (subtask->input.name) - { - if (!*subtask->input.name) - subtask->input.file = stdin; - else if (subtask->input.file = fopen (subtask->input.name, "r"), - subtask->input.file == NULL) - { - recode_perror (NULL, "fopen (%s)", subtask->input.name); - return false; - } - } - - if (subtask->output.name) - { - if (!*subtask->output.name) - subtask->output.file = stdout; - else if (subtask->output.file = fopen (subtask->output.name, "w"), - subtask->output.file == NULL) - { - recode_perror (NULL, "fopen (%s)", subtask->output.name); - return false; - } - } - - if (request->sequence_length == 1) - { - RECODE_CONST_STEP step = request->sequence_array; - - subtask->step = step; - success = (*step->transform_routine) (subtask); - } - else - success = transform_mere_copy (subtask); - - task->output = subtask->output; - - if (subtask->input.name && *subtask->input.name) - fclose (subtask->input.file); - if (subtask->output.name && *subtask->output.name) - fclose (subtask->output.file); - } - - return success; -} diff --git a/src/tersteps.h b/src/tersteps.h deleted file mode 100644 index 06baece..0000000 --- a/src/tersteps.h +++ /dev/null @@ -1,34 +0,0 @@ - delmodule_african (outer); - delmodule_afrtran (outer); - delmodule_applemac (outer); - delmodule_atarist (outer); - delmodule_bangbang (outer); - delmodule_cdcnos (outer); - delmodule_ebcdic (outer); - delmodule_ibmpc (outer); - delmodule_iconqnx (outer); - delmodule_latin1_ascii (outer); - delmodule_java (outer); - delmodule_mule (outer); - delmodule_strips (outer); - delmodule_testdump (outer); - delmodule_ucs (outer); - delmodule_utf16 (outer); - delmodule_utf7 (outer); - delmodule_utf8 (outer); - delmodule_varia (outer); - delmodule_vietnamese (outer); - delmodule_flat (outer); - delmodule_html (outer); - delmodule_latin1_latex (outer); - delmodule_latin1_texte (outer); - delmodule_rfc1345 (outer); - delmodule_texinfo (outer); - delmodule_base64 (outer); - delmodule_dump (outer); - delmodule_endline (outer); - delmodule_permutations (outer); - delmodule_quoted_printable (outer); - delmodule_ascii_latin1 (outer); - delmodule_latex_latin1 (outer); - delmodule_texte_latin1 (outer); diff --git a/src/testdump.c b/src/testdump.c index 7d82200..312cdc9 100644 --- a/src/testdump.c +++ b/src/testdump.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1996, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1996-2019 Free Software Foundation, Inc. Contributed by François Pinard , 1997. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" #include "hash.h" /*------------------------. @@ -35,11 +37,11 @@ test7_data (RECODE_SUBTASK subtask) int value; for (counter = 0; counter < 1 << 7; counter++) - put_byte (counter, subtask); + recode_put_byte (counter, subtask); /* Copy the rest verbatim. */ - while (value = get_byte (subtask), value != EOF) - put_byte (value, subtask); + while (value = recode_get_byte (subtask), value != EOF) + recode_put_byte (value, subtask); SUBTASK_RETURN (subtask); } @@ -51,11 +53,11 @@ test8_data (RECODE_SUBTASK subtask) int value; for (counter = 0; counter < 1 << 8; counter++) - put_byte (counter, subtask); + recode_put_byte (counter, subtask); /* Copy the rest verbatim. */ - while (value = get_byte (subtask), value != EOF) - put_byte (value, subtask); + while (value = recode_get_byte (subtask), value != EOF) + recode_put_byte (value, subtask); SUBTASK_RETURN (subtask); } @@ -66,11 +68,11 @@ test15_data (RECODE_SUBTASK subtask) unsigned counter; unsigned value; - put_ucs2 (BYTE_ORDER_MARK, subtask); + recode_put_ucs2 (BYTE_ORDER_MARK, subtask); /* Before surrogate area. */ for (counter = 0; counter < 0xDC00; counter++) - put_ucs2 (counter, subtask); + recode_put_ucs2 (counter, subtask); /* After surrogate area. */ for (counter = 0xE000; counter < 1 << 16; counter++) switch (counter) @@ -82,12 +84,12 @@ test15_data (RECODE_SUBTASK subtask) break; default: - put_ucs2 (counter, subtask); + recode_put_ucs2 (counter, subtask); } /* Copy the rest verbatim. */ - while (value = get_byte (subtask), value != EOF) - put_byte (value, subtask); + while (value = recode_get_byte (subtask), value != (unsigned)EOF) + recode_put_byte (value, subtask); SUBTASK_RETURN (subtask); } @@ -99,11 +101,11 @@ test16_data (RECODE_SUBTASK subtask) unsigned value; for (counter = 0; counter < 1 << 16; counter++) - put_ucs2 (counter, subtask); + recode_put_ucs2 (counter, subtask); /* Copy the rest verbatim. */ - while (value = get_byte (subtask), value != EOF) - put_byte (value, subtask); + while (value = recode_get_byte (subtask), value != (unsigned)EOF) + recode_put_byte (value, subtask); SUBTASK_RETURN (subtask); } @@ -154,7 +156,7 @@ put_string (const char *string, RECODE_SUBTASK subtask) const char *cursor; for (cursor = string; *cursor; cursor++) - put_byte (*cursor, subtask); + recode_put_byte (*cursor, subtask); } static bool @@ -175,7 +177,7 @@ produce_count (RECODE_SUBTASK subtask) { unsigned character; /* current character being counted */ - while (get_ucs2 (&character, subtask)) + while (recode_get_ucs2 (&character, subtask)) { struct ucs2_to_count lookup; struct ucs2_to_count *entry; @@ -222,8 +224,8 @@ produce_count (RECODE_SUBTASK subtask) { const unsigned non_count_width = 12; - char buffer[50]; struct ucs2_to_count **cursor; + char *buffer; unsigned count_width; unsigned maximum_count = 0; unsigned column = 0; @@ -232,32 +234,36 @@ produce_count (RECODE_SUBTASK subtask) for (cursor = array; cursor < array + size; cursor++) if ((*cursor)->count > maximum_count) maximum_count = (*cursor)->count; - sprintf (buffer, "%d", maximum_count); + if (asprintf (&buffer, "%u", maximum_count) == -1) + return false; count_width = strlen (buffer); + free (buffer); for (cursor = array; cursor < array + size; cursor++) { unsigned character = (*cursor)->code; - const char *mnemonic = ucs2_to_rfc1345 (character); + const char *mnemonic = recode_ucs2_to_rfc1345 (character); if (column + count_width + non_count_width > 80) { - put_byte ('\n', subtask); + recode_put_byte ('\n', subtask); delayed = 0; column = 0; } else while (delayed) { - put_byte (' ', subtask); + recode_put_byte (' ', subtask); delayed--; } - sprintf (buffer, "%*d %.4X", count_width, (*cursor)->count, character); + if (asprintf (&buffer, "%*u %.4X", (int)count_width, (*cursor)->count, character) == -1) + return false; put_string (buffer, subtask); + free (buffer); if (mnemonic) { - put_byte (' ', subtask); + recode_put_byte (' ', subtask); put_string (mnemonic, subtask); delayed = 6 - 1 - strlen (mnemonic); } @@ -268,7 +274,7 @@ produce_count (RECODE_SUBTASK subtask) } if (column) - put_byte ('\n', subtask); + recode_put_byte ('\n', subtask); } /* Clean-up. */ @@ -290,31 +296,17 @@ produce_full_dump (RECODE_SUBTASK subtask) /* Dump all characters. */ - if (get_ucs2 (&character, subtask)) + if (recode_get_ucs2 (&character, subtask)) { - bool french = should_prefer_french(); + bool french = recode_should_prefer_french(); const char *charname; /* charname for code */ - const char *string; /* environment value */ char buffer[50]; - /* Decide if we prefer French or English output. */ - - french = false; - string = getenv ("LANGUAGE"); - if (string && string[0] == 'f' && string[1] == 'r') - french = true; - else - { - string = getenv ("LANG"); - if (string && string[0] == 'f' && string[1] == 'r') - french = true; - } - put_string (_("UCS2 Mne Description\n\n"), subtask); while (1) { - const char *mnemonic = ucs2_to_rfc1345 (character); + const char *mnemonic = recode_ucs2_to_rfc1345 (character); sprintf (buffer, "%.4X", character); put_string (buffer, subtask); @@ -328,15 +320,15 @@ produce_full_dump (RECODE_SUBTASK subtask) if (french) { - charname = ucs2_to_french_charname (character); + charname = recode_ucs2_to_french_charname (character); if (!charname) - charname = ucs2_to_charname (character); + charname = recode_ucs2_to_charname (character); } else { - charname = ucs2_to_charname (character); + charname = recode_ucs2_to_charname (character); if (!charname) - charname = ucs2_to_french_charname (character); + charname = recode_ucs2_to_french_charname (character); } if (charname) @@ -344,9 +336,9 @@ produce_full_dump (RECODE_SUBTASK subtask) put_string (" ", subtask); put_string (charname, subtask); } - put_byte ('\n', subtask); + recode_put_byte ('\n', subtask); - if (!get_ucs2 (&character, subtask)) + if (!recode_get_ucs2 (&character, subtask)) break; } } @@ -363,30 +355,30 @@ module_testdump (RECODE_OUTER outer) { /* Test surfaces. */ - if (!declare_single (outer, "test7", "data", + if (!recode_declare_single (outer, "test7", "data", outer->quality_variable_to_byte, NULL, test7_data)) return false; - if (!declare_single (outer, "test8", "data", + if (!recode_declare_single (outer, "test8", "data", outer->quality_variable_to_byte, NULL, test8_data)) return false; - if (!declare_single (outer, "test15", "data", + if (!recode_declare_single (outer, "test15", "data", outer->quality_variable_to_ucs2, NULL, test15_data)) return false; - if (!declare_single (outer, "test16", "data", + if (!recode_declare_single (outer, "test16", "data", outer->quality_variable_to_ucs2, NULL, test16_data)) return false; /* Analysis charsets. */ - if (!declare_single (outer, "ISO-10646-UCS-2", "count-characters", + if (!recode_declare_single (outer, "ISO-10646-UCS-2", "count-characters", outer->quality_ucs2_to_variable, NULL, produce_count)) return false; - if (!declare_single (outer, "ISO-10646-UCS-2", "dump-with-names", + if (!recode_declare_single (outer, "ISO-10646-UCS-2", "dump-with-names", outer->quality_ucs2_to_variable, NULL, produce_full_dump)) return false; @@ -395,6 +387,6 @@ module_testdump (RECODE_OUTER outer) } void -delmodule_testdump (RECODE_OUTER outer) +delmodule_testdump (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/texinfo.c b/src/texinfo.c index 1170491..1f44dff 100644 --- a/src/texinfo.c +++ b/src/texinfo.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1988. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" static const unsigned short texinfo_data[] = { @@ -78,12 +80,12 @@ bool module_texinfo (RECODE_OUTER outer) { return - declare_explode_data (outer, texinfo_data, "Latin-1", "Texinfo") - && declare_alias (outer, "texi", "Texinfo") - && declare_alias (outer, "ti", "Texinfo"); + recode_declare_explode_data (outer, texinfo_data, "Latin-1", "Texinfo") + && recode_declare_alias (outer, "texi", "Texinfo") + && recode_declare_alias (outer, "ti", "Texinfo"); } void -delmodule_texinfo (RECODE_OUTER outer) +delmodule_texinfo (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/txtelat1.l b/src/txtelat1.l index 0eaf235..93fbc82 100644 --- a/src/txtelat1.l +++ b/src/txtelat1.l @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1990, 93, 94, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1990-2000 Free Software Foundation, Inc. Contributed by François Pinard , 1989. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,14 +14,14 @@ You should have received a copy of the GNU Library General Public License along with the Recode 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. */ + If not, see . +*/ /* Step name: texte_latin1. */ %{ -void texte_latin1_diaeresis PARAMS ((void)); +void texte_latin1_diaeresis (void); %} @@ -30,89 +30,89 @@ d [:"] l [a-zA-Z] %% -`` { put_byte (171, subtask); } -'' { put_byte (187, subtask); } +`` { recode_put_byte (171, subtask); } +'' { recode_put_byte (187, subtask); } -A` { put_byte (192, subtask); } -A^ { put_byte (194, subtask); } +A` { recode_put_byte (192, subtask); } +A^ { recode_put_byte (194, subtask); } A{d}/{l} { if (yytext[1] == request->diaeresis_char) - put_byte (196, subtask); + recode_put_byte (196, subtask); else ECHO; } -a` { put_byte (224, subtask); } -a^ { put_byte (226, subtask); } +a` { recode_put_byte (224, subtask); } +a^ { recode_put_byte (226, subtask); } a{d}/{l} { if (yytext[1] == request->diaeresis_char) - put_byte (228, subtask); + recode_put_byte (228, subtask); else ECHO; } -C\,/[aAoOuU] { put_byte (199, subtask); } -c\,/[aAoOuU] { put_byte (231, subtask); } +C\,/[aAoOuU] { recode_put_byte (199, subtask); } +c\,/[aAoOuU] { recode_put_byte (231, subtask); } -E` { put_byte (200, subtask); } -E''' { put_byte (201, subtask); put_byte (187, subtask); } -E'' { put_byte ('E', subtask); put_byte (187, subtask); } -E' { put_byte (201, subtask); } -E^ { put_byte (202, subtask); } +E` { recode_put_byte (200, subtask); } +E''' { recode_put_byte (201, subtask); recode_put_byte (187, subtask); } +E'' { recode_put_byte ('E', subtask); recode_put_byte (187, subtask); } +E' { recode_put_byte (201, subtask); } +E^ { recode_put_byte (202, subtask); } E{d}/{l} { if (yytext[1] == request->diaeresis_char) - put_byte (203, subtask); + recode_put_byte (203, subtask); else ECHO; } -e` { put_byte (232, subtask); } -e''' { put_byte (233, subtask); put_byte (187, subtask); } -e'' { put_byte ('e', subtask); put_byte (187, subtask); } -e' { put_byte (233, subtask); } -e^ { put_byte (234, subtask); } +e` { recode_put_byte (232, subtask); } +e''' { recode_put_byte (233, subtask); recode_put_byte (187, subtask); } +e'' { recode_put_byte ('e', subtask); recode_put_byte (187, subtask); } +e' { recode_put_byte (233, subtask); } +e^ { recode_put_byte (234, subtask); } e{d}/{l} { if (yytext[1] == request->diaeresis_char) - put_byte (235, subtask); + recode_put_byte (235, subtask); else ECHO; } -I` { put_byte (204, subtask); } -I^ { put_byte (206, subtask); } +I` { recode_put_byte (204, subtask); } +I^ { recode_put_byte (206, subtask); } I{d}/{l} { if (yytext[1] == request->diaeresis_char) - put_byte (207, subtask); + recode_put_byte (207, subtask); else ECHO; } -i` { put_byte (236, subtask); } -i^ { put_byte (238, subtask); } +i` { recode_put_byte (236, subtask); } +i^ { recode_put_byte (238, subtask); } i{d}/{l} { if (yytext[1] == request->diaeresis_char) - put_byte (239, subtask); + recode_put_byte (239, subtask); else ECHO; } -O` { put_byte (210, subtask); } -O^ { put_byte (212, subtask); } +O` { recode_put_byte (210, subtask); } +O^ { recode_put_byte (212, subtask); } O{d}/{l} { if (yytext[1] == request->diaeresis_char) - put_byte (214, subtask); + recode_put_byte (214, subtask); else ECHO; } -o` { put_byte (242, subtask); } -o^ { put_byte (244, subtask); } +o` { recode_put_byte (242, subtask); } +o^ { recode_put_byte (244, subtask); } o{d}/{l} { if (yytext[1] == request->diaeresis_char) - put_byte (246, subtask); + recode_put_byte (246, subtask); else ECHO; } -U` { put_byte (217, subtask); } -U^ { put_byte (219, subtask); } +U` { recode_put_byte (217, subtask); } +U^ { recode_put_byte (219, subtask); } U{d}/{l} { if (yytext[1] == request->diaeresis_char) - put_byte (220, subtask); + recode_put_byte (220, subtask); else ECHO; } -u` { put_byte (249, subtask); } -u^ { put_byte (251, subtask); } +u` { recode_put_byte (249, subtask); } +u^ { recode_put_byte (251, subtask); } u{d}/{l} { if (yytext[1] == request->diaeresis_char) - put_byte (252, subtask); + recode_put_byte (252, subtask); else ECHO; } @@ -157,33 +157,33 @@ texte_latin1_diaeresis (void) diagnostic in flex. This astonishing bug has been hard to isolate, so I'll leave this comment around for a while. */ - case 'A': put_byte (196, subtask); break; - case 'E': put_byte (203, subtask); break; - case 'I': put_byte (207, subtask); break; - case 'O': put_byte (214, subtask); break; - case 'U': put_byte (220, subtask); break; - case 'a': put_byte (228, subtask); break; - case 'e': put_byte (235, subtask); break; - case 'i': put_byte (239, subtask); break; - case 'o': put_byte (246, subtask); break; - case 'u': put_byte (252, subtask); break; - case 'y': put_byte (255, subtask); break; - default: put_byte (yytext[counter], subtask); + case 'A': recode_put_byte (196, subtask); break; + case 'E': recode_put_byte (203, subtask); break; + case 'I': recode_put_byte (207, subtask); break; + case 'O': recode_put_byte (214, subtask); break; + case 'U': recode_put_byte (220, subtask); break; + case 'a': recode_put_byte (228, subtask); break; + case 'e': recode_put_byte (235, subtask); break; + case 'i': recode_put_byte (239, subtask); break; + case 'o': recode_put_byte (246, subtask); break; + case 'u': recode_put_byte (252, subtask); break; + case 'y': recode_put_byte (255, subtask); break; + default: recode_put_byte (yytext[counter], subtask); } counter++; } else - put_byte (yytext[counter], subtask); + recode_put_byte (yytext[counter], subtask); } bool module_texte_latin1 (RECODE_OUTER outer) { return - declare_single (outer, "Texte", "Latin-1", + recode_declare_single (outer, "Texte", "Latin-1", outer->quality_variable_to_byte, NULL, transform_texte_latin1) - && declare_alias (outer, "txte", "Texte"); + && recode_declare_alias (outer, "txte", "Texte"); } void diff --git a/src/ucs.c b/src/ucs.c index 34e42b0..5e58535 100644 --- a/src/ucs.c +++ b/src/ucs.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1996, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1996-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1996. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" /* Description of some UCS-2 combinings. */ @@ -374,7 +376,7 @@ static const unsigned short combining_data [] = the first, starting with a byte order mark, regardless of byte order. */ bool -get_ucs2 (unsigned *value, RECODE_SUBTASK subtask) +recode_get_ucs2 (unsigned *value, RECODE_SUBTASK subtask) { while (true) { @@ -382,20 +384,20 @@ get_ucs2 (unsigned *value, RECODE_SUBTASK subtask) int character2; unsigned chunk; - character1 = get_byte (subtask); + character1 = recode_get_byte (subtask); if (character1 == EOF) return false; - character2 = get_byte (subtask); + character2 = recode_get_byte (subtask); if (character2 == EOF) { - SET_SUBTASK_ERROR (RECODE_INVALID_INPUT, subtask); + recode_if_nogo (RECODE_INVALID_INPUT, subtask); return false; } switch (subtask->task->swap_input) { case RECODE_SWAP_UNDECIDED: - chunk = ((MASK (8) & character1) << 8) | (MASK (8) & character2); + chunk = ((BIT_MASK (8) & character1) << 8) | (BIT_MASK (8) & character2); switch (chunk) { case BYTE_ORDER_MARK: @@ -416,7 +418,7 @@ get_ucs2 (unsigned *value, RECODE_SUBTASK subtask) break; case RECODE_SWAP_NO: - chunk = ((MASK (8) & character1) << 8) | (MASK (8) & character2); + chunk = ((BIT_MASK (8) & character1) << 8) | (BIT_MASK (8) & character2); switch (chunk) { case BYTE_ORDER_MARK: @@ -435,7 +437,7 @@ get_ucs2 (unsigned *value, RECODE_SUBTASK subtask) break; case RECODE_SWAP_YES: - chunk = ((MASK (8) & character2) << 8) | (MASK (8) & character1); + chunk = ((BIT_MASK (8) & character2) << 8) | (BIT_MASK (8) & character1); switch (chunk) { case BYTE_ORDER_MARK: @@ -452,6 +454,9 @@ get_ucs2 (unsigned *value, RECODE_SUBTASK subtask) return true; } break; + + default: + break; } } } @@ -461,10 +466,10 @@ get_ucs2 (unsigned *value, RECODE_SUBTASK subtask) `-------------------------------*/ bool -put_ucs2 (unsigned value, RECODE_SUBTASK subtask) +recode_put_ucs2 (unsigned value, RECODE_SUBTASK subtask) { - put_byte (MASK (8) & value >> 8, subtask); - put_byte (MASK (8) & value, subtask); + recode_put_byte (BIT_MASK (8) & value >> 8, subtask); + recode_put_byte (BIT_MASK (8) & value, subtask); return true; } @@ -475,39 +480,39 @@ put_ucs2 (unsigned value, RECODE_SUBTASK subtask) `-------------------------------*/ bool -get_ucs4 (unsigned *value, RECODE_SUBTASK subtask) +recode_get_ucs4 (unsigned *value, RECODE_SUBTASK subtask) { int character; unsigned chunk; - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == EOF) return false; - chunk = (MASK (8) & character) << 24; + chunk = (BIT_MASK (8) & character) << 24; - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == EOF) { - SET_SUBTASK_ERROR (RECODE_INVALID_INPUT, subtask); + recode_if_nogo (RECODE_INVALID_INPUT, subtask); return false; } - chunk |= (MASK (8) & character) << 16; + chunk |= (BIT_MASK (8) & character) << 16; - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == EOF) { - SET_SUBTASK_ERROR (RECODE_INVALID_INPUT, subtask); + recode_if_nogo (RECODE_INVALID_INPUT, subtask); return false; } - chunk |= (MASK (8) & character) << 8; + chunk |= (BIT_MASK (8) & character) << 8; - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character == EOF) { - SET_SUBTASK_ERROR (RECODE_INVALID_INPUT, subtask); + recode_if_nogo (RECODE_INVALID_INPUT, subtask); return false; } - chunk |= MASK (8) & character; + chunk |= BIT_MASK (8) & character; *value = chunk; return true; @@ -518,12 +523,12 @@ get_ucs4 (unsigned *value, RECODE_SUBTASK subtask) `-------------------------------*/ bool -put_ucs4 (unsigned value, RECODE_SUBTASK subtask) +recode_put_ucs4 (unsigned value, RECODE_SUBTASK subtask) { - put_byte (MASK (8) & value >> 24, subtask); - put_byte (MASK (8) & value >> 16, subtask); - put_byte (MASK (8) & value >> 8, subtask); - put_byte (MASK (8) & value, subtask); + recode_put_byte (BIT_MASK (8) & value >> 24, subtask); + recode_put_byte (BIT_MASK (8) & value >> 16, subtask); + recode_put_byte (BIT_MASK (8) & value >> 8, subtask); + recode_put_byte (BIT_MASK (8) & value, subtask); return true; } @@ -541,7 +546,7 @@ init_combined_ucs2 (RECODE_STEP step, { step->before->data_type = RECODE_EXPLODE_DATA; step->before->data = (void *) combining_data; - return init_explode (step, request, before_options, after_options); + return recode_init_explode (step, request, before_options, after_options); } static bool @@ -552,7 +557,7 @@ init_ucs2_combined (RECODE_STEP step, { step->after->data_type = RECODE_EXPLODE_DATA; step->after->data = (void *) combining_data; - return init_combine (step, request, before_options, after_options); + return recode_init_combine (step, request, before_options, after_options); } /*-----------------------------. @@ -564,8 +569,8 @@ transform_latin1_ucs4 (RECODE_SUBTASK subtask) { int character; - while (character = get_byte (subtask), character != EOF) - put_ucs4 (MASK (8) & character, subtask); + while (character = recode_get_byte (subtask), character != EOF) + recode_put_ucs4 (BIT_MASK (8) & character, subtask); SUBTASK_RETURN (subtask); } @@ -579,8 +584,8 @@ transform_ucs2_ucs4 (RECODE_SUBTASK subtask) { unsigned value; - while (get_ucs2 (&value, subtask)) - put_ucs4 (value, subtask); + while (recode_get_ucs2 (&value, subtask)) + recode_put_ucs4 (value, subtask); SUBTASK_RETURN (subtask); } @@ -593,35 +598,35 @@ bool module_ucs (RECODE_OUTER outer) { return - declare_single (outer, "combined-UCS-2", "ISO-10646-UCS-2", + recode_declare_single (outer, "combined-UCS-2", "ISO-10646-UCS-2", outer->quality_ucs2_to_variable, - init_combined_ucs2, explode_ucs2_ucs2) - && declare_single (outer, "ISO-10646-UCS-2", "combined-UCS-2", + init_combined_ucs2, recode_explode_ucs2_ucs2) + && recode_declare_single (outer, "ISO-10646-UCS-2", "combined-UCS-2", outer->quality_variable_to_ucs2, - init_ucs2_combined, combine_ucs2_ucs2) - && declare_single (outer, "latin1", "ISO-10646-UCS-4", + init_ucs2_combined, recode_combine_ucs2_ucs2) + && recode_declare_single (outer, "latin1", "ISO-10646-UCS-4", outer->quality_byte_to_variable, NULL, transform_latin1_ucs4) - && declare_single (outer, "ISO-10646-UCS-2", "ISO-10646-UCS-4", + && recode_declare_single (outer, "ISO-10646-UCS-2", "ISO-10646-UCS-4", outer->quality_variable_to_variable, NULL, transform_ucs2_ucs4) - && declare_alias (outer, "UCS", "ISO-10646-UCS-4") - && declare_alias (outer, "UCS-4", "ISO-10646-UCS-4") - && declare_alias (outer, "ISO_10646", "ISO-10646-UCS-4") - && declare_alias (outer, "10646", "ISO-10646-UCS-4") - && declare_alias (outer, "u4", "ISO-10646-UCS-4") + && recode_declare_alias (outer, "UCS", "ISO-10646-UCS-4") + && recode_declare_alias (outer, "UCS-4", "ISO-10646-UCS-4") + && recode_declare_alias (outer, "ISO_10646", "ISO-10646-UCS-4") + && recode_declare_alias (outer, "10646", "ISO-10646-UCS-4") + && recode_declare_alias (outer, "u4", "ISO-10646-UCS-4") - && declare_alias (outer, "UCS-2", "ISO-10646-UCS-2") - && declare_alias (outer, "UNICODE-1-1", "ISO-10646-UCS-2") /* RFC1641 */ - && declare_alias (outer, "BMP", "ISO-10646-UCS-2") - && declare_alias (outer, "u2", "ISO-10646-UCS-2") - && declare_alias (outer, "rune", "ISO-10646-UCS-2") + && recode_declare_alias (outer, "UCS-2", "ISO-10646-UCS-2") + && recode_declare_alias (outer, "UNICODE-1-1", "ISO-10646-UCS-2") /* RFC1641 */ + && recode_declare_alias (outer, "BMP", "ISO-10646-UCS-2") + && recode_declare_alias (outer, "u2", "ISO-10646-UCS-2") + && recode_declare_alias (outer, "rune", "ISO-10646-UCS-2") - && declare_alias (outer, "co", "combined-UCS-2"); + && recode_declare_alias (outer, "co", "combined-UCS-2"); } void -delmodule_ucs (RECODE_OUTER outer) +delmodule_ucs (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/utf16.c b/src/utf16.c index e7f3884..f673306 100644 --- a/src/utf16.c +++ b/src/utf16.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1996, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1996-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1996. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,36 +14,38 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" static bool transform_ucs4_utf16 (RECODE_SUBTASK subtask) { unsigned value; - if (get_ucs4 (&value, subtask)) + if (recode_get_ucs4 (&value, subtask)) { if (subtask->task->byte_order_mark) - put_ucs2 (BYTE_ORDER_MARK, subtask); + recode_put_ucs2 (BYTE_ORDER_MARK, subtask); while (true) { - if (value & ~MASK (16)) + if (value & ~BIT_MASK (16)) if (value < (1 << 16 | 1 << 20)) { /* Double UCS-2 character. */ value -= 1 << 16; - put_ucs2 (0xD800 | (MASK (10) & value >> 10), subtask); - put_ucs2 (0xDC00 | (MASK (10) & value), subtask); + recode_put_ucs2 (0xD800 | (BIT_MASK (10) & value >> 10), subtask); + recode_put_ucs2 (0xDC00 | (BIT_MASK (10) & value), subtask); } else { RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask); - put_ucs2 (REPLACEMENT_CHARACTER, subtask); + recode_put_ucs2 (REPLACEMENT_CHARACTER, subtask); } else { @@ -51,10 +53,10 @@ transform_ucs4_utf16 (RECODE_SUBTASK subtask) if (value >= 0xD800 && value < 0xE000) RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - put_ucs2 (value, subtask); + recode_put_ucs2 (value, subtask); } - if (!get_ucs4 (&value, subtask)) + if (!recode_get_ucs4 (&value, subtask)) break; } } @@ -67,7 +69,7 @@ transform_utf16_ucs4 (RECODE_SUBTASK subtask) { unsigned value; - if (get_ucs2 (&value, subtask)) + if (recode_get_ucs2 (&value, subtask)) { while (true) if (value >= 0xD800 && value < 0xE000) @@ -75,15 +77,15 @@ transform_utf16_ucs4 (RECODE_SUBTASK subtask) { unsigned chunk; - if (!get_ucs2 (&chunk, subtask)) + if (!recode_get_ucs2 (&chunk, subtask)) break; if (chunk >= 0xDC00 && chunk < 0xE000) { - put_ucs4 ((((1 << 16) + ((value - 0xD800) << 10)) + recode_put_ucs4 ((((1 << 16) + ((value - 0xD800) << 10)) | (chunk - 0xDC00)), subtask); - if (!get_ucs2 (&value, subtask)) + if (!recode_get_ucs2 (&value, subtask)) break; } else @@ -99,13 +101,13 @@ transform_utf16_ucs4 (RECODE_SUBTASK subtask) /* Discard a second chunk when presented first. */ RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - if (!get_ucs2 (&value, subtask)) + if (!recode_get_ucs2 (&value, subtask)) break; } else { - put_ucs4 (value, subtask); - if (!get_ucs2 (&value, subtask)) + recode_put_ucs4 (value, subtask); + if (!recode_get_ucs2 (&value, subtask)) break; } } @@ -121,11 +123,11 @@ transform_ucs2_utf16 (RECODE_SUBTASK subtask) /* This function does nothing, besides checking that the number of input bytes is even, and that special UTF-16 values do not appear. */ - while (get_ucs2 (&value, subtask)) + while (recode_get_ucs2 (&value, subtask)) { if (value >= 0xD800 && value < 0xE000) RETURN_IF_NOGO (RECODE_AMBIGUOUS_OUTPUT, subtask); - put_ucs2 (value, subtask); + recode_put_ucs2 (value, subtask); } SUBTASK_RETURN (subtask); @@ -140,10 +142,10 @@ transform_utf16_ucs2 (RECODE_SUBTASK subtask) valid UTF-16, and replacing UTF-16 extended values with the replacement character. */ - if (get_ucs2 (&value, subtask)) + if (recode_get_ucs2 (&value, subtask)) { if (subtask->task->byte_order_mark) - put_ucs2 (BYTE_ORDER_MARK, subtask); + recode_put_ucs2 (BYTE_ORDER_MARK, subtask); while (true) if (value >= 0xD800 && value < 0xE000) @@ -151,14 +153,14 @@ transform_utf16_ucs2 (RECODE_SUBTASK subtask) { unsigned chunk; - if (!get_ucs2 (&chunk, subtask)) + if (!recode_get_ucs2 (&chunk, subtask)) break; if (chunk >= 0xDC00 && chunk < 0xE000) { RETURN_IF_NOGO (RECODE_UNTRANSLATABLE, subtask); - put_ucs2 (REPLACEMENT_CHARACTER, subtask); - if (!get_ucs2 (&value, subtask)) + recode_put_ucs2 (REPLACEMENT_CHARACTER, subtask); + if (!recode_get_ucs2 (&value, subtask)) break; } else @@ -174,13 +176,13 @@ transform_utf16_ucs2 (RECODE_SUBTASK subtask) /* Discard a second chunk when presented first. */ RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - if (!get_ucs2 (&value, subtask)) + if (!recode_get_ucs2 (&value, subtask)) break; } else { - put_ucs2 (value, subtask); - if (!get_ucs2 (&value, subtask)) + recode_put_ucs2 (value, subtask); + if (!recode_get_ucs2 (&value, subtask)) break; } } @@ -192,25 +194,25 @@ bool module_utf16 (RECODE_OUTER outer) { return - declare_single (outer, "ISO-10646-UCS-4", "UTF-16", + recode_declare_single (outer, "ISO-10646-UCS-4", "UTF-16", outer->quality_variable_to_variable, NULL, transform_ucs4_utf16) - && declare_single (outer, "UTF-16", "ISO-10646-UCS-4", + && recode_declare_single (outer, "UTF-16", "ISO-10646-UCS-4", outer->quality_variable_to_variable, NULL, transform_utf16_ucs4) - && declare_single (outer, "ISO-10646-UCS-2", "UTF-16", + && recode_declare_single (outer, "ISO-10646-UCS-2", "UTF-16", outer->quality_variable_to_variable, NULL, transform_ucs2_utf16) - && declare_single (outer, "UTF-16", "ISO-10646-UCS-2", + && recode_declare_single (outer, "UTF-16", "ISO-10646-UCS-2", outer->quality_variable_to_variable, NULL, transform_utf16_ucs2) - && declare_alias (outer, "Unicode", "UTF-16") - && declare_alias (outer, "TF-16", "UTF-16") - && declare_alias (outer, "u6", "UTF-16"); + && recode_declare_alias (outer, "Unicode", "UTF-16") + && recode_declare_alias (outer, "TF-16", "UTF-16") + && recode_declare_alias (outer, "u6", "UTF-16"); } void -delmodule_utf16 (RECODE_OUTER outer) +delmodule_utf16 (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/utf7.c b/src/utf7.c index 6a12222..745d288 100644 --- a/src/utf7.c +++ b/src/utf7.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1996, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1996-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1996. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" #include "base64.h" /* Classification of first 128 UCS-2 characters. */ @@ -39,10 +41,6 @@ static char classification[128] = }; #undef z -/* Should the character be directly represented in message headers? */ -#define IS_HEADER_DIRECT(Character) \ - (IS_ASCII (Character) && classification[Character] & (D | W)) - /* Should the character be directly represented in message bodies? Here, & (D | O | W) is implied, since these are the only flags. */ #define IS_BODY_DIRECT(Character) \ @@ -74,7 +72,7 @@ transform_utf16_utf7 (RECODE_SUBTASK subtask) { unsigned value; - if (!get_ucs2 (&value, subtask)) + if (!recode_get_ucs2 (&value, subtask)) SUBTASK_RETURN (subtask); while (true) @@ -83,15 +81,15 @@ transform_utf16_utf7 (RECODE_SUBTASK subtask) { /* Copy one direct character. */ - put_byte (value, subtask); - if (!get_ucs2 (&value, subtask)) + recode_put_byte (value, subtask); + if (!recode_get_ucs2 (&value, subtask)) SUBTASK_RETURN (subtask); } else { /* Copy a string of non-direct characters. */ - put_byte ('+', subtask); + recode_put_byte ('+', subtask); while (!IS_BODY_DIRECT (value)) { @@ -99,12 +97,12 @@ transform_utf16_utf7 (RECODE_SUBTASK subtask) /* Process first UCS-2 value of a triplet. */ - put_byte (base64_value_to_char[MASK (6) & value >> 10], subtask); - put_byte (base64_value_to_char[MASK (6) & value >> 4], subtask); - split = (value & MASK (4)) << 2; - if (!get_ucs2 (&value, subtask)) + recode_put_byte (base64_value_to_char[BIT_MASK (6) & value >> 10], subtask); + recode_put_byte (base64_value_to_char[BIT_MASK (6) & value >> 4], subtask); + split = (value & BIT_MASK (4)) << 2; + if (!recode_get_ucs2 (&value, subtask)) { - put_byte (base64_value_to_char[split], subtask); + recode_put_byte (base64_value_to_char[split], subtask); SUBTASK_RETURN (subtask); } @@ -112,17 +110,17 @@ transform_utf16_utf7 (RECODE_SUBTASK subtask) if (IS_BODY_DIRECT (value)) { - put_byte (base64_value_to_char[split], subtask); + recode_put_byte (base64_value_to_char[split], subtask); break; } - put_byte (base64_value_to_char[split | (MASK (2) & value >> 14)], + recode_put_byte (base64_value_to_char[split | (BIT_MASK (2) & value >> 14)], subtask); - put_byte (base64_value_to_char[MASK (6) & value >> 8], subtask); - put_byte (base64_value_to_char[MASK (6) & value >> 2], subtask); - split = (value & MASK (2)) << 4; - if (!get_ucs2 (&value, subtask)) + recode_put_byte (base64_value_to_char[BIT_MASK (6) & value >> 8], subtask); + recode_put_byte (base64_value_to_char[BIT_MASK (6) & value >> 2], subtask); + split = (value & BIT_MASK (2)) << 4; + if (!recode_get_ucs2 (&value, subtask)) { - put_byte (base64_value_to_char[split], subtask); + recode_put_byte (base64_value_to_char[split], subtask); SUBTASK_RETURN (subtask); } @@ -130,19 +128,19 @@ transform_utf16_utf7 (RECODE_SUBTASK subtask) if (IS_BODY_DIRECT (value)) { - put_byte (base64_value_to_char[split], subtask); + recode_put_byte (base64_value_to_char[split], subtask); break; } - put_byte (base64_value_to_char[split | (MASK (4) & value >> 12)], + recode_put_byte (base64_value_to_char[split | (BIT_MASK (4) & value >> 12)], subtask); - put_byte (base64_value_to_char[MASK (6) & value >> 6], subtask); - put_byte (base64_value_to_char[MASK (6) & value], subtask); - if (!get_ucs2 (&value, subtask)) + recode_put_byte (base64_value_to_char[BIT_MASK (6) & value >> 6], subtask); + recode_put_byte (base64_value_to_char[BIT_MASK (6) & value], subtask); + if (!recode_get_ucs2 (&value, subtask)) SUBTASK_RETURN (subtask); } if (IS_BASE64 (value)) - put_byte ('-', subtask); + recode_put_byte ('-', subtask); } SUBTASK_RETURN (subtask); @@ -155,21 +153,21 @@ transform_utf7_utf16 (RECODE_SUBTASK subtask) unsigned value; unsigned split; - character = get_byte (subtask); + character = recode_get_byte (subtask); if (character != EOF && subtask->task->byte_order_mark) - put_ucs2 (BYTE_ORDER_MARK, subtask); + recode_put_ucs2 (BYTE_ORDER_MARK, subtask); while (character != EOF) if (character == '+') { - character = get_byte (subtask); + character = recode_get_byte (subtask); while (IS_BASE64 (character)) { /* Process first byte of first quadruplet. */ value = base64_char_to_value[character] << 10; - character = get_byte (subtask); + character = recode_get_byte (subtask); /* Process second byte of first quadruplet. */ @@ -179,7 +177,7 @@ transform_utf7_utf16 (RECODE_SUBTASK subtask) break; } value |= base64_char_to_value[character] << 4; - character = get_byte (subtask); + character = recode_get_byte (subtask); /* Process third byte of first quadruplet. */ @@ -192,20 +190,20 @@ transform_utf7_utf16 (RECODE_SUBTASK subtask) value |= split >> 2; if (IS_BODY_DIRECT (value)) RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); - put_ucs2 (value, subtask); - character = get_byte (subtask); + recode_put_ucs2 (value, subtask); + character = recode_get_byte (subtask); /* Process fourth byte of first quadruplet. */ if (!IS_BASE64 (character)) { - if (MASK (2) & split) + if (BIT_MASK (2) & split) RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); break; } - value = ((MASK (2) & split) << 14 + value = ((BIT_MASK (2) & split) << 14 | base64_char_to_value[character] << 8); - character = get_byte (subtask); + character = recode_get_byte (subtask); /* Process first byte of second quadruplet. */ @@ -215,7 +213,7 @@ transform_utf7_utf16 (RECODE_SUBTASK subtask) break; } value |= base64_char_to_value[character] << 2; - character = get_byte (subtask); + character = recode_get_byte (subtask); /* Process second byte of second quadruplet. */ @@ -228,20 +226,20 @@ transform_utf7_utf16 (RECODE_SUBTASK subtask) value |= split >> 4; if (IS_BODY_DIRECT (value)) RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); - put_ucs2 (value, subtask); - character = get_byte (subtask); + recode_put_ucs2 (value, subtask); + character = recode_get_byte (subtask); /* Process third byte of second quadruplet. */ if (!IS_BASE64 (character)) { - if (MASK (4) & split) + if (BIT_MASK (4) & split) RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); break; } - value = ((MASK (4) & split) << 12 + value = ((BIT_MASK (4) & split) << 12 | base64_char_to_value[character] << 6); - character = get_byte (subtask); + character = recode_get_byte (subtask); /* Process fourth byte of second quadruplet. */ @@ -253,12 +251,12 @@ transform_utf7_utf16 (RECODE_SUBTASK subtask) value |= base64_char_to_value[character]; if (IS_BODY_DIRECT (value)) RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); - put_ucs2 (value, subtask); - character = get_byte (subtask); + recode_put_ucs2 (value, subtask); + character = recode_get_byte (subtask); } if (character == '-') { - character = get_byte (subtask); + character = recode_get_byte (subtask); if (!IS_BASE64 (character)) RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); } @@ -267,9 +265,9 @@ transform_utf7_utf16 (RECODE_SUBTASK subtask) { if (!IS_BODY_DIRECT (character)) RETURN_IF_NOGO (RECODE_NOT_CANONICAL, subtask); - put_byte (NUL, subtask); - put_byte (character, subtask); - character = get_byte (subtask); + recode_put_byte (NUL, subtask); + recode_put_byte (character, subtask); + character = recode_get_byte (subtask); } SUBTASK_RETURN (subtask); @@ -279,24 +277,24 @@ bool module_utf7 (RECODE_OUTER outer) { return - declare_single (outer, "UTF-16", "UNICODE-1-1-UTF-7", /* RFC1642 */ + recode_declare_single (outer, "UTF-16", "UNICODE-1-1-UTF-7", /* RFC1642 */ outer->quality_variable_to_variable, NULL, transform_utf16_utf7) - && declare_single (outer, "UNICODE-1-1-UTF-7", "UTF-16", + && recode_declare_single (outer, "UNICODE-1-1-UTF-7", "UTF-16", outer->quality_variable_to_variable, NULL, transform_utf7_utf16) - && declare_alias (outer, "UTF-7", "UNICODE-1-1-UTF-7") - && declare_alias (outer, "TF-7", "UNICODE-1-1-UTF-7") - && declare_alias (outer, "u7", "UNICODE-1-1-UTF-7") + && recode_declare_alias (outer, "UTF-7", "UNICODE-1-1-UTF-7") + && recode_declare_alias (outer, "TF-7", "UNICODE-1-1-UTF-7") + && recode_declare_alias (outer, "u7", "UNICODE-1-1-UTF-7") /* Simple UCS-2 does not have to go through UTF-16. */ - && declare_single (outer, "ISO-10646-UCS-2", "UNICODE-1-1-UTF-7", + && recode_declare_single (outer, "ISO-10646-UCS-2", "UNICODE-1-1-UTF-7", outer->quality_variable_to_variable, NULL, transform_utf16_utf7); } void -delmodule_utf7 (RECODE_OUTER outer) +delmodule_utf7 (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/utf8.c b/src/utf8.c index 41d136d..700b40b 100644 --- a/src/utf8.c +++ b/src/utf8.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1996, 97, 98, 99, 00 Free Software Foundation, Inc. + Copyright © 1996-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1996. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,25 +14,24 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" - -/* Define HANDLE_32_BITS if you want conversion for 2^32 codes instead - of 2^31. But this would not be ISO-10646, which says 2^31. */ +#include "decsteps.h" /* Read next data byte and check its value, discard an illegal sequence. This macro is meant to be used only within the `while' loop in `transform_utf8_ucs[24]'. */ #define GET_DATA_BYTE \ - character = get_byte (subtask); \ + character = recode_get_byte (subtask); \ if (character == EOF) \ { \ RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); \ break; \ } \ - else if ((MASK (2) << 6 & character) != 1 << 7) \ + else if ((BIT_MASK (2) << 6 & character) != 1 << 7) \ { \ RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); \ continue; \ @@ -43,32 +42,32 @@ Merge it into `value' at POSITION. This macro is meant to be used only within the `while' loop in `transform_utf8_ucs[24]'. */ #define GET_DATA_BYTE_AT(Position) \ - GET_DATA_BYTE /* ... else */ value |= (MASK (6) & character) << Position + GET_DATA_BYTE /* ... else */ value |= (BIT_MASK (6) & character) << Position static bool transform_ucs2_utf8 (RECODE_SUBTASK subtask) { unsigned value; - while (get_ucs2 (&value, subtask)) + while (recode_get_ucs2 (&value, subtask)) { - if (value & ~MASK (7)) - if (value & ~MASK (11)) + if (value & ~BIT_MASK (7)) + if (value & ~BIT_MASK (11)) { /* 3 bytes - more than 11 bits, but not more than 16. */ - put_byte ((MASK (3) << 5) | (MASK (6) & value >> 12), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 6), subtask); - put_byte ((1 << 7) | (MASK (6) & value), subtask); + recode_put_byte ((BIT_MASK (3) << 5) | (BIT_MASK (6) & value >> 12), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value >> 6), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value), subtask); } else { /* 2 bytes - more than 7 bits, but not more than 11. */ - put_byte ((MASK (2) << 6) | (MASK (6) & value >> 6), subtask); - put_byte ((1 << 7) | (MASK (6) & value), subtask); + recode_put_byte ((BIT_MASK (2) << 6) | (BIT_MASK (6) & value >> 6), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value), subtask); } else /* 1 byte - not more than 7 bits (that is, ASCII). */ - put_byte (value, subtask); + recode_put_byte (value, subtask); } SUBTASK_RETURN (subtask); @@ -79,68 +78,57 @@ transform_ucs4_utf8 (RECODE_SUBTASK subtask) { unsigned value; - while (get_ucs4 (&value, subtask)) - if (value & ~MASK (16)) - if (value & ~MASK (26)) - if (value & ~MASK (31)) + while (recode_get_ucs4 (&value, subtask)) + if (value & ~BIT_MASK (16)) + if (value & ~BIT_MASK (26)) + if (value & ~BIT_MASK (31)) { -#if HANDLE_32_BITS - /* 7 bytes - more than 31 bits (that is, exactly 32 :-). */ - put_byte (MASK (7) << 1); - put_byte ((1 << 7) | (MASK (6) & value >> 30), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 24), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 18), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 12), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 6), subtask); - put_byte ((1 << 7) | (MASK (6) & value), subtask); -#else RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); -#endif } else { /* 6 bytes - more than 26 bits, but not more than 31. */ - put_byte ((MASK (6) << 2) | (MASK (6) & value >> 30), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 24), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 18), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 12), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 6), subtask); - put_byte ((1 << 7) | (MASK (6) & value), subtask); + recode_put_byte ((BIT_MASK (6) << 2) | (BIT_MASK (6) & value >> 30), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value >> 24), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value >> 18), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value >> 12), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value >> 6), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value), subtask); } - else if (value & ~MASK (21)) + else if (value & ~BIT_MASK (21)) { /* 5 bytes - more than 21 bits, but not more than 26. */ - put_byte ((MASK (5) << 3) | (MASK (6) & value >> 24), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 18), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 12), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 6), subtask); - put_byte ((1 << 7) | (MASK (6) & value), subtask); + recode_put_byte ((BIT_MASK (5) << 3) | (BIT_MASK (6) & value >> 24), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value >> 18), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value >> 12), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value >> 6), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value), subtask); } else { /* 4 bytes - more than 16 bits, but not more than 21. */ - put_byte ((MASK (4) << 4) | (MASK (6) & value >> 18), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 12), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 6), subtask); - put_byte ((1 << 7) | (MASK (6) & value), subtask); + recode_put_byte ((BIT_MASK (4) << 4) | (BIT_MASK (6) & value >> 18), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value >> 12), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value >> 6), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value), subtask); } - else if (value & ~MASK (7)) - if (value & ~MASK (11)) + else if (value & ~BIT_MASK (7)) + if (value & ~BIT_MASK (11)) { /* 3 bytes - more than 11 bits, but not more than 16. */ - put_byte ((MASK (3) << 5) | (MASK (6) & value >> 12), subtask); - put_byte ((1 << 7) | (MASK (6) & value >> 6), subtask); - put_byte ((1 << 7) | (MASK (6) & value), subtask); + recode_put_byte ((BIT_MASK (3) << 5) | (BIT_MASK (6) & value >> 12), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value >> 6), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value), subtask); } else { /* 2 bytes - more than 7 bits, but not more than 11. */ - put_byte ((MASK (2) << 6) | (MASK (6) & value >> 6), subtask); - put_byte ((1 << 7) | (MASK (6) & value), subtask); + recode_put_byte ((BIT_MASK (2) << 6) | (BIT_MASK (6) & value >> 6), subtask); + recode_put_byte ((1 << 7) | (BIT_MASK (6) & value), subtask); } else /* 1 byte - not more than 7 bits (that is, ASCII). */ - put_byte (value, subtask); + recode_put_byte (value, subtask); SUBTASK_RETURN (subtask); } @@ -153,95 +141,83 @@ transform_ucs4_utf8 (RECODE_SUBTASK subtask) static bool transform_utf8_ucs4 (RECODE_SUBTASK subtask) { - int character = get_byte (subtask); + int character = recode_get_byte (subtask); unsigned value; while (character != EOF) /* Process one UTF-8 value. EOF is acceptable on first byte only. */ - if ((character & MASK (4) << 4) == MASK (4) << 4) - if ((character & MASK (6) << 2) == MASK (6) << 2) - if ((character & MASK (7) << 1) == MASK (7) << 1) + if ((character & BIT_MASK (4) << 4) == BIT_MASK (4) << 4) + if ((character & BIT_MASK (6) << 2) == BIT_MASK (6) << 2) + if ((character & BIT_MASK (7) << 1) == BIT_MASK (7) << 1) { /* 7 bytes - more than 31 bits (that is, exactly 32 :-). */ -#if HANDLE_32_BITS - value = 0; - GET_DATA_BYTE_AT (30); - GET_DATA_BYTE_AT (24); - GET_DATA_BYTE_AT (18); - GET_DATA_BYTE_AT (12); - GET_DATA_BYTE_AT (6); - GET_DATA_BYTE_AT (0); - put_ucs4 (value, subtask); - character = get_byte (subtask); -#else RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - character = get_byte (subtask); -#endif + character = recode_get_byte (subtask); } else { /* 6 bytes - more than 26 bits, but not more than 31. */ - value = (MASK (1) & character) << 30; + value = (BIT_MASK (1) & character) << 30; GET_DATA_BYTE_AT (24); GET_DATA_BYTE_AT (18); GET_DATA_BYTE_AT (12); GET_DATA_BYTE_AT (6); GET_DATA_BYTE_AT (0); - put_ucs4 (value, subtask); - character = get_byte (subtask); + recode_put_ucs4 (value, subtask); + character = recode_get_byte (subtask); } - else if ((character & MASK (5) << 3) == MASK (5) << 3) + else if ((character & BIT_MASK (5) << 3) == BIT_MASK (5) << 3) { /* 5 bytes - more than 21 bits, but not more than 26. */ - value = (MASK (2) & character) << 24; + value = (BIT_MASK (2) & character) << 24; GET_DATA_BYTE_AT (18); GET_DATA_BYTE_AT (12); GET_DATA_BYTE_AT (6); GET_DATA_BYTE_AT (0); - put_ucs4 (value, subtask); - character = get_byte (subtask); + recode_put_ucs4 (value, subtask); + character = recode_get_byte (subtask); } else { /* 4 bytes - more than 16 bits, but not more than 21. */ - value = (MASK (3) & character) << 18; + value = (BIT_MASK (3) & character) << 18; GET_DATA_BYTE_AT (12); GET_DATA_BYTE_AT (6); GET_DATA_BYTE_AT (0); - put_ucs4 (value, subtask); - character = get_byte (subtask); + recode_put_ucs4 (value, subtask); + character = recode_get_byte (subtask); } - else if ((character & MASK (2) << 6) == MASK (2) << 6) - if ((character & MASK (3) << 5) == MASK (3) << 5) + else if ((character & BIT_MASK (2) << 6) == BIT_MASK (2) << 6) + if ((character & BIT_MASK (3) << 5) == BIT_MASK (3) << 5) { /* 3 bytes - more than 11 bits, but not more than 16. */ - value = (MASK (4) & character) << 12; + value = (BIT_MASK (4) & character) << 12; GET_DATA_BYTE_AT (6); GET_DATA_BYTE_AT (0); - put_ucs4 (value, subtask); - character = get_byte (subtask); + recode_put_ucs4 (value, subtask); + character = recode_get_byte (subtask); } else { /* 2 bytes - more than 7 bits, but not more than 11. */ - value = (MASK (5) & character) << 6; + value = (BIT_MASK (5) & character) << 6; GET_DATA_BYTE_AT (0); - put_ucs4 (value, subtask); - character = get_byte (subtask); + recode_put_ucs4 (value, subtask); + character = recode_get_byte (subtask); } else if ((character & 1 << 7) == 1 << 7) { /* Valid only as a continuation byte. */ RETURN_IF_NOGO (RECODE_INVALID_INPUT, subtask); - character = get_byte (subtask); + character = recode_get_byte (subtask); } else { /* 1 byte - not more than 7 bits (that is, ASCII). */ - put_ucs4 (MASK (8) & character, subtask); - character = get_byte (subtask); + recode_put_ucs4 (BIT_MASK (8) & character, subtask); + character = recode_get_byte (subtask); } SUBTASK_RETURN (subtask); @@ -251,26 +227,26 @@ bool module_utf8 (RECODE_OUTER outer) { return - declare_single (outer, "ISO-10646-UCS-4", "UTF-8", + recode_declare_single (outer, "ISO-10646-UCS-4", "UTF-8", outer->quality_variable_to_variable, NULL, transform_ucs4_utf8) - && declare_single (outer, "UTF-8", "ISO-10646-UCS-4", + && recode_declare_single (outer, "UTF-8", "ISO-10646-UCS-4", outer->quality_variable_to_variable, NULL, transform_utf8_ucs4) - && declare_alias (outer, "UTF-2", "UTF-8") - && declare_alias (outer, "UTF-FSS", "UTF-8") - && declare_alias (outer, "FSS_UTF", "UTF-8") - && declare_alias (outer, "TF-8", "UTF-8") - && declare_alias (outer, "u8", "UTF-8") + && recode_declare_alias (outer, "UTF-2", "UTF-8") + && recode_declare_alias (outer, "UTF-FSS", "UTF-8") + && recode_declare_alias (outer, "FSS_UTF", "UTF-8") + && recode_declare_alias (outer, "TF-8", "UTF-8") + && recode_declare_alias (outer, "u8", "UTF-8") /* Simple UCS-2 does not have to go through UTF-16. */ - && declare_single (outer, "ISO-10646-UCS-2", "UTF-8", + && recode_declare_single (outer, "ISO-10646-UCS-2", "UTF-8", outer->quality_variable_to_variable, NULL, transform_ucs2_utf8); } void -delmodule_utf8 (RECODE_OUTER outer) +delmodule_utf8 (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/varia.c b/src/varia.c index 02a5cbd..3099c9e 100644 --- a/src/varia.c +++ b/src/varia.c @@ -1,10 +1,10 @@ /* Conversion of files between different charsets and surfaces. - Copyright © 1999, 2000 Free Software Foundation, Inc. + Copyright © 1999-2018 Free Software Foundation, Inc. Contributed by François Pinard , 1993. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" /* This file contains various temporary tables. These would ideally all go away once Keld will be given references, solid enough, to really integrate @@ -27,9 +29,8 @@ /* Lukas Petrlik , 1996-04-02, and Martin Mares , 1999-01-05, both sent Kamenicky and Cork tables. The - following two macros are used to document the contradicting spots. */ -#define LUKAS 1 /* define to 1 for Lukas definitions */ -#define MARTIN 0 /* define to 1 for Martin definitions */ + Kamenicky table was made to conform to Wikipedia: + https://en.wikipedia.org/wiki/Kamenick%C3%BD_encoding */ /* These tables use standard latin alphabet with Czech accented letters. They use a subset of ISO-8859-2, plus a few strange characters. */ @@ -40,41 +41,6 @@ static const unsigned short data_kamenicky[] = { -#if MARTIN - /* Non-Czech characters copied from IBM charset. */ - 1, 0x263A, DONE, /* white smiling face */ - 2, 0x263B, DONE, /* black smiling face */ - 3, 0x2665, DONE, /* black heart suit */ - 4, 0x2666, DONE, /* black diamond suit */ - 5, 0x2663, DONE, /* black club suit */ - 6, 0x2660, DONE, /* black spade suit */ - 7, 0x2022, DONE, /* bullet */ - 8, 0x25D8, DONE, /* inverse bullet */ - 9, 0x25CB, DONE, /* white circle */ - 10, 0x25D9, DONE, /* inverse white circle */ - 11, 0x2642, DONE, /* male sign */ - 12, 0x2640, DONE, /* female sign */ - 13, 0x266A, DONE, /* eighth note */ - 14, 0x266B, DONE, /* beamed eighth notes */ - 15, 0x263C, DONE, /* white sun with rays */ - 16, 0x25B6, DONE, /* black right-pointing triangle */ - 17, 0x25C0, DONE, /* black left-pointing triangle */ - 18, 0x2195, DONE, /* up down arrow */ - 19, 0x203C, DONE, /* double exclamation mark */ - 20, 0x00B6, DONE, /* pilcrow sign */ - 21, 0x00A7, DONE, /* section sign */ - 22, 0x25AC, DONE, /* black rectangle */ - 23, 0x21A8, DONE, /* up down arrow with base */ - 24, 0x2191, DONE, /* upwards arrow */ - 25, 0x2193, DONE, /* downwards arrow */ - 26, 0x2192, DONE, /* rightwards arrow */ - 27, 0x2190, DONE, /* leftwards arrow */ - 28, 0x221F, DONE, /* right angle */ - 29, 0x2194, DONE, /* left right arrow */ - 30, 0x25B2, DONE, /* black up-pointing triangle */ - 31, 0x25BC, DONE, /* black down-pointing triangle */ - 127, 0x2302, DONE, /* house */ -#endif /* MARTIN */ 128, 0x010C, DONE, 129, 0x00FC, DONE, 130, 0x00E9, DONE, @@ -121,14 +87,8 @@ static const unsigned short data_kamenicky[] = 171, 0x0154, DONE, 172, 0x00BC, DONE, 173, 0x00A7, DONE, -#if LUKAS 174, 0x00AB, DONE, 175, 0x00BB, DONE, -#endif -#if MARTIN - 174, 0x00BB, DONE, /* right-pointing double angle quotation mark */ - 175, 0x00AB, DONE, /* left-pointing double angle quotation mark */ -#endif 176, 0x2591, DONE, 177, 0x2592, DONE, 178, 0x2593, DONE, @@ -179,12 +139,7 @@ static const unsigned short data_kamenicky[] = 223, 0x2580, DONE, 224, 0x03B1, DONE, 225, 0x03B2, DONE, -#if LUKAS 226, 0x0393, DONE, -#endif -#if MARTIN - 226, 0x0194, DONE, /* latin capital letter gamma */ -#endif 227, 0x03C0, DONE, 228, 0x03A3, DONE, 229, 0x03C3, DONE, @@ -195,18 +150,10 @@ static const unsigned short data_kamenicky[] = 234, 0x03A9, DONE, 235, 0x03B4, DONE, 236, 0x221E, DONE, -#if LUKAS - 237, 0x2205, DONE, - 238, 0x03B5, DONE, - 239, 0x2229, DONE, - 240, 0x2261, DONE, -#endif -#if MARTIN 237, 0x03C6, DONE, /* greek small letter phi */ - 238, 0x2208, DONE, /* element of */ + 238, 0x03B5, DONE, /* element of */ 239, 0x2229, DONE, /* intersection */ 240, 0x224D, DONE, /* equivalent to */ -#endif 241, 0x00B1, DONE, 242, 0x2265, DONE, 243, 0x2264, DONE, @@ -214,16 +161,9 @@ static const unsigned short data_kamenicky[] = 245, 0x2321, DONE, 246, 0x00F7, DONE, 247, 0x2248, DONE, -#if LUKAS - 248, 0x2218, DONE, - 249, 0x00B7, DONE, - 250, 0x2219, DONE, -#endif -#if MARTIN 248, 0x00B0, DONE, /* degree sign */ 249, 0x2219, DONE, /* bullet operator */ 250, 0x00B7, DONE, /* middle dot */ -#endif 251, 0x221A, DONE, 252, 0x207F, DONE, 253, 0x00B2, DONE, @@ -236,9 +176,8 @@ static const unsigned short data_kamenicky[] = static const unsigned short data_cork[] = { -#if LUKAS /* I suspect Lukas used this mapping to convey T1 and CORK in a single - table, which may not be such a good thing. I'm not sure... */ + table, which may not be such a good thing. (He gave extra code, 0 to 31.) */ 0, 0x0060, DONE, 1, 0x00B4, DONE, 2, 0x005E, DONE, @@ -265,13 +204,12 @@ static const unsigned short data_cork[] = 23, DONE, 24, 0x2080, DONE, 25, 0x0131, DONE, - 26, DONE, /* latin small letter j dotless, FIXME! */ + 26, 0x0237, DONE, 27, 0xFB00, DONE, 28, 0xFB01, DONE, 29, 0xFB02, DONE, 30, 0xFB03, DONE, 31, 0xFB04, DONE, -#endif /* LUKAS */ 127, 0x2010, DONE, 128, 0x0102, DONE, 129, 0x0104, DONE, @@ -338,8 +276,7 @@ static const unsigned short data_cork[] = 190, 0x00BF, DONE, 191, 0x00A3, DONE, 215, 0x0152, DONE, - 223, DONE, /* latin capital letter sharp s (german) - (it is the SS ligature), FIXME! */ + 223, 0x1E9E, DONE, 247, 0x0153, DONE, 255, 0x00DF, DONE, DONE @@ -451,150 +388,33 @@ static const unsigned short data_koi8cs2[] = DONE }; -/* Cyrillic tables? */ - -/* Helping people. - - "Alexander L. Belikoff" - Andrey A. Chernov - Andries Brouwer - Roman Czyborra -*/ - -/* What is apparently still missing, from various mail I got, is: - - IBM866 CP866, alt - KOI8-Unified - - Here are various sources of information. - - Andrey A. Chernov - http://www.nagual.pp.ru/~ache/ - - &charset KOI8-Unified - &rem source: http://www.cyrillic.com/ref/cyrillic/koi8-uni.html -*/ - -/* @item IBM866 - @code{866}, @code{cp866}, and @code{alt} are aliases for this charset. - source: unknown - - @item KOI8-R - @code{878}, @code{cp878}, @code{ibm878}, @code{koi8r}, and - @code{rfc1489} are aliases for this charset. - source: RFC1489 -*/ - -static unsigned char const koi8r_to_ibm866[256-128] = -{ - 196, 179, 218, 191, 192, 217, 195, 180, /* 128 - 135 */ - 194, 193, 197, 223, 220, 219, 221, 222, /* 136 - 143 */ - 176, 177, 178, 244, 254, 249, 251, 247, /* 144 - 151 */ - 243, 242, 255, 245, 248, 253, 250, 246, /* 152 - 159 */ - 205, 186, 213, 241, 214, 201, 184, 183, /* 160 - 167 */ - 187, 212, 211, 200, 190, 189, 188, 198, /* 168 - 175 */ - 199, 204, 181, 240, 182, 185, 209, 210, /* 176 - 183 */ - 203, 207, 208, 202, 216, 215, 206, 252, /* 184 - 191 */ - 238, 160, 161, 230, 164, 165, 228, 163, /* 192 - 199 */ - 229, 168, 169, 170, 171, 172, 173, 174, /* 200 - 207 */ - 175, 239, 224, 225, 226, 227, 166, 162, /* 208 - 215 */ - 236, 235, 167, 232, 237, 233, 231, 234, /* 216 - 223 */ - 158, 128, 129, 150, 132, 133, 148, 131, /* 224 - 231 */ - 149, 136, 137, 138, 139, 140, 141, 142, /* 232 - 239 */ - 143, 159, 144, 145, 146, 147, 134, 130, /* 240 - 247 */ - 156, 155, 135, 152, 157, 153, 151, 154 /* 248 - 255 */ -}; - -static unsigned char const koi8r_to_cp1251[256-128] = -{ - 128, 129, 130, 131, 132, 133, 134, 135, /* 128 - 135 */ - 136, 137, 138, 139, 140, 141, 142, 143, /* 136 - 143 */ - 144, 145, 146, 147, 148, 149, 150, 151, /* 144 - 151 */ - 152, 153, 154, 155, 156, 157, 158, 159, /* 152 - 159 */ - 160, 161, 162, 163, 164, 165, 166, 167, /* 160 - 167 */ - 168, 169, 170, 171, 172, 173, 174, 175, /* 168 - 175 */ - 176, 177, 178, 179, 180, 181, 182, 183, /* 176 - 183 */ - 184, 185, 186, 187, 188, 189, 190, 191, /* 184 - 191 */ - 254, 224, 225, 246, 228, 229, 244, 227, /* 192 - 199 */ - 245, 232, 233, 234, 235, 236, 237, 238, /* 200 - 207 */ - 239, 255, 240, 241, 242, 243, 230, 226, /* 208 - 215 */ - 252, 251, 231, 248, 253, 249, 247, 250, /* 216 - 223 */ - 222, 192, 193, 214, 196, 197, 212, 195, /* 224 - 231 */ - 213, 200, 201, 202, 203, 204, 205, 206, /* 232 - 239 */ - 207, 223, 208, 209, 210, 211, 198, 194, /* 240 - 247 */ - 220, 219, 199, 216, 221, 217, 215, 218 /* 248 - 255 */ -}; - -static unsigned char const koi8r_to_iso8859_5[256-128] = -{ - 128, 129, 130, 131, 132, 133, 134, 135, /* 128 - 135 */ - 136, 137, 138, 139, 140, 141, 142, 143, /* 136 - 143 */ - 144, 145, 146, 147, 148, 149, 150, 151, /* 144 - 151 */ - 152, 153, 154, 155, 156, 157, 158, 159, /* 152 - 159 */ - 160, 161, 162, 163, 164, 165, 166, 167, /* 160 - 167 */ - 168, 169, 170, 171, 172, 173, 174, 175, /* 168 - 175 */ - 240, 241, 242, 243, 244, 245, 246, 247, /* 176 - 183 */ - 248, 249, 250, 251, 252, 253, 254, 255, /* 184 - 191 */ - 238, 208, 209, 230, 212, 213, 228, 211, /* 192 - 199 */ - 229, 216, 217, 218, 219, 220, 221, 222, /* 200 - 207 */ - 223, 239, 224, 225, 226, 227, 214, 210, /* 208 - 215 */ - 236, 235, 215, 232, 237, 233, 231, 234, /* 216 - 223 */ - 206, 176, 177, 198, 180, 181, 196, 179, /* 224 - 231 */ - 197, 184, 185, 186, 187, 188, 189, 190, /* 232 - 239 */ - 191, 207, 192, 193, 194, 195, 182, 178, /* 240 - 247 */ - 204, 203, 183, 200, 205, 201, 199, 202 /* 248 - 255 */ -}; - bool module_varia (RECODE_OUTER outer) { - /* Czech tables. */ + return - if (!declare_explode_data (outer, data_kamenicky, "KEYBCS2", NULL)) - return false; - if (!declare_explode_data (outer, data_cork, "CORK", NULL)) - return false; - if (!declare_explode_data (outer, data_koi8cs2, "KOI-8_CS2", NULL)) - return false; + /* Czech tables. */ - if (!declare_alias (outer, "Kamenicky", "KEYBCS2")) - return false; - if (!declare_alias (outer, "T1", "CORK")) - return false; + recode_declare_explode_data (outer, data_kamenicky, "KEYBCS2", NULL) + && recode_declare_explode_data (outer, data_cork, "CORK", NULL) + && recode_declare_explode_data (outer, data_koi8cs2, "KOI-8_CS2", NULL) -#if NOT_ACTIVE_YET - return - && declare_single(outer, "KOI8-R", "IBM866", - outer->quality_byte_reversible, - NULL, transform_byte_to_byte); + && recode_declare_alias (outer, "Kamenicky", "KEYBCS2") + && recode_declare_alias (outer, "T1", "CORK") - /* Suggested by Alexander L. Belikoff. */ - if (!declare_alias("866", "IBM866")) - return false; - if (!declare_alias("CP866", "IBM866")) - return false; - if (!declare_alias("alt", "IBM866")) - return false; + /* Russian aliases. */ - /* Suggested by Alexander L. Belikoff. */ - if (!declare_alias ("1489", "KOI8-R")) - return false; - if (!declare_alias ("RFC1489", "KOI8-R")) - return false; + && recode_declare_alias (outer, "1489", "KOI8-R") + && recode_declare_alias (outer, "RFC1489", "KOI8-R") - /* Suggested by Alexander L. Belikoff. */ - if (!declare_alias ("878", "KOI8-R")) - return false; - if (!declare_alias ("CP878", "KOI8-R")) - return false; - if (!declare_alias ("IBM878", "KOI8-R");) - return false; -#endif + && recode_declare_alias (outer, "878", "KOI8-R") + && recode_declare_alias (outer, "CP878", "KOI8-R") + && recode_declare_alias (outer, "IBM878", "KOI8-R") - return true; + ; } void -delmodule_varia (RECODE_OUTER outer) +delmodule_varia (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/vn.c b/src/vn.c index 684fc94..a6b7317 100644 --- a/src/vn.c +++ b/src/vn.c @@ -1,10 +1,10 @@ /* Vietnamese charset processing. - Copyright � 1999, 2000 Progiciels Bourbeau-Pinard inc. - Contributed by Fran�ois Pinard , 1999. + Copyright © 1999-2018 Progiciels Bourbeau-Pinard, Inc. + Contributed by François Pinard , 1999. This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -14,10 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with the Recode 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. */ + If not, see . +*/ +#include "config.h" #include "common.h" +#include "decsteps.h" static const recode_ucs2 tcvn_pool[256] = { @@ -296,165 +298,162 @@ static const unsigned short viscii_viqr_data[] = DONE }; -#define u(Character) ((unsigned char) (Character)) -/* FIXME: Should not use Latin-1 characters, anyway. */ - static const unsigned short viscii_vni_data[] = { - 2, u('A'), u('�'), DONE, - 5, u('A'), u('�'), DONE, - 6, u('A'), u('�'), DONE, - 20, u('Y'), u('�'), DONE, - 25, u('Y'), u('�'), DONE, - 30, u('�'), DONE, - 128, u('A'), u('�'), DONE, - 129, u('A'), u('�'), DONE, - 130, u('A'), u('�'), DONE, - 131, u('A'), u('�'), DONE, - 132, u('A'), u('�'), DONE, - 133, u('A'), u('�'), DONE, - 134, u('A'), u('�'), DONE, - 135, u('A'), u('�'), DONE, - 136, u('E'), u('�'), DONE, - 137, u('E'), u('�'), DONE, - 138, u('E'), u('�'), DONE, - 139, u('E'), u('�'), DONE, - 140, u('E'), u('�'), DONE, - 141, u('E'), u('�'), DONE, - 142, u('E'), u('�'), DONE, - 143, u('O'), u('�'), DONE, - 144, u('O'), u('�'), DONE, - 145, u('O'), u('�'), DONE, - 146, u('O'), u('�'), DONE, - 147, u('O'), u('�'), DONE, - 148, u('�'), u('�'), DONE, - 149, u('�'), u('�'), DONE, - 150, u('�'), u('�'), DONE, - 151, u('�'), u('�'), DONE, - 152, u('�'), DONE, - 153, u('O'), u('�'), DONE, - 154, u('O'), u('�'), DONE, - 155, u('�'), DONE, - 156, u('U'), u('�'), DONE, - 157, u('U'), u('�'), DONE, - 158, u('U'), u('�'), DONE, - 159, u('Y'), u('�'), DONE, - 160, u('O'), u('�'), DONE, - 161, u('a'), u('�'), DONE, - 162, u('a'), u('�'), DONE, - 163, u('a'), u('�'), DONE, - 164, u('a'), u('�'), DONE, - 165, u('a'), u('�'), DONE, - 166, u('a'), u('�'), DONE, - 167, u('a'), u('�'), DONE, - 168, u('e'), u('�'), DONE, - 169, u('e'), u('�'), DONE, - 170, u('e'), u('�'), DONE, - 171, u('e'), u('�'), DONE, - 172, u('e'), u('�'), DONE, - 173, u('e'), u('�'), DONE, - 174, u('e'), u('�'), DONE, - 175, u('o'), u('�'), DONE, - 176, u('o'), u('�'), DONE, - 177, u('o'), u('�'), DONE, - 178, u('o'), u('�'), DONE, - 179, u('�'), u('�'), DONE, - 180, u('�'), DONE, - 181, u('o'), u('�'), DONE, - 182, u('�'), u('�'), DONE, - 183, u('�'), u('�'), DONE, - 184, u('�'), DONE, - 185, u('�'), u('�'), DONE, - 186, u('�'), u('�'), DONE, - 187, u('�'), u('�'), DONE, - 188, u('�'), u('�'), DONE, - 189, u('�'), DONE, - 190, u('�'), u('�'), DONE, - 191, u('�'), DONE, - 192, u('A'), u('�'), DONE, - 193, u('A'), u('�'), DONE, - 194, u('A'), u('�'), DONE, - 195, u('A'), u('�'), DONE, - 196, u('A'), u('�'), DONE, - 197, u('A'), u('�'), DONE, - 198, u('a'), u('�'), DONE, - 199, u('a'), u('�'), DONE, - 200, u('E'), u('�'), DONE, - 201, u('E'), u('�'), DONE, - 202, u('E'), u('�'), DONE, - 203, u('E'), u('�'), DONE, - 204, u('�'), DONE, - 205, u('�'), DONE, - 206, u('�'), DONE, - 207, u('y'), u('�'), DONE, - 208, u('�'), DONE, - 209, u('�'), u('�'), DONE, - 210, u('O'), u('�'), DONE, - 211, u('O'), u('�'), DONE, - 212, u('O'), u('�'), DONE, - 213, u('a'), u('�'), DONE, - 214, u('y'), u('�'), DONE, - 215, u('�'), u('�'), DONE, - 216, u('�'), u('�'), DONE, - 217, u('U'), u('�'), DONE, - 218, u('U'), u('�'), DONE, - 219, u('y'), u('�'), DONE, - 220, u('�'), DONE, - 221, u('Y'), u('�'), DONE, - 222, u('�'), u('�'), DONE, - 223, u('�'), DONE, - 224, u('a'), u('�'), DONE, - 225, u('a'), u('�'), DONE, - 226, u('a'), u('�'), DONE, - 227, u('a'), u('�'), DONE, - 228, u('a'), u('�'), DONE, - 229, u('a'), u('�'), DONE, - 230, u('�'), u('�'), DONE, - 231, u('a'), u('�'), DONE, - 232, u('e'), u('�'), DONE, - 233, u('e'), u('�'), DONE, - 234, u('e'), u('�'), DONE, - 235, u('e'), u('�'), DONE, - 236, u('�'), DONE, - 237, u('�'), DONE, - 238, u('�'), DONE, - 239, u('�'), DONE, - 240, u('�'), DONE, - 241, u('�'), u('�'), DONE, - 242, u('o'), u('�'), DONE, - 243, u('o'), u('�'), DONE, - 244, u('o'), u('�'), DONE, - 245, u('o'), u('�'), DONE, - 246, u('o'), u('�'), DONE, - 247, u('o'), u('�'), DONE, - 248, u('u'), u('�'), DONE, - 249, u('u'), u('�'), DONE, - 250, u('u'), u('�'), DONE, - 251, u('u'), u('�'), DONE, - 252, u('u'), u('�'), DONE, - 253, u('y'), u('�'), DONE, - 254, u('�'), u('�'), DONE, - 255, u('�'), u('�'), DONE, + 2, 'A', 0xDA, DONE, + 5, 'A', 0xDC, DONE, + 6, 'A', 0xC3, DONE, + 20, 'Y', 0xDB, DONE, + 25, 'Y', 0xD5, DONE, + 30, 0xCE, DONE, + 128, 'A', 0xCF, DONE, + 129, 'A', 0xC8, DONE, + 130, 'A', 0xC9, DONE, + 131, 'A', 0xCB, DONE, + 132, 'A', 0xC1, DONE, + 133, 'A', 0xC0, DONE, + 134, 'A', 0xC5, DONE, + 135, 'A', 0xC4, DONE, + 136, 'E', 0xD5, DONE, + 137, 'E', 0xCF, DONE, + 138, 'E', 0xC1, DONE, + 139, 'E', 0xC0, DONE, + 140, 'E', 0xC5, DONE, + 141, 'E', 0xC3, DONE, + 142, 'E', 0xC4, DONE, + 143, 'O', 0xC1, DONE, + 144, 'O', 0xC0, DONE, + 145, 'O', 0xC5, DONE, + 146, 'O', 0xC3, DONE, + 147, 'O', 0xC4, DONE, + 148, 0xD4, 0xCF, DONE, + 149, 0xD4, 0xD9, DONE, + 150, 0xD4, 0xD8, DONE, + 151, 0xD4, 0xDB, DONE, + 152, 0xD2, DONE, + 153, 'O', 0xDB, DONE, + 154, 'O', 0xCF, DONE, + 155, 0xC6, DONE, + 156, 'U', 0xDB, DONE, + 157, 'U', 0xD5, DONE, + 158, 'U', 0xCF, DONE, + 159, 'Y', 0xD8, DONE, + 160, 'O', 0xD5, DONE, + 161, 'a', 0xE9, DONE, + 162, 'a', 0xE8, DONE, + 163, 'a', 0xEB, DONE, + 164, 'a', 0xE1, DONE, + 165, 'a', 0xE0, DONE, + 166, 'a', 0xE5, DONE, + 167, 'a', 0xE4, DONE, + 168, 'e', 0xF5, DONE, + 169, 'e', 0xEF, DONE, + 170, 'e', 0xE1, DONE, + 171, 'e', 0xE0, DONE, + 172, 'e', 0xE5, DONE, + 173, 'e', 0xE3, DONE, + 174, 'e', 0xE4, DONE, + 175, 'o', 0xE1, DONE, + 176, 'o', 0xE0, DONE, + 177, 'o', 0xE5, DONE, + 178, 'o', 0xE3, DONE, + 179, 0xD4, 0xD5, DONE, + 180, 0xD4, DONE, + 181, 'o', 0xE4, DONE, + 182, 0xF4, 0xF8, DONE, + 183, 0xF4, 0xFB, DONE, + 184, 0xF2, DONE, + 185, 0xD6, 0xCF, DONE, + 186, 0xD6, 0xD9, DONE, + 187, 0xD6, 0xD8, DONE, + 188, 0xD6, 0xDB, DONE, + 189, 0xF4, DONE, + 190, 0xF4, 0xF9, DONE, + 191, 0xD6, DONE, + 192, 'A', 0xD8, DONE, + 193, 'A', 0xD9, DONE, + 194, 'A', 0xC2, DONE, + 195, 'A', 0xD5, DONE, + 196, 'A', 0xDB, DONE, + 197, 'A', 0xCA, DONE, + 198, 'a', 0xFA, DONE, + 199, 'a', 0xFC, DONE, + 200, 'E', 0xD8, DONE, + 201, 'E', 0xD9, DONE, + 202, 'E', 0xC2, DONE, + 203, 'E', 0xDB, DONE, + 204, 0xCC, DONE, + 205, 0xCD, DONE, + 206, 0xD3, DONE, + 207, 'y', 0xF8, DONE, + 208, 0xD1, DONE, + 209, 0xF6, 0xF9, DONE, + 210, 'O', 0xD8, DONE, + 211, 'O', 0xD9, DONE, + 212, 'O', 0xC2, DONE, + 213, 'a', 0xEF, DONE, + 214, 'y', 0xFB, DONE, + 215, 0xF6, 0xF8, DONE, + 216, 0xF6, 0xFB, DONE, + 217, 'U', 0xD8, DONE, + 218, 'U', 0xD9, DONE, + 219, 'y', 0xF5, DONE, + 220, 0xEE, DONE, + 221, 'Y', 0xD9, DONE, + 222, 0xF4, 0xF5, DONE, + 223, 0xF6, DONE, + 224, 'a', 0xF8, DONE, + 225, 'a', 0xF9, DONE, + 226, 'a', 0xE2, DONE, + 227, 'a', 0xF5, DONE, + 228, 'a', 0xFB, DONE, + 229, 'a', 0xEA, DONE, + 230, 0xF6, 0xF5, DONE, + 231, 'a', 0xE3, DONE, + 232, 'e', 0xF8, DONE, + 233, 'e', 0xF9, DONE, + 234, 'e', 0xE2, DONE, + 235, 'e', 0xFB, DONE, + 236, 0xEC, DONE, + 237, 0xED, DONE, + 238, 0xF3, DONE, + 239, 0xE6, DONE, + 240, 0xF1, DONE, + 241, 0xF6, 0xEF, DONE, + 242, 'o', 0xF8, DONE, + 243, 'o', 0xF9, DONE, + 244, 'o', 0xE2, DONE, + 245, 'o', 0xF5, DONE, + 246, 'o', 0xFB, DONE, + 247, 'o', 0xEF, DONE, + 248, 'u', 0xEF, DONE, + 249, 'u', 0xF8, DONE, + 250, 'u', 0xF9, DONE, + 251, 'u', 0xF5, DONE, + 252, 'u', 0xFB, DONE, + 253, 'y', 0xF9, DONE, + 254, 0xF4, 0xEF, DONE, + 255, 0xD6, 0xD5, DONE, DONE }; bool module_vietnamese (RECODE_OUTER outer) { - if (!declare_strip_data (outer, &tcvn_strip_data, "TCVN")) + if (!recode_declare_strip_data (outer, &tcvn_strip_data, "TCVN")) return false; - if (!declare_strip_data (outer, &viscii_strip_data, "VISCII")) + if (!recode_declare_strip_data (outer, &viscii_strip_data, "VISCII")) return false; - if (!declare_strip_data (outer, &vps_strip_data, "VPS")) + if (!recode_declare_strip_data (outer, &vps_strip_data, "VPS")) return false; - if (!declare_explode_data (outer, viscii_viqr_data, "VISCII", "VIQR")) + if (!recode_declare_explode_data (outer, viscii_viqr_data, "VISCII", "VIQR")) return false; - if (!declare_explode_data (outer, viscii_vni_data, "VISCII", "VNI")) + if (!recode_declare_explode_data (outer, viscii_vni_data, "VISCII", "VNI")) return false; return true; } void -delmodule_vietnamese (RECODE_OUTER outer) +delmodule_vietnamese (_GL_UNUSED RECODE_OUTER outer) { } diff --git a/src/xalloc-die.c b/src/xalloc-die.c deleted file mode 100644 index ff5ac9e..0000000 --- a/src/xalloc-die.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Report a memory allocation failure and exit. - - Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include "xalloc.h" - -#include - -#include "error.h" -#include "exitfail.h" - -#include "gettext.h" -#define _(msgid) gettext (msgid) -#define N_(msgid) msgid - -void -xalloc_die (void) -{ - error (exit_failure, 0, "%s", _("memory exhausted")); - - /* The `noreturn' cannot be given to error, since it may return if - its first argument is 0. To help compilers understand the - xalloc_die does not return, call abort. Also, the abort is a - safety feature if exit_failure is 0 (which shouldn't happen). */ - abort (); -} diff --git a/src/xalloc.h b/src/xalloc.h deleted file mode 100644 index f80977e..0000000 --- a/src/xalloc.h +++ /dev/null @@ -1,79 +0,0 @@ -/* xalloc.h -- malloc with out-of-memory checking - - Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2003, 2004 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef XALLOC_H_ -# define XALLOC_H_ - -# include - - -# ifdef __cplusplus -extern "C" { -# endif - - -# ifndef __attribute__ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ -# define __attribute__(x) -# endif -# endif - -# ifndef ATTRIBUTE_NORETURN -# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) -# endif - -/* This function is always triggered when memory is exhausted. - It must be defined by the application, either explicitly - or by using gnulib's xalloc-die module. This is the - function to call when one wants the program to die because of a - memory allocation failure. */ -extern void xalloc_die (void) ATTRIBUTE_NORETURN; - -void *xmalloc (size_t s); -void *xnmalloc (size_t n, size_t s); -void *xzalloc (size_t s); -void *xcalloc (size_t n, size_t s); -void *xrealloc (void *p, size_t s); -void *xnrealloc (void *p, size_t n, size_t s); -void *x2realloc (void *p, size_t *pn); -void *x2nrealloc (void *p, size_t *pn, size_t s); -void *xmemdup (void const *p, size_t s); -char *xstrdup (char const *str); - -/* Return 1 if an array of N objects, each of size S, cannot exist due - to size arithmetic overflow. S must be positive and N must be - nonnegative. This is a macro, not an inline function, so that it - works correctly even when SIZE_MAX < N. - - By gnulib convention, SIZE_MAX represents overflow in size - calculations, so the conservative dividend to use here is - SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value. - However, malloc (SIZE_MAX) fails on all known hosts where - sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for - exactly-SIZE_MAX allocations on such hosts; this avoids a test and - branch when S is known to be 1. */ -# define xalloc_oversized(n, s) \ - ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n)) - -# ifdef __cplusplus -} -# endif - - -#endif /* !XALLOC_H_ */ diff --git a/src/xmalloc.c b/src/xmalloc.c deleted file mode 100644 index d66054f..0000000 --- a/src/xmalloc.c +++ /dev/null @@ -1,241 +0,0 @@ -/* xmalloc.c -- malloc with out of memory checking - - Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2002, 2003, 2004, 2005 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 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include "xalloc.h" - -#include -#include - -#ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -#endif - -/* 1 if calloc is known to be compatible with GNU calloc. This - matters if we are not also using the calloc module, which defines - HAVE_CALLOC and supports the GNU API even on non-GNU platforms. */ -#if defined HAVE_CALLOC || defined __GLIBC__ -enum { HAVE_GNU_CALLOC = 1 }; -#else -enum { HAVE_GNU_CALLOC = 0 }; -#endif - -/* Allocate an array of N objects, each with S bytes of memory, - dynamically, with error checking. S must be nonzero. */ - -static inline void * -xnmalloc_inline (size_t n, size_t s) -{ - void *p; - if (xalloc_oversized (n, s) || (! (p = malloc (n * s)) && n != 0)) - xalloc_die (); - return p; -} - -void * -xnmalloc (size_t n, size_t s) -{ - return xnmalloc_inline (n, s); -} - -/* Allocate N bytes of memory dynamically, with error checking. */ - -void * -xmalloc (size_t n) -{ - return xnmalloc_inline (n, 1); -} - -/* Change the size of an allocated block of memory P to an array of N - objects each of S bytes, with error checking. S must be nonzero. */ - -static inline void * -xnrealloc_inline (void *p, size_t n, size_t s) -{ - if (xalloc_oversized (n, s) || (! (p = realloc (p, n * s)) && n != 0)) - xalloc_die (); - return p; -} - -void * -xnrealloc (void *p, size_t n, size_t s) -{ - return xnrealloc_inline (p, n, s); -} - -/* Change the size of an allocated block of memory P to N bytes, - with error checking. */ - -void * -xrealloc (void *p, size_t n) -{ - return xnrealloc_inline (p, n, 1); -} - - -/* If P is null, allocate a block of at least *PN such objects; - otherwise, reallocate P so that it contains more than *PN objects - each of S bytes. *PN must be nonzero unless P is null, and S must - be nonzero. Set *PN to the new number of objects, and return the - pointer to the new block. *PN is never set to zero, and the - returned pointer is never null. - - Repeated reallocations are guaranteed to make progress, either by - allocating an initial block with a nonzero size, or by allocating a - larger block. - - In the following implementation, nonzero sizes are doubled so that - repeated reallocations have O(N log N) overall cost rather than - O(N**2) cost, but the specification for this function does not - guarantee that sizes are doubled. - - Here is an example of use: - - int *p = NULL; - size_t used = 0; - size_t allocated = 0; - - void - append_int (int value) - { - if (used == allocated) - p = x2nrealloc (p, &allocated, sizeof *p); - p[used++] = value; - } - - This causes x2nrealloc to allocate a block of some nonzero size the - first time it is called. - - To have finer-grained control over the initial size, set *PN to a - nonzero value before calling this function with P == NULL. For - example: - - int *p = NULL; - size_t used = 0; - size_t allocated = 0; - size_t allocated1 = 1000; - - void - append_int (int value) - { - if (used == allocated) - { - p = x2nrealloc (p, &allocated1, sizeof *p); - allocated = allocated1; - } - p[used++] = value; - } - - */ - -static inline void * -x2nrealloc_inline (void *p, size_t *pn, size_t s) -{ - size_t n = *pn; - - if (! p) - { - if (! n) - { - /* The approximate size to use for initial small allocation - requests, when the invoking code specifies an old size of - zero. 64 bytes is the largest "small" request for the - GNU C library malloc. */ - enum { DEFAULT_MXFAST = 64 }; - - n = DEFAULT_MXFAST / s; - n += !n; - } - } - else - { - if (SIZE_MAX / 2 / s < n) - xalloc_die (); - n *= 2; - } - - *pn = n; - return xrealloc (p, n * s); -} - -void * -x2nrealloc (void *p, size_t *pn, size_t s) -{ - return x2nrealloc_inline (p, pn, s); -} - -/* If P is null, allocate a block of at least *PN bytes; otherwise, - reallocate P so that it contains more than *PN bytes. *PN must be - nonzero unless P is null. Set *PN to the new block's size, and - return the pointer to the new block. *PN is never set to zero, and - the returned pointer is never null. */ - -void * -x2realloc (void *p, size_t *pn) -{ - return x2nrealloc_inline (p, pn, 1); -} - -/* Allocate S bytes of zeroed memory dynamically, with error checking. - There's no need for xnzalloc (N, S), since it would be equivalent - to xcalloc (N, S). */ - -void * -xzalloc (size_t s) -{ - return memset (xmalloc (s), 0, s); -} - -/* Allocate zeroed memory for N elements of S bytes, with error - checking. S must be nonzero. */ - -void * -xcalloc (size_t n, size_t s) -{ - void *p; - /* Test for overflow, since some calloc implementations don't have - proper overflow checks. But omit overflow and size-zero tests if - HAVE_GNU_CALLOC, since GNU calloc catches overflow and never - returns NULL if successful. */ - if ((! HAVE_GNU_CALLOC && xalloc_oversized (n, s)) - || (! (p = calloc (n, s)) && (HAVE_GNU_CALLOC || n != 0))) - xalloc_die (); - return p; -} - -/* Clone an object P of size S, with error checking. There's no need - for xnmemdup (P, N, S), since xmemdup (P, N * S) works without any - need for an arithmetic overflow check. */ - -void * -xmemdup (void const *p, size_t s) -{ - return memcpy (xmalloc (s), p, s); -} - -/* Clone STRING. */ - -char * -xstrdup (char const *string) -{ - return (char *) xmemdup (string, strlen (string) + 1); -} diff --git a/tables.py b/tables.py index 10e39d0..1d7bc9a 100755 --- a/tables.py +++ b/tables.py @@ -1,12 +1,12 @@ -#!/usr/bin/python +#!/usr/bin/python3 # -*- coding: utf-8 -*- # Automatically derive Recode table files from various sources. -# Copyright © 1993, 1994, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. +# Copyright © 1993-2000 Free Software Foundation, Inc. # François Pinard , 1993. # 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 2, or (at your option) +# the Free Software Foundation; either version 3, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, @@ -15,8 +15,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# along with this program; if not, see . """\ `tables.py' derives Recode table files from various sources. @@ -41,7 +40,7 @@ When `-F' and `-n' are used, process Alain's tables. """ -import re, sys +import re, sys, io # Character constants. REPLACEMENT_CHARACTER = 0xFFFD @@ -201,12 +200,11 @@ class Charnames(Options): def digest_french(self, input): self.preset_french() - fold_table = range(256) - for before, after in map( - None, + fold_table = list(range(256)) + for before, after in zip( u'ABCDEFGHIJKLMNOPQRSTUVWXYZÀÂÇÈÉÊÎÏÑÔÖÛ'.encode('ISO-8859-1'), u'abcdefghijklmnopqrstuvwxyzàâçèéêîïñôöû'.encode('ISO-8859-1')): - fold_table[ord(before)] = ord(after) + fold_table[before] = after folding = ''.join(map(chr, fold_table)) ignorables = ( u''.encode('ISO-8859-1'), @@ -268,7 +266,7 @@ def preset_french(self): u"séparateur d'article (rs)", # 001E u"séparateur de sous-article (us)", # 001F ): - self.declare(ucs, text.encode('ISO-8859-1')) + self.declare(ucs, text) ucs += 1 ucs = 0x007F for text in ( @@ -306,7 +304,7 @@ def preset_french(self): u"message privé (pm)", # 009E u"commande de progiciel (apc)", # 009F ): - self.declare(ucs, text.encode('ISO-8859-1')) + self.declare(ucs, text) ucs += 1 def declare(self, ucs, text): @@ -334,18 +332,18 @@ def complete(self, french): # the second cycling faster from 1 to 255. if run.verbose: sys.stdout.write(' sorting words...') - pairs = map(self.presort_word, self.code_map.keys()) + pairs = list(map(self.presort_word, self.code_map.keys())) pairs.sort() - words = map(lambda pair: pair[1], pairs) + words = list(map(lambda pair: pair[1], pairs)) pairs = None if run.verbose: sys.stdout.write(' %d of them\n' % len(words)) count = len(words) - singles = (255 * 255 - count) / 254 + singles = (255 * 255 - count) // 254 # Transmit a few values for further usage by the C code. if run.verbose: sys.stdout.write(' sorting names...') - ucs2_table = self.charname_map.keys() + ucs2_table = list(self.charname_map.keys()) ucs2_table.sort() if run.verbose: sys.stdout.write(' %d of them\n' % len(ucs2_table)) @@ -397,7 +395,7 @@ def complete(self, french): if code < 256: write('\\%0.3o' % code) else: - write('\\%0.3o\\%0.3o' % (code / 256, code % 256)) + write('\\%0.3o\\%0.3o' % (code // 256, code % 256)) else: sys.stdout.write('??? %s\n' % word) write('"},\n') @@ -414,6 +412,7 @@ def __init__(self): self.write = Output(self.SOURCES).write write = self.write write('\n' + '#include "config.h"\n' '#include "common.h"\n') def complete(self, french): @@ -428,23 +427,23 @@ def complete(self, french): '{\n') count = 0 while self.declare_charset: - write(' if (!declare_explode_data (outer, &data_%d, "%s"))\n' + write(' if (!recode_declare_explode_data (outer, &data_%d, "%s"))\n' ' return false;\n' % (count, self.declare_charset[0])) del self.declare_charset[0] count += 1 write('\n') - while declare_alias: - write(' if (!declare_alias (outer, "%s", "%s"))\n' + while recode_declare_alias: + write(' if (!recode_declare_alias (outer, "%s", "%s"))\n' ' return false;\n' - % declare_alias[0]) - del declare_alias[0] + % recode_declare_alias[0]) + del recode_declare_alias[0] write('\n' ' return true;\n' '}\n' '\n' 'void\n' - 'delmodule_explodes (struct recode_outer *outer)\n' + 'delmodule_explodes (_GL_UNUSED struct recode_outer *outer)\n' '{\n' '}\n') @@ -468,13 +467,17 @@ def digest(self): sys.stdout.write("Reading from `iconv -l'\n") libc = None import os + names = [] for line in os.popen('iconv -l'): if libc is None: libc = len(line.split('/')) == 3 if libc: first, second, empty = line.split('/') assert empty == '\n', repr(line) - self.data.append((second or first, ())) + name = second or first + if name not in names: + names.append(name) + self.data.append((name, ())) else: aliases = [] for alias in line.split(): @@ -484,12 +487,16 @@ def digest(self): self.data.append((aliases[0], aliases[1:])) def complete(self, french): + def write_charset(format, charset): + write(format % charset) + write(format % (charset + "-translit")) if not self.do_sources: return write = Output(self.SOURCES).write count = 1 for charset, aliases in self.data: - count = count + 2 + len(aliases) + versions = 2 # Normal, //TRANSLIT + count = count + (versions + len(aliases)) * versions write('\n' "/* This is derived from Bruno Haible's `libiconv' package. */" '\n' @@ -498,12 +505,12 @@ def complete(self, french): % count) for charset, aliases in self.data: if aliases: - write(' "%s",\n' % charset) + write_charset(' "%s",\n', charset) for alias in aliases[:-1]: - write('\t"%s",\n' % alias) - write('\t"%s", NULL,\n' % aliases[-1]) + write_charset('\t"%s",\n', alias) + write_charset('\t"%s", NULL,\n', aliases[-1]) else: - write(' "%s", NULL,\n' % charset) + write_charset(' "%s", NULL,\n', charset) write(' NULL\n' ' };\n') @@ -667,7 +674,7 @@ def complete_sources(self): 'static const struct entry table[TABLE_LENGTH] =\n' ' {\n') count = 0 - indices = self.mnemonic_map.keys() + indices = list(self.mnemonic_map.keys()) indices.sort() for ucs2 in indices: text = self.mnemonic_map[ucs2] @@ -681,7 +688,7 @@ def complete_sources(self): 'static const unsigned short inverse[TABLE_LENGTH] =\n' ' {') count = 0 - keys = inverse_map.keys() + keys = list(inverse_map.keys()) keys.sort() for text in keys: if count % 10 == 0: @@ -715,7 +722,7 @@ class Strips(Options): # While digesting files. used_map = {} table = [] - declare_alias = [] + recode_declare_alias = [] implied_surface = {} def __init__(self): @@ -736,7 +743,9 @@ def init_write_data(self): self.write_data = Output(self.DATA).write write = self.write_data write('\n' - '#include \"common.h\"\n') + '#include "config.h"\n' + '#include "common.h"\n' + '#include "decsteps.h"\n') # Read the text of RFC 1345, saving all charsets it declares. # UCS-2 mnemonics files should have been read in already. @@ -800,12 +809,12 @@ def digest_rfc1345(self, input): self.implied_surface[match.group(2)] = 'crlf' self.implied_surface['CP' + match.group(2)] = 'crlf' self.implied_surface['IBM' + match.group(2)] = 'crlf' - self.declare_alias.append((charset, charset)) + self.recode_declare_alias.append((charset, charset)) self.alias_count += 1 continue if charset in ('macintosh', 'macintosh_ce'): self.implied_surface[charset] = 'cr' - self.declare_alias.append((charset, charset)) + self.recode_declare_alias.append((charset, charset)) self.alias_count += 1 continue continue @@ -847,7 +856,7 @@ def digest_rfc1345(self, input): self.implied_surface['IBM' + match.group(2)] = 'crlf' elif alias in ('mac', 'macce'): self.implied_surface[alias] = 'cr' - self.declare_alias.append((alias, charset)) + self.recode_declare_alias.append((alias, charset)) self.alias_count += 1 continue if input.match('&g[0-4]esc'): @@ -939,7 +948,7 @@ def digest_unimap(self, input): self.used_map[hashname] = charset aliases.append(alias) - self.declare_alias.append((alias, charset)) + self.recode_declare_alias.append((alias, charset)) self.alias_count += 1 # Read table contents. while True: @@ -968,7 +977,7 @@ def digest_unimap(self, input): def charset_done(self, charset, remark, aliases): if self.discard_charset: while self.alias_count > 0: - del self.declare_alias[-1] + del self.recode_declare_alias[-1] self.alias_count -= 1 self.discard_charset = False self.comment = '' @@ -1059,47 +1068,48 @@ def complete_sources(self): sys.stdout.write("Completing %s\n" % self.DATA) write = self.write_data write('\n' - 'bool\n' - 'module_strips (struct recode_outer *outer)\n' + '_GL_ATTRIBUTE_CONST bool\n' + 'module_strips (_GL_UNUSED struct recode_outer *outer)\n' '{\n' ' RECODE_ALIAS alias;\n' '\n') count = 0 while self.declare_charset: - write(' if (!declare_strip_data (outer, &data_%d, "%s"))\n' + write(' if (!recode_declare_strip_data (outer, &data_%d, "%s"))\n' ' return false;\n' % (count, self.declare_charset[0])) del self.declare_charset[0] count += 1 write('\n') - while self.declare_alias: - alias, charset = self.declare_alias[0] + while self.recode_declare_alias: + alias, charset = self.recode_declare_alias[0] if alias in self.implied_surface: - write(' if (alias = declare_alias (outer, "%s", "%s"),' + write(' if (alias = recode_declare_alias (outer, "%s", "%s"),' ' !alias)\n' ' return false;\n' - % self.declare_alias[0]) - write(' if (!declare_implied_surface (outer, alias,' + % self.recode_declare_alias[0]) + write(' if (!recode_declare_implied_surface (outer, alias,' ' outer->%s_surface))\n' ' return false;\n' % self.implied_surface[alias]) else: - write(' if (!declare_alias (outer, "%s", "%s"))\n' + write(' if (!recode_declare_alias (outer, "%s", "%s"))\n' ' return false;\n' - % self.declare_alias[0]) - del self.declare_alias[0] + % self.recode_declare_alias[0]) + del self.recode_declare_alias[0] write('\n' ' return true;\n' '}\n' '\n' 'void\n' - 'delmodule_strips (struct recode_outer *outer)\n' + 'delmodule_strips (_GL_UNUSED struct recode_outer *outer)\n' '{\n' '}\n') # Write the pool file. write = Output(self.POOL).write write('\n' + '#include "config.h"\n' '#include "common.h"\n' '\n' 'const recode_ucs2 ucs2_data_pool[%d] =\n' @@ -1124,7 +1134,7 @@ def complete_texinfo(self, french): write = Output('fr-%s' % self.TEXINFO, noheader=True).write else: write = Output(self.TEXINFO, noheader=True).write - charsets = self.remark_map.keys() + charsets = list(self.remark_map.keys()) charsets.sort() for charset in charsets: write('\n' @@ -1160,13 +1170,15 @@ class Input: def __init__(self, name): self.name = name - self.input = file(name) + self.input = io.open(name, encoding='latin-1') self.line_count = 0 sys.stdout.write("Reading %s\n" % name) def readline(self): self.line = self.input.readline() self.line_count += 1 + if type(self.line) == bytes: + self.line = self.line.decode('utf-8') return self.line def warn(self, format, *args): @@ -1192,7 +1204,7 @@ class Output: def __init__(self, name, noheader=False): self.name = name - self.write = file(name, 'w').write + self.write = open(name, 'w', encoding='utf-8').write sys.stdout.write("Writing %s\n" % name) if not noheader: self.write("""\ @@ -1204,7 +1216,7 @@ def __init__(self, name, noheader=False): This 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 + as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be @@ -1214,7 +1226,7 @@ def __init__(self, name, noheader=False): You should have received a copy of the GNU Lesser General Public License along with the Recode Library; see the file `COPYING.LIB'. - If not, write to the Free Software Foundation, Inc., 59 Temple Place - + If not, see . Suite 330, Boston, MA 02111-1307, USA. */ """) diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 0000000..2fb0ffb --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1,7 @@ +/_Noreturn.h +/arg-nonnull.h +/c++defs.h +/dummy.c +/unused-parameter.h +/warn-on-use.h +/Recode.cpython* diff --git a/tests/ChangeLog b/tests/ChangeLog deleted file mode 100644 index c22d114..0000000 --- a/tests/ChangeLog +++ /dev/null @@ -1,397 +0,0 @@ -2008-03-16 François Pinard - - * Recode.pyx: Simplify, now that cleaner.h gets included. - -2008-03-13 François Pinard - - * t40_java.py: New. - -2008-03-11 François Pinard - - * Recode.pyx: Adjusted for iconv_name. - -2008-03-08 François Pinard - - * Recode.pyx: Parallel changes in src/. - (Outer.__init__): Implement strictness setting. - (Outer.set_iconv): Deleted. - - * common.py (external_output): Ignore :iconv:. - * Recode.pyx: Declare locale_charset. - Transmit AUTO_ABORT_FLAG and NO_ICONV_FLAG to Python. - (Outer.__init__): Replace no_iconv by iconv, defaulting to False. - * t21_names.py: Adjusted. - - * Recode.pyx (Outer): Add recode method. - (global_outer, recode): Deleted. - * common.py (outer, outer_iconv, recode_iconv_output): New. - * t70_inferenz.py: New test. - -2008-03-06 François Pinard - - Increase Recode.so portability, by depending on distutils: - * setup.py.in: New file. - * Makefile.am (Recode.so): Use it. - (all-local, Recode.o): Deleted. - Reported by Bruno Haible and Dagobert Michelsen. - - * Recode.pyx, t21_names.py, t50_methods.py: - Adjusted for libiconv to iconv renaming. - -2008-03-05 François Pinard - - * Makefile.am (CLEANFILES): Added. - -2008-02-27 François Pinard - - * Recode.pyx: Adjusted for cleaner.h.in. - -2008-02-24 François Pinard - - * pytest (py.test): New, including the old raises, and the new skip, - fail and exit functions, as suggested by Holger Krekel. - Interpret a skip() call in a generator routine as a request to skip - the whole set of generated tests. - - * Makefile.am (check): Do not set PATH, set RECODE instead. - * common.py: Look for RECODE in os.environ to find the program. - * t90_bigauto.py: Use the above. - -2008-02-23 François Pinard - - * t90_bigauto.py: New, replacing bigauto.py. - -2008-02-22 François Pinard - - Swithching from Autotest to Pytest. - * NOTES, pytest, common.py: New files. - * atgeneral.m4, suite.m4, testsuite: Deleted. - * t21_names.py, t25_subsets.py: Rewrite of names.m4. - * t22_lists.py: Rewrite of lists.m4. - * t30_base64.py: Rewrite of base64.m4. - * t30_dumps.py: Rewrite of dumps.m4 and dumps-data. - * t30_quoted.py: Rewrite of quoted.m4 and quoted-data. - * t40_african.py: Rewrite of african.m4. - * t40_combine.py: Rewrite of combine.m4. - * t40_testdump.py: Rewrite of testdump.m4. - * t40_utf7.py: Rewrite of utf7.m4 and utf7-data. - * t40_utf8.py: Rewrite of utf8.m4. - * t50_methods.py: Rewrite of methods.m4. - * Makefile: Adjusted. - - * Recode.pyx: New file. - * Makefile: Adjusted. - -2005-03-06 François Pinard - - * ChangeLog: Converted to UTF-8. - -2001-01-02 Bruno Haible - - * names.m4: Adjusted for libiconv-1.5 (BIG5HKSCS, GB18030, CHAR, - WCHAR_T). - -2000-08-18 François Pinard - - * names.m4: Adjusted for XML-standalone. - -2000-06-28 François Pinard - - * testdump.m4: New name for debug.m4. - * suite.m4: Adjusted. - * Makefile.am (SUITE): Adjusted. - - * lists.m4: Use At instead of @ in expected results. - * names.m4: Adjused for new libiconv. - -2000-04-26 François Pinard - - * bigauto.py: New file. - * bigauto.sh, bigauto.pl: Deleted. - * Makefile.am: Adjusted. - -2000-02-05 François Pinard - - * names.m4: Adjusted for tree, a special charset like data. - -1999-12-24 François Pinard - - * names.m4: Adjusted for defaulted libiconv. - -1999-12-23 François Pinard - - * names.m4: Adjusted for :libiconv:. - -1999-12-19 François Pinard - - * names.m4: Adjusted for vietnamese charsets. - -1999-12-15 François Pinard - - * Makefile.am (clean-local): Get rid of at-check-line, stderr, - stdout, input and output. - -1999-12-13 François Pinard - - * bigauto.sh: Protect against locale. - -1999-12-11 Eli Zaretskii - - * suite.m4: Add Latin-1 coding tag. - * atgeneral.m4: Use `diff' over `cmp' for DOSWIN. - * african.m4, base64.m4, dumps.m4, utf7.m4: Make the test suite - less Unix-chauvinist, so it could run on DOS/Windows in the DJGPP - environment. - -1999-11-16 François Pinard - - * atgeneral.m4: Increase the verbosity of verbose option. Better - protect real exit status. Add capability to ignore stdout or stderr. - Rewrite AT_CHECK so it is more legible. Define and use AT_CASE. - Reported by Akim Demaille. - -1999-06-02 François Pinard - - * atgeneral.m4 (at_usage): Typo. - -1999-06-01 François Pinard - - * Makefile.am (check-local): Do not warn for installed library, as - we now use a newer and better libtool. - -1999-04-02 François Pinard - - * Makefile.am (check-local): Warn if recode library already installed. - - * utf8.m4: Ensure that file has permissions to be rewritten. - -1999-04-01 François Pinard - - * names.m4: Adjusted for the co alias. - -1999-03-17 François Pinard - - * combine.m4: New file. - * Makefile.am, suite.m4: Adjusted. - -1999-01-17 François Pinard - - * names.m4: Adjusted for implied surfaces. - -1999-01-12 François Pinard - - * utf8.m4: New file. - * Makefile.am, suite.m4: Adjusted. - -1999-01-07 François Pinard - - * names.m4: Adjusted for name changes. - -1999-01-05 François Pinard - - * names.m4: Adjusted capitalisation of Kamenicky. - - * lists.m4: Adjusted for slight modifications in output format. - * names.m4: Adjusted for new charsets and surfaces. - - * debug.m4: New file. - * Makefile.am, suite.m4: Adjusted. - -1999-01-04 François Pinard - - * names.m4: Adjusted for new output format, sorted and capitalized. - - * Makefile.am (clean-local): Remove debug-*.sh, not FAIL-*.sh. - -1999-01-01 François Pinard - - * names.m4: Adjusted, as afrsort was deleted. - -1998-12-18 François Pinard - - * names.m4: Adjusted for fulldump. - Reported by Jim Meyering and Larry W. Virden. - -1998-12-13 François Pinard - - * names.m4: Adjusted for revised african, deleted HTML aliases and - combined UCS-2. - -1998-12-08 François Pinard - - * lists.m4, names.m4: Adjusted for the renaming of ISO_8859-1 to - ISO-8859-1. Use the expout mechanics, to avoid long shell quotes. - -1998-11-30 François Pinard - - * suite.m4: New name for testsuite.m4. - * test-one: Adjusted. - * Makefile.am: Adjusted. - -1998-11-23 François Pinard - - * dumps.m4: Make the copy of dumps-data writeable. - - * names.m4: Adjusted for new HTML charsets, yet if temporarily. - -1998-10-31 François Pinard - - * base64.m4, dumps.m4, quoted.m4: Make test files writeable after - copying them from the distribution, which may be read-only. Also, - avoid trailing .. in requests, as before position is implied. - -1998-10-30 François Pinard - - * Makefile.am (EXTRA_DIST): Distribute testsuite.m4. - Reported by Jim Meyering. - -1998-10-27 François Pinard - - * african.m4: New file. - * testsuite.m4: Use it. - * Makefile.am (SUITE): Adjusted. - From Laurent Bourbeau. - -1998-10-26 François Pinard - - * names.m4: Do not expect h, h1, h2, h4, w3 or www. - * dumps.m4, quoted.m4, utf7.c: Use /x or /XN rather than /h or /hN. - -1998-10-20 François Pinard - - * test-one: Renamed from test-one.in. New version, from elsewhere. - * atgeneral.m4: New version, from elsewhere. - * atconfig.in: New file, from elsewhere. - * Makefile.am: Adjusted. Use testsuite from srcdir. - * testsuite.m4: Remove second argment to AT_INIT. - * base64.m4, dumps.m4, methods.m4, quoted.m4, utf7.m4: Replace - AT_srcdir and AT_top_srcdir by $at_srcdir and $at_top_srcdir. - - * bigauto.sh: Do not source file preset, it does not exist anymore. - -1998-10-16 François Pinard - - * Makefile.am (EXTRA_DIST): Distribute quoted-data. - Reported by Jim Meyering. - -1998-10-13 François Pinard - - * atgeneral.m4, test-one.in, testsuite.m4: New files. - * preset.in, before, after: Deleted. - * names.m4: Made out from list-l and findsubs. - * lists.m4: Made out from list-ld, list-lh, list-lo and list-lf. - * dumps.m4, dumps-data: Made out from dump-d1, dump-d2, dump-d4, - dump-h1, dump-h2, dump-h4, dump-o1, dump-o2 and dump-o4. - * base64.m4: Made out from base64. - * quoted.m4, quoted-data: Made out from quoted. - * utf7.m4, utf7-data: Made out from utf7. - * methods.m4: Made out from 0s-tt-mf, 0s-tt-ms, 0s-tt-ff, - 0s-tt-fs, 0s-tt-pf, 0s-tt-ps, 1s-tl-mf, 1s-tl-ms, 1s-tl-ff, - 1s-tl-fs, 1s-tl-pf, 1s-tl-ps, 2s-tb-mf, 2s-tb-ms, 2s-tb-ff, - 2s-tb-fs, 2s-tb-pf, 2s-tb-ps, 2s-ti-mf, 2s-ti-ms, 2s-ti-ff, - 2s-ti-fs, 2s-ti-pf, 2s-ti-ps, 3s-ti-mf, 3s-ti-ms, 3s-ti-ff, - 3s-ti-fs, 3s-ti-pf, 3s-ti-ps, 4s-ae-mf, 4s-ae-ms, 4s-ae-ff, - 4s-ae-fs, 4s-ae-pf and 4s-ae-ps. - * All previous tests: Deleted. - * Makefile.am: Revised. - -1998-09-15 François Pinard - - * list-l, findsubs: Updated. - * list-ld, list-lo, list-lh, list-lf: At became @. - -1998-02-23 François Pinard - - * Makefile.am (clean-local): Instead of a kludgey CLEANFILES. - Reported by Tom Tromey. - -1998-01-12 François Pinard - - * findsubs, list-l: Updated. - -1997-12-15 François Pinard - - * findsubs: New file. - * Makefile.am: Adjusted. - - * Makefile.am (CLEANFILES): Use -r and add tmp-[0-9]*. - -1997-12-14 François Pinard - - * list-l: List updated. - -1997-12-09 François Pinard - - * bigauto.sh: Remove the space after flat, in the egrep call. - Reported by Eric Backus. - - * list-l, list-ld, list-lh, list-lo, list-lf: New files. - * Makefile.am: Adjusted. - -1997-12-08 François Pinard - - * Makefile.am (TESTS): List bigauto first, so the associated - warning will be issued early in test results. - -1997-12-05 François Pinard - - * Makefile.am (bigtest, bigtest-strict): Write $$PATH, not $PATH. - Reported by Eric Backus. - -1997-12-02 François Pinard - - * bigauto, bigauto.sh, bitauto.pl: New files. - * Makefile.am: Adjusted. - (bigtest, bigtest-strict): New goals. - -1997-11-25 François Pinard - - * dump-d1, dump-d2, dump-d4, dump-h1, dump-h2, dump-h4, dump-o1, - dump-o2, dump-o4, quoted, utf7: New files. - * Makefile.am: Adjusted. - -1997-11-20 François Pinard - - * base64.sh: New. - * Makefile.am: Adjusted. - -1997-10-26 François Pinard - - * filter.inc, squash.inc, 0s-tt-mf.sh, 0s-tt-ms.sh, 0s-tt-ff.sh, - 0s-tt-fs.sh, 0s-tt-pf.sh, 0s-tt-ps.sh, 1s-tl-mf.sh, 1s-tl-ms.sh, - 1s-tl-ff.sh, 1s-tl-fs.sh, 1s-tl-pf.sh, 1s-tl-ps.sh, 2s-tb-mf.sh, - 2s-tb-ms.sh, 2s-tb-ff.sh, 2s-tb-fs.sh, 2s-tb-pf.sh, 2s-tb-ps.sh, - 2s-ti-mf.sh, 2s-ti-ms.sh, 2s-ti-ff.sh, 2s-ti-fs.sh, 2s-ti-pf.sh, - 2s-ti-ps.sh, 3s-ti-mf.sh, 3s-ti-ms.sh, 3s-ti-ff.sh, 3s-ti-fs.sh, - 3s-ti-pf.sh, 3s-ti-ps.sh, 4s-ae-mf.sh, 4s-ae-ms.sh, 4s-ae-ff.sh, - 4s-ae-fs.sh, 4s-ae-pf.sh, 4s-ae-ps.sh: New files. - * checkit.inc, 0step-tt.sh, 1step-tl.sh, 2step-tb.sh, 2step-ti.sh, - 3step-ti.sh, 4step-ae.sh: Deleted. - * Makefile.am: Adjusted. - - * preset.in, before, after: Add a -d option to ease debugging. - -1997-09-26 François Pinard - - * before, after: New files, from elsewhere. - * 0step-tt.sh: Adapted from checkit1.sh. - * 1step-tl.sh: Adapted from checkit2.sh. - * 2step-ti.sh: Adapted from checkit3.sh. - * 3step-ti.sh: Adapted from checkit4.sh. - * 2step-tb.sh: Adapted from checkit5.sh. - * 4step-ae.sh: Adapted from checkit6.sh. - * checkit.inc: Simplified from checkit, sourced instead of called. - * Makefile.am: Adjusted. - - * checkit: Remove popen support. - -1997-07-28 François Pinard - - * checkit: Use .. instead of : in syntax. - -1996-09-04 François Pinard - - * ChangeLog, Makefile.am: New files. - * checkit: New file, moved from src/. Change ./recode to recode. - Change minimal verbosity so it is completely silent. - * preset.in, version.sh, checkit[1-6].sh, bigauto.sh: New files. diff --git a/tests/Makefile.am b/tests/Makefile.am index 3aa5b3d..192b53c 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,10 +1,10 @@ # Makefile for Recode regression tests. -# Copyright © 1996-2000, 2008 Free Software Foundation, Inc. +# Copyright © 1996-2023 Free Software Foundation, Inc. # François Pinard , 1988. # 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 2, or (at your option) +# the Free Software Foundation; either version 3, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, @@ -13,9 +13,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# along with this program; if not, see . AUTOMAKE_OPTIONS = gnits @@ -27,19 +25,36 @@ SUITE = t21_names.py t22_lists.py t25_subsets.py t30_base64.py \ t30_dumps.py t30_quoted.py t40_african.py t40_combine.py t40_testdump.py \ t40_utf7.py t40_utf8.py t50_methods.py t90_bigauto.py -EXTRA_DIST = NOTES Recode.c Recode.pyx pytest common.py $(SUITE) -CLEANFILES = Recode.so - -PYTHON = python - -check-local: Recode.so - RECODE=../src/recode PYTHONPATH=.:$(srcdir) \ - $(PYTHON) $(srcdir)/pytest $(LIMIT) $(srcdir)/t*.py - -Recode.so: Recode.c setup.py - rm -f *.so +CYTHON = @CYTHON@ +EXTRA_DIST = Recode.c Recode.pyx pytest common.py asan-suppressions.txt $(SUITE) +CLEANFILES = Recode.body.c +DISTCLEANFILES = Recode.c + +if HAVE_CYTHON +# TESTS_ENVIRONMENT_EXTRA can be set at configure time +check-local: Recode@pyextext@ + export SHARED_LIB_DIR=$(abs_top_builddir)/src/@objdir@; \ + export LD_LIBRARY_PATH=$$SHARED_LIB_DIR; \ + export DYLD_LIBRARY_PATH=$$SHARED_LIB_DIR; \ + export LSAN_OPTIONS=$$LSAN_OPTIONS:fast_unwind_on_malloc=0:print_suppressions=0:suppressions=$(srcdir)/asan-suppressions.txt; \ + RECODE=$(top_builddir)/src/recode$(EXEEXT) PYTHONPATH=.:$(abs_srcdir) \ + $(TESTS_ENVIRONMENT_EXTRA) $(PYTHON) $(srcdir)/pytest $(LIMIT) $(srcdir)/t*.py + +Recode@pyextext@: Recode.c setup.py + rm -f *@pyextext@ $(PYTHON) setup.py build_ext --inplace rm -fr build -Recode.c: Recode.pyx - cd $(srcdir) && cython Recode.pyx +Recode.c: Recode.pyx Makefile + rm -f Recode.c && \ + $(CYTHON) -3 -o Recode.body.c $(srcdir)/Recode.pyx && \ + echo '#include "config.h"' > Recode.c && \ + cat Recode.body.c >> Recode.c +else +check-local: + echo "The tests need cython to run!" + exit 1 +endif + +clean-local: + rm -rf __pycache__ *@pyextext@ diff --git a/tests/Makefile.in b/tests/Makefile.in deleted file mode 100644 index d4d11db..0000000 --- a/tests/Makefile.in +++ /dev/null @@ -1,498 +0,0 @@ -# Makefile.in generated by automake 1.13.3 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Makefile for Recode regression tests. -# Copyright © 1996-2000, 2008 Free Software Foundation, Inc. -# François Pinard , 1988. - -# 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 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 General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = tests -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/mkinstalldirs $(srcdir)/setup.py.in ChangeLog -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \ - $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ - $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/malloc.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = setup.py -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ -GLIBC21 = @GLIBC21@ -GMSGFMT = @GMSGFMT@ -GMSGFMT_015 = @GMSGFMT_015@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -MSGFMT_015 = @MSGFMT_015@ -MSGMERGE = @MSGMERGE@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -POSUB = @POSUB@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XGETTEXT_015 = @XGETTEXT_015@ -XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = gnits - -# LIMIT= may limit testing. For example, "make check LIMIT='-l 1'" stops -# testing after the first error, "make check LIMIT='-k utf7' runs files -# matched by the "utf7" regexp. Try "./pytest -h" for a list of options. -SUITE = t21_names.py t22_lists.py t25_subsets.py t30_base64.py \ -t30_dumps.py t30_quoted.py t40_african.py t40_combine.py t40_testdump.py \ -t40_utf7.py t40_utf8.py t50_methods.py t90_bigauto.py - -EXTRA_DIST = NOTES Recode.c Recode.pyx pytest common.py $(SUITE) -CLEANFILES = Recode.so -PYTHON = python -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnits tests/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -setup.py: $(top_builddir)/config.status $(srcdir)/setup.py.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-local -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: check-am install-am install-strip - -.PHONY: all all-am check check-am check-local clean clean-generic \ - clean-libtool cscopelist-am ctags-am distclean \ - distclean-generic distclean-libtool distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ - uninstall-am - - -check-local: Recode.so - RECODE=../src/recode PYTHONPATH=.:$(srcdir) \ - $(PYTHON) $(srcdir)/pytest $(LIMIT) $(srcdir)/t*.py - -Recode.so: Recode.c setup.py - rm -f *.so - $(PYTHON) setup.py build_ext --inplace - rm -fr build - -Recode.c: Recode.pyx - cd $(srcdir) && cython -3 Recode.pyx - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/tests/Recode.c b/tests/Recode.c deleted file mode 100644 index d13a2b9..0000000 --- a/tests/Recode.c +++ /dev/null @@ -1,5090 +0,0 @@ -/* Generated by Cython 0.19 on Mon Dec 2 00:35:48 2013 */ - -#define PY_SSIZE_T_CLEAN -#ifndef CYTHON_USE_PYLONG_INTERNALS -#ifdef PYLONG_BITS_IN_DIGIT -#define CYTHON_USE_PYLONG_INTERNALS 0 -#else -#include "pyconfig.h" -#ifdef PYLONG_BITS_IN_DIGIT -#define CYTHON_USE_PYLONG_INTERNALS 1 -#else -#define CYTHON_USE_PYLONG_INTERNALS 0 -#endif -#endif -#endif -#include "Python.h" -#ifndef Py_PYTHON_H - #error Python headers needed to compile C extensions, please install development version of Python. -#elif PY_VERSION_HEX < 0x02040000 - #error Cython requires Python 2.4+. -#else -#include /* For offsetof */ -#ifndef offsetof -#define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) -#endif -#if !defined(WIN32) && !defined(MS_WINDOWS) - #ifndef __stdcall - #define __stdcall - #endif - #ifndef __cdecl - #define __cdecl - #endif - #ifndef __fastcall - #define __fastcall - #endif -#endif -#ifndef DL_IMPORT - #define DL_IMPORT(t) t -#endif -#ifndef DL_EXPORT - #define DL_EXPORT(t) t -#endif -#ifndef PY_LONG_LONG - #define PY_LONG_LONG LONG_LONG -#endif -#ifndef Py_HUGE_VAL - #define Py_HUGE_VAL HUGE_VAL -#endif -#ifdef PYPY_VERSION -#define CYTHON_COMPILING_IN_PYPY 1 -#define CYTHON_COMPILING_IN_CPYTHON 0 -#else -#define CYTHON_COMPILING_IN_PYPY 0 -#define CYTHON_COMPILING_IN_CPYTHON 1 -#endif -#if PY_VERSION_HEX < 0x02050000 - typedef int Py_ssize_t; - #define PY_SSIZE_T_MAX INT_MAX - #define PY_SSIZE_T_MIN INT_MIN - #define PY_FORMAT_SIZE_T "" - #define CYTHON_FORMAT_SSIZE_T "" - #define PyInt_FromSsize_t(z) PyInt_FromLong(z) - #define PyInt_AsSsize_t(o) __Pyx_PyInt_AsInt(o) - #define PyNumber_Index(o) ((PyNumber_Check(o) && !PyFloat_Check(o)) ? PyNumber_Int(o) : \ - (PyErr_Format(PyExc_TypeError, \ - "expected index value, got %.200s", Py_TYPE(o)->tp_name), \ - (PyObject*)0)) - #define __Pyx_PyIndex_Check(o) (PyNumber_Check(o) && !PyFloat_Check(o) && \ - !PyComplex_Check(o)) - #define PyIndex_Check __Pyx_PyIndex_Check - #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message) - #define __PYX_BUILD_PY_SSIZE_T "i" -#else - #define __PYX_BUILD_PY_SSIZE_T "n" - #define CYTHON_FORMAT_SSIZE_T "z" - #define __Pyx_PyIndex_Check PyIndex_Check -#endif -#if PY_VERSION_HEX < 0x02060000 - #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt) - #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) - #define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size) - #define PyVarObject_HEAD_INIT(type, size) \ - PyObject_HEAD_INIT(type) size, - #define PyType_Modified(t) - typedef struct { - void *buf; - PyObject *obj; - Py_ssize_t len; - Py_ssize_t itemsize; - int readonly; - int ndim; - char *format; - Py_ssize_t *shape; - Py_ssize_t *strides; - Py_ssize_t *suboffsets; - void *internal; - } Py_buffer; - #define PyBUF_SIMPLE 0 - #define PyBUF_WRITABLE 0x0001 - #define PyBUF_FORMAT 0x0004 - #define PyBUF_ND 0x0008 - #define PyBUF_STRIDES (0x0010 | PyBUF_ND) - #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES) - #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES) - #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES) - #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES) - #define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_FORMAT | PyBUF_WRITABLE) - #define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_FORMAT | PyBUF_WRITABLE) - typedef int (*getbufferproc)(PyObject *, Py_buffer *, int); - typedef void (*releasebufferproc)(PyObject *, Py_buffer *); -#endif -#if PY_MAJOR_VERSION < 3 - #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ - PyCode_New(a, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#else - #define __Pyx_BUILTIN_MODULE_NAME "builtins" - #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ - PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#endif -#if PY_MAJOR_VERSION < 3 && PY_MINOR_VERSION < 6 - #define PyUnicode_FromString(s) PyUnicode_Decode(s, strlen(s), "UTF-8", "strict") -#endif -#if PY_MAJOR_VERSION >= 3 - #define Py_TPFLAGS_CHECKTYPES 0 - #define Py_TPFLAGS_HAVE_INDEX 0 -#endif -#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3) - #define Py_TPFLAGS_HAVE_NEWBUFFER 0 -#endif -#if PY_VERSION_HEX < 0x02060000 - #define Py_TPFLAGS_HAVE_VERSION_TAG 0 -#endif -#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) - #define CYTHON_PEP393_ENABLED 1 - #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ? \ - 0 : _PyUnicode_Ready((PyObject *)(op))) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) -#else - #define CYTHON_PEP393_ENABLED 0 - #define __Pyx_PyUnicode_READY(op) (0) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) - #define __Pyx_PyUnicode_READ(k, d, i) ((k=k), (Py_UCS4)(((Py_UNICODE*)d)[i])) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBaseString_Type PyUnicode_Type - #define PyStringObject PyUnicodeObject - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -#endif -#if PY_VERSION_HEX < 0x02060000 - #define PyBytesObject PyStringObject - #define PyBytes_Type PyString_Type - #define PyBytes_Check PyString_Check - #define PyBytes_CheckExact PyString_CheckExact - #define PyBytes_FromString PyString_FromString - #define PyBytes_FromStringAndSize PyString_FromStringAndSize - #define PyBytes_FromFormat PyString_FromFormat - #define PyBytes_DecodeEscape PyString_DecodeEscape - #define PyBytes_AsString PyString_AsString - #define PyBytes_AsStringAndSize PyString_AsStringAndSize - #define PyBytes_Size PyString_Size - #define PyBytes_AS_STRING PyString_AS_STRING - #define PyBytes_GET_SIZE PyString_GET_SIZE - #define PyBytes_Repr PyString_Repr - #define PyBytes_Concat PyString_Concat - #define PyBytes_ConcatAndDel PyString_ConcatAndDel -#endif -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -#else - #define __Pyx_PyBaseString_Check(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj) || \ - PyString_Check(obj) || PyUnicode_Check(obj)) - #define __Pyx_PyBaseString_CheckExact(obj) (Py_TYPE(obj) == &PyBaseString_Type) -#endif -#if PY_VERSION_HEX < 0x02060000 - #define PySet_Check(obj) PyObject_TypeCheck(obj, &PySet_Type) - #define PyFrozenSet_Check(obj) PyObject_TypeCheck(obj, &PyFrozenSet_Type) -#endif -#ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) -#endif -#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) -#if PY_MAJOR_VERSION >= 3 - #define PyIntObject PyLongObject - #define PyInt_Type PyLong_Type - #define PyInt_Check(op) PyLong_Check(op) - #define PyInt_CheckExact(op) PyLong_CheckExact(op) - #define PyInt_FromString PyLong_FromString - #define PyInt_FromUnicode PyLong_FromUnicode - #define PyInt_FromLong PyLong_FromLong - #define PyInt_FromSize_t PyLong_FromSize_t - #define PyInt_FromSsize_t PyLong_FromSsize_t - #define PyInt_AsLong PyLong_AsLong - #define PyInt_AS_LONG PyLong_AS_LONG - #define PyInt_AsSsize_t PyLong_AsSsize_t - #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask - #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBoolObject PyLongObject -#endif -#if PY_VERSION_HEX < 0x03020000 - typedef long Py_hash_t; - #define __Pyx_PyInt_FromHash_t PyInt_FromLong - #define __Pyx_PyInt_AsHash_t PyInt_AsLong -#else - #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t - #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t -#endif -#if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300) - #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b) - #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value) - #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b) -#else - #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \ - (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \ - (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \ - (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0))) - #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \ - (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \ - (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \ - (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1))) - #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \ - (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \ - (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \ - (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1))) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func)) -#endif -#if PY_VERSION_HEX < 0x02050000 - #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n))) - #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a)) - #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),((char *)(n))) -#else - #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),(n)) - #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a)) - #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),(n)) -#endif -#if PY_VERSION_HEX < 0x02050000 - #define __Pyx_NAMESTR(n) ((char *)(n)) - #define __Pyx_DOCSTR(n) ((char *)(n)) -#else - #define __Pyx_NAMESTR(n) (n) - #define __Pyx_DOCSTR(n) (n) -#endif -#ifndef CYTHON_INLINE - #if defined(__GNUC__) - #define CYTHON_INLINE __inline__ - #elif defined(_MSC_VER) - #define CYTHON_INLINE __inline - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_INLINE inline - #else - #define CYTHON_INLINE - #endif -#endif -#ifndef CYTHON_RESTRICT - #if defined(__GNUC__) - #define CYTHON_RESTRICT __restrict__ - #elif defined(_MSC_VER) - #define CYTHON_RESTRICT __restrict - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_RESTRICT restrict - #else - #define CYTHON_RESTRICT - #endif -#endif -#ifdef NAN -#define __PYX_NAN() ((float) NAN) -#else -static CYTHON_INLINE float __PYX_NAN() { - /* Initialize NaN. The sign is irrelevant, an exponent with all bits 1 and - a nonzero mantissa means NaN. If the first bit in the mantissa is 1, it is - a quiet NaN. */ - float value; - memset(&value, 0xFF, sizeof(value)); - return value; -} -#endif - - -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) -#else - #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) -#endif - -#ifndef __PYX_EXTERN_C - #ifdef __cplusplus - #define __PYX_EXTERN_C extern "C" - #else - #define __PYX_EXTERN_C extern - #endif -#endif - -#if defined(WIN32) || defined(MS_WINDOWS) -#define _USE_MATH_DEFINES -#endif -#include -#define __PYX_HAVE__Recode -#define __PYX_HAVE_API__Recode -#include "stdio.h" -#include "config.h" -#include "common.h" -#ifdef _OPENMP -#include -#endif /* _OPENMP */ - -#ifdef PYREX_WITHOUT_ASSERTIONS -#define CYTHON_WITHOUT_ASSERTIONS -#endif - -#ifndef CYTHON_UNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -#endif -typedef struct {PyObject **p; char *s; const Py_ssize_t n; const char* encoding; - const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/ - -#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 -#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0 -#define __PYX_DEFAULT_STRING_ENCODING "" -#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString -#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject*); -static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); -#define __Pyx_PyBytes_FromString PyBytes_FromString -#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(char*); -#if PY_MAJOR_VERSION < 3 - #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -#else - #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize -#endif -#define __Pyx_PyObject_AsUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_FromUString(s) __Pyx_PyObject_FromString((char*)s) -#define __Pyx_PyBytes_FromUString(s) __Pyx_PyBytes_FromString((char*)s) -#define __Pyx_PyStr_FromUString(s) __Pyx_PyStr_FromString((char*)s) -#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((char*)s) -#if PY_MAJOR_VERSION < 3 -static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) -{ - const Py_UNICODE *u_end = u; - while (*u_end++) ; - return u_end - u - 1; -} -#else -#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen -#endif -#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) -#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode -#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode -#define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None) -#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False)) -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); -static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x); -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); -static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*); -#if CYTHON_COMPILING_IN_CPYTHON -#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) -#else -#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) -#endif -#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII -static int __Pyx_sys_getdefaultencoding_not_ascii; -static int __Pyx_init_sys_getdefaultencoding_params() { - PyObject* sys = NULL; - PyObject* default_encoding = NULL; - PyObject* ascii_chars_u = NULL; - PyObject* ascii_chars_b = NULL; - sys = PyImport_ImportModule("sys"); - if (sys == NULL) goto bad; - default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); - if (default_encoding == NULL) goto bad; - if (strcmp(PyBytes_AsString(default_encoding), "ascii") == 0) { - __Pyx_sys_getdefaultencoding_not_ascii = 0; - } else { - const char* default_encoding_c = PyBytes_AS_STRING(default_encoding); - char ascii_chars[128]; - int c; - for (c = 0; c < 128; c++) { - ascii_chars[c] = c; - } - __Pyx_sys_getdefaultencoding_not_ascii = 1; - ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); - if (ascii_chars_u == NULL) goto bad; - ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); - if (ascii_chars_b == NULL || strncmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { - PyErr_Format( - PyExc_ValueError, - "This module compiled with c_string_encoding=ascii, but default encoding '%s' is not a superset of ascii.", - default_encoding_c); - goto bad; - } - } - Py_XDECREF(sys); - Py_XDECREF(default_encoding); - Py_XDECREF(ascii_chars_u); - Py_XDECREF(ascii_chars_b); - return 0; -bad: - Py_XDECREF(sys); - Py_XDECREF(default_encoding); - Py_XDECREF(ascii_chars_u); - Py_XDECREF(ascii_chars_b); - return -1; -} -#endif -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) -#else -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT -static char* __PYX_DEFAULT_STRING_ENCODING; -static int __Pyx_init_sys_getdefaultencoding_params() { - PyObject* sys = NULL; - PyObject* default_encoding = NULL; - char* default_encoding_c; - sys = PyImport_ImportModule("sys"); - if (sys == NULL) goto bad; - default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); - if (default_encoding == NULL) goto bad; - default_encoding_c = PyBytes_AS_STRING(default_encoding); - __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c)); - strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); - Py_DECREF(sys); - Py_DECREF(default_encoding); - return 0; -bad: - Py_XDECREF(sys); - Py_XDECREF(default_encoding); - return -1; -} -#endif -#endif - - -#ifdef __GNUC__ - /* Test for GCC > 2.95 */ - #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) - #define likely(x) __builtin_expect(!!(x), 1) - #define unlikely(x) __builtin_expect(!!(x), 0) - #else /* __GNUC__ > 2 ... */ - #define likely(x) (x) - #define unlikely(x) (x) - #endif /* __GNUC__ > 2 ... */ -#else /* __GNUC__ */ - #define likely(x) (x) - #define unlikely(x) (x) -#endif /* __GNUC__ */ - -static PyObject *__pyx_m; -static PyObject *__pyx_d; -static PyObject *__pyx_b; -static PyObject *__pyx_empty_tuple; -static PyObject *__pyx_empty_bytes; -static int __pyx_lineno; -static int __pyx_clineno = 0; -static const char * __pyx_cfilenm= __FILE__; -static const char *__pyx_filename; - - -static const char *__pyx_f[] = { - "Recode.pyx", -}; - -/*--- Type declarations ---*/ -struct __pyx_obj_6Recode_Request; -struct __pyx_obj_6Recode_Outer; - -/* "Recode.pyx":20 - * # 02111-1307, USA. - * - * cdef enum bool: # <<<<<<<<<<<<<< - * false = 0 - * true = 1 - */ -enum __pyx_t_6Recode_bool { - __pyx_e_6Recode_false = 0, - __pyx_e_6Recode_true = 1 -}; - -/* "Recode.pyx":615 - * # Recode library at REQUEST level. - * - * cdef class Request: # <<<<<<<<<<<<<< - * cdef RECODE_REQUEST request - * - */ -struct __pyx_obj_6Recode_Request { - PyObject_HEAD - RECODE_REQUEST request; -}; - - -/* "Recode.pyx":550 - * ## Recode library at OUTER level. - * - * cdef class Outer: # <<<<<<<<<<<<<< - * cdef RECODE_OUTER outer - * - */ -struct __pyx_obj_6Recode_Outer { - PyObject_HEAD - RECODE_OUTER outer; -}; - -#ifndef CYTHON_REFNANNY - #define CYTHON_REFNANNY 0 -#endif -#if CYTHON_REFNANNY - typedef struct { - void (*INCREF)(void*, PyObject*, int); - void (*DECREF)(void*, PyObject*, int); - void (*GOTREF)(void*, PyObject*, int); - void (*GIVEREF)(void*, PyObject*, int); - void* (*SetupContext)(const char*, int, const char*); - void (*FinishContext)(void**); - } __Pyx_RefNannyAPIStruct; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/ - #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; -#ifdef WITH_THREAD - #define __Pyx_RefNannySetupContext(name, acquire_gil) \ - if (acquire_gil) { \ - PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); \ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \ - PyGILState_Release(__pyx_gilstate_save); \ - } else { \ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \ - } -#else - #define __Pyx_RefNannySetupContext(name, acquire_gil) \ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) -#endif - #define __Pyx_RefNannyFinishContext() \ - __Pyx_RefNanny->FinishContext(&__pyx_refnanny) - #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) - #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) - #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) - #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) - #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) -#else - #define __Pyx_RefNannyDeclarations - #define __Pyx_RefNannySetupContext(name, acquire_gil) - #define __Pyx_RefNannyFinishContext() - #define __Pyx_INCREF(r) Py_INCREF(r) - #define __Pyx_DECREF(r) Py_DECREF(r) - #define __Pyx_GOTREF(r) - #define __Pyx_GIVEREF(r) - #define __Pyx_XINCREF(r) Py_XINCREF(r) - #define __Pyx_XDECREF(r) Py_XDECREF(r) - #define __Pyx_XGOTREF(r) - #define __Pyx_XGIVEREF(r) -#endif /* CYTHON_REFNANNY */ -#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) -#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) - -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { - PyTypeObject* tp = Py_TYPE(obj); - if (likely(tp->tp_getattro)) - return tp->tp_getattro(obj, attr_name); -#if PY_MAJOR_VERSION < 3 - if (likely(tp->tp_getattr)) - return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); -#endif - return PyObject_GetAttr(obj, attr_name); -} -#else -#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) -#endif - -static PyObject *__Pyx_GetBuiltinName(PyObject *name); /*proto*/ - -static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /*proto*/ - -static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \ - PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, \ - const char* function_name); /*proto*/ - -static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, - Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/ - -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { - PyListObject* L = (PyListObject*) list; - Py_ssize_t len = Py_SIZE(list); - if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { - Py_INCREF(x); - PyList_SET_ITEM(list, len, x); - Py_SIZE(list) = len+1; - return 0; - } - return PyList_Append(list, x); -} -#else -#define __Pyx_PyList_Append(L,x) PyList_Append(L,x) -#endif - -static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); /*proto*/ - -static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ -static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/ - -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/ - -static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, - const char *name, int exact); /*proto*/ - -static PyObject *__Pyx_FindPy2Metaclass(PyObject *bases); /*proto*/ - -static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name, - PyObject *qualname, PyObject *modname); /*proto*/ - -static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *); - -static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *); - -static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *); - -static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *); - -static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *); - -static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *); - -static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *); - -static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *); - -static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *); - -static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject *); - -static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *); - -static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *); - -static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *); - -static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *); - -static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *); - -static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *); - -static int __Pyx_check_binary_version(void); - -typedef struct { - int code_line; - PyCodeObject* code_object; -} __Pyx_CodeObjectCacheEntry; -struct __Pyx_CodeObjectCache { - int count; - int max_count; - __Pyx_CodeObjectCacheEntry* entries; -}; -static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); -static PyCodeObject *__pyx_find_code_object(int code_line); -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); - -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename); /*proto*/ - -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/ - - -/* Module declarations from 'Recode' */ -static PyTypeObject *__pyx_ptype_6Recode_Outer = 0; -static PyTypeObject *__pyx_ptype_6Recode_Request = 0; -#define __Pyx_MODULE_NAME "Recode" -int __pyx_module_is_main_Recode = 0; - -/* Implementation of 'Recode' */ -static PyObject *__pyx_builtin_Exception; -static int __pyx_pf_6Recode_5Outer___init__(struct __pyx_obj_6Recode_Outer *__pyx_v_self, PyObject *__pyx_v_auto_abort, PyObject *__pyx_v_iconv, PyObject *__pyx_v_strict); /* proto */ -static void __pyx_pf_6Recode_5Outer_2__dealloc__(struct __pyx_obj_6Recode_Outer *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6Recode_5Outer_4default_charset(CYTHON_UNUSED struct __pyx_obj_6Recode_Outer *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6Recode_5Outer_6all_charsets(struct __pyx_obj_6Recode_Outer *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6Recode_5Outer_8all_surfaces(struct __pyx_obj_6Recode_Outer *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6Recode_5Outer_10concise_charset(struct __pyx_obj_6Recode_Outer *__pyx_v_self, PyObject *__pyx_v_format); /* proto */ -static PyObject *__pyx_pf_6Recode_5Outer_12full_charset(struct __pyx_obj_6Recode_Outer *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6Recode_5Outer_14recode(struct __pyx_obj_6Recode_Outer *__pyx_v_self, char *__pyx_v_command, char *__pyx_v_input); /* proto */ -static int __pyx_pf_6Recode_7Request___init__(struct __pyx_obj_6Recode_Request *__pyx_v_self, struct __pyx_obj_6Recode_Outer *__pyx_v_outer); /* proto */ -static void __pyx_pf_6Recode_7Request_2__dealloc__(struct __pyx_obj_6Recode_Request *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6Recode_7Request_4set_verbose(struct __pyx_obj_6Recode_Request *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ -static PyObject *__pyx_pf_6Recode_7Request_6scan(struct __pyx_obj_6Recode_Request *__pyx_v_self, char *__pyx_v_text); /* proto */ -static PyObject *__pyx_pf_6Recode_7Request_8pair_sequence(struct __pyx_obj_6Recode_Request *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_6Recode_7Request_10format_table(struct __pyx_obj_6Recode_Request *__pyx_v_self, int __pyx_v_language, char *__pyx_v_charset); /* proto */ -static PyObject *__pyx_pf_6Recode_7Request_12string(struct __pyx_obj_6Recode_Request *__pyx_v_self, char *__pyx_v_text); /* proto */ -static PyObject *__pyx_tp_new_6Recode_Outer(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_6Recode_Request(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static char __pyx_k_5[] = "SYMBOL_CREATE_CHARSET"; -static char __pyx_k_6[] = "SYMBOL_CREATE_DATA_SURFACE"; -static char __pyx_k_7[] = "SYMBOL_CREATE_TREE_SURFACE"; -static char __pyx_k_8[] = "ALIAS_FIND_AS_CHARSET"; -static char __pyx_k_9[] = "ALIAS_FIND_AS_SURFACE"; -static char __pyx_k_10[] = "ALIAS_FIND_AS_EITHER"; -static char __pyx_k_11[] = "REPLACEMENT_CHARACTER"; -static char __pyx_k_12[] = "BYTE_ORDER_MARK_SWAPPED"; -static char __pyx_k__NUL[] = "NUL"; -static char __pyx_k__scan[] = "scan"; -static char __pyx_k__error[] = "error"; -static char __pyx_k__iconv[] = "iconv"; -static char __pyx_k__input[] = "input"; -static char __pyx_k__outer[] = "outer"; -static char __pyx_k__xDONE[] = "xDONE"; -static char __pyx_k__xELSE[] = "xELSE"; -static char __pyx_k__Recode[] = "Recode"; -static char __pyx_k__SIZE_1[] = "SIZE_1"; -static char __pyx_k__SIZE_2[] = "SIZE_2"; -static char __pyx_k__SIZE_4[] = "SIZE_4"; -static char __pyx_k__SIZE_N[] = "SIZE_N"; -static char __pyx_k__format[] = "format"; -static char __pyx_k__strict[] = "strict"; -static char __pyx_k__string[] = "string"; -static char __pyx_k__CHARSET[] = "CHARSET"; -static char __pyx_k__SWAP_NO[] = "SWAP_NO"; -static char __pyx_k__charset[] = "charset"; -static char __pyx_k__command[] = "command"; -static char __pyx_k__NO_ERROR[] = "NO_ERROR"; -static char __pyx_k__SWAP_YES[] = "SWAP_YES"; -static char __pyx_k____main__[] = "__main__"; -static char __pyx_k____test__[] = "__test__"; -static char __pyx_k__language[] = "language"; -static char __pyx_k__Exception[] = "Exception"; -static char __pyx_k__NO_FORMAT[] = "NO_FORMAT"; -static char __pyx_k____class__[] = "__class__"; -static char __pyx_k__LANGUAGE_C[] = "LANGUAGE_C"; -static char __pyx_k__STRIP_DATA[] = "STRIP_DATA"; -static char __pyx_k__STRIP_SIZE[] = "STRIP_SIZE"; -static char __pyx_k__USER_ERROR[] = "USER_ERROR"; -static char __pyx_k____module__[] = "__module__"; -static char __pyx_k__auto_abort[] = "auto_abort"; -static char __pyx_k__FULL_FORMAT[] = "FULL_FORMAT"; -static char __pyx_k__NO_LANGUAGE[] = "NO_LANGUAGE"; -static char __pyx_k__BYTE_TO_BYTE[] = "BYTE_TO_BYTE"; -static char __pyx_k__COMBINE_STEP[] = "COMBINE_STEP"; -static char __pyx_k__DATA_SURFACE[] = "DATA_SURFACE"; -static char __pyx_k__EXPLODE_DATA[] = "EXPLODE_DATA"; -static char __pyx_k__EXPLODE_STEP[] = "EXPLODE_STEP"; -static char __pyx_k__OCTAL_FORMAT[] = "OCTAL_FORMAT"; -static char __pyx_k__SYSTEM_ERROR[] = "SYSTEM_ERROR"; -static char __pyx_k__TREE_SURFACE[] = "TREE_SURFACE"; -static char __pyx_k__UCS2_TO_BYTE[] = "UCS2_TO_BYTE"; -static char __pyx_k____qualname__[] = "__qualname__"; -static char __pyx_k__INVALID_INPUT[] = "INVALID_INPUT"; -static char __pyx_k__LANGUAGE_PERL[] = "LANGUAGE_PERL"; -static char __pyx_k__MAXIMUM_ERROR[] = "MAXIMUM_ERROR"; -static char __pyx_k__NOT_CANONICAL[] = "NOT_CANONICAL"; -static char __pyx_k__NO_ICONV_FLAG[] = "NO_ICONV_FLAG"; -static char __pyx_k__NO_STEP_TABLE[] = "NO_STEP_TABLE"; -static char __pyx_k____metaclass__[] = "__metaclass__"; -static char __pyx_k__BYTE_TO_STRING[] = "BYTE_TO_STRING"; -static char __pyx_k__DECIMAL_FORMAT[] = "DECIMAL_FORMAT"; -static char __pyx_k__INTERNAL_ERROR[] = "INTERNAL_ERROR"; -static char __pyx_k__NO_SYMBOL_TYPE[] = "NO_SYMBOL_TYPE"; -static char __pyx_k__STRING_TO_UCS2[] = "STRING_TO_UCS2"; -static char __pyx_k__SWAP_UNDECIDED[] = "SWAP_UNDECIDED"; -static char __pyx_k__UCS2_TO_STRING[] = "UCS2_TO_STRING"; -static char __pyx_k__UNTRANSLATABLE[] = "UNTRANSLATABLE"; -static char __pyx_k__AUTO_ABORT_FLAG[] = "AUTO_ABORT_FLAG"; -static char __pyx_k__BYTE_ORDER_MARK[] = "BYTE_ORDER_MARK"; -static char __pyx_k__COMBINE_EXPLODE[] = "COMBINE_EXPLODE"; -static char __pyx_k__NOT_A_CHARACTER[] = "NOT_A_CHARACTER"; -static char __pyx_k__NO_CHARSET_DATA[] = "NO_CHARSET_DATA"; -static char __pyx_k__AMBIGUOUS_OUTPUT[] = "AMBIGUOUS_OUTPUT"; -static char __pyx_k__HEXADECIMAL_FORMAT[] = "HEXADECIMAL_FORMAT"; -static char __pyx_k__SEQUENCE_IN_MEMORY[] = "SEQUENCE_IN_MEMORY"; -static char __pyx_k__SEQUENCE_WITH_PIPE[] = "SEQUENCE_WITH_PIPE"; -static char __pyx_k__STRATEGY_UNDECIDED[] = "STRATEGY_UNDECIDED"; -static char __pyx_k__SEQUENCE_WITH_FILES[] = "SEQUENCE_WITH_FILES"; -static PyObject *__pyx_n_s_10; -static PyObject *__pyx_n_s_11; -static PyObject *__pyx_n_s_12; -static PyObject *__pyx_n_s_5; -static PyObject *__pyx_n_s_6; -static PyObject *__pyx_n_s_7; -static PyObject *__pyx_n_s_8; -static PyObject *__pyx_n_s_9; -static PyObject *__pyx_n_s__AMBIGUOUS_OUTPUT; -static PyObject *__pyx_n_s__AUTO_ABORT_FLAG; -static PyObject *__pyx_n_s__BYTE_ORDER_MARK; -static PyObject *__pyx_n_s__BYTE_TO_BYTE; -static PyObject *__pyx_n_s__BYTE_TO_STRING; -static PyObject *__pyx_n_s__CHARSET; -static PyObject *__pyx_n_s__COMBINE_EXPLODE; -static PyObject *__pyx_n_s__COMBINE_STEP; -static PyObject *__pyx_n_s__DATA_SURFACE; -static PyObject *__pyx_n_s__DECIMAL_FORMAT; -static PyObject *__pyx_n_s__EXPLODE_DATA; -static PyObject *__pyx_n_s__EXPLODE_STEP; -static PyObject *__pyx_n_s__Exception; -static PyObject *__pyx_n_s__FULL_FORMAT; -static PyObject *__pyx_n_s__HEXADECIMAL_FORMAT; -static PyObject *__pyx_n_s__INTERNAL_ERROR; -static PyObject *__pyx_n_s__INVALID_INPUT; -static PyObject *__pyx_n_s__LANGUAGE_C; -static PyObject *__pyx_n_s__LANGUAGE_PERL; -static PyObject *__pyx_n_s__MAXIMUM_ERROR; -static PyObject *__pyx_n_s__NOT_A_CHARACTER; -static PyObject *__pyx_n_s__NOT_CANONICAL; -static PyObject *__pyx_n_s__NO_CHARSET_DATA; -static PyObject *__pyx_n_s__NO_ERROR; -static PyObject *__pyx_n_s__NO_FORMAT; -static PyObject *__pyx_n_s__NO_ICONV_FLAG; -static PyObject *__pyx_n_s__NO_LANGUAGE; -static PyObject *__pyx_n_s__NO_STEP_TABLE; -static PyObject *__pyx_n_s__NO_SYMBOL_TYPE; -static PyObject *__pyx_n_s__NUL; -static PyObject *__pyx_n_s__OCTAL_FORMAT; -static PyObject *__pyx_n_s__Recode; -static PyObject *__pyx_n_s__SEQUENCE_IN_MEMORY; -static PyObject *__pyx_n_s__SEQUENCE_WITH_FILES; -static PyObject *__pyx_n_s__SEQUENCE_WITH_PIPE; -static PyObject *__pyx_n_s__SIZE_1; -static PyObject *__pyx_n_s__SIZE_2; -static PyObject *__pyx_n_s__SIZE_4; -static PyObject *__pyx_n_s__SIZE_N; -static PyObject *__pyx_n_s__STRATEGY_UNDECIDED; -static PyObject *__pyx_n_s__STRING_TO_UCS2; -static PyObject *__pyx_n_s__STRIP_DATA; -static PyObject *__pyx_n_s__STRIP_SIZE; -static PyObject *__pyx_n_s__SWAP_NO; -static PyObject *__pyx_n_s__SWAP_UNDECIDED; -static PyObject *__pyx_n_s__SWAP_YES; -static PyObject *__pyx_n_s__SYSTEM_ERROR; -static PyObject *__pyx_n_s__TREE_SURFACE; -static PyObject *__pyx_n_s__UCS2_TO_BYTE; -static PyObject *__pyx_n_s__UCS2_TO_STRING; -static PyObject *__pyx_n_s__UNTRANSLATABLE; -static PyObject *__pyx_n_s__USER_ERROR; -static PyObject *__pyx_n_s____class__; -static PyObject *__pyx_n_s____main__; -static PyObject *__pyx_n_s____metaclass__; -static PyObject *__pyx_n_s____module__; -static PyObject *__pyx_n_s____qualname__; -static PyObject *__pyx_n_s____test__; -static PyObject *__pyx_n_s__auto_abort; -static PyObject *__pyx_n_s__charset; -static PyObject *__pyx_n_s__command; -static PyObject *__pyx_n_s__error; -static PyObject *__pyx_n_s__format; -static PyObject *__pyx_n_s__iconv; -static PyObject *__pyx_n_s__input; -static PyObject *__pyx_n_s__language; -static PyObject *__pyx_n_s__outer; -static PyObject *__pyx_n_s__scan; -static PyObject *__pyx_n_s__strict; -static PyObject *__pyx_n_s__string; -static PyObject *__pyx_n_s__xDONE; -static PyObject *__pyx_n_s__xELSE; -static PyObject *__pyx_k_1; -static PyObject *__pyx_k_2; -static PyObject *__pyx_k_3; -static PyObject *__pyx_k_4; - -/* Python wrapper */ -static int __pyx_pw_6Recode_5Outer_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_6Recode_5Outer_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_auto_abort = 0; - PyObject *__pyx_v_iconv = 0; - PyObject *__pyx_v_strict = 0; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__auto_abort,&__pyx_n_s__iconv,&__pyx_n_s__strict,0}; - PyObject* values[3] = {0,0,0}; - values[0] = __pyx_k_1; - values[1] = __pyx_k_2; - values[2] = __pyx_k_3; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (kw_args > 0) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__auto_abort); - if (value) { values[0] = value; kw_args--; } - } - case 1: - if (kw_args > 0) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__iconv); - if (value) { values[1] = value; kw_args--; } - } - case 2: - if (kw_args > 0) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__strict); - if (value) { values[2] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } else { - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_auto_abort = values[0]; - __pyx_v_iconv = values[1]; - __pyx_v_strict = values[2]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("Recode.Outer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return -1; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6Recode_5Outer___init__(((struct __pyx_obj_6Recode_Outer *)__pyx_v_self), __pyx_v_auto_abort, __pyx_v_iconv, __pyx_v_strict); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "Recode.pyx":553 - * cdef RECODE_OUTER outer - * - * def __init__(self, auto_abort=False, iconv=False, strict=False): # <<<<<<<<<<<<<< - * cdef int flags - * cdef RECODE_SINGLE single - */ - -static int __pyx_pf_6Recode_5Outer___init__(struct __pyx_obj_6Recode_Outer *__pyx_v_self, PyObject *__pyx_v_auto_abort, PyObject *__pyx_v_iconv, PyObject *__pyx_v_strict) { - int __pyx_v_flags; - RECODE_SINGLE __pyx_v_single; - int __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - struct recode_single *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 0); - - /* "Recode.pyx":556 - * cdef int flags - * cdef RECODE_SINGLE single - * flags = 0 # <<<<<<<<<<<<<< - * if auto_abort: - * flags = flags | RECODE_AUTO_ABORT_FLAG - */ - __pyx_v_flags = 0; - - /* "Recode.pyx":557 - * cdef RECODE_SINGLE single - * flags = 0 - * if auto_abort: # <<<<<<<<<<<<<< - * flags = flags | RECODE_AUTO_ABORT_FLAG - * if not iconv: - */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_auto_abort); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__pyx_t_1) { - - /* "Recode.pyx":558 - * flags = 0 - * if auto_abort: - * flags = flags | RECODE_AUTO_ABORT_FLAG # <<<<<<<<<<<<<< - * if not iconv: - * flags = flags | RECODE_NO_ICONV_FLAG - */ - __pyx_v_flags = (__pyx_v_flags | RECODE_AUTO_ABORT_FLAG); - goto __pyx_L3; - } - __pyx_L3:; - - /* "Recode.pyx":559 - * if auto_abort: - * flags = flags | RECODE_AUTO_ABORT_FLAG - * if not iconv: # <<<<<<<<<<<<<< - * flags = flags | RECODE_NO_ICONV_FLAG - * self.outer = recode_new_outer(flags) - */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_iconv); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = ((!__pyx_t_1) != 0); - if (__pyx_t_2) { - - /* "Recode.pyx":560 - * flags = flags | RECODE_AUTO_ABORT_FLAG - * if not iconv: - * flags = flags | RECODE_NO_ICONV_FLAG # <<<<<<<<<<<<<< - * self.outer = recode_new_outer(flags) - * if strict: - */ - __pyx_v_flags = (__pyx_v_flags | RECODE_NO_ICONV_FLAG); - goto __pyx_L4; - } - __pyx_L4:; - - /* "Recode.pyx":561 - * if not iconv: - * flags = flags | RECODE_NO_ICONV_FLAG - * self.outer = recode_new_outer(flags) # <<<<<<<<<<<<<< - * if strict: - * single = self.outer.single_list - */ - __pyx_v_self->outer = recode_new_outer(__pyx_v_flags); - - /* "Recode.pyx":562 - * flags = flags | RECODE_NO_ICONV_FLAG - * self.outer = recode_new_outer(flags) - * if strict: # <<<<<<<<<<<<<< - * single = self.outer.single_list - * while single is not NULL: - */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_strict); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__pyx_t_2) { - - /* "Recode.pyx":563 - * self.outer = recode_new_outer(flags) - * if strict: - * single = self.outer.single_list # <<<<<<<<<<<<<< - * while single is not NULL: - * single.fallback_routine = NULL - */ - __pyx_t_3 = __pyx_v_self->outer->single_list; - __pyx_v_single = __pyx_t_3; - - /* "Recode.pyx":564 - * if strict: - * single = self.outer.single_list - * while single is not NULL: # <<<<<<<<<<<<<< - * single.fallback_routine = NULL - * single = single.next - */ - while (1) { - __pyx_t_2 = ((__pyx_v_single != NULL) != 0); - if (!__pyx_t_2) break; - - /* "Recode.pyx":565 - * single = self.outer.single_list - * while single is not NULL: - * single.fallback_routine = NULL # <<<<<<<<<<<<<< - * single = single.next - * - */ - __pyx_v_single->fallback_routine = NULL; - - /* "Recode.pyx":566 - * while single is not NULL: - * single.fallback_routine = NULL - * single = single.next # <<<<<<<<<<<<<< - * - * def __dealloc__(self): - */ - __pyx_t_3 = __pyx_v_single->next; - __pyx_v_single = __pyx_t_3; - } - goto __pyx_L5; - } - __pyx_L5:; - - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_AddTraceback("Recode.Outer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* Python wrapper */ -static void __pyx_pw_6Recode_5Outer_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_6Recode_5Outer_3__dealloc__(PyObject *__pyx_v_self) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); - __pyx_pf_6Recode_5Outer_2__dealloc__(((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)); - __Pyx_RefNannyFinishContext(); -} - -/* "Recode.pyx":568 - * single = single.next - * - * def __dealloc__(self): # <<<<<<<<<<<<<< - * recode_delete_outer(self.outer) - * - */ - -static void __pyx_pf_6Recode_5Outer_2__dealloc__(struct __pyx_obj_6Recode_Outer *__pyx_v_self) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__dealloc__", 0); - - /* "Recode.pyx":569 - * - * def __dealloc__(self): - * recode_delete_outer(self.outer) # <<<<<<<<<<<<<< - * - * def default_charset(self): - */ - recode_delete_outer(__pyx_v_self->outer); - - __Pyx_RefNannyFinishContext(); -} - -/* Python wrapper */ -static PyObject *__pyx_pw_6Recode_5Outer_5default_charset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6Recode_5Outer_5default_charset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("default_charset (wrapper)", 0); - __pyx_r = __pyx_pf_6Recode_5Outer_4default_charset(((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "Recode.pyx":571 - * recode_delete_outer(self.outer) - * - * def default_charset(self): # <<<<<<<<<<<<<< - * return locale_charset() - * - */ - -static PyObject *__pyx_pf_6Recode_5Outer_4default_charset(CYTHON_UNUSED struct __pyx_obj_6Recode_Outer *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("default_charset", 0); - - /* "Recode.pyx":572 - * - * def default_charset(self): - * return locale_charset() # <<<<<<<<<<<<<< - * - * def all_charsets(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyBytes_FromString(locale_charset()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_r = ((PyObject *)__pyx_t_1); - __pyx_t_1 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("Recode.Outer.default_charset", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* Python wrapper */ -static PyObject *__pyx_pw_6Recode_5Outer_7all_charsets(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6Recode_5Outer_7all_charsets(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("all_charsets (wrapper)", 0); - __pyx_r = __pyx_pf_6Recode_5Outer_6all_charsets(((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "Recode.pyx":574 - * return locale_charset() - * - * def all_charsets(self): # <<<<<<<<<<<<<< - * list = [] - * cdef RECODE_SYMBOL symbol - */ - -static PyObject *__pyx_pf_6Recode_5Outer_6all_charsets(struct __pyx_obj_6Recode_Outer *__pyx_v_self) { - PyObject *__pyx_v_list = NULL; - RECODE_SYMBOL __pyx_v_symbol; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - RECODE_SYMBOL __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - int __pyx_t_5; - int __pyx_t_6; - int __pyx_t_7; - int __pyx_t_8; - struct recode_symbol *__pyx_t_9; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("all_charsets", 0); - - /* "Recode.pyx":575 - * - * def all_charsets(self): - * list = [] # <<<<<<<<<<<<<< - * cdef RECODE_SYMBOL symbol - * symbol = self.outer.symbol_list - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_list = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "Recode.pyx":577 - * list = [] - * cdef RECODE_SYMBOL symbol - * symbol = self.outer.symbol_list # <<<<<<<<<<<<<< - * while symbol is not NULL: - * if (symbol.type == RECODE_CHARSET - */ - __pyx_t_2 = __pyx_v_self->outer->symbol_list; - __pyx_v_symbol = __pyx_t_2; - - /* "Recode.pyx":578 - * cdef RECODE_SYMBOL symbol - * symbol = self.outer.symbol_list - * while symbol is not NULL: # <<<<<<<<<<<<<< - * if (symbol.type == RECODE_CHARSET - * and symbol is not self.outer.iconv_pivot - */ - while (1) { - __pyx_t_3 = ((__pyx_v_symbol != NULL) != 0); - if (!__pyx_t_3) break; - - /* "Recode.pyx":580 - * while symbol is not NULL: - * if (symbol.type == RECODE_CHARSET - * and symbol is not self.outer.iconv_pivot # <<<<<<<<<<<<<< - * and symbol is not self.outer.data_symbol - * and symbol is not self.outer.tree_symbol): - */ - __pyx_t_3 = ((__pyx_v_symbol->type == RECODE_CHARSET) != 0); - if (__pyx_t_3) { - - /* "Recode.pyx":581 - * if (symbol.type == RECODE_CHARSET - * and symbol is not self.outer.iconv_pivot - * and symbol is not self.outer.data_symbol # <<<<<<<<<<<<<< - * and symbol is not self.outer.tree_symbol): - * list.append(symbol.name) - */ - __pyx_t_4 = ((__pyx_v_symbol != __pyx_v_self->outer->iconv_pivot) != 0); - if (__pyx_t_4) { - - /* "Recode.pyx":582 - * and symbol is not self.outer.iconv_pivot - * and symbol is not self.outer.data_symbol - * and symbol is not self.outer.tree_symbol): # <<<<<<<<<<<<<< - * list.append(symbol.name) - * symbol = symbol.next - */ - __pyx_t_5 = ((__pyx_v_symbol != __pyx_v_self->outer->data_symbol) != 0); - if (__pyx_t_5) { - __pyx_t_6 = ((__pyx_v_symbol != __pyx_v_self->outer->tree_symbol) != 0); - __pyx_t_7 = __pyx_t_6; - } else { - __pyx_t_7 = __pyx_t_5; - } - __pyx_t_5 = __pyx_t_7; - } else { - __pyx_t_5 = __pyx_t_4; - } - __pyx_t_4 = __pyx_t_5; - } else { - __pyx_t_4 = __pyx_t_3; - } - if (__pyx_t_4) { - - /* "Recode.pyx":583 - * and symbol is not self.outer.data_symbol - * and symbol is not self.outer.tree_symbol): - * list.append(symbol.name) # <<<<<<<<<<<<<< - * symbol = symbol.next - * return list - */ - __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_symbol->name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_list, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - goto __pyx_L5; - } - __pyx_L5:; - - /* "Recode.pyx":584 - * and symbol is not self.outer.tree_symbol): - * list.append(symbol.name) - * symbol = symbol.next # <<<<<<<<<<<<<< - * return list - * - */ - __pyx_t_9 = __pyx_v_symbol->next; - __pyx_v_symbol = __pyx_t_9; - } - - /* "Recode.pyx":585 - * list.append(symbol.name) - * symbol = symbol.next - * return list # <<<<<<<<<<<<<< - * - * def all_surfaces(self): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_list)); - __pyx_r = ((PyObject *)__pyx_v_list); - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("Recode.Outer.all_charsets", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_list); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* Python wrapper */ -static PyObject *__pyx_pw_6Recode_5Outer_9all_surfaces(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6Recode_5Outer_9all_surfaces(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("all_surfaces (wrapper)", 0); - __pyx_r = __pyx_pf_6Recode_5Outer_8all_surfaces(((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "Recode.pyx":587 - * return list - * - * def all_surfaces(self): # <<<<<<<<<<<<<< - * list = [] - * cdef RECODE_SYMBOL symbol - */ - -static PyObject *__pyx_pf_6Recode_5Outer_8all_surfaces(struct __pyx_obj_6Recode_Outer *__pyx_v_self) { - PyObject *__pyx_v_list = NULL; - RECODE_SYMBOL __pyx_v_symbol; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - RECODE_SYMBOL __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - struct recode_symbol *__pyx_t_5; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("all_surfaces", 0); - - /* "Recode.pyx":588 - * - * def all_surfaces(self): - * list = [] # <<<<<<<<<<<<<< - * cdef RECODE_SYMBOL symbol - * symbol = self.outer.symbol_list - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_list = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "Recode.pyx":590 - * list = [] - * cdef RECODE_SYMBOL symbol - * symbol = self.outer.symbol_list # <<<<<<<<<<<<<< - * while symbol is not NULL: - * if symbol.type != RECODE_CHARSET: - */ - __pyx_t_2 = __pyx_v_self->outer->symbol_list; - __pyx_v_symbol = __pyx_t_2; - - /* "Recode.pyx":591 - * cdef RECODE_SYMBOL symbol - * symbol = self.outer.symbol_list - * while symbol is not NULL: # <<<<<<<<<<<<<< - * if symbol.type != RECODE_CHARSET: - * list.append(symbol.name) - */ - while (1) { - __pyx_t_3 = ((__pyx_v_symbol != NULL) != 0); - if (!__pyx_t_3) break; - - /* "Recode.pyx":592 - * symbol = self.outer.symbol_list - * while symbol is not NULL: - * if symbol.type != RECODE_CHARSET: # <<<<<<<<<<<<<< - * list.append(symbol.name) - * symbol = symbol.next - */ - __pyx_t_3 = ((__pyx_v_symbol->type != RECODE_CHARSET) != 0); - if (__pyx_t_3) { - - /* "Recode.pyx":593 - * while symbol is not NULL: - * if symbol.type != RECODE_CHARSET: - * list.append(symbol.name) # <<<<<<<<<<<<<< - * symbol = symbol.next - * return list - */ - __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_symbol->name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_list, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - goto __pyx_L5; - } - __pyx_L5:; - - /* "Recode.pyx":594 - * if symbol.type != RECODE_CHARSET: - * list.append(symbol.name) - * symbol = symbol.next # <<<<<<<<<<<<<< - * return list - * - */ - __pyx_t_5 = __pyx_v_symbol->next; - __pyx_v_symbol = __pyx_t_5; - } - - /* "Recode.pyx":595 - * list.append(symbol.name) - * symbol = symbol.next - * return list # <<<<<<<<<<<<<< - * - * def concise_charset(self, format=NO_FORMAT): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_list)); - __pyx_r = ((PyObject *)__pyx_v_list); - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("Recode.Outer.all_surfaces", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_list); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* Python wrapper */ -static PyObject *__pyx_pw_6Recode_5Outer_11concise_charset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6Recode_5Outer_11concise_charset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_format = 0; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("concise_charset (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__format,0}; - PyObject* values[1] = {0}; - values[0] = __pyx_k_4; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (kw_args > 0) { - PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__format); - if (value) { values[0] = value; kw_args--; } - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "concise_charset") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } else { - switch (PyTuple_GET_SIZE(__pyx_args)) { - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_format = values[0]; - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("concise_charset", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("Recode.Outer.concise_charset", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6Recode_5Outer_10concise_charset(((struct __pyx_obj_6Recode_Outer *)__pyx_v_self), __pyx_v_format); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "Recode.pyx":597 - * return list - * - * def concise_charset(self, format=NO_FORMAT): # <<<<<<<<<<<<<< - * ok = list_concise_charset(self.outer, NULL, format) - * if not ok: - */ - -static PyObject *__pyx_pf_6Recode_5Outer_10concise_charset(struct __pyx_obj_6Recode_Outer *__pyx_v_self, PyObject *__pyx_v_format) { - PyObject *__pyx_v_ok = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - enum recode_list_format __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - int __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("concise_charset", 0); - - /* "Recode.pyx":598 - * - * def concise_charset(self, format=NO_FORMAT): - * ok = list_concise_charset(self.outer, NULL, format) # <<<<<<<<<<<<<< - * if not ok: - * raise error - */ - __pyx_t_1 = ((enum recode_list_format)PyInt_AsLong(__pyx_v_format)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_2 = PyInt_FromLong(list_concise_charset(__pyx_v_self->outer, NULL, __pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_ok = __pyx_t_2; - __pyx_t_2 = 0; - - /* "Recode.pyx":599 - * def concise_charset(self, format=NO_FORMAT): - * ok = list_concise_charset(self.outer, NULL, format) - * if not ok: # <<<<<<<<<<<<<< - * raise error - * - */ - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ok); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_4 = ((!__pyx_t_3) != 0); - if (__pyx_t_4) { - - /* "Recode.pyx":600 - * ok = list_concise_charset(self.outer, NULL, format) - * if not ok: - * raise error # <<<<<<<<<<<<<< - * - * def full_charset(self): - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__error); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L3; - } - __pyx_L3:; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("Recode.Outer.concise_charset", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_ok); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* Python wrapper */ -static PyObject *__pyx_pw_6Recode_5Outer_13full_charset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6Recode_5Outer_13full_charset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("full_charset (wrapper)", 0); - __pyx_r = __pyx_pf_6Recode_5Outer_12full_charset(((struct __pyx_obj_6Recode_Outer *)__pyx_v_self)); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "Recode.pyx":602 - * raise error - * - * def full_charset(self): # <<<<<<<<<<<<<< - * ok = list_full_charset(self.outer, NULL) - * if not ok: - */ - -static PyObject *__pyx_pf_6Recode_5Outer_12full_charset(struct __pyx_obj_6Recode_Outer *__pyx_v_self) { - PyObject *__pyx_v_ok = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("full_charset", 0); - - /* "Recode.pyx":603 - * - * def full_charset(self): - * ok = list_full_charset(self.outer, NULL) # <<<<<<<<<<<<<< - * if not ok: - * raise error - */ - __pyx_t_1 = PyInt_FromLong(list_full_charset(__pyx_v_self->outer, NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_ok = __pyx_t_1; - __pyx_t_1 = 0; - - /* "Recode.pyx":604 - * def full_charset(self): - * ok = list_full_charset(self.outer, NULL) - * if not ok: # <<<<<<<<<<<<<< - * raise error - * - */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ok); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_3 = ((!__pyx_t_2) != 0); - if (__pyx_t_3) { - - /* "Recode.pyx":605 - * ok = list_full_charset(self.outer, NULL) - * if not ok: - * raise error # <<<<<<<<<<<<<< - * - * # Lazy, all in one call. - */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L3; - } - __pyx_L3:; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("Recode.Outer.full_charset", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_ok); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* Python wrapper */ -static PyObject *__pyx_pw_6Recode_5Outer_15recode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6Recode_5Outer_15recode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - char *__pyx_v_command; - char *__pyx_v_input; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("recode (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__command,&__pyx_n_s__input,0}; - PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__command)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__input)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("recode", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "recode") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - } - __pyx_v_command = __Pyx_PyObject_AsString(values[0]); if (unlikely((!__pyx_v_command) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_input = __Pyx_PyObject_AsString(values[1]); if (unlikely((!__pyx_v_input) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("recode", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("Recode.Outer.recode", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6Recode_5Outer_14recode(((struct __pyx_obj_6Recode_Outer *)__pyx_v_self), __pyx_v_command, __pyx_v_input); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "Recode.pyx":608 - * - * # Lazy, all in one call. - * def recode(self, char *command, char *input): # <<<<<<<<<<<<<< - * request = Request(self) - * request.scan(command) - */ - -static PyObject *__pyx_pf_6Recode_5Outer_14recode(struct __pyx_obj_6Recode_Outer *__pyx_v_self, char *__pyx_v_command, char *__pyx_v_input) { - struct __pyx_obj_6Recode_Request *__pyx_v_request = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("recode", 0); - - /* "Recode.pyx":609 - * # Lazy, all in one call. - * def recode(self, char *command, char *input): - * request = Request(self) # <<<<<<<<<<<<<< - * request.scan(command) - * return request.string(input) - */ - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(((PyObject *)__pyx_v_self)); - PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); - __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); - __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_6Recode_Request)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_request = ((struct __pyx_obj_6Recode_Request *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "Recode.pyx":610 - * def recode(self, char *command, char *input): - * request = Request(self) - * request.scan(command) # <<<<<<<<<<<<<< - * return request.string(input) - * - */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_request), __pyx_n_s__scan); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_command); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_1)); - __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); - __pyx_t_1 = 0; - __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":611 - * request = Request(self) - * request.scan(command) - * return request.string(input) # <<<<<<<<<<<<<< - * - * # Recode library at REQUEST level. - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_request), __pyx_n_s__string); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_input); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3)); - __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); - __pyx_t_3 = 0; - __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("Recode.Outer.recode", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_request); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* Python wrapper */ -static int __pyx_pw_6Recode_7Request_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_6Recode_7Request_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - struct __pyx_obj_6Recode_Outer *__pyx_v_outer = 0; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__outer,0}; - PyObject* values[1] = {0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__outer)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - } - __pyx_v_outer = ((struct __pyx_obj_6Recode_Outer *)values[0]); - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("Recode.Request.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return -1; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outer), __pyx_ptype_6Recode_Outer, 1, "outer", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_r = __pyx_pf_6Recode_7Request___init__(((struct __pyx_obj_6Recode_Request *)__pyx_v_self), __pyx_v_outer); - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "Recode.pyx":618 - * cdef RECODE_REQUEST request - * - * def __init__(self, Outer outer): # <<<<<<<<<<<<<< - * self.request = recode_new_request(outer.outer) - * - */ - -static int __pyx_pf_6Recode_7Request___init__(struct __pyx_obj_6Recode_Request *__pyx_v_self, struct __pyx_obj_6Recode_Outer *__pyx_v_outer) { - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__", 0); - - /* "Recode.pyx":619 - * - * def __init__(self, Outer outer): - * self.request = recode_new_request(outer.outer) # <<<<<<<<<<<<<< - * - * def __dealloc__(self): - */ - __pyx_v_self->request = recode_new_request(__pyx_v_outer->outer); - - __pyx_r = 0; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* Python wrapper */ -static void __pyx_pw_6Recode_7Request_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ -static void __pyx_pw_6Recode_7Request_3__dealloc__(PyObject *__pyx_v_self) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); - __pyx_pf_6Recode_7Request_2__dealloc__(((struct __pyx_obj_6Recode_Request *)__pyx_v_self)); - __Pyx_RefNannyFinishContext(); -} - -/* "Recode.pyx":621 - * self.request = recode_new_request(outer.outer) - * - * def __dealloc__(self): # <<<<<<<<<<<<<< - * recode_delete_request(self.request) - * - */ - -static void __pyx_pf_6Recode_7Request_2__dealloc__(struct __pyx_obj_6Recode_Request *__pyx_v_self) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__dealloc__", 0); - - /* "Recode.pyx":622 - * - * def __dealloc__(self): - * recode_delete_request(self.request) # <<<<<<<<<<<<<< - * - * def set_verbose(self, flag): - */ - recode_delete_request(__pyx_v_self->request); - - __Pyx_RefNannyFinishContext(); -} - -/* Python wrapper */ -static PyObject *__pyx_pw_6Recode_7Request_5set_verbose(PyObject *__pyx_v_self, PyObject *__pyx_v_flag); /*proto*/ -static PyObject *__pyx_pw_6Recode_7Request_5set_verbose(PyObject *__pyx_v_self, PyObject *__pyx_v_flag) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_verbose (wrapper)", 0); - __pyx_r = __pyx_pf_6Recode_7Request_4set_verbose(((struct __pyx_obj_6Recode_Request *)__pyx_v_self), ((PyObject *)__pyx_v_flag)); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "Recode.pyx":624 - * recode_delete_request(self.request) - * - * def set_verbose(self, flag): # <<<<<<<<<<<<<< - * previous = self.request.verbose_flag != 0 - * self.request.verbose_flag = int(flag) - */ - -static PyObject *__pyx_pf_6Recode_7Request_4set_verbose(struct __pyx_obj_6Recode_Request *__pyx_v_self, PyObject *__pyx_v_flag) { - PyObject *__pyx_v_previous = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - enum __pyx_t_6Recode_bool __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("set_verbose", 0); - - /* "Recode.pyx":625 - * - * def set_verbose(self, flag): - * previous = self.request.verbose_flag != 0 # <<<<<<<<<<<<<< - * self.request.verbose_flag = int(flag) - * return previous - */ - __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_self->request->verbose_flag != 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_previous = __pyx_t_1; - __pyx_t_1 = 0; - - /* "Recode.pyx":626 - * def set_verbose(self, flag): - * previous = self.request.verbose_flag != 0 - * self.request.verbose_flag = int(flag) # <<<<<<<<<<<<<< - * return previous - * - */ - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v_flag); - PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_flag); - __Pyx_GIVEREF(__pyx_v_flag); - __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_3 = ((enum __pyx_t_6Recode_bool)PyInt_AsLong(__pyx_t_2)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_self->request->verbose_flag = __pyx_t_3; - - /* "Recode.pyx":627 - * previous = self.request.verbose_flag != 0 - * self.request.verbose_flag = int(flag) - * return previous # <<<<<<<<<<<<<< - * - * def scan(self, char *text): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_previous); - __pyx_r = __pyx_v_previous; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("Recode.Request.set_verbose", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_previous); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* Python wrapper */ -static PyObject *__pyx_pw_6Recode_7Request_7scan(PyObject *__pyx_v_self, PyObject *__pyx_arg_text); /*proto*/ -static PyObject *__pyx_pw_6Recode_7Request_7scan(PyObject *__pyx_v_self, PyObject *__pyx_arg_text) { - char *__pyx_v_text; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("scan (wrapper)", 0); - assert(__pyx_arg_text); { - __pyx_v_text = __Pyx_PyObject_AsString(__pyx_arg_text); if (unlikely((!__pyx_v_text) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - __Pyx_AddTraceback("Recode.Request.scan", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6Recode_7Request_6scan(((struct __pyx_obj_6Recode_Request *)__pyx_v_self), ((char *)__pyx_v_text)); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "Recode.pyx":629 - * return previous - * - * def scan(self, char *text): # <<<<<<<<<<<<<< - * ok = recode_scan_request(self.request, text) - * if not ok: - */ - -static PyObject *__pyx_pf_6Recode_7Request_6scan(struct __pyx_obj_6Recode_Request *__pyx_v_self, char *__pyx_v_text) { - PyObject *__pyx_v_ok = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("scan", 0); - - /* "Recode.pyx":630 - * - * def scan(self, char *text): - * ok = recode_scan_request(self.request, text) # <<<<<<<<<<<<<< - * if not ok: - * raise error - */ - __pyx_t_1 = PyInt_FromLong(recode_scan_request(__pyx_v_self->request, __pyx_v_text)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_ok = __pyx_t_1; - __pyx_t_1 = 0; - - /* "Recode.pyx":631 - * def scan(self, char *text): - * ok = recode_scan_request(self.request, text) - * if not ok: # <<<<<<<<<<<<<< - * raise error - * - */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ok); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_3 = ((!__pyx_t_2) != 0); - if (__pyx_t_3) { - - /* "Recode.pyx":632 - * ok = recode_scan_request(self.request, text) - * if not ok: - * raise error # <<<<<<<<<<<<<< - * - * def pair_sequence(self): - */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__error); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L3; - } - __pyx_L3:; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("Recode.Request.scan", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_ok); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* Python wrapper */ -static PyObject *__pyx_pw_6Recode_7Request_9pair_sequence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -static PyObject *__pyx_pw_6Recode_7Request_9pair_sequence(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("pair_sequence (wrapper)", 0); - __pyx_r = __pyx_pf_6Recode_7Request_8pair_sequence(((struct __pyx_obj_6Recode_Request *)__pyx_v_self)); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "Recode.pyx":634 - * raise error - * - * def pair_sequence(self): # <<<<<<<<<<<<<< - * list = [] - * cdef recode_step step - */ - -static PyObject *__pyx_pf_6Recode_7Request_8pair_sequence(struct __pyx_obj_6Recode_Request *__pyx_v_self) { - PyObject *__pyx_v_list = NULL; - struct recode_step __pyx_v_step; - unsigned int __pyx_v_counter; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - short __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("pair_sequence", 0); - - /* "Recode.pyx":635 - * - * def pair_sequence(self): - * list = [] # <<<<<<<<<<<<<< - * cdef recode_step step - * cdef unsigned counter - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_list = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "Recode.pyx":638 - * cdef recode_step step - * cdef unsigned counter - * for counter from 0 <= counter < self.request.sequence_length: # <<<<<<<<<<<<<< - * step = self.request.sequence_array[counter] - * list.append((step.before.name, step.after.name)) - */ - __pyx_t_2 = __pyx_v_self->request->sequence_length; - for (__pyx_v_counter = 0; __pyx_v_counter < __pyx_t_2; __pyx_v_counter++) { - - /* "Recode.pyx":639 - * cdef unsigned counter - * for counter from 0 <= counter < self.request.sequence_length: - * step = self.request.sequence_array[counter] # <<<<<<<<<<<<<< - * list.append((step.before.name, step.after.name)) - * return list - */ - __pyx_v_step = (__pyx_v_self->request->sequence_array[__pyx_v_counter]); - - /* "Recode.pyx":640 - * for counter from 0 <= counter < self.request.sequence_length: - * step = self.request.sequence_array[counter] - * list.append((step.before.name, step.after.name)) # <<<<<<<<<<<<<< - * return list - * - */ - __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_step.before->name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_step.after->name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_3)); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_4); - PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_1)); - __Pyx_GIVEREF(((PyObject *)__pyx_t_1)); - PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_t_3)); - __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_list, ((PyObject *)__pyx_t_4)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; - } - - /* "Recode.pyx":641 - * step = self.request.sequence_array[counter] - * list.append((step.before.name, step.after.name)) - * return list # <<<<<<<<<<<<<< - * - * def format_table(self, int language, char *charset): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject *)__pyx_v_list)); - __pyx_r = ((PyObject *)__pyx_v_list); - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("Recode.Request.pair_sequence", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_list); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* Python wrapper */ -static PyObject *__pyx_pw_6Recode_7Request_11format_table(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_pw_6Recode_7Request_11format_table(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - int __pyx_v_language; - char *__pyx_v_charset; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("format_table (wrapper)", 0); - { - static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__language,&__pyx_n_s__charset,0}; - PyObject* values[2] = {0,0}; - if (unlikely(__pyx_kwds)) { - Py_ssize_t kw_args; - const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); - switch (pos_args) { - case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = PyDict_Size(__pyx_kwds); - switch (pos_args) { - case 0: - if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__language)) != 0)) kw_args--; - else goto __pyx_L5_argtuple_error; - case 1: - if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__charset)) != 0)) kw_args--; - else { - __Pyx_RaiseArgtupleInvalid("format_table", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } - if (unlikely(kw_args > 0)) { - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "format_table") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = PyTuple_GET_ITEM(__pyx_args, 0); - values[1] = PyTuple_GET_ITEM(__pyx_args, 1); - } - __pyx_v_language = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_language == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_v_charset = __Pyx_PyObject_AsString(values[1]); if (unlikely((!__pyx_v_charset) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("format_table", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - __pyx_L3_error:; - __Pyx_AddTraceback("Recode.Request.format_table", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6Recode_7Request_10format_table(((struct __pyx_obj_6Recode_Request *)__pyx_v_self), __pyx_v_language, __pyx_v_charset); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "Recode.pyx":643 - * return list - * - * def format_table(self, int language, char *charset): # <<<<<<<<<<<<<< - * cdef RECODE_OUTER outer - * cdef bool saved - */ - -static PyObject *__pyx_pf_6Recode_7Request_10format_table(struct __pyx_obj_6Recode_Request *__pyx_v_self, int __pyx_v_language, char *__pyx_v_charset) { - RECODE_OUTER __pyx_v_outer; - enum __pyx_t_6Recode_bool __pyx_v_saved; - PyObject *__pyx_v_ok = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - RECODE_OUTER __pyx_t_1; - enum __pyx_t_6Recode_bool __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - int __pyx_t_5; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("format_table", 0); - - /* "Recode.pyx":646 - * cdef RECODE_OUTER outer - * cdef bool saved - * outer = self.request.outer # <<<<<<<<<<<<<< - * saved = outer.iconv_pivot.ignore - * outer.iconv_pivot.ignore = true - */ - __pyx_t_1 = __pyx_v_self->request->outer; - __pyx_v_outer = __pyx_t_1; - - /* "Recode.pyx":647 - * cdef bool saved - * outer = self.request.outer - * saved = outer.iconv_pivot.ignore # <<<<<<<<<<<<<< - * outer.iconv_pivot.ignore = true - * ok = recode_format_table( - */ - __pyx_t_2 = __pyx_v_outer->iconv_pivot->ignore; - __pyx_v_saved = __pyx_t_2; - - /* "Recode.pyx":648 - * outer = self.request.outer - * saved = outer.iconv_pivot.ignore - * outer.iconv_pivot.ignore = true # <<<<<<<<<<<<<< - * ok = recode_format_table( - * self.request, language, charset) - */ - __pyx_v_outer->iconv_pivot->ignore = __pyx_e_6Recode_true; - - /* "Recode.pyx":650 - * outer.iconv_pivot.ignore = true - * ok = recode_format_table( - * self.request, language, charset) # <<<<<<<<<<<<<< - * outer.iconv_pivot.ignore = saved - * if not ok: - */ - __pyx_t_3 = PyInt_FromLong(recode_format_table(__pyx_v_self->request, ((enum recode_programming_language)__pyx_v_language), __pyx_v_charset)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_ok = __pyx_t_3; - __pyx_t_3 = 0; - - /* "Recode.pyx":651 - * ok = recode_format_table( - * self.request, language, charset) - * outer.iconv_pivot.ignore = saved # <<<<<<<<<<<<<< - * if not ok: - * raise error - */ - __pyx_v_outer->iconv_pivot->ignore = __pyx_v_saved; - - /* "Recode.pyx":652 - * self.request, language, charset) - * outer.iconv_pivot.ignore = saved - * if not ok: # <<<<<<<<<<<<<< - * raise error - * - */ - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_ok); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_t_5 = ((!__pyx_t_4) != 0); - if (__pyx_t_5) { - - /* "Recode.pyx":653 - * outer.iconv_pivot.ignore = saved - * if not ok: - * raise error # <<<<<<<<<<<<<< - * - * def string(self, char *text): - */ - __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__error); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L3; - } - __pyx_L3:; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("Recode.Request.format_table", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_ok); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* Python wrapper */ -static PyObject *__pyx_pw_6Recode_7Request_13string(PyObject *__pyx_v_self, PyObject *__pyx_arg_text); /*proto*/ -static PyObject *__pyx_pw_6Recode_7Request_13string(PyObject *__pyx_v_self, PyObject *__pyx_arg_text) { - char *__pyx_v_text; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("string (wrapper)", 0); - assert(__pyx_arg_text); { - __pyx_v_text = __Pyx_PyObject_AsString(__pyx_arg_text); if (unlikely((!__pyx_v_text) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L3_error;} - } - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - __Pyx_AddTraceback("Recode.Request.string", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_6Recode_7Request_12string(((struct __pyx_obj_6Recode_Request *)__pyx_v_self), ((char *)__pyx_v_text)); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "Recode.pyx":655 - * raise error - * - * def string(self, char *text): # <<<<<<<<<<<<<< - * cdef char *result - * result = recode_string(self.request, text) - */ - -static PyObject *__pyx_pf_6Recode_7Request_12string(struct __pyx_obj_6Recode_Request *__pyx_v_self, char *__pyx_v_text) { - char *__pyx_v_result; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("string", 0); - - /* "Recode.pyx":657 - * def string(self, char *text): - * cdef char *result - * result = recode_string(self.request, text) # <<<<<<<<<<<<<< - * if result is NULL: - * raise error - */ - __pyx_v_result = recode_string(__pyx_v_self->request, __pyx_v_text); - - /* "Recode.pyx":658 - * cdef char *result - * result = recode_string(self.request, text) - * if result is NULL: # <<<<<<<<<<<<<< - * raise error - * return result - */ - __pyx_t_1 = ((__pyx_v_result == NULL) != 0); - if (__pyx_t_1) { - - /* "Recode.pyx":659 - * result = recode_string(self.request, text) - * if result is NULL: - * raise error # <<<<<<<<<<<<<< - * return result - * - */ - __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__error); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - goto __pyx_L3; - } - __pyx_L3:; - - /* "Recode.pyx":660 - * if result is NULL: - * raise error - * return result # <<<<<<<<<<<<<< - * - * #bool recode_string_to_buffer( - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_result); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 660; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_2)); - __pyx_r = ((PyObject *)__pyx_t_2); - __pyx_t_2 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("Recode.Request.string", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_tp_new_6Recode_Outer(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - PyObject *o; - o = (*t->tp_alloc)(t, 0); - if (unlikely(!o)) return 0; - return o; -} - -static void __pyx_tp_dealloc_6Recode_Outer(PyObject *o) { - { - PyObject *etype, *eval, *etb; - PyErr_Fetch(&etype, &eval, &etb); - ++Py_REFCNT(o); - __pyx_pw_6Recode_5Outer_3__dealloc__(o); - if (PyErr_Occurred()) PyErr_WriteUnraisable(o); - --Py_REFCNT(o); - PyErr_Restore(etype, eval, etb); - } - (*Py_TYPE(o)->tp_free)(o); -} - -static PyMethodDef __pyx_methods_6Recode_Outer[] = { - {__Pyx_NAMESTR("default_charset"), (PyCFunction)__pyx_pw_6Recode_5Outer_5default_charset, METH_NOARGS, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("all_charsets"), (PyCFunction)__pyx_pw_6Recode_5Outer_7all_charsets, METH_NOARGS, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("all_surfaces"), (PyCFunction)__pyx_pw_6Recode_5Outer_9all_surfaces, METH_NOARGS, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("concise_charset"), (PyCFunction)__pyx_pw_6Recode_5Outer_11concise_charset, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("full_charset"), (PyCFunction)__pyx_pw_6Recode_5Outer_13full_charset, METH_NOARGS, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("recode"), (PyCFunction)__pyx_pw_6Recode_5Outer_15recode, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, - {0, 0, 0, 0} -}; - -static PyTypeObject __pyx_type_6Recode_Outer = { - PyVarObject_HEAD_INIT(0, 0) - __Pyx_NAMESTR("Recode.Outer"), /*tp_name*/ - sizeof(struct __pyx_obj_6Recode_Outer), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_6Recode_Outer, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #else - 0, /*reserved*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_6Recode_Outer, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - __pyx_pw_6Recode_5Outer_1__init__, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_6Recode_Outer, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - #if PY_VERSION_HEX >= 0x02060000 - 0, /*tp_version_tag*/ - #endif -}; - -static PyObject *__pyx_tp_new_6Recode_Request(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - PyObject *o; - o = (*t->tp_alloc)(t, 0); - if (unlikely(!o)) return 0; - return o; -} - -static void __pyx_tp_dealloc_6Recode_Request(PyObject *o) { - { - PyObject *etype, *eval, *etb; - PyErr_Fetch(&etype, &eval, &etb); - ++Py_REFCNT(o); - __pyx_pw_6Recode_7Request_3__dealloc__(o); - if (PyErr_Occurred()) PyErr_WriteUnraisable(o); - --Py_REFCNT(o); - PyErr_Restore(etype, eval, etb); - } - (*Py_TYPE(o)->tp_free)(o); -} - -static PyMethodDef __pyx_methods_6Recode_Request[] = { - {__Pyx_NAMESTR("set_verbose"), (PyCFunction)__pyx_pw_6Recode_7Request_5set_verbose, METH_O, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("scan"), (PyCFunction)__pyx_pw_6Recode_7Request_7scan, METH_O, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("pair_sequence"), (PyCFunction)__pyx_pw_6Recode_7Request_9pair_sequence, METH_NOARGS, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("format_table"), (PyCFunction)__pyx_pw_6Recode_7Request_11format_table, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, - {__Pyx_NAMESTR("string"), (PyCFunction)__pyx_pw_6Recode_7Request_13string, METH_O, __Pyx_DOCSTR(0)}, - {0, 0, 0, 0} -}; - -static PyTypeObject __pyx_type_6Recode_Request = { - PyVarObject_HEAD_INIT(0, 0) - __Pyx_NAMESTR("Recode.Request"), /*tp_name*/ - sizeof(struct __pyx_obj_6Recode_Request), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_6Recode_Request, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #else - 0, /*reserved*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_6Recode_Request, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - __pyx_pw_6Recode_7Request_1__init__, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_6Recode_Request, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - #if PY_VERSION_HEX >= 0x02060000 - 0, /*tp_version_tag*/ - #endif -}; - -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; - -#if PY_MAJOR_VERSION >= 3 -static struct PyModuleDef __pyx_moduledef = { - #if PY_VERSION_HEX < 0x03020000 - { PyObject_HEAD_INIT(NULL) NULL, 0, NULL }, - #else - PyModuleDef_HEAD_INIT, - #endif - __Pyx_NAMESTR("Recode"), - 0, /* m_doc */ - -1, /* m_size */ - __pyx_methods /* m_methods */, - NULL, /* m_reload */ - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ -}; -#endif - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_10, __pyx_k_10, sizeof(__pyx_k_10), 0, 0, 1, 1}, - {&__pyx_n_s_11, __pyx_k_11, sizeof(__pyx_k_11), 0, 0, 1, 1}, - {&__pyx_n_s_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 0, 1, 1}, - {&__pyx_n_s_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 0, 1, 1}, - {&__pyx_n_s_6, __pyx_k_6, sizeof(__pyx_k_6), 0, 0, 1, 1}, - {&__pyx_n_s_7, __pyx_k_7, sizeof(__pyx_k_7), 0, 0, 1, 1}, - {&__pyx_n_s_8, __pyx_k_8, sizeof(__pyx_k_8), 0, 0, 1, 1}, - {&__pyx_n_s_9, __pyx_k_9, sizeof(__pyx_k_9), 0, 0, 1, 1}, - {&__pyx_n_s__AMBIGUOUS_OUTPUT, __pyx_k__AMBIGUOUS_OUTPUT, sizeof(__pyx_k__AMBIGUOUS_OUTPUT), 0, 0, 1, 1}, - {&__pyx_n_s__AUTO_ABORT_FLAG, __pyx_k__AUTO_ABORT_FLAG, sizeof(__pyx_k__AUTO_ABORT_FLAG), 0, 0, 1, 1}, - {&__pyx_n_s__BYTE_ORDER_MARK, __pyx_k__BYTE_ORDER_MARK, sizeof(__pyx_k__BYTE_ORDER_MARK), 0, 0, 1, 1}, - {&__pyx_n_s__BYTE_TO_BYTE, __pyx_k__BYTE_TO_BYTE, sizeof(__pyx_k__BYTE_TO_BYTE), 0, 0, 1, 1}, - {&__pyx_n_s__BYTE_TO_STRING, __pyx_k__BYTE_TO_STRING, sizeof(__pyx_k__BYTE_TO_STRING), 0, 0, 1, 1}, - {&__pyx_n_s__CHARSET, __pyx_k__CHARSET, sizeof(__pyx_k__CHARSET), 0, 0, 1, 1}, - {&__pyx_n_s__COMBINE_EXPLODE, __pyx_k__COMBINE_EXPLODE, sizeof(__pyx_k__COMBINE_EXPLODE), 0, 0, 1, 1}, - {&__pyx_n_s__COMBINE_STEP, __pyx_k__COMBINE_STEP, sizeof(__pyx_k__COMBINE_STEP), 0, 0, 1, 1}, - {&__pyx_n_s__DATA_SURFACE, __pyx_k__DATA_SURFACE, sizeof(__pyx_k__DATA_SURFACE), 0, 0, 1, 1}, - {&__pyx_n_s__DECIMAL_FORMAT, __pyx_k__DECIMAL_FORMAT, sizeof(__pyx_k__DECIMAL_FORMAT), 0, 0, 1, 1}, - {&__pyx_n_s__EXPLODE_DATA, __pyx_k__EXPLODE_DATA, sizeof(__pyx_k__EXPLODE_DATA), 0, 0, 1, 1}, - {&__pyx_n_s__EXPLODE_STEP, __pyx_k__EXPLODE_STEP, sizeof(__pyx_k__EXPLODE_STEP), 0, 0, 1, 1}, - {&__pyx_n_s__Exception, __pyx_k__Exception, sizeof(__pyx_k__Exception), 0, 0, 1, 1}, - {&__pyx_n_s__FULL_FORMAT, __pyx_k__FULL_FORMAT, sizeof(__pyx_k__FULL_FORMAT), 0, 0, 1, 1}, - {&__pyx_n_s__HEXADECIMAL_FORMAT, __pyx_k__HEXADECIMAL_FORMAT, sizeof(__pyx_k__HEXADECIMAL_FORMAT), 0, 0, 1, 1}, - {&__pyx_n_s__INTERNAL_ERROR, __pyx_k__INTERNAL_ERROR, sizeof(__pyx_k__INTERNAL_ERROR), 0, 0, 1, 1}, - {&__pyx_n_s__INVALID_INPUT, __pyx_k__INVALID_INPUT, sizeof(__pyx_k__INVALID_INPUT), 0, 0, 1, 1}, - {&__pyx_n_s__LANGUAGE_C, __pyx_k__LANGUAGE_C, sizeof(__pyx_k__LANGUAGE_C), 0, 0, 1, 1}, - {&__pyx_n_s__LANGUAGE_PERL, __pyx_k__LANGUAGE_PERL, sizeof(__pyx_k__LANGUAGE_PERL), 0, 0, 1, 1}, - {&__pyx_n_s__MAXIMUM_ERROR, __pyx_k__MAXIMUM_ERROR, sizeof(__pyx_k__MAXIMUM_ERROR), 0, 0, 1, 1}, - {&__pyx_n_s__NOT_A_CHARACTER, __pyx_k__NOT_A_CHARACTER, sizeof(__pyx_k__NOT_A_CHARACTER), 0, 0, 1, 1}, - {&__pyx_n_s__NOT_CANONICAL, __pyx_k__NOT_CANONICAL, sizeof(__pyx_k__NOT_CANONICAL), 0, 0, 1, 1}, - {&__pyx_n_s__NO_CHARSET_DATA, __pyx_k__NO_CHARSET_DATA, sizeof(__pyx_k__NO_CHARSET_DATA), 0, 0, 1, 1}, - {&__pyx_n_s__NO_ERROR, __pyx_k__NO_ERROR, sizeof(__pyx_k__NO_ERROR), 0, 0, 1, 1}, - {&__pyx_n_s__NO_FORMAT, __pyx_k__NO_FORMAT, sizeof(__pyx_k__NO_FORMAT), 0, 0, 1, 1}, - {&__pyx_n_s__NO_ICONV_FLAG, __pyx_k__NO_ICONV_FLAG, sizeof(__pyx_k__NO_ICONV_FLAG), 0, 0, 1, 1}, - {&__pyx_n_s__NO_LANGUAGE, __pyx_k__NO_LANGUAGE, sizeof(__pyx_k__NO_LANGUAGE), 0, 0, 1, 1}, - {&__pyx_n_s__NO_STEP_TABLE, __pyx_k__NO_STEP_TABLE, sizeof(__pyx_k__NO_STEP_TABLE), 0, 0, 1, 1}, - {&__pyx_n_s__NO_SYMBOL_TYPE, __pyx_k__NO_SYMBOL_TYPE, sizeof(__pyx_k__NO_SYMBOL_TYPE), 0, 0, 1, 1}, - {&__pyx_n_s__NUL, __pyx_k__NUL, sizeof(__pyx_k__NUL), 0, 0, 1, 1}, - {&__pyx_n_s__OCTAL_FORMAT, __pyx_k__OCTAL_FORMAT, sizeof(__pyx_k__OCTAL_FORMAT), 0, 0, 1, 1}, - {&__pyx_n_s__Recode, __pyx_k__Recode, sizeof(__pyx_k__Recode), 0, 0, 1, 1}, - {&__pyx_n_s__SEQUENCE_IN_MEMORY, __pyx_k__SEQUENCE_IN_MEMORY, sizeof(__pyx_k__SEQUENCE_IN_MEMORY), 0, 0, 1, 1}, - {&__pyx_n_s__SEQUENCE_WITH_FILES, __pyx_k__SEQUENCE_WITH_FILES, sizeof(__pyx_k__SEQUENCE_WITH_FILES), 0, 0, 1, 1}, - {&__pyx_n_s__SEQUENCE_WITH_PIPE, __pyx_k__SEQUENCE_WITH_PIPE, sizeof(__pyx_k__SEQUENCE_WITH_PIPE), 0, 0, 1, 1}, - {&__pyx_n_s__SIZE_1, __pyx_k__SIZE_1, sizeof(__pyx_k__SIZE_1), 0, 0, 1, 1}, - {&__pyx_n_s__SIZE_2, __pyx_k__SIZE_2, sizeof(__pyx_k__SIZE_2), 0, 0, 1, 1}, - {&__pyx_n_s__SIZE_4, __pyx_k__SIZE_4, sizeof(__pyx_k__SIZE_4), 0, 0, 1, 1}, - {&__pyx_n_s__SIZE_N, __pyx_k__SIZE_N, sizeof(__pyx_k__SIZE_N), 0, 0, 1, 1}, - {&__pyx_n_s__STRATEGY_UNDECIDED, __pyx_k__STRATEGY_UNDECIDED, sizeof(__pyx_k__STRATEGY_UNDECIDED), 0, 0, 1, 1}, - {&__pyx_n_s__STRING_TO_UCS2, __pyx_k__STRING_TO_UCS2, sizeof(__pyx_k__STRING_TO_UCS2), 0, 0, 1, 1}, - {&__pyx_n_s__STRIP_DATA, __pyx_k__STRIP_DATA, sizeof(__pyx_k__STRIP_DATA), 0, 0, 1, 1}, - {&__pyx_n_s__STRIP_SIZE, __pyx_k__STRIP_SIZE, sizeof(__pyx_k__STRIP_SIZE), 0, 0, 1, 1}, - {&__pyx_n_s__SWAP_NO, __pyx_k__SWAP_NO, sizeof(__pyx_k__SWAP_NO), 0, 0, 1, 1}, - {&__pyx_n_s__SWAP_UNDECIDED, __pyx_k__SWAP_UNDECIDED, sizeof(__pyx_k__SWAP_UNDECIDED), 0, 0, 1, 1}, - {&__pyx_n_s__SWAP_YES, __pyx_k__SWAP_YES, sizeof(__pyx_k__SWAP_YES), 0, 0, 1, 1}, - {&__pyx_n_s__SYSTEM_ERROR, __pyx_k__SYSTEM_ERROR, sizeof(__pyx_k__SYSTEM_ERROR), 0, 0, 1, 1}, - {&__pyx_n_s__TREE_SURFACE, __pyx_k__TREE_SURFACE, sizeof(__pyx_k__TREE_SURFACE), 0, 0, 1, 1}, - {&__pyx_n_s__UCS2_TO_BYTE, __pyx_k__UCS2_TO_BYTE, sizeof(__pyx_k__UCS2_TO_BYTE), 0, 0, 1, 1}, - {&__pyx_n_s__UCS2_TO_STRING, __pyx_k__UCS2_TO_STRING, sizeof(__pyx_k__UCS2_TO_STRING), 0, 0, 1, 1}, - {&__pyx_n_s__UNTRANSLATABLE, __pyx_k__UNTRANSLATABLE, sizeof(__pyx_k__UNTRANSLATABLE), 0, 0, 1, 1}, - {&__pyx_n_s__USER_ERROR, __pyx_k__USER_ERROR, sizeof(__pyx_k__USER_ERROR), 0, 0, 1, 1}, - {&__pyx_n_s____class__, __pyx_k____class__, sizeof(__pyx_k____class__), 0, 0, 1, 1}, - {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1}, - {&__pyx_n_s____metaclass__, __pyx_k____metaclass__, sizeof(__pyx_k____metaclass__), 0, 0, 1, 1}, - {&__pyx_n_s____module__, __pyx_k____module__, sizeof(__pyx_k____module__), 0, 0, 1, 1}, - {&__pyx_n_s____qualname__, __pyx_k____qualname__, sizeof(__pyx_k____qualname__), 0, 0, 1, 1}, - {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1}, - {&__pyx_n_s__auto_abort, __pyx_k__auto_abort, sizeof(__pyx_k__auto_abort), 0, 0, 1, 1}, - {&__pyx_n_s__charset, __pyx_k__charset, sizeof(__pyx_k__charset), 0, 0, 1, 1}, - {&__pyx_n_s__command, __pyx_k__command, sizeof(__pyx_k__command), 0, 0, 1, 1}, - {&__pyx_n_s__error, __pyx_k__error, sizeof(__pyx_k__error), 0, 0, 1, 1}, - {&__pyx_n_s__format, __pyx_k__format, sizeof(__pyx_k__format), 0, 0, 1, 1}, - {&__pyx_n_s__iconv, __pyx_k__iconv, sizeof(__pyx_k__iconv), 0, 0, 1, 1}, - {&__pyx_n_s__input, __pyx_k__input, sizeof(__pyx_k__input), 0, 0, 1, 1}, - {&__pyx_n_s__language, __pyx_k__language, sizeof(__pyx_k__language), 0, 0, 1, 1}, - {&__pyx_n_s__outer, __pyx_k__outer, sizeof(__pyx_k__outer), 0, 0, 1, 1}, - {&__pyx_n_s__scan, __pyx_k__scan, sizeof(__pyx_k__scan), 0, 0, 1, 1}, - {&__pyx_n_s__strict, __pyx_k__strict, sizeof(__pyx_k__strict), 0, 0, 1, 1}, - {&__pyx_n_s__string, __pyx_k__string, sizeof(__pyx_k__string), 0, 0, 1, 1}, - {&__pyx_n_s__xDONE, __pyx_k__xDONE, sizeof(__pyx_k__xDONE), 0, 0, 1, 1}, - {&__pyx_n_s__xELSE, __pyx_k__xELSE, sizeof(__pyx_k__xELSE), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} -}; -static int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_Exception = __Pyx_GetBuiltinName(__pyx_n_s__Exception); if (!__pyx_builtin_Exception) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - return 0; - __pyx_L1_error:; - return -1; -} - -static int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_InitGlobals(void) { - if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - return 0; - __pyx_L1_error:; - return -1; -} - -#if PY_MAJOR_VERSION < 3 -PyMODINIT_FUNC initRecode(void); /*proto*/ -PyMODINIT_FUNC initRecode(void) -#else -PyMODINIT_FUNC PyInit_Recode(void); /*proto*/ -PyMODINIT_FUNC PyInit_Recode(void) -#endif -{ - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_REFNANNY - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); - if (!__Pyx_RefNanny) { - PyErr_Clear(); - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); - if (!__Pyx_RefNanny) - Py_FatalError("failed to import 'refnanny' module"); - } - #endif - __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_Recode(void)", 0); - if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #ifdef __Pyx_CyFunction_USED - if (__Pyx_CyFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #endif - #ifdef __Pyx_FusedFunction_USED - if (__pyx_FusedFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #endif - #ifdef __Pyx_Generator_USED - if (__pyx_Generator_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ - PyEval_InitThreads(); - #endif - #endif - /*--- Module creation code ---*/ - #if PY_MAJOR_VERSION < 3 - __pyx_m = Py_InitModule4(__Pyx_NAMESTR("Recode"), __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); - #else - __pyx_m = PyModule_Create(&__pyx_moduledef); - #endif - if (unlikely(!__pyx_m)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - Py_INCREF(__pyx_d); - #if PY_MAJOR_VERSION >= 3 - { - PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (!PyDict_GetItemString(modules, "Recode")) { - if (unlikely(PyDict_SetItemString(modules, "Recode", __pyx_m) < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - } - } - #endif - __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); if (unlikely(!__pyx_b)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #if CYTHON_COMPILING_IN_PYPY - Py_INCREF(__pyx_b); - #endif - if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - /*--- Initialize various global constants etc. ---*/ - if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) - if (__Pyx_init_sys_getdefaultencoding_params() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - #endif - if (__pyx_module_is_main_Recode) { - if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s____main__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; - } - /*--- Builtin init code ---*/ - if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - /*--- Constants init code ---*/ - if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - /*--- Global init code ---*/ - /*--- Variable export code ---*/ - /*--- Function export code ---*/ - /*--- Type init code ---*/ - if (PyType_Ready(&__pyx_type_6Recode_Outer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetAttrString(__pyx_m, "Outer", (PyObject *)&__pyx_type_6Recode_Outer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_ptype_6Recode_Outer = &__pyx_type_6Recode_Outer; - if (PyType_Ready(&__pyx_type_6Recode_Request) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - if (__Pyx_SetAttrString(__pyx_m, "Request", (PyObject *)&__pyx_type_6Recode_Request) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __pyx_ptype_6Recode_Request = &__pyx_type_6Recode_Request; - /*--- Type import code ---*/ - /*--- Variable import code ---*/ - /*--- Function import code ---*/ - /*--- Execution code ---*/ - - /* "Recode.pyx":469 - * bool recode_perform_task(RECODE_TASK) - * - * class error(Exception): # <<<<<<<<<<<<<< - * pass - * - */ - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_builtin_Exception); - PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_builtin_Exception); - __Pyx_GIVEREF(__pyx_builtin_Exception); - __pyx_t_3 = __Pyx_CreateClass(((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_1), __pyx_n_s__error, __pyx_n_s__error, __pyx_n_s__Recode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s__error, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - - /* "Recode.pyx":474 - * ## Enums repeated for Python. - * - * NO_SYMBOL_TYPE = RECODE_NO_SYMBOL_TYPE # <<<<<<<<<<<<<< - * CHARSET = RECODE_CHARSET - * DATA_SURFACE = RECODE_DATA_SURFACE - */ - __pyx_t_1 = PyInt_FromLong(RECODE_NO_SYMBOL_TYPE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__NO_SYMBOL_TYPE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":475 - * - * NO_SYMBOL_TYPE = RECODE_NO_SYMBOL_TYPE - * CHARSET = RECODE_CHARSET # <<<<<<<<<<<<<< - * DATA_SURFACE = RECODE_DATA_SURFACE - * TREE_SURFACE = RECODE_TREE_SURFACE - */ - __pyx_t_1 = PyInt_FromLong(RECODE_CHARSET); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__CHARSET, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":476 - * NO_SYMBOL_TYPE = RECODE_NO_SYMBOL_TYPE - * CHARSET = RECODE_CHARSET - * DATA_SURFACE = RECODE_DATA_SURFACE # <<<<<<<<<<<<<< - * TREE_SURFACE = RECODE_TREE_SURFACE - * - */ - __pyx_t_1 = PyInt_FromLong(RECODE_DATA_SURFACE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__DATA_SURFACE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":477 - * CHARSET = RECODE_CHARSET - * DATA_SURFACE = RECODE_DATA_SURFACE - * TREE_SURFACE = RECODE_TREE_SURFACE # <<<<<<<<<<<<<< - * - * NO_CHARSET_DATA = RECODE_NO_CHARSET_DATA - */ - __pyx_t_1 = PyInt_FromLong(RECODE_TREE_SURFACE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__TREE_SURFACE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":479 - * TREE_SURFACE = RECODE_TREE_SURFACE - * - * NO_CHARSET_DATA = RECODE_NO_CHARSET_DATA # <<<<<<<<<<<<<< - * STRIP_DATA = RECODE_STRIP_DATA - * EXPLODE_DATA = RECODE_EXPLODE_DATA - */ - __pyx_t_1 = PyInt_FromLong(RECODE_NO_CHARSET_DATA); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__NO_CHARSET_DATA, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":480 - * - * NO_CHARSET_DATA = RECODE_NO_CHARSET_DATA - * STRIP_DATA = RECODE_STRIP_DATA # <<<<<<<<<<<<<< - * EXPLODE_DATA = RECODE_EXPLODE_DATA - * - */ - __pyx_t_1 = PyInt_FromLong(RECODE_STRIP_DATA); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__STRIP_DATA, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":481 - * NO_CHARSET_DATA = RECODE_NO_CHARSET_DATA - * STRIP_DATA = RECODE_STRIP_DATA - * EXPLODE_DATA = RECODE_EXPLODE_DATA # <<<<<<<<<<<<<< - * - * SIZE_1 = RECODE_1 - */ - __pyx_t_1 = PyInt_FromLong(RECODE_EXPLODE_DATA); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__EXPLODE_DATA, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":483 - * EXPLODE_DATA = RECODE_EXPLODE_DATA - * - * SIZE_1 = RECODE_1 # <<<<<<<<<<<<<< - * SIZE_2 = RECODE_2 - * SIZE_4 = RECODE_4 - */ - __pyx_t_1 = PyInt_FromLong(RECODE_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__SIZE_1, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":484 - * - * SIZE_1 = RECODE_1 - * SIZE_2 = RECODE_2 # <<<<<<<<<<<<<< - * SIZE_4 = RECODE_4 - * SIZE_N = RECODE_N - */ - __pyx_t_1 = PyInt_FromLong(RECODE_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__SIZE_2, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":485 - * SIZE_1 = RECODE_1 - * SIZE_2 = RECODE_2 - * SIZE_4 = RECODE_4 # <<<<<<<<<<<<<< - * SIZE_N = RECODE_N - * - */ - __pyx_t_1 = PyInt_FromLong(RECODE_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__SIZE_4, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":486 - * SIZE_2 = RECODE_2 - * SIZE_4 = RECODE_4 - * SIZE_N = RECODE_N # <<<<<<<<<<<<<< - * - * NO_STEP_TABLE = RECODE_NO_STEP_TABLE - */ - __pyx_t_1 = PyInt_FromLong(RECODE_N); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__SIZE_N, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":488 - * SIZE_N = RECODE_N - * - * NO_STEP_TABLE = RECODE_NO_STEP_TABLE # <<<<<<<<<<<<<< - * BYTE_TO_BYTE = RECODE_BYTE_TO_BYTE - * BYTE_TO_STRING = RECODE_BYTE_TO_STRING - */ - __pyx_t_1 = PyInt_FromLong(RECODE_NO_STEP_TABLE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__NO_STEP_TABLE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":489 - * - * NO_STEP_TABLE = RECODE_NO_STEP_TABLE - * BYTE_TO_BYTE = RECODE_BYTE_TO_BYTE # <<<<<<<<<<<<<< - * BYTE_TO_STRING = RECODE_BYTE_TO_STRING - * UCS2_TO_BYTE = RECODE_UCS2_TO_BYTE - */ - __pyx_t_1 = PyInt_FromLong(RECODE_BYTE_TO_BYTE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__BYTE_TO_BYTE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":490 - * NO_STEP_TABLE = RECODE_NO_STEP_TABLE - * BYTE_TO_BYTE = RECODE_BYTE_TO_BYTE - * BYTE_TO_STRING = RECODE_BYTE_TO_STRING # <<<<<<<<<<<<<< - * UCS2_TO_BYTE = RECODE_UCS2_TO_BYTE - * UCS2_TO_STRING = RECODE_UCS2_TO_STRING - */ - __pyx_t_1 = PyInt_FromLong(RECODE_BYTE_TO_STRING); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__BYTE_TO_STRING, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":491 - * BYTE_TO_BYTE = RECODE_BYTE_TO_BYTE - * BYTE_TO_STRING = RECODE_BYTE_TO_STRING - * UCS2_TO_BYTE = RECODE_UCS2_TO_BYTE # <<<<<<<<<<<<<< - * UCS2_TO_STRING = RECODE_UCS2_TO_STRING - * STRING_TO_UCS2 = RECODE_STRING_TO_UCS2 - */ - __pyx_t_1 = PyInt_FromLong(RECODE_UCS2_TO_BYTE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__UCS2_TO_BYTE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":492 - * BYTE_TO_STRING = RECODE_BYTE_TO_STRING - * UCS2_TO_BYTE = RECODE_UCS2_TO_BYTE - * UCS2_TO_STRING = RECODE_UCS2_TO_STRING # <<<<<<<<<<<<<< - * STRING_TO_UCS2 = RECODE_STRING_TO_UCS2 - * COMBINE_EXPLODE = RECODE_COMBINE_EXPLODE - */ - __pyx_t_1 = PyInt_FromLong(RECODE_UCS2_TO_STRING); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__UCS2_TO_STRING, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":493 - * UCS2_TO_BYTE = RECODE_UCS2_TO_BYTE - * UCS2_TO_STRING = RECODE_UCS2_TO_STRING - * STRING_TO_UCS2 = RECODE_STRING_TO_UCS2 # <<<<<<<<<<<<<< - * COMBINE_EXPLODE = RECODE_COMBINE_EXPLODE - * COMBINE_STEP = RECODE_COMBINE_STEP - */ - __pyx_t_1 = PyInt_FromLong(RECODE_STRING_TO_UCS2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__STRING_TO_UCS2, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":494 - * UCS2_TO_STRING = RECODE_UCS2_TO_STRING - * STRING_TO_UCS2 = RECODE_STRING_TO_UCS2 - * COMBINE_EXPLODE = RECODE_COMBINE_EXPLODE # <<<<<<<<<<<<<< - * COMBINE_STEP = RECODE_COMBINE_STEP - * EXPLODE_STEP = RECODE_EXPLODE_STEP - */ - __pyx_t_1 = PyInt_FromLong(RECODE_COMBINE_EXPLODE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__COMBINE_EXPLODE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":495 - * STRING_TO_UCS2 = RECODE_STRING_TO_UCS2 - * COMBINE_EXPLODE = RECODE_COMBINE_EXPLODE - * COMBINE_STEP = RECODE_COMBINE_STEP # <<<<<<<<<<<<<< - * EXPLODE_STEP = RECODE_EXPLODE_STEP - * - */ - __pyx_t_1 = PyInt_FromLong(RECODE_COMBINE_STEP); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__COMBINE_STEP, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":496 - * COMBINE_EXPLODE = RECODE_COMBINE_EXPLODE - * COMBINE_STEP = RECODE_COMBINE_STEP - * EXPLODE_STEP = RECODE_EXPLODE_STEP # <<<<<<<<<<<<<< - * - * STRATEGY_UNDECIDED = RECODE_STRATEGY_UNDECIDED - */ - __pyx_t_1 = PyInt_FromLong(RECODE_EXPLODE_STEP); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__EXPLODE_STEP, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":498 - * EXPLODE_STEP = RECODE_EXPLODE_STEP - * - * STRATEGY_UNDECIDED = RECODE_STRATEGY_UNDECIDED # <<<<<<<<<<<<<< - * SEQUENCE_IN_MEMORY = RECODE_SEQUENCE_IN_MEMORY - * SEQUENCE_WITH_FILES = RECODE_SEQUENCE_WITH_FILES - */ - __pyx_t_1 = PyInt_FromLong(RECODE_STRATEGY_UNDECIDED); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__STRATEGY_UNDECIDED, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":499 - * - * STRATEGY_UNDECIDED = RECODE_STRATEGY_UNDECIDED - * SEQUENCE_IN_MEMORY = RECODE_SEQUENCE_IN_MEMORY # <<<<<<<<<<<<<< - * SEQUENCE_WITH_FILES = RECODE_SEQUENCE_WITH_FILES - * SEQUENCE_WITH_PIPE = RECODE_SEQUENCE_WITH_PIPE - */ - __pyx_t_1 = PyInt_FromLong(RECODE_SEQUENCE_IN_MEMORY); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__SEQUENCE_IN_MEMORY, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":500 - * STRATEGY_UNDECIDED = RECODE_STRATEGY_UNDECIDED - * SEQUENCE_IN_MEMORY = RECODE_SEQUENCE_IN_MEMORY - * SEQUENCE_WITH_FILES = RECODE_SEQUENCE_WITH_FILES # <<<<<<<<<<<<<< - * SEQUENCE_WITH_PIPE = RECODE_SEQUENCE_WITH_PIPE - * - */ - __pyx_t_1 = PyInt_FromLong(RECODE_SEQUENCE_WITH_FILES); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__SEQUENCE_WITH_FILES, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":501 - * SEQUENCE_IN_MEMORY = RECODE_SEQUENCE_IN_MEMORY - * SEQUENCE_WITH_FILES = RECODE_SEQUENCE_WITH_FILES - * SEQUENCE_WITH_PIPE = RECODE_SEQUENCE_WITH_PIPE # <<<<<<<<<<<<<< - * - * SWAP_UNDECIDED = RECODE_SWAP_UNDECIDED - */ - __pyx_t_1 = PyInt_FromLong(RECODE_SEQUENCE_WITH_PIPE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__SEQUENCE_WITH_PIPE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":503 - * SEQUENCE_WITH_PIPE = RECODE_SEQUENCE_WITH_PIPE - * - * SWAP_UNDECIDED = RECODE_SWAP_UNDECIDED # <<<<<<<<<<<<<< - * SWAP_NO = RECODE_SWAP_NO - * SWAP_YES = RECODE_SWAP_YES - */ - __pyx_t_1 = PyInt_FromLong(RECODE_SWAP_UNDECIDED); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__SWAP_UNDECIDED, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":504 - * - * SWAP_UNDECIDED = RECODE_SWAP_UNDECIDED - * SWAP_NO = RECODE_SWAP_NO # <<<<<<<<<<<<<< - * SWAP_YES = RECODE_SWAP_YES - * - */ - __pyx_t_1 = PyInt_FromLong(RECODE_SWAP_NO); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__SWAP_NO, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":505 - * SWAP_UNDECIDED = RECODE_SWAP_UNDECIDED - * SWAP_NO = RECODE_SWAP_NO - * SWAP_YES = RECODE_SWAP_YES # <<<<<<<<<<<<<< - * - * NO_ERROR = RECODE_NO_ERROR - */ - __pyx_t_1 = PyInt_FromLong(RECODE_SWAP_YES); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__SWAP_YES, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":507 - * SWAP_YES = RECODE_SWAP_YES - * - * NO_ERROR = RECODE_NO_ERROR # <<<<<<<<<<<<<< - * NOT_CANONICAL = RECODE_NOT_CANONICAL - * AMBIGUOUS_OUTPUT = RECODE_AMBIGUOUS_OUTPUT - */ - __pyx_t_1 = PyInt_FromLong(RECODE_NO_ERROR); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__NO_ERROR, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":508 - * - * NO_ERROR = RECODE_NO_ERROR - * NOT_CANONICAL = RECODE_NOT_CANONICAL # <<<<<<<<<<<<<< - * AMBIGUOUS_OUTPUT = RECODE_AMBIGUOUS_OUTPUT - * UNTRANSLATABLE = RECODE_UNTRANSLATABLE - */ - __pyx_t_1 = PyInt_FromLong(RECODE_NOT_CANONICAL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__NOT_CANONICAL, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":509 - * NO_ERROR = RECODE_NO_ERROR - * NOT_CANONICAL = RECODE_NOT_CANONICAL - * AMBIGUOUS_OUTPUT = RECODE_AMBIGUOUS_OUTPUT # <<<<<<<<<<<<<< - * UNTRANSLATABLE = RECODE_UNTRANSLATABLE - * INVALID_INPUT = RECODE_INVALID_INPUT - */ - __pyx_t_1 = PyInt_FromLong(RECODE_AMBIGUOUS_OUTPUT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__AMBIGUOUS_OUTPUT, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":510 - * NOT_CANONICAL = RECODE_NOT_CANONICAL - * AMBIGUOUS_OUTPUT = RECODE_AMBIGUOUS_OUTPUT - * UNTRANSLATABLE = RECODE_UNTRANSLATABLE # <<<<<<<<<<<<<< - * INVALID_INPUT = RECODE_INVALID_INPUT - * SYSTEM_ERROR = RECODE_SYSTEM_ERROR - */ - __pyx_t_1 = PyInt_FromLong(RECODE_UNTRANSLATABLE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__UNTRANSLATABLE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":511 - * AMBIGUOUS_OUTPUT = RECODE_AMBIGUOUS_OUTPUT - * UNTRANSLATABLE = RECODE_UNTRANSLATABLE - * INVALID_INPUT = RECODE_INVALID_INPUT # <<<<<<<<<<<<<< - * SYSTEM_ERROR = RECODE_SYSTEM_ERROR - * USER_ERROR = RECODE_USER_ERROR - */ - __pyx_t_1 = PyInt_FromLong(RECODE_INVALID_INPUT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__INVALID_INPUT, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":512 - * UNTRANSLATABLE = RECODE_UNTRANSLATABLE - * INVALID_INPUT = RECODE_INVALID_INPUT - * SYSTEM_ERROR = RECODE_SYSTEM_ERROR # <<<<<<<<<<<<<< - * USER_ERROR = RECODE_USER_ERROR - * INTERNAL_ERROR = RECODE_INTERNAL_ERROR - */ - __pyx_t_1 = PyInt_FromLong(RECODE_SYSTEM_ERROR); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__SYSTEM_ERROR, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":513 - * INVALID_INPUT = RECODE_INVALID_INPUT - * SYSTEM_ERROR = RECODE_SYSTEM_ERROR - * USER_ERROR = RECODE_USER_ERROR # <<<<<<<<<<<<<< - * INTERNAL_ERROR = RECODE_INTERNAL_ERROR - * MAXIMUM_ERROR = RECODE_MAXIMUM_ERROR - */ - __pyx_t_1 = PyInt_FromLong(RECODE_USER_ERROR); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__USER_ERROR, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":514 - * SYSTEM_ERROR = RECODE_SYSTEM_ERROR - * USER_ERROR = RECODE_USER_ERROR - * INTERNAL_ERROR = RECODE_INTERNAL_ERROR # <<<<<<<<<<<<<< - * MAXIMUM_ERROR = RECODE_MAXIMUM_ERROR - * - */ - __pyx_t_1 = PyInt_FromLong(RECODE_INTERNAL_ERROR); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__INTERNAL_ERROR, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":515 - * USER_ERROR = RECODE_USER_ERROR - * INTERNAL_ERROR = RECODE_INTERNAL_ERROR - * MAXIMUM_ERROR = RECODE_MAXIMUM_ERROR # <<<<<<<<<<<<<< - * - * NO_FORMAT = RECODE_NO_FORMAT - */ - __pyx_t_1 = PyInt_FromLong(RECODE_MAXIMUM_ERROR); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__MAXIMUM_ERROR, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":517 - * MAXIMUM_ERROR = RECODE_MAXIMUM_ERROR - * - * NO_FORMAT = RECODE_NO_FORMAT # <<<<<<<<<<<<<< - * DECIMAL_FORMAT = RECODE_DECIMAL_FORMAT - * OCTAL_FORMAT = RECODE_OCTAL_FORMAT - */ - __pyx_t_1 = PyInt_FromLong(RECODE_NO_FORMAT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__NO_FORMAT, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":518 - * - * NO_FORMAT = RECODE_NO_FORMAT - * DECIMAL_FORMAT = RECODE_DECIMAL_FORMAT # <<<<<<<<<<<<<< - * OCTAL_FORMAT = RECODE_OCTAL_FORMAT - * HEXADECIMAL_FORMAT = RECODE_HEXADECIMAL_FORMAT - */ - __pyx_t_1 = PyInt_FromLong(RECODE_DECIMAL_FORMAT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__DECIMAL_FORMAT, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":519 - * NO_FORMAT = RECODE_NO_FORMAT - * DECIMAL_FORMAT = RECODE_DECIMAL_FORMAT - * OCTAL_FORMAT = RECODE_OCTAL_FORMAT # <<<<<<<<<<<<<< - * HEXADECIMAL_FORMAT = RECODE_HEXADECIMAL_FORMAT - * FULL_FORMAT = RECODE_FULL_FORMAT - */ - __pyx_t_1 = PyInt_FromLong(RECODE_OCTAL_FORMAT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__OCTAL_FORMAT, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":520 - * DECIMAL_FORMAT = RECODE_DECIMAL_FORMAT - * OCTAL_FORMAT = RECODE_OCTAL_FORMAT - * HEXADECIMAL_FORMAT = RECODE_HEXADECIMAL_FORMAT # <<<<<<<<<<<<<< - * FULL_FORMAT = RECODE_FULL_FORMAT - * - */ - __pyx_t_1 = PyInt_FromLong(RECODE_HEXADECIMAL_FORMAT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__HEXADECIMAL_FORMAT, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":521 - * OCTAL_FORMAT = RECODE_OCTAL_FORMAT - * HEXADECIMAL_FORMAT = RECODE_HEXADECIMAL_FORMAT - * FULL_FORMAT = RECODE_FULL_FORMAT # <<<<<<<<<<<<<< - * - * NO_LANGUAGE = RECODE_NO_LANGUAGE - */ - __pyx_t_1 = PyInt_FromLong(RECODE_FULL_FORMAT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__FULL_FORMAT, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":523 - * FULL_FORMAT = RECODE_FULL_FORMAT - * - * NO_LANGUAGE = RECODE_NO_LANGUAGE # <<<<<<<<<<<<<< - * LANGUAGE_C = RECODE_LANGUAGE_C - * LANGUAGE_PERL = RECODE_LANGUAGE_PERL - */ - __pyx_t_1 = PyInt_FromLong(RECODE_NO_LANGUAGE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__NO_LANGUAGE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":524 - * - * NO_LANGUAGE = RECODE_NO_LANGUAGE - * LANGUAGE_C = RECODE_LANGUAGE_C # <<<<<<<<<<<<<< - * LANGUAGE_PERL = RECODE_LANGUAGE_PERL - * - */ - __pyx_t_1 = PyInt_FromLong(RECODE_LANGUAGE_C); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__LANGUAGE_C, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":525 - * NO_LANGUAGE = RECODE_NO_LANGUAGE - * LANGUAGE_C = RECODE_LANGUAGE_C - * LANGUAGE_PERL = RECODE_LANGUAGE_PERL # <<<<<<<<<<<<<< - * - * NUL = NUL_ - */ - __pyx_t_1 = PyInt_FromLong(RECODE_LANGUAGE_PERL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__LANGUAGE_PERL, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":527 - * LANGUAGE_PERL = RECODE_LANGUAGE_PERL - * - * NUL = NUL_ # <<<<<<<<<<<<<< - * STRIP_SIZE = STRIP_SIZE_ - * - */ - __pyx_t_1 = PyInt_FromLong(NUL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__NUL, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":528 - * - * NUL = NUL_ - * STRIP_SIZE = STRIP_SIZE_ # <<<<<<<<<<<<<< - * - * SYMBOL_CREATE_CHARSET = SYMBOL_CREATE_CHARSET_ - */ - __pyx_t_1 = PyInt_FromLong(STRIP_SIZE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__STRIP_SIZE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":530 - * STRIP_SIZE = STRIP_SIZE_ - * - * SYMBOL_CREATE_CHARSET = SYMBOL_CREATE_CHARSET_ # <<<<<<<<<<<<<< - * SYMBOL_CREATE_DATA_SURFACE = SYMBOL_CREATE_DATA_SURFACE_ - * SYMBOL_CREATE_TREE_SURFACE = SYMBOL_CREATE_TREE_SURFACE_ - */ - __pyx_t_1 = PyInt_FromLong(SYMBOL_CREATE_CHARSET); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_5, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":531 - * - * SYMBOL_CREATE_CHARSET = SYMBOL_CREATE_CHARSET_ - * SYMBOL_CREATE_DATA_SURFACE = SYMBOL_CREATE_DATA_SURFACE_ # <<<<<<<<<<<<<< - * SYMBOL_CREATE_TREE_SURFACE = SYMBOL_CREATE_TREE_SURFACE_ - * ALIAS_FIND_AS_CHARSET = ALIAS_FIND_AS_CHARSET_ - */ - __pyx_t_1 = PyInt_FromLong(SYMBOL_CREATE_DATA_SURFACE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_6, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":532 - * SYMBOL_CREATE_CHARSET = SYMBOL_CREATE_CHARSET_ - * SYMBOL_CREATE_DATA_SURFACE = SYMBOL_CREATE_DATA_SURFACE_ - * SYMBOL_CREATE_TREE_SURFACE = SYMBOL_CREATE_TREE_SURFACE_ # <<<<<<<<<<<<<< - * ALIAS_FIND_AS_CHARSET = ALIAS_FIND_AS_CHARSET_ - * ALIAS_FIND_AS_SURFACE = ALIAS_FIND_AS_SURFACE_ - */ - __pyx_t_1 = PyInt_FromLong(SYMBOL_CREATE_TREE_SURFACE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_7, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":533 - * SYMBOL_CREATE_DATA_SURFACE = SYMBOL_CREATE_DATA_SURFACE_ - * SYMBOL_CREATE_TREE_SURFACE = SYMBOL_CREATE_TREE_SURFACE_ - * ALIAS_FIND_AS_CHARSET = ALIAS_FIND_AS_CHARSET_ # <<<<<<<<<<<<<< - * ALIAS_FIND_AS_SURFACE = ALIAS_FIND_AS_SURFACE_ - * ALIAS_FIND_AS_EITHER = ALIAS_FIND_AS_EITHER_ - */ - __pyx_t_1 = PyInt_FromLong(ALIAS_FIND_AS_CHARSET); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_8, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":534 - * SYMBOL_CREATE_TREE_SURFACE = SYMBOL_CREATE_TREE_SURFACE_ - * ALIAS_FIND_AS_CHARSET = ALIAS_FIND_AS_CHARSET_ - * ALIAS_FIND_AS_SURFACE = ALIAS_FIND_AS_SURFACE_ # <<<<<<<<<<<<<< - * ALIAS_FIND_AS_EITHER = ALIAS_FIND_AS_EITHER_ - * - */ - __pyx_t_1 = PyInt_FromLong(ALIAS_FIND_AS_SURFACE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_9, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":535 - * ALIAS_FIND_AS_CHARSET = ALIAS_FIND_AS_CHARSET_ - * ALIAS_FIND_AS_SURFACE = ALIAS_FIND_AS_SURFACE_ - * ALIAS_FIND_AS_EITHER = ALIAS_FIND_AS_EITHER_ # <<<<<<<<<<<<<< - * - * xDONE = DONE - */ - __pyx_t_1 = PyInt_FromLong(ALIAS_FIND_AS_EITHER); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_10, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":537 - * ALIAS_FIND_AS_EITHER = ALIAS_FIND_AS_EITHER_ - * - * xDONE = DONE # <<<<<<<<<<<<<< - * xELSE = ELSE_ - * - */ - __pyx_t_1 = PyInt_FromLong(DONE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__xDONE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":538 - * - * xDONE = DONE - * xELSE = ELSE_ # <<<<<<<<<<<<<< - * - * REPLACEMENT_CHARACTER = REPLACEMENT_CHARACTER_ - */ - __pyx_t_1 = PyInt_FromLong(ELSE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__xELSE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":540 - * xELSE = ELSE_ - * - * REPLACEMENT_CHARACTER = REPLACEMENT_CHARACTER_ # <<<<<<<<<<<<<< - * NOT_A_CHARACTER = NOT_A_CHARACTER_ - * BYTE_ORDER_MARK = BYTE_ORDER_MARK_ - */ - __pyx_t_1 = PyInt_FromLong(REPLACEMENT_CHARACTER); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_11, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":541 - * - * REPLACEMENT_CHARACTER = REPLACEMENT_CHARACTER_ - * NOT_A_CHARACTER = NOT_A_CHARACTER_ # <<<<<<<<<<<<<< - * BYTE_ORDER_MARK = BYTE_ORDER_MARK_ - * BYTE_ORDER_MARK_SWAPPED = BYTE_ORDER_MARK_SWAPPED_ - */ - __pyx_t_1 = PyInt_FromLong(NOT_A_CHARACTER); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__NOT_A_CHARACTER, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":542 - * REPLACEMENT_CHARACTER = REPLACEMENT_CHARACTER_ - * NOT_A_CHARACTER = NOT_A_CHARACTER_ - * BYTE_ORDER_MARK = BYTE_ORDER_MARK_ # <<<<<<<<<<<<<< - * BYTE_ORDER_MARK_SWAPPED = BYTE_ORDER_MARK_SWAPPED_ - * - */ - __pyx_t_1 = PyInt_FromLong(BYTE_ORDER_MARK); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__BYTE_ORDER_MARK, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":543 - * NOT_A_CHARACTER = NOT_A_CHARACTER_ - * BYTE_ORDER_MARK = BYTE_ORDER_MARK_ - * BYTE_ORDER_MARK_SWAPPED = BYTE_ORDER_MARK_SWAPPED_ # <<<<<<<<<<<<<< - * - * AUTO_ABORT_FLAG = RECODE_AUTO_ABORT_FLAG - */ - __pyx_t_1 = PyInt_FromLong(BYTE_ORDER_MARK_SWAPPED); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_12, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":545 - * BYTE_ORDER_MARK_SWAPPED = BYTE_ORDER_MARK_SWAPPED_ - * - * AUTO_ABORT_FLAG = RECODE_AUTO_ABORT_FLAG # <<<<<<<<<<<<<< - * NO_ICONV_FLAG = RECODE_NO_ICONV_FLAG - * - */ - __pyx_t_1 = PyInt_FromLong(RECODE_AUTO_ABORT_FLAG); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__AUTO_ABORT_FLAG, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":546 - * - * AUTO_ABORT_FLAG = RECODE_AUTO_ABORT_FLAG - * NO_ICONV_FLAG = RECODE_NO_ICONV_FLAG # <<<<<<<<<<<<<< - * - * ## Recode library at OUTER level. - */ - __pyx_t_1 = PyInt_FromLong(RECODE_NO_ICONV_FLAG); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_d, __pyx_n_s__NO_ICONV_FLAG, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "Recode.pyx":553 - * cdef RECODE_OUTER outer - * - * def __init__(self, auto_abort=False, iconv=False, strict=False): # <<<<<<<<<<<<<< - * cdef int flags - * cdef RECODE_SINGLE single - */ - __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_k_1 = __pyx_t_1; - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_k_2 = __pyx_t_1; - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_k_3 = __pyx_t_1; - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - - /* "Recode.pyx":597 - * return list - * - * def concise_charset(self, format=NO_FORMAT): # <<<<<<<<<<<<<< - * ok = list_concise_charset(self.outer, NULL, format) - * if not ok: - */ - __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__NO_FORMAT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(__pyx_t_1); - __pyx_k_4 = __pyx_t_1; - __Pyx_GIVEREF(__pyx_t_1); - __pyx_t_1 = 0; - - /* "Recode.pyx":1 - * # Python interface to the Recode C library, for testing. # <<<<<<<<<<<<<< - * # Copyright 1996-2000, 2008 Free Software Foundation, Inc. - * # Franois Pinard , 1988. - */ - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_GOTREF(((PyObject *)__pyx_t_1)); - if (PyDict_SetItem(__pyx_d, __pyx_n_s____test__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} - __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - if (__pyx_m) { - __Pyx_AddTraceback("init Recode", __pyx_clineno, __pyx_lineno, __pyx_filename); - Py_DECREF(__pyx_m); __pyx_m = 0; - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init Recode"); - } - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - #if PY_MAJOR_VERSION < 3 - return; - #else - return __pyx_m; - #endif -} - -/* Runtime support code */ -#if CYTHON_REFNANNY -static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { - PyObject *m = NULL, *p = NULL; - void *r = NULL; - m = PyImport_ImportModule((char *)modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, (char *)"RefNannyAPI"); - if (!p) goto end; - r = PyLong_AsVoidPtr(p); -end: - Py_XDECREF(p); - Py_XDECREF(m); - return (__Pyx_RefNannyAPIStruct *)r; -} -#endif /* CYTHON_REFNANNY */ - -static PyObject *__Pyx_GetBuiltinName(PyObject *name) { - PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); - if (unlikely(!result)) { - PyErr_Format(PyExc_NameError, -#if PY_MAJOR_VERSION >= 3 - "name '%U' is not defined", name); -#else - "name '%s' is not defined", PyString_AS_STRING(name)); -#endif - } - return result; -} - -static void __Pyx_RaiseDoubleKeywordsError( - const char* func_name, - PyObject* kw_name) -{ - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION >= 3 - "%s() got multiple values for keyword argument '%U'", func_name, kw_name); - #else - "%s() got multiple values for keyword argument '%s'", func_name, - PyString_AsString(kw_name)); - #endif -} - -static int __Pyx_ParseOptionalKeywords( - PyObject *kwds, - PyObject **argnames[], - PyObject *kwds2, - PyObject *values[], - Py_ssize_t num_pos_args, - const char* function_name) -{ - PyObject *key = 0, *value = 0; - Py_ssize_t pos = 0; - PyObject*** name; - PyObject*** first_kw_arg = argnames + num_pos_args; - while (PyDict_Next(kwds, &pos, &key, &value)) { - name = first_kw_arg; - while (*name && (**name != key)) name++; - if (*name) { - values[name-argnames] = value; - continue; - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 - if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { - values[name-argnames] = value; - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - if ((**argname == key) || ( - (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) - && _PyString_Eq(**argname, key))) { - goto arg_passed_twice; - } - argname++; - } - } - } else - #endif - if (likely(PyUnicode_Check(key))) { - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) { - values[name-argnames] = value; - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) goto arg_passed_twice; - argname++; - } - } - } else - goto invalid_keyword_type; - if (kwds2) { - if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; - } else { - goto invalid_keyword; - } - } - return 0; -arg_passed_twice: - __Pyx_RaiseDoubleKeywordsError(function_name, key); - goto bad; -invalid_keyword_type: - PyErr_Format(PyExc_TypeError, - "%s() keywords must be strings", function_name); - goto bad; -invalid_keyword: - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION < 3 - "%s() got an unexpected keyword argument '%s'", - function_name, PyString_AsString(key)); - #else - "%s() got an unexpected keyword argument '%U'", - function_name, key); - #endif -bad: - return -1; -} - -static void __Pyx_RaiseArgtupleInvalid( - const char* func_name, - int exact, - Py_ssize_t num_min, - Py_ssize_t num_max, - Py_ssize_t num_found) -{ - Py_ssize_t num_expected; - const char *more_or_less; - if (num_found < num_min) { - num_expected = num_min; - more_or_less = "at least"; - } else { - num_expected = num_max; - more_or_less = "at most"; - } - if (exact) { - more_or_less = "exactly"; - } - PyErr_Format(PyExc_TypeError, - "%s() takes %s %" CYTHON_FORMAT_SSIZE_T "d positional argument%s (%" CYTHON_FORMAT_SSIZE_T "d given)", - func_name, more_or_less, num_expected, - (num_expected == 1) ? "" : "s", num_found); -} - -static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) { - PyObject *result; -#if CYTHON_COMPILING_IN_CPYTHON - result = PyDict_GetItem(__pyx_d, name); - if (result) { - Py_INCREF(result); - } else { -#else - result = PyObject_GetItem(__pyx_d, name); - if (!result) { - PyErr_Clear(); -#endif - result = __Pyx_GetBuiltinName(name); - } - return result; -} - -static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) { -#if CYTHON_COMPILING_IN_CPYTHON - PyObject *tmp_type, *tmp_value, *tmp_tb; - PyThreadState *tstate = PyThreadState_GET(); - tmp_type = tstate->curexc_type; - tmp_value = tstate->curexc_value; - tmp_tb = tstate->curexc_traceback; - tstate->curexc_type = type; - tstate->curexc_value = value; - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -#else - PyErr_Restore(type, value, tb); -#endif -} -static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) { -#if CYTHON_COMPILING_IN_CPYTHON - PyThreadState *tstate = PyThreadState_GET(); - *type = tstate->curexc_type; - *value = tstate->curexc_value; - *tb = tstate->curexc_traceback; - tstate->curexc_type = 0; - tstate->curexc_value = 0; - tstate->curexc_traceback = 0; -#else - PyErr_Fetch(type, value, tb); -#endif -} - -#if PY_MAJOR_VERSION < 3 -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, - CYTHON_UNUSED PyObject *cause) { - Py_XINCREF(type); - if (!value || value == Py_None) - value = NULL; - else - Py_INCREF(value); - if (!tb || tb == Py_None) - tb = NULL; - else { - Py_INCREF(tb); - if (!PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto raise_error; - } - } - #if PY_VERSION_HEX < 0x02050000 - if (PyClass_Check(type)) { - #else - if (PyType_Check(type)) { - #endif -#if CYTHON_COMPILING_IN_PYPY - if (!value) { - Py_INCREF(Py_None); - value = Py_None; - } -#endif - PyErr_NormalizeException(&type, &value, &tb); - } else { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto raise_error; - } - value = type; - #if PY_VERSION_HEX < 0x02050000 - if (PyInstance_Check(type)) { - type = (PyObject*) ((PyInstanceObject*)type)->in_class; - Py_INCREF(type); - } else { - type = 0; - PyErr_SetString(PyExc_TypeError, - "raise: exception must be an old-style class or instance"); - goto raise_error; - } - #else - type = (PyObject*) Py_TYPE(type); - Py_INCREF(type); - if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto raise_error; - } - #endif - } - __Pyx_ErrRestore(type, value, tb); - return; -raise_error: - Py_XDECREF(value); - Py_XDECREF(type); - Py_XDECREF(tb); - return; -} -#else /* Python 3+ */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { - PyObject* owned_instance = NULL; - if (tb == Py_None) { - tb = 0; - } else if (tb && !PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto bad; - } - if (value == Py_None) - value = 0; - if (PyExceptionInstance_Check(type)) { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto bad; - } - value = type; - type = (PyObject*) Py_TYPE(value); - } else if (PyExceptionClass_Check(type)) { - PyObject *args; - if (!value) - args = PyTuple_New(0); - else if (PyTuple_Check(value)) { - Py_INCREF(value); - args = value; - } else - args = PyTuple_Pack(1, value); - if (!args) - goto bad; - owned_instance = PyEval_CallObject(type, args); - Py_DECREF(args); - if (!owned_instance) - goto bad; - value = owned_instance; - if (!PyExceptionInstance_Check(value)) { - PyErr_Format(PyExc_TypeError, - "calling %R should have returned an instance of " - "BaseException, not %R", - type, Py_TYPE(value)); - goto bad; - } - } else { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto bad; - } -#if PY_VERSION_HEX >= 0x03030000 - if (cause) { -#else - if (cause && cause != Py_None) { -#endif - PyObject *fixed_cause; - if (cause == Py_None) { - fixed_cause = NULL; - } else if (PyExceptionClass_Check(cause)) { - fixed_cause = PyObject_CallObject(cause, NULL); - if (fixed_cause == NULL) - goto bad; - } else if (PyExceptionInstance_Check(cause)) { - fixed_cause = cause; - Py_INCREF(fixed_cause); - } else { - PyErr_SetString(PyExc_TypeError, - "exception causes must derive from " - "BaseException"); - goto bad; - } - PyException_SetCause(value, fixed_cause); - } - PyErr_SetObject(type, value); - if (tb) { - PyThreadState *tstate = PyThreadState_GET(); - PyObject* tmp_tb = tstate->curexc_traceback; - if (tb != tmp_tb) { - Py_INCREF(tb); - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_tb); - } - } -bad: - Py_XDECREF(owned_instance); - return; -} -#endif - -static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, - const char *name, int exact) -{ - if (!type) { - PyErr_Format(PyExc_SystemError, "Missing type object"); - return 0; - } - if (none_allowed && obj == Py_None) return 1; - else if (exact) { - if (Py_TYPE(obj) == type) return 1; - } - else { - if (PyObject_TypeCheck(obj, type)) return 1; - } - PyErr_Format(PyExc_TypeError, - "Argument '%s' has incorrect type (expected %s, got %s)", - name, type->tp_name, Py_TYPE(obj)->tp_name); - return 0; -} - -static PyObject *__Pyx_FindPy2Metaclass(PyObject *bases) { - PyObject *metaclass; -#if PY_MAJOR_VERSION < 3 - if (PyTuple_Check(bases) && PyTuple_GET_SIZE(bases) > 0) { - PyObject *base = PyTuple_GET_ITEM(bases, 0); - metaclass = __Pyx_PyObject_GetAttrStr(base, __pyx_n_s____class__); - if (!metaclass) { - PyErr_Clear(); - metaclass = (PyObject*) Py_TYPE(base); - } - } else { - metaclass = (PyObject *) &PyClass_Type; - } -#else - if (PyTuple_Check(bases) && PyTuple_GET_SIZE(bases) > 0) { - PyObject *base = PyTuple_GET_ITEM(bases, 0); - metaclass = (PyObject*) Py_TYPE(base); - } else { - metaclass = (PyObject *) &PyType_Type; - } -#endif - Py_INCREF(metaclass); - return metaclass; -} - -static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name, - PyObject *qualname, PyObject *modname) { - PyObject *result; - PyObject *metaclass; - if (PyDict_SetItem(dict, __pyx_n_s____module__, modname) < 0) - return NULL; - if (PyDict_SetItem(dict, __pyx_n_s____qualname__, qualname) < 0) - return NULL; - metaclass = PyDict_GetItem(dict, __pyx_n_s____metaclass__); - if (metaclass) { - Py_INCREF(metaclass); - } else { - metaclass = __Pyx_FindPy2Metaclass(bases); - } - result = PyObject_CallFunctionObjArgs(metaclass, name, bases, dict, NULL); - Py_DECREF(metaclass); - return result; -} - -static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) { - const unsigned char neg_one = (unsigned char)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(unsigned char) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(unsigned char)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to unsigned char" : - "value too large to convert to unsigned char"); - } - return (unsigned char)-1; - } - return (unsigned char)val; - } - return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x); -} - -static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) { - const unsigned short neg_one = (unsigned short)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(unsigned short) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(unsigned short)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to unsigned short" : - "value too large to convert to unsigned short"); - } - return (unsigned short)-1; - } - return (unsigned short)val; - } - return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x); -} - -static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) { - const unsigned int neg_one = (unsigned int)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(unsigned int) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(unsigned int)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to unsigned int" : - "value too large to convert to unsigned int"); - } - return (unsigned int)-1; - } - return (unsigned int)val; - } - return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x); -} - -static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) { - const char neg_one = (char)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(char) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(char)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to char" : - "value too large to convert to char"); - } - return (char)-1; - } - return (char)val; - } - return (char)__Pyx_PyInt_AsLong(x); -} - -static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) { - const short neg_one = (short)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(short) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(short)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to short" : - "value too large to convert to short"); - } - return (short)-1; - } - return (short)val; - } - return (short)__Pyx_PyInt_AsLong(x); -} - -static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) { - const int neg_one = (int)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(int) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(int)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to int" : - "value too large to convert to int"); - } - return (int)-1; - } - return (int)val; - } - return (int)__Pyx_PyInt_AsLong(x); -} - -static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) { - const signed char neg_one = (signed char)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(signed char) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(signed char)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to signed char" : - "value too large to convert to signed char"); - } - return (signed char)-1; - } - return (signed char)val; - } - return (signed char)__Pyx_PyInt_AsSignedLong(x); -} - -static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) { - const signed short neg_one = (signed short)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(signed short) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(signed short)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to signed short" : - "value too large to convert to signed short"); - } - return (signed short)-1; - } - return (signed short)val; - } - return (signed short)__Pyx_PyInt_AsSignedLong(x); -} - -static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) { - const signed int neg_one = (signed int)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(signed int) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(signed int)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to signed int" : - "value too large to convert to signed int"); - } - return (signed int)-1; - } - return (signed int)val; - } - return (signed int)__Pyx_PyInt_AsSignedLong(x); -} - -static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject* x) { - const int neg_one = (int)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; - if (sizeof(int) < sizeof(long)) { - long val = __Pyx_PyInt_AsLong(x); - if (unlikely(val != (long)(int)val)) { - if (!unlikely(val == -1 && PyErr_Occurred())) { - PyErr_SetString(PyExc_OverflowError, - (is_unsigned && unlikely(val < 0)) ? - "can't convert negative value to int" : - "value too large to convert to int"); - } - return (int)-1; - } - return (int)val; - } - return (int)__Pyx_PyInt_AsLong(x); -} - -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS -#include "longintrepr.h" -#endif -#endif -static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) { - const unsigned long neg_one = (unsigned long)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to unsigned long"); - return (unsigned long)-1; - } - return (unsigned long)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS - if (sizeof(digit) <= sizeof(unsigned long)) { - switch (Py_SIZE(x)) { - case 0: return 0; - case 1: return (unsigned long) ((PyLongObject*)x)->ob_digit[0]; - } - } -#endif -#endif - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to unsigned long"); - return (unsigned long)-1; - } - return (unsigned long)PyLong_AsUnsignedLong(x); - } else { -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS - if (sizeof(digit) <= sizeof(unsigned long)) { - switch (Py_SIZE(x)) { - case 0: return 0; - case 1: return +(unsigned long) ((PyLongObject*)x)->ob_digit[0]; - case -1: return -(unsigned long) ((PyLongObject*)x)->ob_digit[0]; - } - } -#endif -#endif - return (unsigned long)PyLong_AsLong(x); - } - } else { - unsigned long val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (unsigned long)-1; - val = __Pyx_PyInt_AsUnsignedLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS -#include "longintrepr.h" -#endif -#endif -static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) { - const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to unsigned PY_LONG_LONG"); - return (unsigned PY_LONG_LONG)-1; - } - return (unsigned PY_LONG_LONG)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS - if (sizeof(digit) <= sizeof(unsigned PY_LONG_LONG)) { - switch (Py_SIZE(x)) { - case 0: return 0; - case 1: return (unsigned PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0]; - } - } -#endif -#endif - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to unsigned PY_LONG_LONG"); - return (unsigned PY_LONG_LONG)-1; - } - return (unsigned PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); - } else { -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS - if (sizeof(digit) <= sizeof(unsigned PY_LONG_LONG)) { - switch (Py_SIZE(x)) { - case 0: return 0; - case 1: return +(unsigned PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0]; - case -1: return -(unsigned PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0]; - } - } -#endif -#endif - return (unsigned PY_LONG_LONG)PyLong_AsLongLong(x); - } - } else { - unsigned PY_LONG_LONG val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (unsigned PY_LONG_LONG)-1; - val = __Pyx_PyInt_AsUnsignedLongLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS -#include "longintrepr.h" -#endif -#endif -static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) { - const long neg_one = (long)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to long"); - return (long)-1; - } - return (long)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS - if (sizeof(digit) <= sizeof(long)) { - switch (Py_SIZE(x)) { - case 0: return 0; - case 1: return (long) ((PyLongObject*)x)->ob_digit[0]; - } - } -#endif -#endif - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to long"); - return (long)-1; - } - return (long)PyLong_AsUnsignedLong(x); - } else { -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS - if (sizeof(digit) <= sizeof(long)) { - switch (Py_SIZE(x)) { - case 0: return 0; - case 1: return +(long) ((PyLongObject*)x)->ob_digit[0]; - case -1: return -(long) ((PyLongObject*)x)->ob_digit[0]; - } - } -#endif -#endif - return (long)PyLong_AsLong(x); - } - } else { - long val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (long)-1; - val = __Pyx_PyInt_AsLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS -#include "longintrepr.h" -#endif -#endif -static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) { - const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to PY_LONG_LONG"); - return (PY_LONG_LONG)-1; - } - return (PY_LONG_LONG)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS - if (sizeof(digit) <= sizeof(PY_LONG_LONG)) { - switch (Py_SIZE(x)) { - case 0: return 0; - case 1: return (PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0]; - } - } -#endif -#endif - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to PY_LONG_LONG"); - return (PY_LONG_LONG)-1; - } - return (PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); - } else { -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS - if (sizeof(digit) <= sizeof(PY_LONG_LONG)) { - switch (Py_SIZE(x)) { - case 0: return 0; - case 1: return +(PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0]; - case -1: return -(PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0]; - } - } -#endif -#endif - return (PY_LONG_LONG)PyLong_AsLongLong(x); - } - } else { - PY_LONG_LONG val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (PY_LONG_LONG)-1; - val = __Pyx_PyInt_AsLongLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS -#include "longintrepr.h" -#endif -#endif -static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) { - const signed long neg_one = (signed long)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to signed long"); - return (signed long)-1; - } - return (signed long)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS - if (sizeof(digit) <= sizeof(signed long)) { - switch (Py_SIZE(x)) { - case 0: return 0; - case 1: return (signed long) ((PyLongObject*)x)->ob_digit[0]; - } - } -#endif -#endif - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to signed long"); - return (signed long)-1; - } - return (signed long)PyLong_AsUnsignedLong(x); - } else { -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS - if (sizeof(digit) <= sizeof(signed long)) { - switch (Py_SIZE(x)) { - case 0: return 0; - case 1: return +(signed long) ((PyLongObject*)x)->ob_digit[0]; - case -1: return -(signed long) ((PyLongObject*)x)->ob_digit[0]; - } - } -#endif -#endif - return (signed long)PyLong_AsLong(x); - } - } else { - signed long val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (signed long)-1; - val = __Pyx_PyInt_AsSignedLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS -#include "longintrepr.h" -#endif -#endif -static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) { - const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0; - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to signed PY_LONG_LONG"); - return (signed PY_LONG_LONG)-1; - } - return (signed PY_LONG_LONG)val; - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS - if (sizeof(digit) <= sizeof(signed PY_LONG_LONG)) { - switch (Py_SIZE(x)) { - case 0: return 0; - case 1: return (signed PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0]; - } - } -#endif -#endif - if (unlikely(Py_SIZE(x) < 0)) { - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to signed PY_LONG_LONG"); - return (signed PY_LONG_LONG)-1; - } - return (signed PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); - } else { -#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 -#if CYTHON_USE_PYLONG_INTERNALS - if (sizeof(digit) <= sizeof(signed PY_LONG_LONG)) { - switch (Py_SIZE(x)) { - case 0: return 0; - case 1: return +(signed PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0]; - case -1: return -(signed PY_LONG_LONG) ((PyLongObject*)x)->ob_digit[0]; - } - } -#endif -#endif - return (signed PY_LONG_LONG)PyLong_AsLongLong(x); - } - } else { - signed PY_LONG_LONG val; - PyObject *tmp = __Pyx_PyNumber_Int(x); - if (!tmp) return (signed PY_LONG_LONG)-1; - val = __Pyx_PyInt_AsSignedLongLong(tmp); - Py_DECREF(tmp); - return val; - } -} - -static int __Pyx_check_binary_version(void) { - char ctversion[4], rtversion[4]; - PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); - PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); - if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { - char message[200]; - PyOS_snprintf(message, sizeof(message), - "compiletime version %s of module '%.100s' " - "does not match runtime version %s", - ctversion, __Pyx_MODULE_NAME, rtversion); - #if PY_VERSION_HEX < 0x02050000 - return PyErr_Warn(NULL, message); - #else - return PyErr_WarnEx(NULL, message, 1); - #endif - } - return 0; -} - -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { - int start = 0, mid = 0, end = count - 1; - if (end >= 0 && code_line > entries[end].code_line) { - return count; - } - while (start < end) { - mid = (start + end) / 2; - if (code_line < entries[mid].code_line) { - end = mid; - } else if (code_line > entries[mid].code_line) { - start = mid + 1; - } else { - return mid; - } - } - if (code_line <= entries[mid].code_line) { - return mid; - } else { - return mid + 1; - } -} -static PyCodeObject *__pyx_find_code_object(int code_line) { - PyCodeObject* code_object; - int pos; - if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { - return NULL; - } - pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); - if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { - return NULL; - } - code_object = __pyx_code_cache.entries[pos].code_object; - Py_INCREF(code_object); - return code_object; -} -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - int pos, i; - __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; - if (unlikely(!code_line)) { - return; - } - if (unlikely(!entries)) { - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); - if (likely(entries)) { - __pyx_code_cache.entries = entries; - __pyx_code_cache.max_count = 64; - __pyx_code_cache.count = 1; - entries[0].code_line = code_line; - entries[0].code_object = code_object; - Py_INCREF(code_object); - } - return; - } - pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); - if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { - PyCodeObject* tmp = entries[pos].code_object; - entries[pos].code_object = code_object; - Py_DECREF(tmp); - return; - } - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( - __pyx_code_cache.entries, new_max*sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } - __pyx_code_cache.entries = entries; - __pyx_code_cache.max_count = new_max; - } - for (i=__pyx_code_cache.count; i>pos; i--) { - entries[i] = entries[i-1]; - } - entries[pos].code_line = code_line; - entries[pos].code_object = code_object; - __pyx_code_cache.count++; - Py_INCREF(code_object); -} - -#include "compile.h" -#include "frameobject.h" -#include "traceback.h" -static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; - #if PY_MAJOR_VERSION < 3 - py_srcfile = PyString_FromString(filename); - #else - py_srcfile = PyUnicode_FromString(filename); - #endif - if (!py_srcfile) goto bad; - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); - #else - py_funcname = PyUnicode_FromString(funcname); - #endif - } - if (!py_funcname) goto bad; - py_code = __Pyx_PyCode_New( - 0, /*int argcount,*/ - 0, /*int kwonlyargcount,*/ - 0, /*int nlocals,*/ - 0, /*int stacksize,*/ - 0, /*int flags,*/ - __pyx_empty_bytes, /*PyObject *code,*/ - __pyx_empty_tuple, /*PyObject *consts,*/ - __pyx_empty_tuple, /*PyObject *names,*/ - __pyx_empty_tuple, /*PyObject *varnames,*/ - __pyx_empty_tuple, /*PyObject *freevars,*/ - __pyx_empty_tuple, /*PyObject *cellvars,*/ - py_srcfile, /*PyObject *filename,*/ - py_funcname, /*PyObject *name,*/ - py_line, /*int firstlineno,*/ - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); - Py_DECREF(py_funcname); - return py_code; -bad: - Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); - return NULL; -} -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyObject *py_globals = 0; - PyFrameObject *py_frame = 0; - py_code = __pyx_find_code_object(c_line ? c_line : py_line); - if (!py_code) { - py_code = __Pyx_CreateCodeObjectForTraceback( - funcname, c_line, py_line, filename); - if (!py_code) goto bad; - __pyx_insert_code_object(c_line ? c_line : py_line, py_code); - } - py_globals = PyModule_GetDict(__pyx_m); - if (!py_globals) goto bad; - py_frame = PyFrame_New( - PyThreadState_GET(), /*PyThreadState *tstate,*/ - py_code, /*PyCodeObject *code,*/ - py_globals, /*PyObject *globals,*/ - 0 /*PyObject *locals*/ - ); - if (!py_frame) goto bad; - py_frame->f_lineno = py_line; - PyTraceBack_Here(py_frame); -bad: - Py_XDECREF(py_code); - Py_XDECREF(py_frame); -} - -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { - while (t->p) { - #if PY_MAJOR_VERSION < 3 - if (t->is_unicode) { - *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); - } else if (t->intern) { - *t->p = PyString_InternFromString(t->s); - } else { - *t->p = PyString_FromStringAndSize(t->s, t->n - 1); - } - #else /* Python 3+ has unicode identifiers */ - if (t->is_unicode | t->is_str) { - if (t->intern) { - *t->p = PyUnicode_InternFromString(t->s); - } else if (t->encoding) { - *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); - } else { - *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); - } - } else { - *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); - } - #endif - if (!*t->p) - return -1; - ++t; - } - return 0; -} - -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(char* c_str) { - return __Pyx_PyUnicode_FromStringAndSize(c_str, strlen(c_str)); -} -static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject* o) { - Py_ssize_t ignore; - return __Pyx_PyObject_AsStringAndSize(o, &ignore); -} -static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT - if ( -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - __Pyx_sys_getdefaultencoding_not_ascii && -#endif - PyUnicode_Check(o)) { -#if PY_VERSION_HEX < 0x03030000 - char* defenc_c; - PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); - if (!defenc) return NULL; - defenc_c = PyBytes_AS_STRING(defenc); -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - { - char* end = defenc_c + PyBytes_GET_SIZE(defenc); - char* c; - for (c = defenc_c; c < end; c++) { - if ((unsigned char) (*c) >= 128) { - PyUnicode_AsASCIIString(o); - return NULL; - } - } - } -#endif /*__PYX_DEFAULT_STRING_ENCODING_IS_ASCII*/ - *length = PyBytes_GET_SIZE(defenc); - return defenc_c; -#else /* PY_VERSION_HEX < 0x03030000 */ - if (PyUnicode_READY(o) == -1) return NULL; -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - if (PyUnicode_IS_ASCII(o)) { - *length = PyUnicode_GET_DATA_SIZE(o); - return PyUnicode_AsUTF8(o); - } else { - PyUnicode_AsASCIIString(o); - return NULL; - } -#else /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII */ - return PyUnicode_AsUTF8AndSize(o, length); -#endif /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII */ -#endif /* PY_VERSION_HEX < 0x03030000 */ - } else -#endif /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT */ - { - char* result; - int r = PyBytes_AsStringAndSize(o, &result, length); - if (r < 0) { - return NULL; - } else { - return result; - } - } -} -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { - int is_true = x == Py_True; - if (is_true | (x == Py_False) | (x == Py_None)) return is_true; - else return PyObject_IsTrue(x); -} -static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) { - PyNumberMethods *m; - const char *name = NULL; - PyObject *res = NULL; -#if PY_MAJOR_VERSION < 3 - if (PyInt_Check(x) || PyLong_Check(x)) -#else - if (PyLong_Check(x)) -#endif - return Py_INCREF(x), x; - m = Py_TYPE(x)->tp_as_number; -#if PY_MAJOR_VERSION < 3 - if (m && m->nb_int) { - name = "int"; - res = PyNumber_Int(x); - } - else if (m && m->nb_long) { - name = "long"; - res = PyNumber_Long(x); - } -#else - if (m && m->nb_int) { - name = "int"; - res = PyNumber_Long(x); - } -#endif - if (res) { -#if PY_MAJOR_VERSION < 3 - if (!PyInt_Check(res) && !PyLong_Check(res)) { -#else - if (!PyLong_Check(res)) { -#endif - PyErr_Format(PyExc_TypeError, - "__%s__ returned non-%s (type %.200s)", - name, name, Py_TYPE(res)->tp_name); - Py_DECREF(res); - return NULL; - } - } - else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, - "an integer is required"); - } - return res; -} -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_ssize_t ival; - PyObject* x = PyNumber_Index(b); - if (!x) return -1; - ival = PyInt_AsSsize_t(x); - Py_DECREF(x); - return ival; -} -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { -#if PY_VERSION_HEX < 0x02050000 - if (ival <= LONG_MAX) - return PyInt_FromLong((long)ival); - else { - unsigned char *bytes = (unsigned char *) &ival; - int one = 1; int little = (int)*(unsigned char*)&one; - return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0); - } -#else - return PyInt_FromSize_t(ival); -#endif -} -static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) { - unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x); - if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) { - if ((val != (unsigned PY_LONG_LONG)-1) || !PyErr_Occurred()) - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to size_t"); - return (size_t)-1; - } - return (size_t)val; -} - - -#endif /* Py_PYTHON_H */ diff --git a/tests/Recode.pyx b/tests/Recode.pyx index a1567e3..958d630 100644 --- a/tests/Recode.pyx +++ b/tests/Recode.pyx @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- # Python interface to the Recode C library, for testing. -# Copyright © 1996-2000, 2008 Free Software Foundation, Inc. +# Copyright © 1996-2008 Free Software Foundation, Inc. # François Pinard , 1988. # 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 2, or (at your option) +# the Free Software Foundation; either version 3, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, @@ -14,20 +14,11 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# along with this program; if not, see . -cdef enum bool: - false = 0 - true = 1 - -cdef extern from "stdio.h": - struct FILE: - pass - -cdef extern from "config.h": - ctypedef long size_t +from libcpp cimport bool +from libc.stdlib cimport free +from libc.stdio cimport FILE cdef extern from "common.h": @@ -46,7 +37,6 @@ cdef extern from "common.h": RECODE_NO_SYMBOL_TYPE RECODE_CHARSET RECODE_DATA_SURFACE - RECODE_TREE_SURFACE enum recode_data_type: RECODE_NO_CHARSET_DATA @@ -172,12 +162,6 @@ cdef extern from "common.h": char *cursor char *limit - enum recode_sequence_strategy: - RECODE_STRATEGY_UNDECIDED - RECODE_SEQUENCE_IN_MEMORY - RECODE_SEQUENCE_WITH_FILES - RECODE_SEQUENCE_WITH_PIPE - enum recode_swap_input: RECODE_SWAP_UNDECIDED RECODE_SWAP_NO @@ -198,7 +182,6 @@ cdef extern from "common.h": RECODE_CONST_REQUEST request recode_read_only_text input recode_read_write_text output - recode_sequence_strategy strategy bool byte_order_mark recode_swap_input swap_input recode_error_ fail_level @@ -217,8 +200,8 @@ cdef extern from "common.h": unsigned character_count ctypedef recode_subtask *RECODE_SUBTASK - int get_byte(RECODE_SUBTASK) - void put_byte(int, RECODE_SUBTASK) + int recode_get_byte(RECODE_SUBTASK) + void recode_put_byte(int, RECODE_SUBTASK) void SET_SUBTASK_ERROR(recode_error_, RECODE_SUBTASK) bool SUBTASK_RETURN(RECODE_SUBTASK) void RETURN_IF_NOGO(recode_error_, RECODE_SUBTASK) @@ -249,7 +232,6 @@ cdef extern from "common.h": unsigned number_of_singles unsigned char *one_to_same RECODE_SYMBOL data_symbol - RECODE_SYMBOL tree_symbol RECODE_SYMBOL ucs2_charset RECODE_SYMBOL iconv_pivot RECODE_SYMBOL crlf_surface @@ -286,7 +268,7 @@ cdef extern from "common.h": struct strip_data: recode_ucs2 *pool - short offset[256 / STRIP_SIZE_] + short offset[256 // STRIP_SIZE_] struct ucs2_to_byte: recode_ucs2 code @@ -324,15 +306,14 @@ cdef extern from "common.h": enum alias_find_type: SYMBOL_CREATE_CHARSET_ 'SYMBOL_CREATE_CHARSET' SYMBOL_CREATE_DATA_SURFACE_ 'SYMBOL_CREATE_DATA_SURFACE' - SYMBOL_CREATE_TREE_SURFACE_ 'SYMBOL_CREATE_TREE_SURFACE' ALIAS_FIND_AS_CHARSET_ 'ALIAS_FIND_AS_CHARSET' ALIAS_FIND_AS_SURFACE_ 'ALIAS_FIND_AS_SURFACE' ALIAS_FIND_AS_EITHER_ 'ALIAS_FIND_AS_EITHER' int code_to_ucs2(RECODE_CONST_SYMBOL, unsigned) bool prepare_for_aliases(RECODE_OUTER) - RECODE_ALIAS declare_alias(RECODE_OUTER, char *, char *) - bool declare_implied_surface(RECODE_OUTER, RECODE_ALIAS, + RECODE_ALIAS recode_declare_alias(RECODE_OUTER, char *, char *) + bool recode_declare_implied_surface(RECODE_OUTER, RECODE_ALIAS, RECODE_CONST_SYMBOL) bool make_argmatch_arrays(RECODE_OUTER) RECODE_ALIAS find_alias(RECODE_OUTER, char *, alias_find_type) @@ -392,8 +373,8 @@ cdef extern from "common.h": RECODE_OUTER, char *, char *, recode_quality, declare_single_Arg5, declare_single_Arg6) bool declare_iconv(RECODE_OUTER, char *, char *) - bool declare_explode_data(RECODE_OUTER, unsigned short *, char *, char *) - bool declare_strip_data(RECODE_OUTER, strip_data *, char *) + bool recode_declare_explode_data(RECODE_OUTER, unsigned short *, char *, char *) + bool recode_declare_strip_data(RECODE_OUTER, strip_data *, char *) # pool.c @@ -409,8 +390,8 @@ cdef extern from "common.h": # task.c - int get_byte_helper(RECODE_SUBTASK) - void put_byte_helper(int, RECODE_SUBTASK) + int get_byte(RECODE_SUBTASK) + void recode_put_byte(int, RECODE_SUBTASK) bool recode_if_nogo(recode_error_, RECODE_SUBTASK) bool transform_byte_to_byte(RECODE_SUBTASK) bool transform_byte_to_variable(RECODE_SUBTASK) @@ -433,13 +414,14 @@ cdef extern from "common.h": enum: RECODE_AUTO_ABORT_FLAG RECODE_NO_ICONV_FLAG + RECODE_STRICT_MAPPING_FLAG RECODE_OUTER recode_new_outer(unsigned) bool recode_delete_outer(RECODE_OUTER) - bool list_all_symbols(RECODE_OUTER, RECODE_CONST_SYMBOL) - bool list_concise_charset(RECODE_OUTER, RECODE_CONST_SYMBOL, - recode_list_format) - bool list_full_charset(RECODE_OUTER, RECODE_CONST_SYMBOL) + bool recode_list_all_symbols(RECODE_OUTER, RECODE_CONST_SYMBOL) + bool recode_list_concise_charset(RECODE_OUTER, RECODE_CONST_SYMBOL, + recode_list_format) + bool recode_list_full_charset(RECODE_OUTER, RECODE_CONST_SYMBOL) # Recode library at REQUEST level. @@ -448,11 +430,6 @@ cdef extern from "common.h": bool recode_scan_request(RECODE_REQUEST, char *) bool recode_format_table( RECODE_REQUEST, recode_programming_language, char *) - char *recode_string(RECODE_CONST_REQUEST, char *) - bool recode_string_to_buffer( - RECODE_CONST_REQUEST, char *, char **, size_t *, size_t *) - bool recode_string_to_file( - RECODE_CONST_REQUEST, char *, FILE *) bool recode_buffer_to_buffer( RECODE_CONST_REQUEST, char *, size_t, char **, size_t *, size_t *) bool recode_buffer_to_file( @@ -475,7 +452,6 @@ class error(Exception): NO_SYMBOL_TYPE = RECODE_NO_SYMBOL_TYPE CHARSET = RECODE_CHARSET DATA_SURFACE = RECODE_DATA_SURFACE -TREE_SURFACE = RECODE_TREE_SURFACE NO_CHARSET_DATA = RECODE_NO_CHARSET_DATA STRIP_DATA = RECODE_STRIP_DATA @@ -496,11 +472,6 @@ COMBINE_EXPLODE = RECODE_COMBINE_EXPLODE COMBINE_STEP = RECODE_COMBINE_STEP EXPLODE_STEP = RECODE_EXPLODE_STEP -STRATEGY_UNDECIDED = RECODE_STRATEGY_UNDECIDED -SEQUENCE_IN_MEMORY = RECODE_SEQUENCE_IN_MEMORY -SEQUENCE_WITH_FILES = RECODE_SEQUENCE_WITH_FILES -SEQUENCE_WITH_PIPE = RECODE_SEQUENCE_WITH_PIPE - SWAP_UNDECIDED = RECODE_SWAP_UNDECIDED SWAP_NO = RECODE_SWAP_NO SWAP_YES = RECODE_SWAP_YES @@ -530,7 +501,6 @@ STRIP_SIZE = STRIP_SIZE_ SYMBOL_CREATE_CHARSET = SYMBOL_CREATE_CHARSET_ SYMBOL_CREATE_DATA_SURFACE = SYMBOL_CREATE_DATA_SURFACE_ -SYMBOL_CREATE_TREE_SURFACE = SYMBOL_CREATE_TREE_SURFACE_ ALIAS_FIND_AS_CHARSET = ALIAS_FIND_AS_CHARSET_ ALIAS_FIND_AS_SURFACE = ALIAS_FIND_AS_SURFACE_ ALIAS_FIND_AS_EITHER = ALIAS_FIND_AS_EITHER_ @@ -545,6 +515,7 @@ BYTE_ORDER_MARK_SWAPPED = BYTE_ORDER_MARK_SWAPPED_ AUTO_ABORT_FLAG = RECODE_AUTO_ABORT_FLAG NO_ICONV_FLAG = RECODE_NO_ICONV_FLAG +STRICT_MAPPING_FLAG = RECODE_STRICT_MAPPING_FLAG ## Recode library at OUTER level. @@ -559,6 +530,8 @@ cdef class Outer: flags = flags | RECODE_AUTO_ABORT_FLAG if not iconv: flags = flags | RECODE_NO_ICONV_FLAG + if strict: + flags = flags | RECODE_STRICT_MAPPING_FLAG self.outer = recode_new_outer(flags) if strict: single = self.outer.single_list @@ -579,8 +552,7 @@ cdef class Outer: while symbol is not NULL: if (symbol.type == RECODE_CHARSET and symbol is not self.outer.iconv_pivot - and symbol is not self.outer.data_symbol - and symbol is not self.outer.tree_symbol): + and symbol is not self.outer.data_symbol): list.append(symbol.name) symbol = symbol.next return list @@ -596,18 +568,19 @@ cdef class Outer: return list def concise_charset(self, format=NO_FORMAT): - ok = list_concise_charset(self.outer, NULL, format) + ok = recode_list_concise_charset(self.outer, NULL, format) if not ok: raise error def full_charset(self): - ok = list_full_charset(self.outer, NULL) + ok = recode_list_full_charset(self.outer, NULL) if not ok: raise error # Lazy, all in one call. - def recode(self, char *command, char *input): + def recode(self, char *command, char *input, verbose=False): request = Request(self) + request.set_verbose(verbose) request.scan(command) return request.string(input) @@ -635,7 +608,7 @@ cdef class Request: def pair_sequence(self): list = [] cdef recode_step step - cdef unsigned counter + cdef short counter for counter from 0 <= counter < self.request.sequence_length: step = self.request.sequence_array[counter] list.append((step.before.name, step.after.name)) @@ -646,28 +619,89 @@ cdef class Request: cdef bool saved outer = self.request.outer saved = outer.iconv_pivot.ignore - outer.iconv_pivot.ignore = true + outer.iconv_pivot.ignore = True ok = recode_format_table( self.request, language, charset) outer.iconv_pivot.ignore = saved if not ok: raise error - def string(self, char *text): - cdef char *result - result = recode_string(self.request, text) - if result is NULL: + def string(self, text): + cdef char *input = text + cdef size_t input_len = len(text) + cdef char *output = NULL + cdef size_t output_len + cdef size_t output_allocated = 0 + result = recode_buffer_to_buffer(self.request, input, input_len, &output, &output_len, &output_allocated) + if result is False or output is NULL: raise error - return result + try: + py_string = output[:output_len] + finally: + free (output) + return py_string + # Unexposed APIs: + + # Don't expose recode_string; always check return value + # + #char *recode_string( + # RECODE_CONST_REQUEST, char *) + + # Prefer buffer APIs, which allow NUL characters. + # #bool recode_string_to_buffer( # RECODE_CONST_REQUEST, char *, char **, size_t *, size_t *) #bool recode_string_to_file( # RECODE_CONST_REQUEST, char *, FILE *) - #bool recode_buffer_to_buffer( - # RECODE_CONST_REQUEST, char *, size_t, char **, size_t *, size_t *) + + # FIXME: Expose these? + # #bool recode_buffer_to_file( # RECODE_CONST_REQUEST, char *, size_t, FILE *) #bool recode_file_to_buffer( # RECODE_CONST_REQUEST, FILE *, char **, size_t *, size_t *) #bool recode_file_to_file(RECODE_CONST_REQUEST, FILE *, FILE *) + +# Recode library at TASK level. + +cdef class Task: + cdef RECODE_TASK task + + def __init__(self, Request request): + self.task = recode_new_task(request.request) + + def __dealloc__(self): + free (self.task.output.buffer) + recode_delete_task(self.task) + + def set_byte_order_mark(self, flag): + previous = self.task.byte_order_mark != 0 + self.task.byte_order_mark = int(flag) + return previous + + def get_error(self): + return self.task.error_so_far + + def set_fail_level(self, fail_level): + previous = self.task.fail_level + self.task.fail_level = fail_level + return previous + + def set_abort_level(self, abort_level): + previous = self.task.abort_level + self.task.abort_level = abort_level + return previous + + def set_input(self, text): + cdef char *input = text + cdef size_t input_len = len(text) + self.task.input.buffer = input + self.task.input.cursor = input + self.task.input.limit = input + input_len + + def get_output(self): + return self.task.output.buffer[:self.task.output.cursor - self.task.output.buffer] + + def perform(self): + return recode_perform_task(self.task) diff --git a/tests/asan-suppressions.txt b/tests/asan-suppressions.txt new file mode 100644 index 0000000..616ac3e --- /dev/null +++ b/tests/asan-suppressions.txt @@ -0,0 +1,2 @@ +leak:/bin/bash +leak:/bin/sed diff --git a/tests/common.py b/tests/common.py index 0c33644..658484b 100644 --- a/tests/common.py +++ b/tests/common.py @@ -2,6 +2,7 @@ __metaclass__ = type import os +import subprocess from __main__ import py recode_program = os.environ.get('RECODE') @@ -23,8 +24,8 @@ def __setattr__(self, attribute, value): def external(flag): run.external = flag -def request(text): - run.request = text +def request(text, encoding='utf-8'): + run.request = bytes(text, encoding) # Functions only meant to be imported into real testing modules, where # pytest is meant to find and use them. @@ -34,6 +35,7 @@ def setup_module(module): 'LC_ALL', 'LC_MESSAGES', 'LC_COLLATE'): if variable in os.environ: del os.environ[variable] + os.environ['DEFAULT_CHARSET'] = 'ASCII' run.external = outer is None import tempfile run.work = tempfile.mktemp() @@ -47,8 +49,8 @@ def teardown_module(module): def assert_or_diff(output, expected): if output != expected: import difflib - diff = difflib.ndiff(output.splitlines(True), - expected.splitlines(True)) + diff = difflib.ndiff(expected.splitlines(True), + output.splitlines(True)) import sys sys.stdout.write(''.join(diff)) assert False, (len(output), len(expected)) @@ -56,37 +58,50 @@ def assert_or_diff(output, expected): def external_output(command): if not recode_program: py.test.skip() - command = command.replace('$R', recode_program + ' --ignore=:iconv:') - return os.popen(command, 'rb').read() + command = command.replace('$R', recode_program) + # FIXME: Find a more portable solution than checking the OS + return subprocess.check_output(command, universal_newlines=True, shell=os.name != 'nt') -def recode_output(input): +def recode_output(input, encoding='utf-8'): + if type(input) != bytes: + input = bytes(input, encoding) if run.external: - file(run.work, 'wb').write(input) + open(run.work, 'wb').write(input) return external_output('$R %s < %s' % (run.request, run.work)) if outer is None: py.test.skip() return outer.recode(run.request, input) -def recode_iconv_output(input): +def recode_iconv_output(input, encoding='utf-8'): + if type(input) != bytes: + input = bytes(input, encoding) if run.external or outer_iconv is None: py.test.skip() return outer_iconv.recode(run.request, input) -def recode_back_output(input): - before, after = run.request.split('..') +def recode_back_output(input, encoding='utf-8'): + if type(input) != bytes: + input = bytes(input, encoding) + before, after = run.request.split(b'..') if run.external: - file(run.work, 'wb').write(input) - external_output('$R %s %s' % (run.request, run.work)) - return external_output('$R %s..%s < %s' % (after, before, run.work)) + open(run.work, 'wb').write(input) + external_output(b'$R %s %s' % (run.request, run.work)) + return external_output(b'$R %s..%s < %s' % (after, before, run.work)) if outer is None: py.test.skip() temp = outer.recode(run.request, input) - return outer.recode('%s..%s' % (after, before), temp) + return outer.recode(b'%s..%s' % (after, before), temp) -def validate(input, expected): +def validate(input, expected, encoding='utf-8'): output = recode_output(input) + if type(input) != bytes: + output = output.decode(encoding) + import sys + print(type(input), type(output), type(expected)) assert_or_diff(output, expected) -def validate_back(input): +def validate_back(input, encoding='utf-8'): output = recode_back_output(input) + if type(input) != bytes: + output = output.decode(encoding) assert_or_diff(output, input) diff --git a/tests/pytest b/tests/pytest index fb96697..ec83d6c 100755 --- a/tests/pytest +++ b/tests/pytest @@ -1,6 +1,6 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- -# Copyright © 2005 Progiciels Bourbeau-Pinard inc. +# Copyright © 2005 Progiciels Bourbeau-Pinard, Inc. # François Pinard , 2005. u"""\ @@ -27,7 +27,7 @@ repeated; then a test should match at least one of -k options if any, one of -o options is any, and none of -x options. When PATH names a directory, it is recursively searched to find files -matching "test_.*\.py". Otherwise, it should give a ".py" ended file name +matching "test_.*\\.py". Otherwise, it should give a ".py" ended file name containing tests. If no PATH are given, the current directory is implied. Test progression is first displayed on standard error. Then, unless @@ -41,7 +41,10 @@ least one such failed test, the return status of this program is non-zero. __metaclass__ = type import inspect, os, sys, time, traceback -from StringIO import StringIO +from io import StringIO + +if os.name == 'nt': + os.add_dll_directory(os.environ['SHARED_LIB_DIR']) # How many displayable characters in an output line. WIDTH = 79 @@ -143,7 +146,7 @@ class Main: (self.total_count + 1, file_name, None, None, None, None, - str(tracing.getvalue()))) + tracing.getvalue())) else: self.handle_module(file_name, module) finally: @@ -155,7 +158,7 @@ class Main: else: text = u' ' + text write(text + u'\n') - except Exit, exception: + except Exit as exception: if not self.verbose: write(u'\n') write(u'\n* %s *\n' % str(exception)) @@ -214,7 +217,7 @@ class Main: % (text, time.time() - start_time)) write(summary) if self.save: - write = file(self.save, u'w').write + write = open(self.save, u'w').write for ordinal in self.failures: write(u'%d\n' % ordinal) else: @@ -224,7 +227,7 @@ class Main: write(u'\n' + u'=' * WIDTH + u'\n') write(u'%d. %s\n' % (ordinal, prefix)) if function and function.__name__ != os.path.basename(prefix): - write(u" Fonction %s\n" % function.__name__) + write(u" Function %s\n" % function.__name__) if arguments: for counter, argument in enumerate(arguments): write(u" Arg %d = %r\n" % (counter + 1, argument)) @@ -263,14 +266,14 @@ class Main: if getattr(object, u'disabled', False): continue minimum = None - for _, method in inspect.getmembers(objet, inspect.ismethod): - number = method.im_func.func_code.co_firstlineno + for _, func in inspect.getmembers(objet, inspect.isfunction): + number = func.__code__.co_firstlineno if minimum is None or number < minimum: minimum = number if minimum is not None: collection.append((minimum, name, objet, False)) elif name.startswith(u'test_') and inspect.isfunction(objet): - code = objet.func_code + code = objet.__code__ collection.append((code.co_firstlineno, name, objet, bool(code.co_flags & 32))) if not collection: @@ -293,11 +296,11 @@ class Main: def handle_class(self, prefix, classe): collection = [] - for name, method in inspect.getmembers(classe, inspect.ismethod): + for name, func in inspect.getmembers(classe, inspect.isfunction): if name.startswith(u'test_'): - code = method.im_func.func_code - collection.append((code.co_firstlineno, name, method, - bool(code.co_flags & 32))) + code = func.__code__ + collection.append((code.co_firstlineno, name, func, + bool(code.co_flags & inspect.CO_GENERATOR))) if not collection: return # FIXME: Should likely do module setup here! @@ -316,7 +319,7 @@ class Main: # FIXME: Should likely do class setup here. try: for counter, arguments in enumerate(function()): - collection.append((prefix + u'/' + unicode(counter + 1), + collection.append((prefix + u'/' + str(counter + 1), arguments[0], arguments[1:])) except Skipped: return @@ -383,7 +386,7 @@ class Main: traceback.print_exc(file=tracing) self.failures.append( (self.total_count, prefix, function, arguments, - stdout, stderr, str(tracing.getvalue()))) + stdout, stderr, tracing.getvalue())) if instance is not None and hasattr(instance, u'teardown_method'): instance.teardown_method(function) self.did_tests_in_class = True @@ -448,7 +451,7 @@ class Friendly_StreamWriter: def write(self, text): if not isinstance(text, unicode): - text = unicode(text, 'UTF-8') + text = text.encode('UTF-8') self.stream.write(text) def writelines(self, lines): diff --git a/tests/setup.py.in b/tests/setup.py.in index 7c3d7ad..352b05b 100644 --- a/tests/setup.py.in +++ b/tests/setup.py.in @@ -1,24 +1,42 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- import os -from distutils.core import setup, Extension +from setuptools import setup, Extension build = 'build' srcdir = '@srcdir@' top_builddir = '@top_builddir@' top_srcdir = '@top_srcdir@' +libintl = '@LIBINTL@' +libiconv = '@LIBICONV@' +extra_libs = [] +extra_libs.extend(libintl.split()) +extra_libs.extend(libiconv.split()) + +# FIXME: On Mingw, Cython seems to call gcc in such a way that it doesn't understand UNIX paths +if os.name == 'nt': + for i in range(len(extra_libs)): + if extra_libs[i][0] == '/': + extra_libs[i] = os.popen('cygpath --windows ' + extra_libs[i]).read().rstrip() try: if srcdir != '.': - buffer = file(os.path.join(srcdir, 'Recode.c')).read() - file('Recode.c', 'w').write(buffer) + with open(os.path.join(srcdir, 'Recode.c')) as f: + buffer = f.read() + with open('Recode.c', 'w') as f: + f.write(buffer) setup(ext_modules=[ Extension('Recode', ['Recode.c'], - include_dirs=[top_builddir, os.path.join(top_srcdir, 'src')], - libraries=['recode']) + include_dirs=[top_builddir, os.path.join(top_srcdir, 'src'), + os.path.join(top_srcdir, 'lib'), + os.path.join(top_builddir, 'lib')], + library_dirs=[os.path.join(top_builddir, 'src', '.libs'), + os.path.join(top_builddir, 'lib', '.libs')], + libraries=['recode', 'gnu'], + extra_link_args=extra_libs) ]) finally: diff --git a/tests/t21_names.py b/tests/t21_names.py index 61a3435..38adb37 100644 --- a/tests/t21_names.py +++ b/tests/t21_names.py @@ -30,12 +30,12 @@ AFRLIN-104-BPI_OCIL lin lingala sango wolof AFRLIN-105-BPI_OCIL t-lin t-lingala t-sango t-wolof ANSI_X3.4-1968 367/CR-LF ANSI_X3.4-1986 ASCII CP367/CR-LF IBM367/CR-LF ISO646-US iso-ir-6 ISO_646.irv:1991 us US-ASCII -Apple-Mac/CR ASCII-BS BS ASMO_449 arabic7 iso-ir-89 ISO_9036 AtariST baltic iso-ir-179 Bang-Bang +BibTeX bibtex btex BS_4730 gb ISO646-GB iso-ir-4 uk BS_viewdata iso-ir-47 CDC-NOS NOS @@ -145,7 +145,7 @@ INIS-8 iso-ir-50 INIS-cyrillic iso-ir-51 INVARIANT iso-ir-170 -ISO-8859-1 819/CR-LF CP819/CR-LF IBM819/CR-LF ISO8859-1 iso-ir-100 ISO_8859-1 ISO_8859-1:1987 l1 lat1 latin1 Latin-1 +ISO-8859-1 819/CR-LF CP819/CR-LF IBM819/CR-LF ISO8859-1 iso-ir-100 ISO_8859-1 ISO_8859-1:1987 l1 latin1 Latin-1 ISO-8859-2 912/CR-LF CP912/CR-LF IBM912/CR-LF ISO8859-2 iso-ir-101 ISO_8859-2 ISO_8859-2:1987 l2 latin2 ISO-8859-3 ISO8859-3 iso-ir-109 ISO_8859-3 ISO_8859-3:1988 l3 latin3 ISO-8859-4 ISO8859-4 iso-ir-110 ISO_8859-4 ISO_8859-4:1988 l4 latin4 @@ -163,6 +163,7 @@ ISO_646.basic ISO_646.basic:1983 ref ISO_646.irv irv iso-ir-2 ISO_646.irv:1983 ISO_2033-1983 e13b iso-ir-98 +ISO_5426:1983-DB-MAB2 DB-MAB2 DDB ISO_5426 MAB MAB2 ISO_5427 iso-ir-37 ISO_5427-ext iso-ir-54 ISO_5427:1981 ISO_5428 iso-ir-55 ISO_5428:1980 @@ -184,7 +185,7 @@ JUS_I.B1.003-mac iso-ir-147 macedonian JUS_I.B1.003-serb iso-ir-146 serbian KEYBCS2 Kamenicky -KOI8-R +KOI8-R 878 1489 CP878 IBM878 RFC1489 KOI8-RU KOI8-U KOI-7 @@ -195,7 +196,7 @@ latin-greek iso-ir-19 Latin-greek-1 iso-ir-27 mac-is -macintosh/CR mac/CR +macintosh/CR Apple-Mac/CR mac/CR macintosh_ce/CR macce/CR MSZ_7795.3 hu ISO646-HU iso-ir-86 Mule @@ -219,7 +220,6 @@ TCVN Texinfo texi ti Texte txte -tree UNICODE-1-1-UTF-7 TF-7 u7 UTF-7 UTF-8 FSS_UTF TF-8 u8 UTF-2 UTF-FSS UTF-16 TF-16 u6 Unicode @@ -228,8 +228,9 @@ VNI VPS XML-standalone h0 +Z39.47:1993 8bitANSEL ANSEL LOC MARC USMARC Z39.47 ''' def test_1(): - output = common.external_output('$R -l') + output = common.external_output('$R --ignore=:iconv: -l') common.assert_or_diff(output, expected) diff --git a/tests/t25_subsets.py b/tests/t25_subsets.py index e5435fa..dd37def 100644 --- a/tests/t25_subsets.py +++ b/tests/t25_subsets.py @@ -451,7 +451,7 @@ ''' def test_1(): - output = common.external_output('$R -T') + output = common.external_output('$R --find-subsets') # FIXME: The output is not sorted appropriately. output2 = ''.join(sorted(output.splitlines(True))) expected2 = ''.join(sorted(expected.splitlines(True))) diff --git a/tests/t40_html.py b/tests/t40_html.py new file mode 100644 index 0000000..64ab0a4 --- /dev/null +++ b/tests/t40_html.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +import common +from common import setup_module, teardown_module + +class Test: + # Stand-alone '&' must be kept as-is. + def test_1(self): + input = '& S&P, S & P, &' + output = '& S&P, S & P, &' + common.request('html..') + common.validate(input, output) + # Incomplete numeric hex entities should be kept. + def test_2(self): + input = 'a &#xZZ &#x; &#x' + output = 'a &#xZZ &#x; &#x' + common.request('html..') + common.validate(input, output) + # Incomplete numeric decimal entities should be kept. + def test_3(self): + input = 'a &#ZZ &#; &#' + output = 'a &#ZZ &#; &#' + common.request('html..') + common.validate(input, output) + # Multiple encoding levels should be decodable. Bug #66. + def test_4(self): + input = '&&#35;40;Parenthetical&&#35;41;' + intermediate1 = '&#40;Parenthetical&#41;' + intermediate2 = '(Parenthetical)' + output = '(Parenthetical)' + common.request('html..') + common.validate(input, intermediate1) + common.validate(intermediate1, intermediate2) + common.validate(intermediate2, output) diff --git a/tests/t40_java.py b/tests/t40_java.py index 1b671ab..bf6c0e3 100644 --- a/tests/t40_java.py +++ b/tests/t40_java.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- import common -from common import setup_module, teardown_module +from common import setup_module, teardown_module, Recode, outer, assert_or_diff -input = '''\ +input = b'''\ Dear =DEorvard=F0ur, =AB O=F9 qu'il r=E9side, =E0 N=EEmes ou m=EAme Capharna=FCm, tout Fran=E7ai= @@ -11,21 +11,27 @@ . =BB ''' -output = '''\ -Dear \u00deorvard\u00f0ur, +output = b'''\ +Dear \\u00deorvard\\u00f0ur, -\u00ab O\u00f9 qu'il r\u00e9side, \u00e0 N\u00eemes ou m\u00eame Capharna\u00fcm, tout Fran\u00e7ais inscrit -au r\u00f4le payera son d\u00fb d\u00e8s avant No\u00ebl, qu'il soit na\u00eff ou r\u00e2leur. \u00bb +\\u00ab O\\u00f9 qu'il r\\u00e9side, \\u00e0 N\\u00eemes ou m\\u00eame Capharna\\u00fcm, tout Fran\\u00e7ais inscrit +au r\\u00f4le payera son d\\u00fb d\\u00e8s avant No\\u00ebl, qu'il soit na\\u00eff ou r\\u00e2leur. \\u00bb ''' class Test: def test_1(self): - # Block of lines to JAVA. + # Block of lines to Java. common.request('l1/qp..java') common.validate(input, output) def test_2(self): - # Block of lines to JAVA and back. - common.request('l1/qp..java') - common.validate_back(input) + # Block of lines from Java, without requiring BOM for each Unicode character. + request = Recode.Request(outer) + request.scan(b'java..l1/qp') + task = Recode.Task(request) + task.set_byte_order_mark(False) + task.set_input(output) + task.perform() + task_output = task.get_output() + assert_or_diff(task_output, input) diff --git a/tests/t50_methods.py b/tests/t50_methods.py index 23f5044..3a949c7 100644 --- a/tests/t50_methods.py +++ b/tests/t50_methods.py @@ -1,97 +1,62 @@ # -*- coding: utf-8 -*- import common from common import setup_module, teardown_module +from __main__ import py import os, sys input_name = '%s/../COPYING' % os.path.dirname(sys.argv[0]) -input = file(input_name, 'rb').read() +with open(input_name) as f: + input = f.read() def test_1(): - # No step at all. - yield validate, 'texte..texte', 'memory', 'filter' - yield validate, 'texte..texte', 'memory', 'squash' - yield validate, 'texte..texte', 'files', 'filter' - yield validate, 'texte..texte', 'files', 'squash' - yield validate, 'texte..texte', 'pipe', 'filter' - yield validate, 'texte..texte', 'pipe', 'squash' + yield validate, 'texte..texte' # One single step. - yield validate, 'latin1..ibmpc/', 'memory', 'filter' - yield validate, 'latin1..ibmpc/', 'memory', 'squash' - yield validate, 'latin1..ibmpc/', 'files', 'filter' - yield validate, 'latin1..ibmpc/', 'files', 'squash' - yield validate, 'latin1..ibmpc/', 'pipe', 'filter' - yield validate, 'latin1..ibmpc/', 'pipe', 'squash' + yield validate, 'latin1..ibmpc/' # One single step and a surface - yield validate, 'latin1..ibmpc', 'memory', 'filter' - yield validate, 'latin1..ibmpc', 'memory', 'squash' - yield validate, 'latin1..ibmpc', 'files', 'filter' - yield validate, 'latin1..ibmpc', 'files', 'squash' - yield validate, 'latin1..ibmpc', 'pipe', 'filter' - yield validate, 'latin1..ibmpc', 'pipe', 'squash' + yield validate, 'latin1..ibmpc' # One single step. - yield validate, 'texte..latin1', 'memory', 'filter' - yield validate, 'texte..latin1', 'memory', 'squash' - yield validate, 'texte..latin1', 'files', 'filter' - yield validate, 'texte..latin1', 'files', 'squash' - yield validate, 'texte..latin1', 'pipe', 'filter' - yield validate, 'texte..latin1', 'pipe', 'squash' + yield validate, 'texte..latin1' # Two single steps. - yield validate, 'texte..bangbang', 'memory', 'filter' - yield validate, 'texte..bangbang', 'memory', 'squash' - yield validate, 'texte..bangbang', 'files', 'filter' - yield validate, 'texte..bangbang', 'files', 'squash' - yield validate, 'texte..bangbang', 'pipe', 'filter' - yield validate, 'texte..bangbang', 'pipe', 'squash' + yield validate, 'texte..bangbang' # Two single steps and a surface. - yield validate, 'texte..ibmpc', 'memory', 'filter' - yield validate, 'texte..ibmpc', 'memory', 'squash' - yield validate, 'texte..ibmpc', 'files', 'filter' - yield validate, 'texte..ibmpc', 'files', 'squash' - yield validate, 'texte..ibmpc', 'pipe', 'filter' - yield validate, 'texte..ibmpc', 'pipe', 'squash' + yield validate, 'texte..ibmpc' # Three single steps. - yield validate, 'texte..iconqnx', 'memory', 'filter' - yield validate, 'texte..iconqnx', 'memory', 'squash' - yield validate, 'texte..iconqnx', 'files', 'filter' - yield validate, 'texte..iconqnx', 'files', 'squash' - yield validate, 'texte..iconqnx', 'pipe', 'filter' - yield validate, 'texte..iconqnx', 'pipe', 'squash' + yield validate, 'texte..iconqnx' # Four single steps, optimized into three (with iconv) or two (without). - yield validate, 'ascii-bs..ebcdic', 'memory', 'filter' - yield validate, 'ascii-bs..ebcdic', 'memory', 'squash' - yield validate, 'ascii-bs..ebcdic', 'files', 'filter' - yield validate, 'ascii-bs..ebcdic', 'files', 'squash' - yield validate, 'ascii-bs..ebcdic', 'pipe', 'filter' - yield validate, 'ascii-bs..ebcdic', 'pipe', 'squash' + yield validate, 'ascii-bs..ebcdic' -def validate(request, sequence, mode): +def validate(request): before, after = request.split('..') - if mode == 'filter': - command = ('$R --quiet --force --sequence=%s < %s %s' - '| $R --quiet --force --sequence=%s %s..%s' - % (sequence, input_name, request, sequence, after, before)) - print command - output = common.external_output(command) - elif mode == 'squash': - file(common.run.work, 'wb').write(input) - command1 = ('$R --quiet --force --sequence=%s %s %s' - % (sequence, request, common.run.work)) - command2 = ('$R --quiet --force --sequence=%s %s..%s %s' - % (sequence, after, before, common.run.work)) - print command1 - print command2 - common.external_output(command1) - common.external_output(command2) - output = file(common.run.work, 'rb').read() - else: - assert False, mode + # With a pipe + if os.name == 'nt': + py.test.skip() + command = ('$R --quiet --force < %s %s' + '| $R --quiet --force %s..%s' + % (input_name, request, after, before)) + print(command) + output = common.external_output(command) + common.assert_or_diff(output, input) + + # With an intermediate file + with open(common.run.work, 'w') as f: + f.write(input) + command1 = ('$R --quiet --force %s %s' + % (request, common.run.work)) + command2 = ('$R --quiet --force %s..%s %s' + % (after, before, common.run.work)) + print(command1) + print(command2) + common.external_output(command1) + common.external_output(command2) + with open(common.run.work) as f: + output = f.read() common.assert_or_diff(output, input) diff --git a/tests/t70_inferenz.py b/tests/t70_inferenz.py index bd9ca2d..04410de 100644 --- a/tests/t70_inferenz.py +++ b/tests/t70_inferenz.py @@ -5,7 +5,7 @@ # Some characters were lost while u8..l1 recoding goes. # Submitted 2001-09-28 by Volker Wysk . -input = '''\ +input = r'''\ :- module(inferenz, [anfrage/2, anfrage/1, anfrage_l/3, anfrage_l/2, ohne/4, loese/4, loese/6, loese_pos/6 @@ -84,8 +84,9 @@ ''' def test_1(): + import sys common.request('u8..l1') output = common.recode_iconv_output(input) - expected = ''.join(input.splitlines(True)[-6:]) - output = ''.join(output.splitlines(True)[-6:]) + expected = b''.join(input.encode('latin-1').splitlines(True)[-6:]) + output = b''.join(output.splitlines(True)[-6:]) common.assert_or_diff(output, expected) diff --git a/tests/t80_error.py b/tests/t80_error.py new file mode 100644 index 0000000..835e72c --- /dev/null +++ b/tests/t80_error.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +import common +from common import setup_module, teardown_module, Recode, outer, outer_iconv + +class Test: + + def test_1(self): # Ensure correct error code returned for untranslatable input + request = Recode.Request(outer) + request.scan(b'utf-8..latin1') + task = Recode.Task(request) + task.set_input(b"\303\241 \303\247 \316\261 \316\266") + task.perform() + assert(task.get_error() == Recode.UNTRANSLATABLE) + + # FIXME: Does not work with iconv for abort_level > UNTRANSLATABLE: Debian bug #348909 + def test_2(self): # Ensure correct error code returned for untranslatable input (with iconv) + request = Recode.Request(outer_iconv) + request.scan(b'utf-8..latin1') + task = Recode.Task(request) + task.set_input(b"\303\241 \303\247 \316\261 \316\266") + task.set_abort_level(Recode.UNTRANSLATABLE) + task.perform() + assert(task.get_error() == Recode.UNTRANSLATABLE) diff --git a/tests/t90_bigauto.py b/tests/t90_bigauto.py index 861cce6..2a48ada 100644 --- a/tests/t90_bigauto.py +++ b/tests/t90_bigauto.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright © 1997, 1999, 2000 Progiciels Bourbeau-Pinard inc. +# Copyright © 1997-2000 Progiciels Bourbeau-Pinard, Inc. # François Pinard , 1997. """\ @@ -32,7 +32,7 @@ from common import setup_module, teardown_module class Test: - avoid_as_before = 'count-characters', 'dump-with-names', 'flat' + avoid_as_before = b'count-characters', b'dump-with-names', b'flat' def test_1(self): if Recode is None: @@ -57,11 +57,11 @@ def validate(self, before): # consider as a single test, one "before" against all "after"s. # However, without a Recode module, we do not know how many # "before"s exist, and the skip count is then rather small. - print before + print(before) for after in self.charsets: if after is not before: request = Recode.Request(self.outer) - request.scan('%s..%s' % (before, after)) + request.scan(b'%s..%s' % (before, after)) def main(*arguments): recode_options = [] @@ -97,7 +97,7 @@ def digest_data(self, readline): line = readline() if line: if len(line[:-lensep].split(':', 1)) != 2: - print '*', line, + print('*', line, end='') type, shrunk_to = line[:-lensep].split(':', 1) if type == 'Shrunk to': steps = self.get_steps(shrunk_to)